Lenovo ThinkPad T570

From ArchWiki
Jump to navigation Jump to search

Installation

Use the Installation guide. Make sure that Secure Boot is disable in BIOS Setup.

Configuration

BIOS Update

Install this BIOS update (or a newer one) to fix a serious bug concerning hyperthreading and issues with thunderbolt [1] [2] , which can affect you even if you don't use thunderbolt. [3] See Flashing BIOS from Linux for details on how to install the BIOS without an optical drive; the geteltoritoAUR method is known to work on the T570.

Note: before flashing, you have to disable the Intel BIOS guard or risk bricking your laptop. In the BIOS, set Security - Intel (R) SGX - Intel (R) SGX Control to Disabled. Do the same for Device guard, if needed. If you corrupt your BIOS, you can fix it by flashing a working ROM directly into the EEPROM chip either with a Raspberry Pi or a specialized programming device.

Healing a corrupted BIOS

If you got bitten by the Intel BIOS (Boot) Guard, you can follow these instructions to reverse the damage.

  1. Open the bottom cover (see video)
  2. Locate the chip containing the BIOS. It is under a black sticker (see photo). The model of the chip is MXIC MX25L12873F M2I-10G (see datasheet).
  3. Connect your programming device to the chip using a SOIC8 clip. You should probably support the clip and its cable somehow, so it remains completely still.
  4. Read the old BIOS image from the chip using Flashrom or the software that came with your programming device
  5. Open the old BIOS image with UEFITool
  6. In UEFITool, do File - Search - String and systematically input BIOS IDs that are found in the VERSION INFORMATION section of the Lenovo BIOS readme file found on the Lenovo BIOS download page
  7. When you hit the corresponding ID, you will see something like this in the Message section of UEFITool: "Unicode text "N1VET31W" found in PE32 image section at offset 31B0h"
  8. Download the BIOS with the matching ID from Lenovo's site (it has to be the same, because Boot Guard is looking at the specific cryptographic signature)
  9. Install geteltoritoAUR
  10. Extract the boot image with a command like
    geteltorito.pl -o n1vur04w.img n1vur04w.iso
  11. Create a loop device
    sudo losetup -P /dev/loop0 n1vur04w.img
  12. Mount the partition found in the loop device
    sudo mount /dev/loop0p1 /mnt
  13. In the mounted partition, navigate into the directory named something like Flash/N1VET31W/
  14. Copy the file with the extension FL1 into your project directory
  15. Unmount
    sudo umount /mnt
    sudo losetup -d /dev/loop0
  16. In your old corrupted BIOS, the section with the corruption is pinpointed by UEFITool with a message like "parseSection: GUID defined section can not be processed". Double-clicking the message will show you the volume it belongs to. In the BIOS region, you will replace the corrupted volume and all the preceding ones with healthy volumes extracted from the downloaded BIOS image. This type of minimal replacement is needed instead of replacing every volume, because UEFITool is not yet smart enough to preserve all the required Boot Guard data. UEFITool_NE (New Engine) is able to display the Boot Guard keys and signatures, but, as of the writing of this, is not yet able to do volume replacing. It is probably a good idea to use the NE version to do the extraction.
  17. Open the FL1 file in UEFITool NE
  18. Do Right-click - Extract as is... or Ctrl-E for each of the needed volumes (save them with names that preserve the order they appear in)
  19. Open the corrupted BIOS in UEFITool (old engine version) and do Right-click - Replace as is... or Ctrl-R for the respective volumes
  20. File - Save image file... under some different name
  21. Flash the healed image back into the chip

If you find your bootloader is gone, install it using a live USB.

Bumblebee

Until bbswitch is updated to support the new power management method, add pcie_port_pm=off to your kernel parameters.

Bluetooth

If you have a very weak bluetooth signal when using wifi, make sure you have a recent linux-firmware. See https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1721271 for more information.