# Libreboot/ThinkPad X60

    Note: This guide will be merged with the official Libreboot documentation. Please update your links.
The ThinkPad X60 is the first Libreboot laptop, and the only laptop series where every motherboard is guaranteed to work with Libreboot (no ATI GPUs, all LCDs work out of the box, etc.).

## Briefing

* All ThinkPad X60/X60s/X60 Tablet motherboards support Libreboot, since none of them have an ATI GPU.
* The ThinkPad X60 series supports software BIOS flashing.
** No hardware flashing is necessary, unless you accidentally brick the BIOS.
* You must install GNU/Linux before installing Libreboot. Here's a list of FSF-approved distros.
* In order to use an FSF-approved GNU/Linux distro, you must replace the Intel 3945abg Wifi Card; since it uses proprietary drivers.
** We recommend an Atheros ath9k Wireless-N miniPCI card. Other wifi cards with open source drivers are listed at h-node.
** You will need to remove the keyboard and palmrest in order to replace the miniPCI card. If you're not brave enough to do this, just buy a USB dongle.
** Don't plug in the new miniPCI card until Libreboot is installed, or your laptop will not boot (due to pesky miniPCI whitelisting).
** Until Libreboot is installed, you must use an Ethernet cable to connect to the internet, or transfer data via a USB drive.

## Download Libreboot

* Download the latest Libreboot Binaries.
* Open a Terminal and navigate to the Downloads folder (or wherever else)
* Extract the Libreboot folder: tar -xvf libreboot_bin.tar.gz
* Navigate to the libreboot_bin folder: cd libreboot_bin

## Install and Make Dependencies

The flashrom and bucts programs require a few dependencies. Install them automatically with the Libreboot builddeb scripts.
* For DEB-based distros (Trisquel, Ubuntu, Debian, etc):
* sudo ./deps-trisquel
* For Arch-based distros (Parabola, Arch Linux, etc):
* sudo ./deps-parabola
* Other Linux distros will need to find the corresponding dependencies on their own.
Next, we actually have to build flashrom and bucts from source code. The Libreboot developers have made a nice build script that does this automatically:

## Find the Right ROM

Under the bin/ folder in libreboot_bin/, there are a multitude of Libreboot ROMs sorted by motherboard.
Choose the ROM with your laptop's keyboard layout (US or UK, QWERTY or DVORAK). For ThinkPads, choose a serial ROM if dock and serial port support is needed.
* bin/x60/ - ThinkPad X60/X60s
* bin/x60t/ - ThinkPad X60 Tablet
Once you know which ROM to use, remember it's directory path for the next step (ex. bin/x60/libreboot_serial_usqwerty.rom )
Check the ROMs section from the official Libreboot Documentation for the latest list.

## Back up Original BIOS

