summaryrefslogtreecommitdiffstats
path: root/docs/index.html
diff options
context:
space:
mode:
authorFrancis Rowe <info@gluglug.org.uk>2014-07-11 04:53:00 (EDT)
committer Michał Masłowski <mtjm@mtjm.eu>2014-08-22 13:01:19 (EDT)
commitcee90ae0fce6d6aee8d78969b60c952c8890abd6 (patch)
tree6cbca259e213f5ffbc3927121e662c0377938cce /docs/index.html
downloadlibreboot-r20140711.zip
libreboot-r20140711.tar.gz
libreboot-r20140711.tar.bz2
Libreboot release 6 beta 1.r20140711
Diffstat (limited to 'docs/index.html')
-rw-r--r--docs/index.html1426
1 files changed, 1426 insertions, 0 deletions
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 0000000..9322fc7
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,1426 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <style type="text/css">
+ body {
+ background:#fff;
+ color:#000;
+ font-family:sans-serif;
+ font-size:1em;
+ }
+ p.lenovobios {
+ font-weight:bold; color:#f00; font-style:italic; font-size:1.2em;
+ }
+ p.lenovobios:hover {
+ color: #000;
+ }
+ div.important {
+ background-color:#ccc;
+ }
+ </style>
+
+ <title>Libreboot documentation: Main</title>
+</head>
+
+<body>
+ <header>
+ <h1 id="pagetop">Libreboot Documentation</h1>
+ <aside>This is for the release, as per <a href="RELEASE.html">RELEASE.html</a>.</aside>
+ <aside>The latest release (along with documentation) can be found at <a href="http://libreboot.org/">libreboot.org</a></aside>
+ </header>
+
+ <h2>GNU/Linux distributions</h2>
+ <ul>
+ <li><a href="howtos/grub_boot_installer.html">How to install a GNU/Linux distribution</a></li>
+ <li><a href="howtos/grub_cbfs.html">How to change your default GRUB menu</a></li>
+ </ul>
+
+ <h2>Working with source code</h2>
+ <ul>
+ <li><a href="#build_meta">Building libreboot_src from libreboot_meta</a></li>
+ <li><a href="#build_bucts">How to build &quot;bucts&quot; (for LenovoBIOS X60/T60)</a></li>
+ <li><a href="#build_flashrom">How to build &quot;flashrom&quot;</a></li>
+ <li>
+ <a href="#config">Configuring libreboot</a>
+ <ul>
+ <li><a href="#config_dmidecode">dmidecode</a></li>
+ <li><a href="#config_x60">ThinkPad X60</a></li>
+ <li><a href="#config_x60t">ThinkPad X60 Tablet</a></li>
+ <li><a href="#config_t60">ThinkPad T60</a></li>
+ <li><a href="#config_macbook21">MacBook2,1</a></li>
+ </ul>
+ </li>
+ <li><a href="#build">How to build your ROM's</a></li>
+ </ul>
+
+ <h2>Hardware maintenance</h2>
+ <ul>
+ <li><a href="#supported_t60_list">List of supported ThinkPad T60's</a></li>
+ <li><a href="#t60_inverter">Inverter boards for ThinkPad T60 when upgrading the LCD panel.</a></li>
+ <li><a href="#t60_ati_intel">ThinkPad T60 (ATI GPU) and ThinkPad T60 (Intel GPU) differences.</a></li>
+ </ul>
+
+ <h2>Macbook2,1</h2>
+ <ul>
+ <li><a href="#macbook21">Information about the Macbook2,1</a></li></li>
+ </ul>
+
+ <h2>Installing libreboot (software: using internal programmer)</h2>
+ <ul>
+ <li><a href="#rom">Recommended ROM's to flash</a></li>
+ <li><a href="#flashrom_lenovobios">X60/T60: How to flash your ROM (if running Lenovo BIOS)</a></li>
+ <li><a href="#flashrom">X60/T60: How to flash your ROM (if running libreboot or coreboot already)</a></li>
+ </ul>
+
+ <h2>Installing libreboot (hardware: using external programmer)</h2>
+ <ul>
+ <li><a href="howtos/x60_unbrick.html">ThinkPad X60: How to unbrick</a></li>
+ </ul>
+
+ <h2>GRUB2 payload</h2>
+ <ul>
+ <li><a href="#grub_font">Setting font in GRUB</a></li>
+ <li><a href="#grub_keyboard">GRUB keyboard layouts</a>
+ <ul>
+ <li>
+ <a href="#keyboards">Pictures of keyboard layouts</a>
+ <ul>
+ <li><a href="#keyboards_ukqwerty">QWERTY (United Kingdom)</a></li>
+ <li><a href="#keyboards_usqwerty">QWERTY (United States)</a></li>
+ <li><a href="#keyboards_ukdvorak">Dvorak (United Kingdom)</a></li>
+ <li><a href="#keyboards_usdvorak">Dvorak (United States)</a></li>
+ </ul>
+ </li>
+ <li><a href="#grub_custom_keyboard">Custom keyboard layout in GRUB</a></li>
+ <li><a href="#grub_qwerty_keyboard">US Qwerty keyboard layout in GRUB</a></li>
+ <li><a href="#grub_ukqwerty_keyboard">UK Qwerty keyboard layout in GRUB</a></li>
+ <li><a href="#grub_dvorak_keyboard">US Dvorak keyboard layout in GRUB</a></li>
+ <li><a href="#grub_ukdvorak_keyboard">UK Dvorak layout in GRUB</a></li>
+ </ul>
+ </li>
+ </ul>
+
+ <h2>Miscallaneous</h2>
+ <ul>
+ <li><a href="#tft_brightness">Brightness controls (ThinkPad X60) - how to prevent 'scrolling'</a></li>
+ <li><a href="#x60_wifi">ThinkPad X60: Enable or disable wifi</a></li>
+ <li><a href="#x60_trackpoint">ThinkPad X60: Enable or disable trackpoint</a></li>
+ <li><a href="#high_pitch_trisquel">High Pitched Whining Noise on Idle (how to remove in Trisquel)</a>
+ <ul>
+ <li><a href="#howtouse_powertop">Powertop - how to use</a></li>
+ <li><a href="#powertop_autostart">Powertop - Start automatically at boot time</a></li>
+ </ul>
+ </li>
+ <li><a href="#high_pitch_parabola">High Pitched Whining Noise on Idle (how to remove in Parabola)</a></li>
+ <li><a href="#serial">X60/T60: Serial port - how to use (for dock owners)</a></li>
+ <li><a href="i945_backlight.html">i945 backlight controls on X60/T60</a></li>
+ <li><a href="patch.html">Using diff and patch</a></li>
+ <li><a href="#get_edid_panelname">Get EDID: Find out the name (model) of your LCD panel</a></li>
+ </ul>
+
+<hr/>
+
+ <h1 id="build_meta">How to build libreboot_src from libreboot_meta</h1>
+
+ <p>
+ If you downloaded libreboot_meta.tar.gz, then you can use the scripts included
+ which download all of the extra dependencies and (basically) generates libreboot_src.
+ </p>
+
+ <p>
+ You need to install the build dependencies first.
+ </p>
+
+ <p>
+ The following scripts installs them for apt-get distros.<br/>
+ Adapt what's in this script if you don't use an apt-get distro:<br/>
+ <b>$ sudo ./builddeb</b>
+ </p>
+
+ <p>
+ After that, run the get script:<br/>
+ <b>$ ./getall</b>
+ </p>
+
+ <p>
+ What this did was download everything (grub, coreboot, memtest86+, bucts, flashrom)
+ at the versions last tested for this release, and patch them. Read the script
+ in a text editor to learn more.
+ </p>
+
+ <p>
+ After that, you will have the full source. Rename libreboot_meta to libreboot_src.
+ To build the ROM's, see <a href="#build">#build</a>.
+ </p>
+
+ <p><a href="#pagetop">Back to top of page.</a></p>
+
+<hr/>
+
+ <h1 id="build_bucts">How to build &quot;bucts&quot; (for LenovoBIOS X60/T60)</h1>
+
+ <p>
+ <b>This is for Lenovo BIOS users on the ThinkPad X60 and T60. If you have coreboot or libreboot running already, ignore this.</b>
+ </p>
+
+ <p>
+ Bucts is needed when flashing the X60/T60 ROM while Lenovo BIOS is running.
+ Each ROM contains identical data inside the two final 64K region in the file.
+ This corresponds to the final two 64K regions in the flash chip. Lenovo BIOS will prevent you from writing the
+ final one, so running &quot;<b>bucts 1</b>&quot; will set the machine to boot from the other block instead (which
+ is writeable along with everything beneath it when using a patched flashrom. see <a href="#build_flashrom">#build_flashrom</a>).
+ After shutting down and booting up after the first flash,
+ the final 64K block is writeable so you flash the ROM again with an unpatched flashrom and run "<b>bucts 0</b>" to
+ make the machine boot from the normal (highest) block again.
+ </p>
+
+ <p>
+ BUC.TS utility is included in libreboot_src.tar.gz and libreboot_bin.tar.gz.<br/>
+ <b>If you downloaded libreboot_meta.tar.gz, follow <a href="#build_meta">#build_meta</a> before you proceed.</b>
+ </p>
+
+ <p>
+ &quot;BUC&quot; means &quot;<b>B</b>ack<b>u</b>p <b>C</b>ontrol&quot; (it's a register) and &quot;TS&quot; means &quot;<b>T</b>op <b>S</b>wap&quot;
+ (it's a status bit). Hence &quot;bucts&quot; (BUC.TS). TS 1 and TS 0 corresponds to bucts 1 and bucts 0.
+ </p>
+
+ <p>
+ You need to install GCC. The following will work on apt-get distros (adapt that script if your distro doesn't use apt-get):<br/>
+ <b>$ sudo ./builddeb-bucts</b>
+ </p>
+
+ <p>
+ To build bucts, do that in the main directory:<br/>
+ <b>$ ./builddeps-bucts</b>
+ </p>
+
+ <p>
+ The &quot;builddeps&quot; script in libreboot_src and libreboot_meta also makes use of builddeps-bucts.
+ </p>
+
+ <p><a href="#pagetop">Back to top of page.</a></p>
+
+<hr/>
+
+ <h1 id="build_flashrom">How to build &quot;flashrom&quot;</h1>
+
+ <p>
+ Flashrom is the utility for flashing/dumping ROM's. This is what you will use to install libreboot.
+ </p>
+
+ <p>
+ Flashrom source code is included in libreboot_src.tar.gz and libreboot_bin.tar.gz.<br/>
+ <b>If you downloaded libreboot_meta.tar.gz, follow <a href="#build_meta">#build_meta</a> before you proceed.</b>
+ </p>
+
+ <p>
+ You need the build dependencies for flashrom.
+ The following script works in apt-get distros (tested in Trisquel 6):<br/>
+ <b>$ sudo ./builddeb-flashrom</b>
+ </p>
+
+ <p>
+ To build it, do that in the main directory:<br/>
+ <b>$ ./builddeps-flashrom</b>
+ </p>
+
+ <p>
+ After you've done that, under ./flashrom/ you will find the following executables:
+ </p>
+ <ul>
+ <li>
+ <b>flashrom</b>
+ <ul>
+ <li>For flashing while coreboot or libreboot is running.</li>
+ </ul>
+ </li>
+ <li>
+ <b>flashrom_lenovobios_sst</b>
+ <ul>
+ <li>This is patched for flashing while Lenovo BIOS is running on an X60 or T60 with the SST25VF016B (SST) flash chip.</li>
+ </ul>
+ </li>
+ <li>
+ <b>flashrom_lenovobios_macronix</b>
+ <ul>
+ <li>This is patched for flashing while Lenovo BIOS is running on an X60 or T60 with the MX25L1605D (Macronix) flash chip.</li>
+ </ul>
+ </li>
+ </ul>
+
+ <p>
+ The &quot;builddeps&quot; script in libreboot_src and libreboot_meta also makes use of builddeps-flashrom.
+ </p>
+
+ <p><a href="#pagetop">Back to top of page.</a></p>
+
+<hr/>
+
+ <h1 id="config">Configuring libreboot</h1>
+
+ <p>
+ Before building a ROM in libreboot (or coreboot, for that matter), you need to configure it.
+ This is done using the following inside the source tree:<br/>
+ <b>$ make menuconfig</b>
+ </p>
+
+ <p>
+ If you've already built a kernel before, you know how to use this interface.
+ </p>
+
+ <p>
+ Configurations are saved then as files called <b>&quot;.config&quot;</b>. Copies of each configuration used
+ for each machine type by the libreboot build scripts are stored in resources/libreboot/config/
+ </p>
+
+ <h2 id="config_dmidecode">
+ dmidecode
+ </h2>
+ <p>
+ There is certain information that can be useful to enter in particular:
+ </p>
+ <ul>
+ <li>Local version string</li>
+ <li>SMBIOS Serial Number</li>
+ <li>SMBIOS Manufacturer</li>
+ <li>SMBIOS Version</li>
+ <li>SMBIOS Product name</li>
+ </ul>
+ <p>
+ This information can be obtained using:<br/>
+ <b>$ sudo dmidecode</b><br/>
+ <b># dmidecode</b>
+ </p>
+ <p>
+ Specifically, it's good practise to enter the same information for libreboot that you found when running this
+ with the original BIOS or firmware. <b>libreboot has already done this for you. This information is for reference,
+ in the hope that it will be useful.</b>
+ </p>
+
+ <h2 id="config_x60">
+ ThinkPad X60 configuration (file: resources/libreboot/config/x60config)
+ </h2>
+ <ul>
+ <li>General setup / Expert mode = <i>enable</i></li>
+ <li>General setup / Local version string = <i>7BETC7WW (2.08 )</i></li>
+ <li>Mainboard / Mainboard vendor = <i>Lenovo</i></li>
+ <li>Mainboard / Mainboard model = <i>ThinkPad X60 / X60s / X60t</i></li>
+ <li>Mainboard / ROM chip size = <i>2048 KB (2 MB)</i></li>
+ <li>Mainboard / SMBIOS Serial Number = <i>L3BH242</i></li>
+ <li>Mainboard / SMBIOS Version Number = <i>ThinkPad X60s</i></li>
+ <li>Mainboard / SMBIOS Manufacturer = <i>LENOVO</i></li>
+ <li>Mainboard / SMBIOS Product name = <i>1702L8G</i></li>
+ <li>Chipset / Include CPU microcode in CBFS = <i>Do not include microcode updates</i></li>
+ <li>Devices / Use native graphics initialization = <i>enable</i></li>
+ <li>Generic Drivers / Digitizer = <i>Autodetect</i></li>
+ <li>Console / Send console output to a CBMEM buffer = <i>enable</i></li>
+ <li>Payload / Add a payload = <i>An ELF executable payload</i></li>
+ <li>Payload / Payload path and filename = <i>grub.elf</i></li>
+ </ul>
+ <p>
+ Now go back into Devices:
+ </p>
+ <ul>
+ <li>Devices / Run VGA Option ROMs = <i>disable</i></li>
+ <li>Devices / Run Option ROMs on PCI devices = <i>disable</i></li>
+ </ul>
+ <p>
+ The resulting .config file was saved as resources/libreboot/config/<b>x60config</b> and is used by the build
+ scripts for this machine.
+ </p>
+ <p>
+ This is based on an X60S with the Core 2 Duo L7400 processor.
+ </p>
+ <p>
+ SMBIOS Version Number is ThinkPad X60 on the X60, but it is believed that X60 and X60s both have identical
+ motherboards where the only difference is the CPU. This same configuration is used on the X60 and X60s.
+ </p>
+
+ <h2 id="config_x60t">
+ ThinkPad X60 Tablet configuration (file: resources/libreboot/config/x60tconfig)
+ </h2>
+ <ul>
+ <li>General setup / Expert mode = <i>enable</i></li>
+ <li>General setup / Local version string = <i>7JET23WW (1.08 )</i></li>
+ <li>Mainboard / Mainboard vendor = <i>Lenovo</i></li>
+ <li>Mainboard / Mainboard model = <i>ThinkPad X60 / X60s / X60t</i></li>
+ <li>Mainboard / ROM chip size = <i>2048 KB (2 MB)</i></li>
+ <li>Mainboard / SMBIOS Serial Number = <i>L3B8281</i></li>
+ <li>Mainboard / SMBIOS Version Number = <i>ThinkPad X60 Tablet</i></li>
+ <li>Mainboard / SMBIOS Manufacturer = <i>LENOVO</i></li>
+ <li>Mainboard / SMBIOS Product name = <i>6364WJ1</i></li>
+ <li>Chipset / Include CPU microcode in CBFS = <i>Do not include microcode updates</i></li>
+ <li>Devices / Use native graphics initialization = <i>enable</i></li>
+ <li>Generic Drivers / Digitizer = <i>Present</i></li>
+ <li>Console / Send console output to a CBMEM buffer = <i>enable</i></li>
+ <li>Payload / Add a payload = <i>An ELF executable payload</i></li>
+ <li>Payload / Payload path and filename = <i>grub.elf</i></li>
+ </ul>
+ <p>
+ Now go back into Devices:
+ </p>
+ <ul>
+ <li>Devices / Run VGA Option ROMs = <i>disable</i></li>
+ <li>Devices / Run Option ROMs on PCI devices = <i>disable</i></li>
+ </ul>
+ <p>
+ The resulting .config file was saved as resources/libreboot/config/<b>x60config</b> and is used by the build
+ scripts for this machine.
+ </p>
+ <p>
+ This is based on an X60T with the Core 2 Duo L7400 processor.
+ </p>
+
+ <h2 id="config_t60">
+ ThinkPad T60 configuration (file: resources/libreboot/config/t60config)
+ </h2>
+ <ul>
+ <li>General setup / Expert mode = <i>enable</i></li>
+ <li>General setup / Local version string = <i>79ETE7WW (2.27 )</i></li>
+ <li>Mainboard / Mainboard vendor = <i>Lenovo</i></li>
+ <li>Mainboard / Mainboard model = <i>ThinkPad T60 / T60p</i></li>
+ <li>Mainboard / ROM chip size = <i>2048 KB (2 MB)</i></li>
+ <li>Mainboard / SMBIOS Serial Number = <i>L3DKE06</i></li>
+ <li>Mainboard / SMBIOS Version Number = <i>ThinkPad T60</i></li>
+ <li>Mainboard / SMBIOS Manufacturer = <i>LENOVO</i></li>
+ <li>Mainboard / SMBIOS Product name = <i>1951FEG</i></li>
+ <li>Chipset / Include CPU microcode in CBFS = <i>Do not include microcode updates</i></li>
+ <li>Devices / Use native graphics initialization = <i>enable</i></li>
+ <li>Console / Send console output to a CBMEM buffer = <i>enable</i></li>
+ <li>Payload / Add a payload = <i>An ELF executable payload</i></li>
+ <li>Payload / Payload path and filename = <i>grub.elf</i></li>
+ </ul>
+ Go back into Devices:
+ </p>
+ <ul>
+ <li>Devices / Run VGA Option ROMs = <i>disable</i></li>
+ <li>Devices / Run Option ROMs on PCI devices = <i>disable</i></li>
+ </ul>
+ <p>
+ The resulting .config file was saved as resources/libreboot/config/<b>t60config</b> and is used by the build
+ scripts for this machine.
+ </p>
+ <p>
+ It is believed that the motherboards on 14.1&quot; and 15.1&quot; T60's are the same, so the same configuration is used
+ on both the 14.1&quot; and 15.1&quot; T60's.
+ </p>
+
+ <h2 id="config_macbook21">
+ MacBook2,1 configuration (file: resources/libreboot/config/macbook21config)
+ </h2>
+ <ul>
+ <li>General / Expert mode = <i>enable</i></li>
+ <li>General / Local version string = <i>&quot;&nbsp;&nbsp;&nbsp;&nbsp;MB21.88Z.00A5.B07.0706270922&quot;</i> (without the quotes)</li>
+ <li>Mainboard / Mainboard vendor = <i>Apple</i></li>
+ <li>Mainboard / Mainboard model = <i>Macbook2,1 ICH7 TESTING</i></li>
+ <li>Mainboard / ROM chip size = <i>2048 KB (2 MB)</i></li>
+ <li>Mainboard / SMBIOS Serial Number = <i>W8724XXXXXX</i></li>
+ <li>Mainboard / SMBIOS Version Number = <i>1.0</i></li>
+ <li>Mainboard / SMBIOS Manufacturer = <i>Apple Inc.</i></li>
+ <li>Mainboard / SMBIOS Product Name = <i>MacBook2,1</i></li>
+ <li>Chipset / Include CPU microcode in CBFS = <i>Do not include microcode updates</i></li>
+ <li>Devices / Use native graphics initialization = <i>enable</i></li>
+ <li>Console / Send console output to a CBMEM buffer = <i>enable</i></li>
+ <li>Payload / Add a payload = <i>An ELF executable payload</i></li>
+ <li>Payload / Payload path and filename = <i>grub.elf</i></li>
+ </ul>
+ <p>
+ Go back and disable option ROM's:
+ </p>
+ <ul>
+ <li>Devices / Run VGA Option ROMs = <i>disable</i></li>
+ <li>Devices / Run Option ROMs on PCI devices = <i>disable</i></li>
+ </ul>
+ <p>
+ The resulting .config file was saved as resources/libreboot/config/<b>macbook21config</b> and is used by the build
+ scripts for this machine.
+ </p>
+
+ <p><a href="#pagetop">Back to top of page.</a></p>
+
+<hr/>
+
+ <h1 id="build">How to build the ROM's!</h1>
+
+ <p>If you have anything special in a directory called libreboot_bin, just outside of libreboot_src,
+ then back it up first.</p>
+
+ <p>You don't need to do much: there are scripts already written for you that can build everything automatically.</p>
+
+ <p>Install <b>all</b> dependencies (works on apt-get distros, tested in Trisquel 6)<br/>
+ <b>$ sudo ./builddeb</b></p>
+
+ <p>If your distro uses a different package manager or package names, then you'll need to adapt what you see in
+ 'builddeb' and install it yourself - maybe you could share the script for your distro!</p>
+
+ <p>Also, make sure that you have the sha512sum utility installed.</p>
+
+ <p>If running for the first time, run this:<br/>
+ <b>$ ./buildall</b> (also performs the "./build" step below)<br/>
+ Or if you only want to build dependencies (crossgcc, grub and so on):<br/>
+ <b>$ ./builddeps</b></p>
+
+ <p>If you've already run ./builddeps and/or ./buildall before, you don't need to run them again.
+ Just run that from now on to build your ROM's:<br/>
+ <b>$ ./build</b></p>
+
+ <p>To un-build (clean) the build dependencies that you built before, do that:<br/>
+ <b>$ ./cleandeps</b></p>
+
+ <p>Note: after running 'cleandeps', you will need to run 'builddeps' or 'buildall' again before you can use 'build'.</p>
+
+ <p>After 'build' or 'buildall' has finished, an ../libreboot_bin directory will exist outside of libreboot_src containing the ROM's and other files. In libreboot_src will also be
+ a directory called 'bin' which contains all of the ROM's that you compiled.</p>
+
+ <p>The script also generates a 'libreboot_meta' directory outside of libreboot_src, which contains everything in src except for grub, coreboot, memtest,
+ flashrom and bucts. There is a script called 'getall' from src included in meta, which downloads and patches everything needed to create src.</p>
+
+ <p>Reading all of those scripts will teach you how everything is built. It should also be simple to modify it to your needs.</p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <h1 id="supported_t60_list">Supported T60 list</h1>
+
+ <ul>
+ <li>
+ The following ThinkPad T60's are supported:
+ <ul>
+ <li>ThinkPad X60 Tablet (1024x768) with digitizer support</li>
+ <li>ThinkPad X60 Tablet (1400x1050) with digitizer support</li>
+ <li>ThinkPad T60 14.1&quot; SXGA+ (1400x1050) (Intel GPU)</li>
+ <li>ThinkPad T60 15.1&quot; SXGA+ (1400x1050) (Intel GPU)</li>
+ <li>ThinkPad T60 15.1&quot; UXGA (1600x1200) (Intel GPU)</li>
+ <li>ThinkPad T60 15.1&quot; QXGA (2048x1536) (Intel GPU)</li>
+ </ul>
+ </li>
+ <li>
+ Note, the T60 models below are *NOT* supported in this release:
+ <ul>
+ <li>
+ ThinkPad T60 14.1&quot; XGA (1024x768) (Intel GPU)
+ <ul>
+ See below (comments 15.1&quot; XGA T60).
+ </ul>
+ </li>
+ <li>
+ ThinkPad T60 15.1&quot; XGA (1024x768) (Intel GPU)
+ <ul>
+ <li>However, the LCD panels in these models are user-upgradeable in 14.1&quot; and 15.1&quot; to one of the supported panels.</li>
+ <li>See <a href="#t60_inverter">#t60_inverter</a> for information about inverters to use when upgrading the LCD panel.</li>
+ <li>See the list immediately below for a list of LCD panels.</li>
+ </ul>
+ </li>
+ <li>
+ ThinkPad T60/T60p with ATI GPU (all models)
+ <ul>
+ <li>However, on 14.1&quot; and 15.1&quot; T60 (*not* the 15.4&quot; T60p!) that has ATI GPU, you can replace the mainboard with one that has an Intel GPU</li>
+ <li>See <a href="#t60_ati_intel">#t60_ati_intel</a> for pictures showing the differences (when shopping for motherboards).</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+
+ <p>
+ To find what LCD panel you have, see: <a href="#get_edid_panelname">#get_edid_panelname</a>.
+ </p>
+
+ <h2>Tested LCD panels (as of libreboot 6th release, initial revision)</h2>
+ <ul>
+ <li>
+ <b>T60 14&quot; XGA (1024x768) (not working yet)</b>
+ <ul>
+ <li>
+ <b>None of the tested panels work yet!</b>
+ <ul>
+ <li><b>You can upgrade the LCD panel to SXGA+ though</b></li>
+ </ul>
+ </li>
+ <li>
+ Tested panels:
+ <ul>
+ <li>Not working: Samsung LTN141XA-L01</li>
+ </ul>
+ </li>
+ <li>
+ Untested panels:
+ <ul>
+ <li>CMO N141XC</li>
+ <li>BOE-Hydis HT14X14</li>
+ <li>TMD-Toshiba LTD141ECMB</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>T60 14&quot; SXGA+ (1400x1050) (works!!!)</b>
+ <ul>
+ <li>
+ <b>Source code modifications *not* required!</b>
+ <ul>
+ <li>Works out of the box!</li>
+ </ul>
+ </li>
+ <li>
+ Tested panels:
+ <ul>
+ <li><b>Working: TMD-Toshiba LTD141EN9B</b></li>
+ <li><b>Working: Samsung LTN141P4-L02</b></li>
+ </ul>
+ </li>
+ <li>
+ Untested panels:
+ <ul>
+ <li>Boe-Hydis HT14P12</li>
+ </ul>
+ </li>
+ <li>
+ Part number for inverter board:
+ <ul>
+ <li>FRU P/N 41W1478</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>T60 15&quot; XGA (1024x768) (not working yet)</b>
+ <ul>
+ <li>
+ <b>None of the tested panels work yet!</b>
+ <ul>
+ <li><b>You can upgrade the panel to SXGA+, UXGA or QXGA, though.</b></li>
+ <li>
+ Make sure that you also upgrade the inverter to one of these:
+ <ul>
+ <li>P/N 42T0078 FRU 42T0079</li>
+ <li>P/N 41W1338</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ Tested panels:
+ <ul>
+ <li>Not working: LG-Philips LP150X09</li>
+ </ul>
+ </li>
+ <li>
+ Untested panels:
+ <ul>
+ <li>Samsung LTN150XG</li>
+ <li>13N7068 (IDtech)</li>
+ <li>13N7069 (CMO)</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>T60 15&quot; SXGA+ (1400x1050) (works!!!)</b>
+ <ul>
+ <li>
+ <b>Source code modifications *not* required!</b>
+ <ul>
+ <li>Works out of the box!</li>
+ </ul>
+ </li>
+ <li>
+ Tested panels:
+ <ul>
+ <li><b>Working: LG-Philips LP150E05-A2K1</b></li>
+ </ul>
+ </li>
+ <li>
+ Untested panels:
+ <ul>
+ <li>BOE-Hydis HV150P01-100</li>
+ </ul>
+ </li>
+ <li>
+ Use one of these inverters (advised):
+ <ul>
+ <li>P/N 42T0078 FRU 42T0079</li>
+ <li>P/N 41W1338</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>T60 15&quot; UXGA (1600x1200) (works!!!)</b>
+ <ul>
+ <li>
+ <b>Source code modifications *not* required!</b>
+ <ul>
+ <li>Works out of the box!</li>
+ </ul>
+ </li>
+ <li>
+ Tested panels:
+ <ul>
+ <li><b>Working: BOE-Hydis HV150UX1-100</b></li>
+ </ul>
+ </li>
+ <li>
+ Untested panels:
+ <ul>
+ <li>IDTech N150U3-L01</li>
+ <li>BOE-Hydis HV150UX1-102</li>
+ </ul>
+ </li>
+ <li>
+ Use one of these inverters (advised):
+ <ul>
+ <li>P/N 42T0078 FRU 42T0079</li>
+ <li>P/N 41W1338</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <b>T60 15&quot; QXGA (2048x1536) (works!!!)</b>
+ <ul>
+ <li>
+ <b>Source code modifications *not* required!</b>
+ <ul>
+ <li>Works out of the box!</li>
+ </ul>
+ </li>
+ <li>
+ Tested panels:
+ <ul>
+ <li><b>Working: IDtech IAQX10N</b></li>
+ </ul>
+ </li>
+ <li>
+ Untested panels:
+ <ul>
+ <li>IDtech IAQX10S</li>
+ </ul>
+ </li>
+ <li>
+ Use one of these inverters (advised):
+ <ul>
+ <li>P/N 42T0078 FRU 42T0079</li>
+ <li>P/N 41W1338</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+
+ <p><a href="#pagetop">Back to top of page.</a></p>
+
+<hr/>
+
+ <h1 id="t60_inverter">Inverter boards for ThinkPad T60 when upgrading LCD panel</h1>
+
+ <p>
+ When upgrading the XGA (1024x768) LCD panel to SXGA+ (1400x1050) on the 14.1&quot; T60, you also need to use this inverter board:
+ </p>
+ <ul>
+ <li>
+ FRU P/N 41W1478
+ </li>
+ </ul>
+
+ <p>
+ When upgrading the XGA (1024x768) LCD panel to SXGA+ (1400x1050), UXGA (1600x1200) or QXGA (2048x1536) on the 15.1&quot; T60, you
+ also need to use one of these inverter boards:
+ </p>
+ <ul>
+ <li>
+ P/N 42T0078 FRU 42T0079
+ </li>
+ <li>
+ P/N 41W1338
+ </li>
+ </ul>
+
+ <p>
+ See <a href="#supported_t60_list">#supported_t60_list</a> for a list of LCD panels on ThinkPad T60 14.1&quot; and ThinkPad T60 15.1&quot;.
+ </p>
+
+ <p>
+ The Video BIOS (VBIOS) for T60 has been reverse engineered and replaced with Free Software. However,
+ at the time of preparing this release the free replacement did not yet support the XGA (1024x768) panels,
+ which is what made upgrading them necessary.
+ </p>
+
+ <p>
+ The 'Video BIOS' is what initializes graphics.
+ </p>
+
+ <p>
+ See: <a href="https://en.wikipedia.org/wiki/Video_BIOS">https://en.wikipedia.org/wiki/Video_BIOS</a>.
+ </p>
+
+ <p><a href="#pagetop">Back to top of page.</a></p>
+
+<hr/>
+
+ <h1 id="t60_ati_intel">ThinkPad T60 (ATI GPU) and ThinkPad T60 (Intel GPU) differences.</h1>
+
+ <p>
+ If your T60 is a 14.1&quot; or 15.1&quot; model with an ATI GPU, it won't work with libreboot by default but
+ you can replace the motherboard with another T60 motherboard that has an Intel GPU, and then libreboot should work.
+ </p>
+
+ <p>
+ As far as I know, 14.1&quot; (Intel GPU) and 15.1&quot; (Intel GPU) T60 motherboards are the same, where
+ 'spacers' are used on the 15.1&quot; T60. In any case, it makes sense to find one that is guaranteed to fit in your chassis.
+ </p>
+
+ <p>
+ Note: the T60<b>p</b> is a 15.4&quot; widescreen laptop and uses completely different shaped motherboards (all of which have ATI).
+ The T60p laptops cannot be used with libreboot under any circumstances.
+ </p>
+
+ <p>
+ The following T60 motherboard shows an ATI GPU (<b>do not buy this</b>) (highlighted in red, or on the right next to the white CPU socket), which is unsupported by libreboot:<br/>
+ <img src="howtos/t60_mainboard/t60_ati_gpu.jpg" alt="" />
+ </p>
+
+ <p>
+ The following T60 motherboard shows an Intel GPU (<b>buy this!</b>) (highlighted in red or on the right next to the white CPU socket, you can see that the space for ATI GPU is empty):<br/>
+ <img src="howtos/t60_mainboard/t60_intel_gpu.jpg" alt="" />
+ </p>
+
+ <p>
+ The reason that the ATI GPU on T60 is unsupported is due to the VBIOS (Video BIOS) which is non-free.
+ The VBIOS for the Intel GPU on X60/T60 has been reverse engineered, and replaced with Free Software and
+ so will work in libreboot.
+ </p>
+
+ <p>
+ The 'Video BIOS' is what initializes graphics.
+ </p>
+
+ <p>
+ See: <a href="https://en.wikipedia.org/wiki/Video_BIOS">https://en.wikipedia.org/wiki/Video_BIOS</a>.<br/>
+ In fact, lack of free VBIOS in general is a big problem in coreboot, and is one reason (among others) why many ports for coreboot are
+ unsuitable for libreboot's purpose.
+ </p>
+
+ <p>
+ Theoretically, the ThinkPad T60 with ATI GPU can work with libreboot and have ROM's compiled for it, however
+ in practise it would not be usable as a laptop because there would be no visual display at all. That being said,
+ such a configuration is acceptable for use in a 'headless' server setup (with serial and/or ssh console as the display).
+ </p>
+
+ <p><a href="#pagetop">Back to top of page.</a></p>
+
+<hr/>
+
+ <h1 id="macbook21">Information about the macbook2,1</h1>
+
+ <p>
+ There is an Apple laptop called the macbook2,1 from late 2006 or early 2007 that uses the same i945 chipset
+ as the ThinkPad X60 and ThinkPad T60. A developer ported coreboot to his macbook2,1, and now libreboot can run on it.
+ </p>
+ <p>
+ Mono Moosbart is the person who wrote the port for macbook2,1. Referenced below are copies (up to date at the time of writing, 20140630)
+ of the pages he wrote when porting coreboot to the macbook2,1. They are included here in case the main site goes down for
+ whatever reason, since they include a lot of useful information.
+ </p>
+ <p>
+ Backups created using wget:<br/>
+ <b>$ wget -m -p -E -k -K -np http://macbook.donderklumpen.de/</b><br/>
+ <b>$ wget -m -p -E -k -K -np http://macbook.donderklumpen.de/coreboot/</b><br/>
+ Use <b>-e robots=off</b> if using this trick for other sites and the site restricts using robots.txt
+ </p>
+
+ <p>
+ <b>Links to wget backups (and the backups themselves) of Mono's pages (see above) removed temporarily. Mono has given me permission to distribute them, but I need to ask
+ him to tell me what license these works fall under first. Otherwise, the above URL's should be fine. NOTE TO SELF: REMOVE THIS WHEN DONE</b>
+ </p>
+
+ <h2>
+ Installing GNU/Linux distributions (on Apple EFI firmware)
+ </h2>
+ <ul>
+ <li><a href="#">Parabola GNU/Linux installation on a macbook2,1 with Apple EFI firmware</a> (this is a copy of Mono's page, see above)</li>
+ </ul>
+
+ <h2>
+ Information about coreboot
+ </h2>
+ <ul>
+ <li><a href="#">Coreboot on the macbook2,1</a> (this is a copy of Mono's page, see above)</li>
+ </ul>
+
+ <h2>
+ coreboot wiki page
+ </h2>
+ <ul>
+ <li><a href="http://www.coreboot.org/Board:apple/macbook21">http://www.coreboot.org/Board:apple/macbook21</a></li>
+ </ul>
+
+ <h2>
+ Compatible models
+ </h2>
+ <p>
+ It is believed that all models are compatible, listed here:
+ </p>
+ <ul>
+ <li><a href="http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook2,1">http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook2,1</a></li>
+ </ul>
+ <p>
+ Specifically (Order No. / Model No. / CPU):
+ </p>
+ <ul>
+ <li>MA699LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T5600</li>
+ <li>MA701LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200</li>
+ <li>MB061LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7200</li>
+ <li>MA700LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200</li>
+ <li>MB063LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400</li>
+ <li>MB062LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400</li>
+ </ul>
+
+ <p>
+ Also of interest: <a href="#config_macbook21">#config_macbook21</a>.
+ </p>
+
+ <p><a href="#pagetop">Back to top of page.</a></p>
+
+<hr/>
+
+ <h1 id="rom">Recommended ROM's to flash</h1>
+
+ <p>Recommended ROM's to flash:</p>
+ <ul>
+ <li>
+ ThinkPad X60, X60s (<b>bin/x60/</b>)
+ <ul>
+ <li>US Qwerty keyboard, no dock: <b>coreboot.rom</b></li>
+ <li>US Dvorak keyboard, no dock: <b>coreboot_dvorak.rom</b></li>
+ <li>US Qwerty keyboard, with dock: <b>coreboot_serial.rom</b></li>
+ <li>US Dvorak keyboard, with dock: <b>coreboot_serial_dvorak.rom</b></li>
+ <li>UK Qwerty keyboard, no dock: <b>coreboot_ukqwerty.rom</b></li>
+ <li>UK Dvorak keyboard, no dock: <b>coreboot_ukdvorak.rom</b></li>
+ <li>UK Qwerty keyboard, with dock: <b>coreboot_serial_ukqwerty.rom</b></li>
+ <li>UK Dvorak keyboard, with dock: <b>coreboot_serial_ukdvorak.rom</b></li>
+ </ul>
+ </li>
+ <li>
+ ThinkPad X60 Tablet (<b>bin/x60t/</b>)
+ <ul>
+ <li>US Qwerty keyboard, no dock: <b>coreboot.rom</b></li>
+ <li>US Dvorak keyboard, no dock: <b>coreboot_dvorak.rom</b></li>
+ <li>US Qwerty keyboard, with dock: <b>coreboot_serial.rom</b></li>
+ <li>US Dvorak keyboard, with dock: <b>coreboot_serial_dvorak.rom</b></li>
+ <li>UK Qwerty keyboard, no dock: <b>coreboot_ukqwerty.rom</b></li>
+ <li>UK Dvorak keyboard, no dock: <b>coreboot_ukdvorak.rom</b></li>
+ <li>UK Qwerty keyboard, with dock: <b>coreboot_serial_ukqwerty.rom</b></li>
+ <li>UK Dvorak keyboard, with dock: <b>coreboot_serial_ukdvorak.rom</b></li>
+ </ul>
+ </li>
+ <li>
+ ThinkPad T60 (<b>bin/t60/</b>) (note, see <a href="#supported_t60_list">#supported_t60_list</a>)
+ <ul>
+ <li>US Qwerty keyboard, no dock: <b>coreboot.rom</b></li>
+ <li>US Dvorak keyboard, no dock: <b>coreboot_dvorak.rom</b></li>
+ <li>US Qwerty keyboard, with dock: <b>coreboot_serial.rom</b></li>
+ <li>US Dvorak keyboard, with dock: <b>coreboot_serial_dvorak.rom</b></li>
+ <li>UK Qwerty keyboard, no dock: <b>coreboot_ukqwerty.rom</b></li>
+ <li>UK Dvorak keyboard, no dock: <b>coreboot_ukdvorak.rom</b></li>
+ <li>UK Qwerty keyboard, with dock: <b>coreboot_serial_ukqwerty.rom</b></li>
+ <li>UK Dvorak keyboard, with dock: <b>coreboot_serial_ukdvorak.rom</b></li>
+ </ul>
+ </li>
+ <li>
+ MacBook2,1 (<b>bin/macbook21/</b>)
+ <ul>
+ <li>US Qwerty keyboard, no dock: <b>coreboot.rom</b></li>
+ <li>US Dvorak keyboard, no dock: <b>coreboot_dvorak.rom</b></li>
+ <li>UK Qwerty keyboard, no dock: <b>coreboot_ukqwerty.rom</b></li>
+ <li>UK Dvorak keyboard, no dock: <b>coreboot_ukdvorak.rom</b></li>
+ <li>(The MacBook2,1 uses the same chipset, i945, as the X60/X60s X60T and T60 but there is no dock or serial port available for this machine)</li>
+ </ul>
+ </li>
+ </ul>
+ <p>
+ This will give you your native keyboard layout in GRUB. The preferences in your OS are not affected, it just makes using
+ the GRUB command line easier (if you ever need to do that).
+ <a href="#grub_keyboard">#grub_keyboard</a>shows you how this was done. If your native keyboard layout
+ differs, you can adapt those notes and hack the 'build' script for your needs.
+ </p>
+ <p>
+ For pictures of what these keyboard layouts look like (so you can compare with yours), see <a href="#keyboards">#keyboards</a>.
+ </p>
+
+ <p><a href="#pagetop">Back to top of page.</a></p>
+
+<hr/>
+
+ <h1 id="flashrom_lenovobios">X60/T60: How to flash the ROM's onto your machine (if running Lenovo BIOS).</h1>
+
+ <div class="important">
+
+ <p>
+ Hover over the next paragraph to make it black.
+ </p>
+ <p class="lenovobios">
+ Following this guide means simply flashing a libreboot ROM. This guide will not (directly) teach you how to make a backup (dump) of the original Lenovo BIOS
+ because to do so would be to explicitly endorse proprietary software. However, for the purposes of reverse engineering it can be useful
+ to have a backup. Each copy of the original Lenovo BIOS is tied to the specific machine that it came from; it will not run
+ on any other machine, even if it's the same type of machine as yours. What this means is that, effectively, you can back it up now (so that you can
+ re-flash it later if you want to run the original Lenovo BIOS again) or lose it forever. The X60/T60 installation
+ guide on the coreboot wiki will show you how to do this:
+ <a href="http://www.coreboot.org/Board:lenovo/x60/Installation">http://www.coreboot.org/Board:lenovo/x60/Installation</a>.<br/>
+ Do not make this decision lightly! This is your last and only chance.
+ </p>
+
+ </div>
+
+ <p>(the above message is a lot more benign and a lot less scary than it looks)</p>
+
+ <p><b>This is for the ThinkPad X60 and T60 while running Lenovo BIOS. If you already have coreboot or libreboot running,
+ then go to <a href="#flashrom">#flashrom</a> instead!</b></p>
+
+ <p><b>If you are flashing a Lenovo ThinkPad T60, be sure to read <a href="#supported_t60_list">#supported_t60_list</a></b></p>
+
+ <p>
+ If you are using Trisquel 6 (32-bit) then the bucts/flashrom binaries are tested. If not (or if you want), recompile them:<br/>
+ <b>See: <a href="#build_flashrom">#build_flashrom</a></b><br/>
+ <b>See: <a href="#build_bucts">#build_bucts</a></b><br/>
+ In any case, you will want the dependencies to run them aswell:<br/>
+ <b>$ sudo ./builddeb-flashrom</b><br/>
+ <b>$ sudo ./builddeb-bucts</b><br/>
+ (^ works on Trisquel 6, maybe other apt-get distros. Adapt for all other distros.)
+ </p>
+
+ <p>&quot;YOURBOARD/YOURROM&quot; should be replaced with what is correct as per <a href="#rom">#rom</a>. Alternatively
+ you may be using your own custom ROM. Adapt.</p>
+
+ <p>
+ Run the script:<br/>
+ <b>$ sudo ./lenovobios_firstflash bin/<a href="#rom">YOURBOARD/YOURROM</a>.</b>
+ </p>
+
+ <div class="important">
+
+ <p>
+ You should see within the output the following:<br/>
+ <b>&quot;Updated BUC.TS=1 - 64kb address ranges at 0xFFFE0000 and 0xFFFF0000 are swapped&quot;</b>.
+ </p>
+
+ <p>
+ You should also see within the output the following:<br/>
+ <b>&quot;Flash chip is in an unknown state&quot;</b>, <b>&quot;FAILED&quot;</b> and <b>&quot;DO NOT SHUTDOWN OR REBOOT&quot;</b><br/>
+ Seeing this means that the operation was a <b>resounding</b> success! <b>DON'T PANIC</b>.
+ </p>
+
+ <p>
+ See this link for more details:
+ <a href="http://thread.gmane.org/gmane.linux.bios.flashrom/575">http://thread.gmane.org/gmane.linux.bios.flashrom/575</a>.
+ </p>
+
+ <p>
+ If the above is what you see, then <b>SHUT DOWN</b>. Wait a few seconds, and then boot; libreboot is running, but there is a 2nd procedure needed (see below).
+ </p>
+
+ </div>
+
+ <p>
+ When you have booted up again:<br/>
+ <b>$ sudo ./lenovobios_secondflash bin/<a href="#rom">YOURBOARD/YOURROM</a></b>
+ </p>
+
+ <div class="important">
+
+ <p>
+ You should see within the output the following:<br/>
+ <b>&quot;Updated BUC.TS=0 - 128kb address range 0xFFFE0000-0xFFFFFFFF is untranslated&quot;</b>
+ </p>
+
+ <p>
+ You should also see within the output the following:<br/>
+ <b>&quot;Verifying flash... VERIFIED.&quot;</b>
+ </p>
+
+ <p>Shut down again, wait a few seconds, and then boot.</p>
+
+ </div>
+
+ <p>
+ !!!!
+ </p>
+
+ <p><a href="#pagetop">Back to top of page.</a></p>
+
+<hr/>
+
+ <h1 id="flashrom">X60/T60: How to flash the ROM's onto your machine (if running libreboot or coreboot already)</h1>
+
+ <p>
+ <b>These instructions work for both the ThinkPad X60 and T60.</b>
+ </p>
+ <p>
+ <b>This assumes that you already have coreboot or libreboot running</b>
+ </p>
+ <p>
+ <b>If you have Lenovo BIOS running, go to <a href="#flashrom_lenovobios">#flashrom_lenovobios</a> instead.</b>
+ </p>
+ <p>
+ <b>If you are flashing a Lenovo ThinkPad T60, be sure to read <a href="#supported_t60_list">#supported_t60_list</a></b>
+ </p>
+ <p>
+ If you need to recompile flashrom:<br/>
+ <b>See: <a href="#build_flashrom">#build_flashrom</a></b>
+ </p>
+ <p>
+ You also need the run-time dependencies. This script works on apt-get distros:<br/>
+ <b>$ sudo ./builddeb-flashrom</b>
+ </p>
+ <p>
+ Look at <a href="#rom">#rom</a> to see which ROM is suitable for your machine. Alternative you may be using your own
+ custom ROM. Adapt.
+ </p>
+ <p>
+ Flash the ROM:<br/>
+ <b>$ sudo ./flash bin/<a href="#rom">YOURBOARD/YOURROM</a></b>
+ </p>
+ <p>
+ You should see <b>&quot;Verifying flash... VERIFIED.&quot;</b> written at the end of the flashrom output. <b>SHUT DOWN</b>
+ after you see this, and then boot up again after a few seconds.
+ </p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <h1 id="grub_font">Setting font in GRUB (for reference)</h1>
+
+ <p>You don't need to do this unless you would like to change the default font yourself.
+ (this is just for reference. It has already been done for you)</p>
+
+ <p>The old font used was Unifont, and this had some missing characters: for instance, the border showed ??? characters instead of lines.</p>
+
+ <p>I tried DeJavu Sans Mono from this website:
+ <a href="http://dejavu-fonts.org/wiki/Download">dejavu-fonts.org</a></p>
+
+ <p>Specifically, the version that I chose was the latest at the time of writing (Saturday 21 June 2014):
+ <a href="http://sourceforge.net/projects/dejavu/files/dejavu/2.34/dejavu-fonts-ttf-2.34.tar.bz2">this one</a></p>
+
+ <p>This is a free font that is also contained in GNU/Linux distributions like Trisquel or Parabola.</p>
+
+ <p><b>$ cd libreboot_src/grub</b><br/>
+ compile grub ('build' script has the info on how to do this)<br/>
+ come back out into libreboot_src/resources/grub:<br/>
+ <b>$ cd ../libreboot_src/resources/grub/font</b></p>
+
+ <p>I took Dejavu Sans Mono from dejavu (included in this version of libreboot) and did:<br/>
+ <b>$ ../../../grub/grub-mkfont -o dejavusansmono.pf2 ../../../dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono.ttf</b></p>
+
+ <p>I then added the instructions to 'build' script to include resources/grub/dejavusansmono.pf2 in all of the ROM's in root of cbfs.<br/>
+ I then added that instructions to the grub.cfg files (to load the font):<br/>
+ <b>loadfont (cbfsdisk)/dejavusansmono.pf2</b></p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <h1 id="grub_keyboard">GRUB keyboard layouts (for reference)</h1>
+
+ <h2 id="keyboards">Pictures of keyboard layouts</h2>
+
+ <p>
+ Taken from WikiPedia.
+ See <a href="https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard">https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard</a>
+ and <a href="https://en.wikipedia.org/wiki/QWERTY">https://en.wikipedia.org/wiki/QWERTY</a>.
+ </p>
+
+ <h3 id="keyboards_ukqwerty">QWERTY (United Kingdom)</h3>
+ <p>
+ <a href="https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/KB_United_Kingdom.svg/900px-KB_United_Kingdom.svg.png">https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/KB_United_Kingdom.svg/900px-KB_United_Kingdom.svg.png</a>
+ </p>
+
+ <h3 id="keyboards_usqwerty">QWERTY (United States)</h3>
+ <p>
+ <a href="https://upload.wikimedia.org/wikipedia/commons/thumb/5/51/KB_United_States-NoAltGr.svg/900px-KB_United_States-NoAltGr.svg.png">https://upload.wikimedia.org/wikipedia/commons/thumb/5/51/KB_United_States-NoAltGr.svg/900px-KB_United_States-NoAltGr.svg.png</a>
+ </p>
+
+ <h3 id="keyboards_ukdvorak">Dvorak (United Kingdom)</h3>
+ <p>
+ <a href="https://upload.wikimedia.org/wikipedia/commons/thumb/c/cc/KB_United_Kingdom_Dvorak.svg/900px-KB_United_Kingdom_Dvorak.svg.png">https://upload.wikimedia.org/wikipedia/commons/thumb/c/cc/KB_United_Kingdom_Dvorak.svg/900px-KB_United_Kingdom_Dvorak.svg.png</a>
+ </p>
+
+ <h3 id="keyboards_usdvorak">Dvorak (United States)</h3>
+ <p>
+ <a href="https://upload.wikimedia.org/wikipedia/commons/thumb/2/25/KB_United_States_Dvorak.svg/800px-KB_United_States_Dvorak.svg.png">https://upload.wikimedia.org/wikipedia/commons/thumb/2/25/KB_United_States_Dvorak.svg/800px-KB_United_States_Dvorak.svg.png</a>
+ </p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+ <h2 id="grub_custom_keyboard">Custom keyboard layout in GRUB (for reference)</h2>
+
+ <p>You can adapt the notes below and update the 'build' script to make it build a ROM with your custom/other keyboard layout in GRUB.</p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+ <h2 id="grub_qwerty_keyboard">US Qwerty keyboard layout in GRUB (for reference)</h2>
+
+ <p><b>$ cd libreboot_src/grub</b><br/>
+ compile grub ('build' script has the info on how to do this)<br/>
+ come back out into libreboot_src<br/>
+ <b>$ cd ../</b></p>
+
+ <p>Generate the layout file:<br/>
+ <b>$ ckbcomp us > usqwerty</b><br/>
+ <b>$ cat usqwerty | ./grub/grub-mklayout -o usqwerty.gkb</b></p>
+
+ <p>Note: these files are already included ('build' script also makes use of them). You don't need to do any of this.</p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+ <h2 id="grub_ukqwerty_keyboard">UK Qwerty keyboard layout in GRUB (for reference)</h2>
+
+ <p><b>$ ckbcomp gb > ukqwerty</b><br/>
+ <b>$ cat ukqwerty | ./grub/grub-mklayout -o ukqwerty.gkb</b></p>
+
+ <p>Note: these files are already included ('build' script makes use of them). You don't need to do it.</p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+ <h2 id="grub_dvorak_keyboard">US Dvorak keyboard layout in GRUB (for reference)</h2>
+
+ <p>How the dvorak.gkb was made (for US Dvorak layout in GRUB).</p>
+
+ <p><b>$ cd libreboot_src/grub</b><br/>
+ compile grub ('build' script has the info on how to do this)<br/>
+ come back out into libreboot_src:<br/>
+ <b>$ cd ../</b></p>
+
+ <p>Generate the layout file:<br/>
+ <b>$ ckbcomp dvorak > usdvorak</b><br/>
+ <b>$ cat usdvorak | ./grub/grub-mklayout -o dvorak.gkb</b></p>
+
+ <p>Note: these files are already included ('build' script makes use of them). You don't need to do it.</p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+ <h2 id="grub_ukdvorak_keyboard">UK Dvorak keyboard layout in GRUB (for reference)</h2>
+
+ <p>There isn't much difference.<br/>
+ <b>$ cp usdvorak ukdvorak</b></p>
+
+ <p>Patch ukdvorak like so (diff usdvorak ukdvorak):<br/>
+ diff the usdvorak file with ukdvorak to see how it was patched.</p>
+
+ <p>Now create ukdvorak.gkb<br/>
+ <b>$ cat ukdvorak | ./grub/grub-mklayout -o ukdvorak.gkb</b></p>
+
+ <p>Note: these files are already included ('build' script makes use of them). You don't need to do any of this.</p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <h1 id="tft_brightness">Brightness controls (ThinkPad X60) - how to prevent 'scrolling'</h1>
+ <p>
+ Sometimes, on some setups, when turning up the brightness while at max, it will loop back to minimum.
+ Also, the minimum will turn the backlight off completely.
+ </p>
+ <p>
+ Install build dependencies (for Trisquel 6. Adapt if your distro is different):<br/>
+ <b>$ sudo apt-get install build-essential</b>
+ </p>
+ <p>
+ Go into the libreboot_src directory. Under coreboot/util/nvramtool/ do that to compile it:
+ <b>$ make</b>
+ </p>
+ <p>
+ Now do that:<br/>
+ <b>$ sudo ./nvramtool -w tft_brightness=0xff</b><br/>
+ Alternatively if there are errors, try:<br/>
+ <b>$ sudo ./nvramtool -y ../../src/mainboard/lenovo/x60/cmos.layout -w tft_brightness=0xff</b>
+ </p>
+ <p>
+ The next time you boot, the looping issue should be gone.
+ </p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <h1 id="x60_wifi">ThinkPad X60: Enable or disable wifi</h1>
+ <p>
+ Install build dependencies in Trisquel 6 (adapt for other distro):<br/>
+ <b>$ sudo apt-get install build-essential</b><br/>
+ nvramtool is in coreboot or libreboot source tree until util/:<br/>
+ <b>$ cd libreboot_src/coreboot/util/nvramtool</b><br/>
+ <b>$ make</b><br/>
+ Enable wifi:<br/>
+ <b>$ sudo ./nvramtool -w wlan=Enable</b><br/>
+ Disable wifi:<br/>
+ <b>$ sudo ./nvramtool -w wlan=Disable</b><br/>
+ If that doesn't work, try one of these instead:<br/>
+ <b>$ sudo ./nvramtool -y ../../src/mainboard/lenovo/x60/cmos.layout -w wlan=Enable</b><br/>
+ <b>$ sudo ./nvramtool -y ../../src/mainboard/lenovo/x60/cmos.layout -w wlan=Disable</b>
+ </p>
+ <p>The next time you boot, wifi will be enabled.</p>
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <h1 id="x60_trackpoint">ThinkPad X60: Enable or disable trackpoint</h1>
+ <p>
+ Install build dependencies in Trisquel 6 (adapt for other distro):<br/>
+ <b>$ sudo apt-get install build-essential</b><br/>
+ nvramtool is in coreboot or libreboot source tree until util/:<br/>
+ <b>$ cd libreboot_src/coreboot/util/nvramtool</b><br/>
+ <b>$ make</b><br/>
+ Enable wifi:<br/>
+ <b>$ sudo ./nvramtool -w trackpoint=Enable</b><br/>
+ Disable wifi:<br/>
+ <b>$ sudo ./nvramtool -w trackpoint=Disable</b><br/>
+ If that doesn't work, try one of these instead:<br/>
+ <b>$ sudo ./nvramtool -y ../../src/mainboard/lenovo/x60/cmos.layout -w trackpoint=Enable</b><br/>
+ <b>$ sudo ./nvramtool -y ../../src/mainboard/lenovo/x60/cmos.layout -w trackpoint=Disable</b>
+ </p>
+ <p>The next time you boot, trackpoint will be enabled.</p>
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <h1 id="high_pitch_trisquel">High Pitched Whining Noise on Idle (how to remove in Trisquel)</h1>
+
+ <h2 id="howtouse_powertop">Powertop - how to use</h2>
+
+ <p>Now you can use this command to kill that noise:<br/>
+ <b>$ sudo powertop --auto-tune</b></p>
+
+ <p>You can also run it without parameters and then go into 'Tunables' and set everything to 'Good'</p>
+
+ <p>Note: On Trisquel 6, you will need to use a later powertop version from git. The one in the repositories is too old. See below:</p>
+
+ <h2 id="powertop_autostart">Powertop - Start automatically at boot time (Trisquel 6)</h2>
+
+ <p>Included with libreboot 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.</p>
+
+ <p><b>$ ./powertop.trisquel6</b></p>
+
+ <p>This has been tested on Trisquel 6.</p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <h1 id="high_pitch_parabola">High Pitched Whining Noise on Idle (how to remove in Parabola)</h1>
+
+ <p>The following removes most of the noise. It reduces what is a high frequency whine
+ (that not everyone can hear) to a slight buzz (which most people can't hear or doesn't bother most people).</p>
+
+ <p>This is not perfect! The full solution is still not discovered but this is a step towards that.
+ Also, in some instances you will need to run 'sudo powertop --auto-tune' again.
+ This needs to be implemented properly in coreboot itself!</p>
+
+ <p>On the X60 with coreboot or libreboot, there is a high pitched sound when idle.
+ So far we have use processor.max_cstate=2 or idle=halt in GRUB.
+ These consume power. Stop using them! </p>
+
+ <p>Be root<br/>
+ <b>$ su -</b></p>
+
+ <p>Installed powertop:<br/>
+ <b># pacman -S powertop</b></p>
+
+ <p>and added the following to /etc/systemd/system/powertop.service :</p>
+
+<pre><i>
+[Unit]
+Description=Powertop tunings
+
+[Service]
+Type=oneshot
+RemainAfterExit=no
+ExecStart=/usr/bin/powertop --auto-tune
+# "powertop --auto-tune" still needs a terminal for some reason. Possibly a bug?
+Environment="TERM=xterm"
+
+[Install]
+WantedBy=multi-user.target
+</i></pre>
+
+
+ <p>Finally, as root do that:<br/>
+ <b># systemctl enable powertop</b><br/>
+ <b># systemctl start powertop</b></p>
+
+ <p>The next time you boot the machine, the buzz will be gone.</p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <h1 id="serial">X60/T60: Serial port - how to use (for dock owners)</h1>
+ <p>
+ For the Thinkpad X60 you can use the <b>&quot;UltraBase X6&quot;</b> dock. For the ThinkPad T60,
+ you can use the <b>&quot;Advanced Mini Dock&quot;</b>.
+ </p>
+ <p>
+ If you are using one of the ROM's with 'serial' in the name, then you have serial port enabled in libreboot
+ and you have memtest86+ included inside the ROM. Connect your null modem cable to the serial port on the dock
+ and connect the other end to a 2nd machine using your USB Serial adapter.
+ </p>
+ <p>
+ On the 2nd machine, you can try this (using GNU Screen):<br/>
+ <b>$ sudo screen /dev/ttyUSB0 115200</b>
+ </p>
+ <p>
+ How to quit GNU Screen: Ctrl+A then release and press K, and then press Y.
+ </p>
+ <p>There are also others like Minicom but I like GNU Screen</p>
+ <p>
+ By doing this before booting the X60/T60, you will see console output from libreboot. You will also see
+ GRUB displaying on the serial output, and you will be able to see MemTest86+ on the serial output aswell.
+ You can also configure your distro so that a terminal (TTY) is accessible from the serial console.
+ </p>
+ <p>
+ The following guide is for Ubuntu, and can be followed for Trisquel 6.0 which is based on Ubuntu 12.04
+ (should also work in Trisquel 7, based on Ubuntu 14.04) to enable a serial console using GeTTY:<br/>
+ <a href="https://help.ubuntu.com/community/SerialConsoleHowto" target="_blank">https://help.ubuntu.com/community/SerialConsoleHowto</a>
+ </p>
+ <p>
+ Note: part of the tutorial above requires changing your grub.cfg. Just change the <b>linux</b> line to add instructions for enabling getty.
+ See <a href="howtos/grub_cbfs.html">howtos/grub_cbfs.html</a>.
+ </p>
+ <p><a href="#pagetop">Back to top of page</a>
+
+<hr/>
+
+ <h1 id="get_edid_panelname">Get EDID: Find out the name (model) of your LCD panel</h1>
+ <p>
+ Get the panel name with <b>sudo get-edit | strings</b><br/>
+ Or look in <b>/sys/class/drm/card0-LVDS-1/edid</b>
+ </p>
+ <p>
+ If neither of these options work (or they are unavailable), physically removing the LCD panel is an option.
+ Usually, there will be information printed on the back.
+ </p>
+
+ <p><a href="#pagetop">Back to top of page.</a></p>
+
+<hr/>
+
+<pre>
+ Unlisted note: http://inertiawar.com/microcode/
+ (link published to coreboot mailing list on July 8, 2014)
+</pre>
+
+<hr/>
+
+ <p>
+ Copyright &copy; 2014 Francis Rowe, All Rights Reserved.<br/>
+ See <a href="license.html">license.html</a> for license conditions.
+ </p>
+
+</body>
+</html>
+
+