The problem
On startup a X280 was showing the following error message:
The connected AC adapter has a lower wattage than the recommended AC adapter
which was shipped with the system. To use AC power, please connect the AC
adapter which was shipped with the system.
Press the ESC key to continue.
The error message on the screen:
And altough there was a power supply unit attached with 45 W or 65 W, Lenovo Vantage shows that the laptop loads with 15 W only:
It was constantly discharging the battery while working on the laptop, because 15 Watts were not enough to satisfy the actual power demand. Slow charging was possible, but only when the laptop was switched off actually.
The solution
After hours of reading articles on the web and several unsuccessful tests including the official way by Lenovo I came along the instructions at https://www.reddit.com/r/thinkpad/comments/1gyv56s/guide_how_to_flash_a_t480s_thunderbolt_firmware/ which worked like a charm also for the X280.
The only thing worth to add here are images to show you how to find the required chip on the X280 logic board. Go to the BIOS and disable the battery. Remove the bottom case from the laptop. Now you need to remove the black plastic foil in the upper right corner and underneeth you find the Winbond 25Q80DV chip that we are going to flash with the Thunderbolt Firmware for the X280.
The chip under a magnifying glass:
The chip gripped by the pliers:
The whole little setup with a connection between the chip and a Linux box by using the CH341A programmer:
Install flashrom packages on Linux
we need to check whether the connection can be established ...
$ sudo flashrom -p ch341a_spi
flashrom unknown on Linux 6.14.0-24-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip "W25Q80.V" (1024 kB, SPI) on ch341a_spi.
===
This flash part has status UNTESTED for operations: WP
The test status of this chip may have been updated in the latest development
version of flashrom. If you are running the latest development version,
please email a report to flashrom@flashrom.org if any of the above operations
work correctly for you with this flash chip. Please include the flashrom log
file for all operations you tested (see the man page for details), and mention
which mainboard or programmer you tested in the subject line.
Thanks for your help!
No operations were specified.
The chip has been found. Let's backup the content of the chip, just in case something goes wrong ...
$ sudo flashrom -p ch341a_spi -r winbond-backup.bin
flashrom unknown on Linux 6.14.0-24-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip "W25Q80.V" (1024 kB, SPI) on ch341a_spi.
===
This flash part has status UNTESTED for operations: WP
The test status of this chip may have been updated in the latest development
version of flashrom. If you are running the latest development version,
please email a report to flashrom@flashrom.org if any of the above operations
work correctly for you with this flash chip. Please include the flashrom log
file for all operations you tested (see the man page for details), and mention
which mainboard or programmer you tested in the subject line.
Thanks for your help!
Reading flash... done.
A backup file has been created, now let's create a 1 MiB file full of nulls ...
$ dd if=/dev/zero of=null.bin bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00205349 s, 511 MB/s
Let's erase the chip ...
$ sudo flashrom -p ch341a_spi -E
flashrom unknown on Linux 6.14.0-24-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip "W25Q80.V" (1024 kB, SPI) on ch341a_spi.
===
This flash part has status UNTESTED for operations: WP
The test status of this chip may have been updated in the latest development
version of flashrom. If you are running the latest development version,
please email a report to flashrom@flashrom.org if any of the above operations
work correctly for you with this flash chip. Please include the flashrom log
file for all operations you tested (see the man page for details), and mention
which mainboard or programmer you tested in the subject line.
Thanks for your help!
Erasing and writing flash chip... Erase/write done.
Write all the nulls to the chip ...
$ sudo flashrom -p ch341a_spi -w null.bin
flashrom unknown on Linux 6.14.0-24-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip "W25Q80.V" (1024 kB, SPI) on ch341a_spi.
===
This flash part has status UNTESTED for operations: WP
The test status of this chip may have been updated in the latest development
version of flashrom. If you are running the latest development version,
please email a report to flashrom@flashrom.org if any of the above operations
work correctly for you with this flash chip. Please include the flashrom log
file for all operations you tested (see the man page for details), and mention
which mainboard or programmer you tested in the subject line.
Thanks for your help!
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.
Disconnect the pliers, boot the laptop, disable battery again in BIOS, shutdown the laptop and reconnect the pliers again. The original Thunderbolt firmware (from Lenovo, extracted from the .exe) is called TBT.bin ...
$ ls -la TBT.bin
-rwxr-xr-x 1 johann johann 262144 Jul 8 2022 TBT.bin
johann@x250:~$ cp TBT.bin TBT-backup.bin
We need to pad the TBT.bin with nulls to have a 1 MiB file ...
$ dd if=/dev/null of=TBT.bin bs=1 seek=1048576
0+0 records in
0+0 records out
0 bytes copied, 6.4913e-05 s, 0.0 kB/s
johann@x250:~$ ls -la TBT.bin
-rwxr-xr-x 1 johann johann 1048576 Jul 18 20:11 TBT.bin
We flash the content of the updated TBT.bin to the chip ...
$ sudo flashrom -p ch341a_spi -w TBT.bin
flashrom unknown on Linux 6.14.0-24-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip "W25Q80.V" (1024 kB, SPI) on ch341a_spi.
===
This flash part has status UNTESTED for operations: WP
The test status of this chip may have been updated in the latest development
version of flashrom. If you are running the latest development version,
please email a report to flashrom@flashrom.org if any of the above operations
work correctly for you with this flash chip. Please include the flashrom log
file for all operations you tested (see the man page for details), and mention
which mainboard or programmer you tested in the subject line.
Thanks for your help!
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.
$
No comments:
Post a Comment