If you choose to make a backup, click [Expand] on the right and follow the directions.
* From the libreboot_bin/ folder, enter the flashrom/ folder. cd flashrom
* Run both of these commands to backup the BIOS to factory.bin (don't panic, nothing is being installed): sudo ./flashrom_lenovobios_sst -p internal -r factory.bin
* If a factory.bin file was created in the flashrom/ folder, the Lenovo BIOS has been backed up successfully. If not, try the commands again. Copy this dump to a safe place.
* Return to the libreboot_bin/ folder. cd ..

## Libreboot First Flash

If you are flashing Libreboot for the first time, on an unmodified ThinkPad running Lenovo's BIOS, you will need to follow this special process.
* Run the first flash script for Lenovo BIOSes: sudo ./lenovobios_firstflash bin/YOURBOARD/YOURROM
* Wait for the process to finish. Expect to see "critical errors" during flashing, but don't panic; proceed to the next step to check if the flash ran correctly.
* The line below is displayed if bucts 1 was enabled successfully. Updated BUC.TS=1 - 64kb address ranges at 0xFFFE0000 and 0xFFFF0000 are swapped.
* The following "errors" are displayed if flashrom installed Libreboot correctly. The output must be very similar (later versions of flashrom may have minor differences).
* If the "errors" closely match the lines above, shut down the laptop (don't restart).
* Wait a few seconds, and then boot. Libreboot will start up.
* Use the Search for GRUB configuration on local storage option if the normal menu options don't work.
* After booting into Linux, proceed to Libreboot Second Flash.
* Source: Flashrom Mailing List - ThinkPad X60: Is it safe to reboot with errors in flashrom?

### Enable Trackpoint

On a few rare X60 variants, the Trackpoint mouse might not work out of the box. Not to worry though, just use nvramtool with the Libreboot package to enable it.
* Boot and log into Linux. (you may need to use text mode, find keyboard shortcuts)
* Open a Terminal (somehow... without the mouse. Hopefully you have Yakuake installed!)
* Navigate to the libreboot_bin/nvramtool folder.
* Build nvramtool with make . make
* Use nvramtool to enable the TrackPoint mouse. sudo ./nvramtool -w trackpoint=Enable
* Reboot the laptop (using sudo reboot), and the TrackPoint will be enabled. If it still doesn't work, try this command instead: sudo ./nvramtool -y ../../src/mainboard/lenovo/x60/cmos.layout -w trackpoint=Enable
* Source: Libreboot Documentation - Enable X60 Trackpoint

## Libreboot Second Flash

Now that Libreboot has been installed and is up and running, it must be flashed a second time to fully remove the Lenovo BIOS.
* Open a Terminal and navigate to the libreboot_bin directory.
* Run the following command to flash Libreboot a second time. sudo ./lenovobios_secondflash /path/to/libreboot.rom
* The following line will be displayed if bucts was set back to 0 again. If it was not set to 0, run the script again. Updated BUC.TS=0 - 128kb address range 0xFFFE0000-0xFFFFFFFF is untranslated
* The following should also be displayed, without any errors: Verifying flash... VERIFIED.
* Shut down again, wait a few seconds, and then boot. Libreboot has been successfully installed.
* Source: Libreboot Documentation - Installing Libreboot a Second Time on ThinkPad X60/T60 systems

## Replace the WiFi Card

If you are planning on using Trisquel or some other FSF-approved GNU/Linux distro, you must replace the Intel mPCI wifi card with an Atheros Wireless-N mPCI card ($10-15).
The Intel card requires proprietary blobs, makes the palmrest extremely hot, and only supports the slower Wireless-G anyway; so it's well worth the upgrade.
* Follow this guide for the X60/X60s or the HMM for the X60 tablet to remove the palmrest.
* Remove the Intel 3945bgn WiFi Card.
* Replace it with an Atheros Wireless-N MiniPCI card.
(needs more info and photos)

## Updating Libreboot or Installing Custom ROMs

In the future, if you ever want to update Libreboot on the X60 (or restore the factory BIOS), follow this process.
* Download and extract the latest Libreboot binary release.
* Open a Terminal, and navigate to the libreboot_bin directory.
* Run the following command to flash your chosen rom: sudo ./flash /path/to/libreboot.rom
* The following should be displayed, without any errors: Verifying flash... VERIFIED.
* Shut down again, wait a few seconds, and then boot. Libreboot has been successfully updated.
* Source: Libreboot Documentation - Installing Libreboot a Second Time on ThinkPad X60/T60 systems

## Remove High Pitched Whining Noise

There might be a high pitched whining noise coming from the CPU at times, so if it bothers you, follow this procedure to get rid of it:

### Installing PowerTop

First, install powertop from the repositories:
Now you can use this command to kill that noise:
You can also run it without parameters and then go into 'Tunables' and set everything to 'Good'

### Powertop - Start automatically at boot time (Trisquel 6)

Included with the libreboot release is a script called powertop.trisquel6. Run this and it will setup powertop to run with --auto-tune at boot time. Load the file in your text editor to see how it does that.
* Source: Libreboot Docs - Remove High Pitched Whining Noise on Ubuntu/Debian/Trisquel

### Powertop for Arch Linux/Parabola

* Become root: su -
* Install powertop: pacman -S powertop
* Add the following to /etc/systemd/system/powertop.service :
Finally, enable powertop in systemd:
The next time you boot the machine, the buzz will be gone.

### Powertop Cannot Load from File

Powertop will not work immediately, it has to collect measurement data before implementing it's features, which will be stored in /var/cache/powertop/saved_parameters.powertop Leave the laptop running on battery for a while, and Powertop will figure something out sooner or later.
* Source: Arch Linux Wiki - Powertop

## Sources

* Libreboot Documentation - How to flash Libreboot on a Lenovo BIOS