hamishcoleman / thinkpad-ec

Infrastructure for examining and patching Thinkpad embedded controller firmware
GNU General Public License v2.0
1.07k stars 115 forks source link

Command "lsblk -d -o NAME,SIZE,LABEL" not showing USB flash drive. Solved!, but then BIOS & EC did not flash at boot, ALL NOW SOLVED! #237

Open Kokkolis opened 1 year ago

Kokkolis commented 1 year ago

Dear team, I know next to nothing about Linux and trying to flash the EC controller onto my beloved X230. As there is no executable patch through Windows, I have been "forced" to download -and attempt to learn"- as the EC-Controller patch is only available through the Linux path.

So, I have downloaded Pop!_OS (an Ubuntu derivative based on Debian as I understand).

Have followed all commands stated here, and then I get stuck at the "lsblk -d -o NAME,SIZE,LABEL" command.

No matter what USB stick I am attaching and no matter to which port, the "lsblk -d -o NAME,SIZE,LABEL" command, it always returns my two hard drives ("sda" with Windows 11, "sdb", which is split between Windows 11 storage space / Linux PoP!_OS), and one with name "zram0" and size 15,3G.

I have tried many different USB's, of different capacities, from 8GB to 32GB, I can only see "zram0". One of the USB's is formatted as NTFS for windows, another one is bootable and contains the Live distro of PoP!_OS, bought another one just to try, formatted as FAT (and not re-formatted since its purchase).

If I try to substitute the "sdx" with "zram0", the instruction returns an error (record 1, record out 0, 0/0 bytes copied) and stops there... hope I haven't damaged my hard drives.

All USB's show perfectly in Windows 11.

What am I missing? Do I need to format the USB in a special way so that "lsblk" command sees it?

When I stick any of these USB's, I cannot see any "pop-up" messages in Linux the way I see in Windows.

Running command "lsusb" in Pop!_OS terminal, before and AFTER inserting the brand USB, shows my USB in its list of devices found, it shows as "Device 42, ID xxxxxxx, SanDisk Corp. Ultra", please see attachments.

Any help is much appreciated as I am now stuck at the ultimate command instruction...

Thank you, Christos

Lsusb

Before USB

After USB

Kokkolis commented 1 year ago

Problem SOLVED. I have not deleted the issue in case anyone else runs at the same problems I had.

I rebooted into Linux, this time with the USB Drive in, (a 32GB USB 3.0, formatted in FAT). The 2nd time, Pop!_OS recognised the USB flash.

Interestingly, when I run the "lsblk" command, this time I DID GET my hard drives, as well as the USB flash. "sda" and "sdb" were shown as my hard drives, and "sdc" was showing as my USB Flash. I went to the next command instruction, substituted "sdx" for "sdc", and this time the patch got into the Flash. Really happy.

I rebooted (already in Legacy mode, boot order set to read from the USB). Upon restart, the screen showed "Lenovo Group Limited", BUT THEN IT STAYED THERE, just showing a "-", and nothing happening.

Rebooted back into Linux, and noted that the names of the drives had now changed (wonder why!!!!), Now, "sda" remained for my original Windows 11 drive, "sdb" was now showing onto my USB drive, and my Windows 11/Linux split now showed as "sdc" drives (whereas before it was the "sdb". Not sure why...

I re-run the last command instruction, this time substituting the "sdx" with "sdb", and "prayed".

This time IT WORKED. It flashed the BIOS, rebooted, then flashed the EC controller, and the keyboard now works!

THANK YOU HAMISH, Keyboard works like a dream!.

Hope to also install the patch onto my T430s too...

Kokkolis commented 1 year ago

Funny enough, having flashed the new EC controller, and with the keyboard properly working, booted again, having removed the USB with the patch.

Windows 11 works fine ("sda"), booted into Linux, went to "disk tool/management", and guess what: "sdb" now returned back to the hard drive (split between Windows 11 -sdb1 & Linux -sdb2).

So, in my particular case, it seems somehow the sdb partitions are not "permanent" but get changed depending on what is connected (or not).

I was not expecting this, so got really surprised that they changed whether the USB flash was inserted, or not (and actually the "sdb"-"sdc" allocation only showed after restarting with the USB inserted.

Not sure whether I've done anything wrong, I am pretty sure I've followed the instructions to the letter (copying/pasting commands to ensure no typos).

Please be careful A LOT when substituting the "sdx" part of the instruction command with the one of your USB Flash drive. For some reason, after inserting the USB and run "lsblk", in my case the name shown to the USB turned out to be different before and after booting with the USB inserted during booting to Linux.