From 56ab12fad2baa8f00c46b5d489c7fc32942bcf49 Mon Sep 17 00:00:00 2001 From: Alex Berry Date: Sat, 2 May 2020 14:14:43 +0100 Subject: [PATCH] ch-ch-chaaanges --- README.md | 93 ++++++++++++++++++++++++++------ images/ubuntu_20_04_initial.png | Bin 0 -> 27029 bytes 2 files changed, 77 insertions(+), 16 deletions(-) create mode 100644 images/ubuntu_20_04_initial.png diff --git a/README.md b/README.md index 7c9a291..681e8a6 100644 --- a/README.md +++ b/README.md @@ -31,20 +31,6 @@ netcat \ unzip ``` -### Total disk wipe - -_This is an excerpt from a comment I made on the original [thread](https://www.reddit.com/r/linuxquestions/comments/g88hhs/need_help_installing_ubuntu/)._ - -1. Launch a live usb -2. Launch a terminal and run “sudo gdisk -l” and find and note down the name of your main disk, use this in step 2 -3. On the assumption your disk is “/dev/nvme0n1” (your screenshots suggest this is the device name) run “sudo gdisk /dev/nvme0n1” -4. In gdisk, press “x” (expert mode) -5. In gdisk, press “z” (zap) and respond yes to all questions- this will remove both gpt and mbr partition tables -6. Quit gdisk -7. Reboot - -Your disk should now be as blank as is possible without writing zeroes across the whole disk. - ### Logs __Please make sure to install [Required packages](#required-packages) before following this process.__ @@ -78,14 +64,80 @@ curl https://seashells.io/p/s5SeWhbp > journalctl.log * [journalctl.log](./logs/journalctl.log) * [lspci.log](./logs/lspci.log) +### Confirming hardware Model + +To confirm the machine is an L490, we used output from [dmidecode.log](./logs/dmidecode.log). The pertinent excerpt is here: + +``` +Handle 0x0012, DMI type 1, 27 bytes +System Information + Manufacturer: LENOVO + Product Name: 20Q5S0M600 + Version: ThinkPad L490 + Serial Number: PG01TCJ4 + UUID: 8dd060cc-26f9-11b2-a85c-f3a05d5236c9 + Wake-up Type: Power Switch + SKU Number: LENOVO_MT_20Q5_BU_SMB_FM_ThinkPad L490 + Family: ThinkPad L490 +``` + +### Total disk wipe + +_This is an excerpt from a comment I made on the original [thread](https://www.reddit.com/r/linuxquestions/comments/g88hhs/need_help_installing_ubuntu/)._ + +1. Launch a live usb +2. Launch a terminal and run “sudo gdisk -l” and find and note down the name of your main disk, use this in step 2 +3. On the assumption your disk is “/dev/nvme0n1” (your screenshots suggest this is the device name) run “sudo gdisk /dev/nvme0n1” +4. In gdisk, press “x” (expert mode) +5. In gdisk, press “z” (zap) and respond yes to all questions- this will remove both gpt and mbr partition tables +6. Quit gdisk +7. Reboot + +Your disk should now be as blank as is possible without writing zeroes across the whole disk. + ### Firmware Updates -To ensure BIOS firmware was not the issue, we chose to perform a bios update. +To ensure firmware was not the issue, we chose to attempt a bios + ssd firmware update. #### Thinkpad L490 BIOS Updates __Please make sure to install [Required packages](#required-packages) before following this process.__ +To confirm what version was currently running we used output from [dmidecode.log](./logs/dmidecode.log). The pertinent excerpt is here: + +``` +Handle 0x0011, DMI type 0, 26 bytes +BIOS Information + Vendor: LENOVO + Version: R0ZET40W (1.18 ) + Release Date: 03/24/2020 + Address: 0xE0000 + Runtime Size: 128 kB + ROM Size: 32 MB + Characteristics: + PCI is supported + PNP is supported + BIOS is upgradeable + BIOS shadowing is allowed + Boot from CD is supported + Selectable boot is supported + EDD is supported + 3.5"/720 kB floppy services are supported (int 13h) + Print screen service is supported (int 5h) + 8042 keyboard services are supported (int 9h) + Serial services are supported (int 14h) + Printer services are supported (int 17h) + CGA/mono video services are supported (int 10h) + ACPI is supported + USB legacy is supported + BIOS boot specification is supported + Targeted content distribution is supported + UEFI is supported + BIOS Revision: 1.18 + Firmware Revision: 1.15 +``` +The last two lines indicate the firmware versions, prior to an update they were at 1.11 and 1.12 respectively. + The L490 does not have a CD drive, and yet the only way Lenovo provide to update firmware outside of Windows is a non-USB iso file available (available at time of writing [here](https://download.lenovo.com/pccbbs/mobiles/r0zuj12wd.iso)). Thanks Lenovo. _Before blindly following this guide, you should ensure you have downloaded the correct iso for your hardware by entering your serial on lenovo's website, and be VERY careful with the dd command listed below_ @@ -105,7 +157,7 @@ sync This successfully updated the BIOS, however did not resolve the issue. -#### Intel nvme SSD790 firmware Updates +#### Intel nvme SSD 790 firmware Updates _Unfortunately, the same bug that we are trying to fix seemingly causes the linux-based updater to fail. If you have access to another machine with a spare m.2 nvme slot available, however, this step may still be useful in resolving your issue and so will be left here._ @@ -123,3 +175,12 @@ sudo dd if=issdfut_64_3.0.8.iso of=/dev/sdb bs=1m # sync disk before unplugging sync ``` + +#### NVME quirks kernel flag + +According to this [bug report](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=910069) + +## Sources + +### Bug report about Intel 790 SSD on linux +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=910069 diff --git a/images/ubuntu_20_04_initial.png b/images/ubuntu_20_04_initial.png new file mode 100644 index 0000000000000000000000000000000000000000..a683914f2cea9c659d1d9457a3e8404bd0b98573 GIT binary patch literal 27029 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 OkS