add thinkpad_acpi notices for the T440p, W541 and T480/T480s

master
ezntek 2024-12-09 19:05:02 +08:00
parent 0eb22b1fa8
commit da5734ac34
4 changed files with 88 additions and 47 deletions

View File

@ -99,6 +99,14 @@ You should now be able to see the two flash chips near the RAM.\
You can now proceed to [flashing](/docs/install/spi.html) this machine. You can now proceed to [flashing](/docs/install/spi.html) this machine.
`thinkpad_acpi` issues {#thinkpad-acpi}
---------------------------------------
It has been reported by that `thinkpad_acpi` does not load correctly on the T440p.
If you encounter this, check [this page](https://libreboot.org/faq#thinkpad-acpi)
for details as to how to fix this.
Errata Errata
====== ======

View File

@ -1,9 +1,9 @@
--- ---
title: Lenovo ThinkPad T480/T480S information title: Lenovo ThinkPad T480/T480s information
x-toc-enable: true x-toc-enable: true
... ...
Libreboot supports both the T480 and T480S variants. It is available in Libreboot supports both the T480 and T480s variants. It is available in
the *Libreboot 20241206* release or later. the *Libreboot 20241206* release or later.
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
@ -16,19 +16,19 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
| ***Specifications*** | | | ***Specifications*** | |
|----------------------------|------------------------------------------------| |----------------------------|------------------------------------------------|
| **Manufacturer** | Lenovo | | **Manufacturer** | Lenovo |
| **Name** | ThinkPad T480 | | **Name** | ThinkPad T480 |
| **Variants** | ThinkPad T480, ThinkPad T480S | | **Variants** | ThinkPad T480, ThinkPad T480s |
| **Released** | 2018 | | **Released** | 2018 |
| **Chipset** | Intel Kaby Lake Refresh | | **Chipset** | Intel Kaby Lake Refresh |
| **CPU** | Intel Kaby Lake Refresh | | **CPU** | Intel Kaby Lake Refresh |
| **Graphics** | Intel or Intel+Nvidia | | **Graphics** | Intel or Intel+Nvidia |
| **Memory** | DDR4 DIMMs; max 40GB (T480S), 64GB(T480) | | **Memory** | DDR4 DIMMs; max 40GB (T480s), 64GB(T480) |
| **Architecture** | x86\_64 | | **Architecture** | x86\_64 |
| **Original boot firmware** | Lenovo UEFI firmware | | **Original boot firmware** | Lenovo UEFI firmware |
| **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. | | **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. |
| **Intel Boot Guard** | [Pwned](deguard.md). Disabled using the deguard utility. | | **Intel Boot Guard** | [Pwned](deguard.md). Disabled using the deguard utility.|
| **Flash chip** | SOIC-8 16MB/128Mbit system firmware | | **Flash chip** | SOIC-8 16MB/128Mbit system firmware |
``` ```
@ -43,9 +43,9 @@ P*: Partially works with blobs
| ***Features*** | | | ***Features*** | |
|---------------------------------------------------|----| |---------------------------------------------------|----|
| **Internal flashing with original boot firmware** | N | | **Internal flashing with original boot firmware** | N |
| **Display (if Intel GPU)** | W+ | | **Display (if Intel GPU)** | W+ |
| **Display (discrete CPU, SeaBIOS payload only)** | N | | **Display (discrete CPU, SeaBIOS payload only)** | N |
| **Audio** | W+ | | **Audio** | W+ |
| **RAM Init** | W* | | **RAM Init** | W* |
@ -56,7 +56,7 @@ P*: Partially works with blobs
| **SeaBIOS with GRUB** | Works | | **SeaBIOS with GRUB** | Works |
</div> </div>
Regarding memory: T480S (S model) has 8GB onboard RAM, and an available DIMM Regarding memory: T480s (S model) has 8GB onboard RAM, and an available DIMM
slot on which an additional 32GB SODIMM can be installed. The regular T480 slot on which an additional 32GB SODIMM can be installed. The regular T480
has two DIMM slots, allowing 2x32GB DDR4 SODIMMs. has two DIMM slots, allowing 2x32GB DDR4 SODIMMs.
@ -74,10 +74,10 @@ source](../build/), or alternatively an image from Libreboot 20241206 or higher.
Official information about the T480 can be found here:\ Official information about the T480 can be found here:\
<https://psref.lenovo.com/syspool/Sys/PDF/ThinkPad/ThinkPad_T480/ThinkPad_T480_Spec.PDF> <https://psref.lenovo.com/syspool/Sys/PDF/ThinkPad/ThinkPad_T480/ThinkPad_T480_Spec.PDF>
...and information about the T480S can be found here:\ ...and information about the T480s can be found here:\
<https://psref.lenovo.com/syspool/Sys/PDF/ThinkPad/ThinkPad_T480s/ThinkPad_T480s_Spec.pdf> <https://psref.lenovo.com/syspool/Sys/PDF/ThinkPad/ThinkPad_T480s/ThinkPad_T480s_Spec.pdf>
This port is implemented in Libreboot by merging Mate Kukri's T480/T480S This port is implemented in Libreboot by merging Mate Kukri's T480/T480s
patchset. See: <https://review.coreboot.org/c/coreboot/+/83274> - as of 5 patchset. See: <https://review.coreboot.org/c/coreboot/+/83274> - as of 5
December 2024, Libreboot's code matches that of patchset 22. December 2024, Libreboot's code matches that of patchset 22.
@ -118,6 +118,16 @@ you've inserted manually.
If it says "Unplugged", try it anyway. The HDA Verb may be incorrect. This If it says "Unplugged", try it anyway. The HDA Verb may be incorrect. This
will be investigated and a hotfix patch made to the Libreboot 20241206 images. will be investigated and a hotfix patch made to the Libreboot 20241206 images.
`thinkpad_acpi` issues {#thinkpad-acpi}
---------------------------------------
It has been reported that `thinkpad_acpi` does not load correctly on the T480.
This should also be the case for the T480s.
If you encounter this issue, check
[this page](https://libreboot.org/faq#thinkpad-acpi) for details at so how
to fix this.
Build ROM image from source Build ROM image from source
--------------------------- ---------------------------
@ -126,7 +136,7 @@ The build target, when building from source, is thus:
./mk -b coreboot t480_fsp_16mb ./mk -b coreboot t480_fsp_16mb
./mk -b coreboot t480s_fsp_16mb ./mk -b coreboot t480s_fsp_16mb
**NOTE: The T480 and T480S may be similar, but they do have several critical **NOTE: The T480 and T480s may be similar, but they do have several critical
differences in their wiring, so you MUST flash the correct image. Please differences in their wiring, so you MUST flash the correct image. Please
choose one of the above build targets accordingly.** choose one of the above build targets accordingly.**
@ -161,7 +171,7 @@ Absolutely unsigned Intel ME!
----------------------------- -----------------------------
Libreboot already disables the Intel ME by default, using `me_cleaner`, but Libreboot already disables the Intel ME by default, using `me_cleaner`, but
the T480/T480S specifically have an additional quirk: the T480/T480s specifically have an additional quirk:
One of the benefits of [deguard](deguard.md) for Intel MEv11 is that it sets One of the benefits of [deguard](deguard.md) for Intel MEv11 is that it sets
the ME in such a state where you can run unsigned code in there. This is how the ME in such a state where you can run unsigned code in there. This is how
@ -170,7 +180,7 @@ restrictions; more information about deguard is available on a dedicated page.
The deguard utility could also be used to enable the red-unlock hack, which The deguard utility could also be used to enable the red-unlock hack, which
would permit unsigned execution of new CPU microcode, though much more would permit unsigned execution of new CPU microcode, though much more
research is needed. Because of these two facts, this makes the T480/T480S the research is needed. Because of these two facts, this makes the T480/T480s the
most freedom-feasible of all relatively modern x86 laptops. most freedom-feasible of all relatively modern x86 laptops.
With deguard, you have complete control of the flash. This is unprecedented on With deguard, you have complete control of the flash. This is unprecedented on
@ -279,12 +289,12 @@ which then allows you to see the inner mainboard:
<img tabindex=1 alt="ThinkPad T480 PCB" class="p" src="https://av.libreboot.org/t480/t480pcb.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480pcb.jpg" /></span> <img tabindex=1 alt="ThinkPad T480 PCB" class="p" src="https://av.libreboot.org/t480/t480pcb.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480pcb.jpg" /></span>
**WARNING: PLEASE MAKE SURE to remove the battery before flashing. The T480 **WARNING: PLEASE MAKE SURE to remove the battery before flashing. The T480
and T480S can both contain INTERNAL batteries, and the T480 has an additional and T480s can both contain INTERNAL batteries, and the T480 has an additional
external battery. Remove the internal battery via the connector, like so (T480):** external battery. Remove the internal battery via the connector, like so (T480):**
<img tabindex=1 alt="ThinkPad T480 internal battery" class="p" src="https://av.libreboot.org/t480/t480battery.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480battery.jpg" /></span> <img tabindex=1 alt="ThinkPad T480 internal battery" class="p" src="https://av.libreboot.org/t480/t480battery.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480battery.jpg" /></span>
On the T480S (S model) the internal battery is much larger, and the connector On the T480s (S model) the internal battery is much larger, and the connector
on it is built into the battery, so it is necessary to carefully remove the on it is built into the battery, so it is necessary to carefully remove the
entire battery; on regular T480 (non-S model) the internal battery can be entire battery; on regular T480 (non-S model) the internal battery can be
isolated via the connector as depicted above. isolated via the connector as depicted above.
@ -302,7 +312,7 @@ To be clear: the system flash (16MB) is what you put Libreboot on. The
Thunderbolt firmware flash is much smaller, so you'll know because flashprog Thunderbolt firmware flash is much smaller, so you'll know because flashprog
will complain about wrong flash size if you're trying to flash the wrong one. will complain about wrong flash size if you're trying to flash the wrong one.
On the T480S (S model), the flashes are in slightly different places but in On the T480s (S model), the flashes are in slightly different places but in
both machines, the system flash (for Libreboot) is toward the centre, near both machines, the system flash (for Libreboot) is toward the centre, near
the memory. the memory.
@ -320,7 +330,7 @@ UART
---- ----
A serial console is possible via the line-out (headphone jack). Not yet tested A serial console is possible via the line-out (headphone jack). Not yet tested
on the T480S (S model), nor implemented, but it is working on the regular on the T480s (S model), nor implemented, but it is working on the regular
T480 (non-S model). T480 (non-S model).
**TODO: show photo and wiring diagram here.** **TODO: show photo and wiring diagram here.**
@ -343,7 +353,7 @@ TX/RX lines as you wish, to a suitable UART adapter; any 3.3v-rated TTL
adapter should work. The Raspberry Pi Pico can be used for this, which is handy adapter should work. The Raspberry Pi Pico can be used for this, which is handy
because that can also be used as a serprog-based NOR flasher! because that can also be used as a serprog-based NOR flasher!
The T480S (S model) schematics is a bit different and the signals are The T480s (S model) schematics is a bit different and the signals are
properly muxed. Note that this is not to be confused with `spkmodem`, which properly muxed. Note that this is not to be confused with `spkmodem`, which
has not been tested on these boards (but could theoretically be possible too). has not been tested on these boards (but could theoretically be possible too).
@ -359,7 +369,7 @@ possible, quite feasible to design/manufacture and already supported in the
Libreboot firmware in principle, since than PCI-E lane is enabled in the devicetree) Libreboot firmware in principle, since than PCI-E lane is enabled in the devicetree)
Mate Kukri came up with this idea. It's a great idea, so it's written here. Mate Kukri came up with this idea. It's a great idea, so it's written here.
This mod is possible on both the T480 and T480S, though on T480S there would This mod is possible on both the T480 and T480s, though on T480s there would
be less clearance; using a smaller internal battery and having a makeshift be less clearance; using a smaller internal battery and having a makeshift
NVMe caddy in the remaining space would be how to go about it there. On the NVMe caddy in the remaining space would be how to go about it there. On the
regular T480, the existing caddy area could easily fit two NVMe drives. regular T480, the existing caddy area could easily fit two NVMe drives.
@ -367,7 +377,7 @@ regular T480, the existing caddy area could easily fit two NVMe drives.
Errata Errata
====== ======
On ThinkPad T480/T480S, headphone output works; the internal speaker is disabled On ThinkPad T480/T480s, headphone output works; the internal speaker is disabled
but audio is not automatically redirected to the headphone jack. This switching but audio is not automatically redirected to the headphone jack. This switching
can be done manually, for example in the `pavucontrol` utility: can be done manually, for example in the `pavucontrol` utility:

View File

@ -3,8 +3,8 @@ title: ThinkPad W541/W540 external flashing
x-toc-enable: true x-toc-enable: true
... ...
NOTE: The same image for W541 also works on W541, as it's the exact same NOTE: The same image for W541 also works on the W540, as the motherboard is
mainboard. identical.
Buy Libreboot preinstalled Buy Libreboot preinstalled
========================== ==========================
@ -117,6 +117,16 @@ used when flashing either of the chips.
You can now proceed to [flashing](/docs/install/spi.html) this machine. You can now proceed to [flashing](/docs/install/spi.html) this machine.
`thinkpad_acpi` issues {#thinkpad-acpi}
---------------------------------------
It has been reported by a user that `thinkpad_acpi` does not load correctly on
the T440p. Since the W541/W540/T540p are also haswell machines, you may be
affected by this issue.
If you encounter this, check [this page](https://libreboot.org/faq#thinkpad-acpi)
for details as to how to fix this.
Errata Errata
====== ======

View File

@ -17,7 +17,7 @@ sure to re-enable them after you're finished.
See: [Disabling /dev/mem protection](docs/install/devmem.md) See: [Disabling /dev/mem protection](docs/install/devmem.md)
Buy Libreboot pre-installed Buy Libreboot pre-installed
========== =============================
If you want professional installation, Minifree Ltd sells [Libreboot If you want professional installation, Minifree Ltd sells [Libreboot
pre-installed](https://minifree.org/) on select hardware, and it also provides pre-installed](https://minifree.org/) on select hardware, and it also provides
@ -169,7 +169,7 @@ Hardware compatibility
====================== ======================
What systems are compatible with libreboot? What systems are compatible with libreboot?
----------------------------------------------------------------------------------- --------------------------------------------
Any system can easily be added, so *compatibility* merely refers to whatever Any system can easily be added, so *compatibility* merely refers to whatever
boards are integrated in the `lbmk` build system, which libreboot uses. boards are integrated in the `lbmk` build system, which libreboot uses.
@ -576,7 +576,7 @@ This will change the default inside that ROM image, and then you can
re-flash it. re-flash it.
How do I pad a ROM before flashing? How do I pad a ROM before flashing?
-------------------------------------- -------------------------------------
It is advisable to simply use a larger ROM image. This section was written It is advisable to simply use a larger ROM image. This section was written
mostly for ASUS KCMA-D8 and KGPE-D16 mainboards, where previously we only mostly for ASUS KCMA-D8 and KGPE-D16 mainboards, where previously we only
@ -616,7 +616,7 @@ padded 16MiB image do the following:
With padding removed cbfstool will be able to operate on the image as usual. With padding removed cbfstool will be able to operate on the image as usual.
Do I need to install a bootloader when installing a distribution? Do I need to install a bootloader when installing a distribution?
--------------------------------------------------------------------------------------------------- -----------------------------------------------------------------
Most libreboot setups integrate the GRUB bootloader already, as a Most libreboot setups integrate the GRUB bootloader already, as a
*[payload](http://www.coreboot.org/Payloads)*. This means that the GRUB *[payload](http://www.coreboot.org/Payloads)*. This means that the GRUB
@ -635,7 +635,7 @@ then the normal MBR bootsector is used on your HDD or SSD, like you would
expect. So the above paragraphs only apply to the GRUB payload. expect. So the above paragraphs only apply to the GRUB payload.
Do I need to re-flash when I re-install a distribution? Do I need to re-flash when I re-install a distribution?
------------------------------------------------------------------------------------------- -------------------------------------------------------
Not anymore. Recent versions of libreboot (using the GRUB payload) will Not anymore. Recent versions of libreboot (using the GRUB payload) will
automatically switch to a GRUB configuration on the HDD or SSD, if it automatically switch to a GRUB configuration on the HDD or SSD, if it
@ -653,26 +653,39 @@ What does a flash chip look like?
You can find photos of various chip types on the following page:\ You can find photos of various chip types on the following page:\
[External 25xx NOR flashing guide](docs/install/spi.md) [External 25xx NOR flashing guide](docs/install/spi.md)
Inability to modprobe thinkpad\_acpi on Haswell Inability to load `thinkpad_acpi` on post-haswell systems {#thinkpad-acpi}
=============================================== ==========================================================================
This was reported by a user, running Debian 11 with Reported by a user on Debian 11 (on a ThinkPad T440p) and a user
kernel `5.19.0-0.deb11.2-amd64`. The `thinkpad_acpi` module was not loading, on Void Linux (ThinkPad T480), Linux may fail to load `thinkpad_acpi`.
with the following message:
``` It is suspected that at least these mainboards are affected:
modprobe: ERROR: could not insert 'thinkpad_acpi': "No such device"
```
Battery info in `/sys` was absent, because of this. The user reported that * [ThinkPad W541](https://libreboot.org/docs/install/w541_external.html)
the following workaround was effective (in Debian). * [ThinkPad T440p](https://libreboot.org/docs/install/t440p_external.html)
* [ThinkPad T480/T480s](https://libreboot.org/docs/install/t480.html)
Add this line to `/etc/modprobe.d/thinkpad_acpi.conf`: This may result the following effects, including or not limited to:
* Temperature reporting not working
* Battery info not working.
* Fan speed reporting not working
* Fan control not working
For these systems, add the line
``` ```
options thinkpad_acpi force_load=1 options thinkpad_acpi force_load=1
``` ```
to any file in `/etc/modprobe.d`. You can also add
```
thinkpad_acpi.force_load=1
```
to your kernel parameters (in GRUB, or your preferred linux-capable bootloader).
tlp tlp
--- ---