This is a very brief writeup of how to upgrade the BIOS on a X1 Carbon (G1) from Linux. For more information on this topic there is always the excellent ThinkWiki.
OK, this post is more about creating the bootable USB stick needed, was too much of a chicken to try Flashrom …
First, find your serial number, for querying Lenovo support (BIOS upgrade) pages.
sudo dmidecode -t system
The serial number is actually the combination of the Product Name and the Serial Number. E.g.
Handle 0x000D, DMI type 1, 27 bytes System Information Manufacturer: LENOVO Product Name: 3460CLG Version: ThinkPad X1 Carbon Serial Number: DEXFXX UUID: MMMMMMMM-NNNN-OOOO-PPPP-QQQQQQQQQQQQ Wake-up Type: Power Switch SKU Number: LENOVO_MT_3460 Family: ThinkPad X1 Carbon
Which in my case means
3460CLG-DEXFXX … actual serial have been
obfuscated, obviously. Find the Drivers & Software URL at
Lenovo (again, real serial number obfuscated in URL).
Navigate to the “BIOS Update Bootable CD”, which in my case turned out
to be called
g6uj21us.iso. Now we need to convert the ISO to an IMG
file to be able to
dd it to a USB stick:
./geteltorito.pl -o g6uj21us.img g6uj21us.iso Booting catalog starts at sector: 20 Manufacturer of CD: NERO BURNING ROM Image architecture: x86 Boot media type is: harddisk El Torito image starts at sector 27 and has 65536 sector(s) of 512 Bytes Image has been written to file "g6uj21us.img".
The link to the Perl script is available on the ThinkWiki page, or from GitHub. Now, insert a USB stick and unmount it manually, not using Ubuntu/Gnome file manager’s eject thingy!
Write to USB, mine was at
/dev/sdb BUT YOURS MIGHT NOT BE, WATCH OUT!
sudo dd if=g6uj21us.img of=/dev/sdb 65536+0 records in 65536+0 records out 33554432 bytes (34 MB, 32 MiB) copied, 16,5346 s, 2,0 MB/s
Reboot your laptop and select UEFI First in BIOS startup order, then F12 and select boot from Generic USB mass storage device. Done.
Follow the instructions in the tool to upgrade your BIOS.