From 8b2219bfa2da36e7809588ef723a10483a6e137f Mon Sep 17 00:00:00 2001 From: Francis Rowe Date: Wed, 05 Nov 2014 20:52:36 -0500 Subject: Documentation: *major* cleanup. Cleanup was long overdue. Old structure was messy and inefficient. --- (limited to 'docs') diff --git a/docs/archive_old.html b/docs/archive_old.html index 9ceb6c3..1b28817 100644 --- a/docs/archive_old.html +++ b/docs/archive_old.html @@ -5,21 +5,7 @@ Libreboot release information (old) @@ -27,7 +13,7 @@

Libreboot release information (old)

- +
@@ -51,12 +37,12 @@

Releases

"Release" means that a new coreboot git revision with substantially different code has been adapted for libreboot. @@ -110,29 +96,28 @@

  • Lenovo ThinkPad X60 Tablet (1024x768 and 1400x1050) with digitizer support
  • - Lenovo ThinkPad T60 (Intel GPU) (there are issues; see below) + Lenovo ThinkPad T60 (Intel GPU) (there are issues; see below)
  • Apple MacBook1,1 (MA255LL/A, MA254LL/A, MA472LL/A)
  • Apple MacBook2,1 (MA699LL/A, MA701LL/A, MB061LL/A, MA700LL/A, MB063LL/A, MB062LL/A)
  • @@ -168,9 +153,9 @@
  • Added modified builddeb* scripts for Parabola GNU/Linux-libre: buildpac, buildpac-flashrom, buildpac-bucts (courtesy of Noah Vesely)
  • Documentation: updated all relevant areas to mention use of buildpac* scripts for Parabola users.
  • Documentation: added information showing how to enable or disable bluetooth on the X60
  • -
  • MacBook1,1 tested! See index.html#macbook11"
  • +
  • MacBook1,1 tested! See hcl/index.html#macbook11
  • Documentation: fixed typo in index.html#get_edid_panelname (get-edit changed to get-edid)
  • -
  • Documentation: added howtos/x60_lcd_change/ (pics only for now)
  • +
  • Documentation: added images/x60_lcd_change/ (pics only for now)
  • Added gcry_serpent and gcry_whirlpool to the GRUB module list in the 'build' script (for luks users)
  • Libreboot is now based on a new coreboot version from August 23rd, 2014:
    @@ -274,7 +259,7 @@
  • Documentation: removed all parts talking about build dependencies, replaced them with links to index.html#build_dependencies
  • Documentation: emphasized more strongly on the documentation, the need to re-build bucts and/or flashrom before flashing a ROM image.
  • build-release: flashrom, nvramtool, cbfstool and bucts are no longer provided pre-compiled in binary archives, and are now in source form only. (to maximize distro compatibility).
  • -
  • Documentation: added howtos/encrypted_trisquel.html showing how to setup a fully encrypted Trisquel installation (including /boot) and boot it from the GRUB payload.
  • +
  • Documentation: added gnulinux/encrypted_trisquel.html showing how to setup a fully encrypted Trisquel installation (including /boot) and boot it from the GRUB payload.
  • 'build' script: replaced grub.elf assembly instructons, it's now handled by a utility added under resources/utilities/grub-assemble
  • Moved resources/grub/keymap to resources/utilities/grub-assemble/keymap, and updated that utility to use it
  • Documentation: removed useless links to pictures of keyboard layouts and unmodified layouts.
  • @@ -308,10 +293,10 @@
  • Documentation: added note about 'fb=false' workaround for text-mode debian-installer (Trisquel net install) to - howtos/grub_boot_installer.html + gnulinux/grub_boot_installer.html
  • - Documentation: updated howtos/grub_cbfs.html to make it safer (and easier) to follow. + Documentation: updated gnulinux/grub_cbfs.html to make it safer (and easier) to follow.
  • @@ -330,11 +315,11 @@
  • build: added 'luks', 'lvm', 'cmosdump' and 'cmostest' to the list of modules for grub.elf
  • Documentation: added pics showing T60 unbricking (still need to write a tutorial)
  • build: include cmos.layout (coreboot/src/mainboard/manufacturer/model/cmos.layout) files in libreboot_bin
  • -
  • Documentation: added howtos/x60tablet_unbrick.html
  • -
  • Documentation: added howtos/t60_unbrick.html
  • -
  • Documentation: added howtos/t60_lcd_15.html
  • -
  • Documentation: added howtos/t60_security.html
  • -
  • Documentation: added howtos/t60_heatsink.html
  • +
  • Documentation: added install/x60tablet_unbrick.html
  • +
  • Documentation: added install/t60_unbrick.html
  • +
  • Documentation: added install/t60_lcd_15.html
  • +
  • Documentation: added install/t60_security.html
  • +
  • Documentation: added install/t60_heatsink.html
  • Documentation: Renamed RELEASE.html to release.html
  • Documentation: removed pcmcia reference in x60_security.html (it's cardbus)
  • Documentation: added preliminary information about randomized seal (for physical intrusion detection) in x60_security.html and t60_security.html
  • @@ -358,7 +343,7 @@ Revisions for 4th beta (2014 July 29th)
      -
    • Documentation: improved (more explanations, background info) in docs/howtos/x60_security.html (courtesy of Denis Carikli)
    • +
    • Documentation: improved (more explanations, background info) in docs/security/x60_security.html (courtesy of Denis Carikli)
    • MacBook2,1 tested (confirmed)
    • macbook21: Added script 'macbook21_firstflash' for flashing libreboot while Apple EFI firmware is running.
    • Documentation: macbook21: added software-based flashing instructions for flashing libreboot while Apple EFI firmware is running.
    • @@ -398,7 +383,7 @@ Documentation: added (preliminary) details about (rare) buggy CPU's on the ThinkPad T60 that were found to fail (instability, kernel panics, etc) without the microcode updates. -
    • Documentation: added docs/howtos/x60_heatsink.html for showing how to change the heatsink on the Thinkpad X60
    • +
    • Documentation: added docs/hardware/x60_heatsink.html for showing how to change the heatsink on the Thinkpad X60
    • Added ROM images for Azerty (French) keyboard layout in GRUB (courtesy of Olivier Mondoloni)
    • Tidied up some scripts: @@ -428,7 +413,7 @@
  • - Documentation: added docs/howtos/x60_security.html (security hardening for X60) + Documentation: added docs/security/x60_security.html (security hardening for X60)
  • @@ -599,7 +584,7 @@
  • Documentation: added notes about cbfstool (standalone) in libreboot_bin
  • -
  • Documentation: made docs/howtos/grub_cbfs.html slightly easier to follow.
  • +
  • Documentation: made docs/gnulinux/grub_cbfs.html slightly easier to follow.
  • Annotate the 'build*' scripts with 'echo' commands, to help the user understand what it actually happening during the build process.
  • Documentation: added information about how 'dmidecode' data was put in the coreboot configs @@ -680,7 +665,8 @@
  • sha512: a773462fd60b529f20e14a82281f962985579bd523c3e6c9ab8639f7a12da8f1ccb44a56c648b19de914a15d4490366222d0bbc80552e91419f2afecbddc10ae
  • - (gluglug.org.uk/X60/release/4/X60_source.tar.gz and gluglug.org.uk/X60/release/4/X60_binary.tar.gz were the old links) + (gluglug.org.uk/X60/release/4/X60_source.tar.gz and gluglug.org.uk/X60/release/4/X60_binary.tar.gz were the old links, + but they no longer exist)

    Development notes

    @@ -810,12 +796,12 @@

    Binaries (for flashing)

    Source code (for hacking)

    Development notes

    @@ -870,12 +856,12 @@

    Binaries (for flashing)

    Source code (for hacking)

    Development notes

    @@ -902,12 +888,12 @@

    Binaries (for flashing)

    Source code (for hacking)

    Development notes

    @@ -936,12 +922,12 @@

    Binaries (for flashing)

    Source code (for hacking)

    Development notes

    diff --git a/docs/css/main.css b/docs/css/main.css new file mode 100644 index 0000000..11a0773 --- /dev/null +++ b/docs/css/main.css @@ -0,0 +1,46 @@ +/* + + Main CSS stylesheet for libreboot.org (documentation section) + + Copyright (C) 2014 Francis Rowe + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +body { + background:#fff; + color:#000; + font-family:100% sans-serif; + font-size:0.875em; +} +p, aside { + margin: 0.33em 0px 0.6em; +} +h1,h2,h3 { + margin-bottom:0.2em; + margin-top:0.2em; +} +img { + max-width:100%; + height:auto; +} +p.lenovobios { + font-weight:bold; color:#f00; font-style:italic; font-size:1.2em; +} +p.lenovobios:hover { + color: #000; +} +div.important, pre { + background-color:#ccc; +} diff --git a/docs/future/dumps/kernel312_irc b/docs/future/dumps/kernel312_irc index c04a00c..3089642 100644 --- a/docs/future/dumps/kernel312_irc +++ b/docs/future/dumps/kernel312_irc @@ -38,7 +38,7 @@ Back then we had no idea that GTT address was incorrect, and we had no idea what Note: see this fix for the initial fix that was found. not working yet -http://review.coreboot.org/#/c/5885/ +http://review.coreboot.org/#/c/5885/ untested. will test this. checkout 5320. cherry pick 5345 on top. @@ -131,13 +131,13 @@ http://lists.freedesktop.org/archives/intel-gfx/2014-May/046310.html
     Note: see this fix for the initial fix that was found.
     
    -see: http://www.coreboot.org/Board:lenovo/x60#Problems_in_native_graphics_code_exposed_by_recent_kernels
    -see: http://www.coreboot.org/Lenovo_x60x_vgainit_todos
    +see: http://www.coreboot.org/Board:lenovo/x60#Problems_in_native_graphics_code_exposed_by_recent_kernels
    +see: http://www.coreboot.org/Lenovo_x60x_vgainit_todos
     
     Non-coreboot (not even i945) platforms also have issues with 3.12+
    -see: https://bugs.freedesktop.org/show_bug.cgi?id=76520
    +see: https://bugs.freedesktop.org/show_bug.cgi?id=76520
     
    -Is this relevant?: http://lists.freedesktop.org/archives/intel-gfx/2014-February/040771.html
    +Is this relevant?: http://lists.freedesktop.org/archives/intel-gfx/2014-February/040771.html
     
     
     
    @@ -244,7 +244,7 @@ fchmmr: samnob we think it might be classed under linux "no regression" policy
     fchmmr: PaulePanter's idea
     samnob: can't hurt to try :)
     
    -Here is the debugging results then: coreboot_native_3.12_bug.tar.gz
    +Here is the debugging results then: coreboot_native_3.12_bug.tar.gz
     
     ---
     
    diff --git a/docs/future/index.html b/docs/future/index.html
    index 52f1ec8..5b86139 100644
    --- a/docs/future/index.html
    +++ b/docs/future/index.html
    @@ -5,13 +5,7 @@
     	libreboot tutorials
     
     	
     
     	
    @@ -28,7 +22,7 @@
     	
     
     	

    - Or go back to main document index. + Or go back to main document index.


    @@ -131,7 +125,7 @@

    LCD panels on i945 - fix incompatible panels

    - Fix T60 issues (see incompatible panels listed at ../index.html#supported_t60_list). + Fix T60 issues (see incompatible panels listed at ../hcl/index.html#supported_t60_list).

    @@ -304,7 +298,7 @@

    Here is an example of how VBT was implemented on the ThinkPad X230: - http://review.coreboot.org/#/c/5396. + http://review.coreboot.org/#/c/5396.

    @@ -323,12 +317,12 @@ Now dump a copy of the running VGA BIOS: $ sudo dd if=/dev/mem bs=64k of=runningvga.bin skip=12 count=1
    Then do (and record the output):
    - $ ./intelvbttool runningvga.bin > intelvbttool_out + $ ./intelvbttool runningvga.bin > intelvbttool_out

    Backup both files (runningvga.bin and intelvbttool_out), renaming them to match the machine and LCD panel used. - ../index.html#get_edid_panelname will show you how to get the name (model) of the LCD panel used. + ../misc/index.html#get_edid_panelname will show you how to get the name (model) of the LCD panel used.

    Test results (# means untested and all had docks, unless noted).

    diff --git a/docs/future/old.html b/docs/future/old.html index 7d72ec7..eeaa96e 100644 --- a/docs/future/old.html +++ b/docs/future/old.html @@ -5,13 +5,7 @@ libreboot tutorials @@ -126,16 +120,16 @@ Add backlight controls: in src/mainboard/lenovo/t60/devicetree.cb, change gpu_backlight to 0x58BF58BE

    - Hold on! Check ../index.html#get_edid_panelname to know what LCD panel you have. This is important for the next step! + Hold on! Check ../misc/index.html#get_edid_panelname to know what LCD panel you have. This is important for the next step!

    Supported panels

    - ../index.html#supported_t60_list. + ../hcl/index.html#supported_t60_list.

    - See #lcd_i945_incompatibility. + See index.html#lcd_i945_incompatibility.

    Back to top of page

    diff --git a/docs/git/index.html b/docs/git/index.html new file mode 100644 index 0000000..a2596c3 --- /dev/null +++ b/docs/git/index.html @@ -0,0 +1,503 @@ + + + + + + + + + Developing libreboot + + + + +

    Developing libreboot

    +

    + This section relates to building libreboot from source, and + working with the git repository. +

    +

    + Or Back to main index. +

    + + +
    + +

    Install build dependencies

    + +

    + Before doing anything, you need the dependencies first. +

    +
      +
    • deps-trisquel script installs dependencies for Trisquel 6 (also tested in Trisquel 7).
    • +
    • deps-parabola script installs dependencies for Parabola
    • +
    + +

    + For all other GNU/Linux distributions, you may have to adapt these scripts. By all means send patches! +

    + +

    Back to top of page

    + +
    + +

    Get the full source code from metadata (git clone)

    + +

    + If you downloaded libreboot from git, then there are some steps to download and patch + the source code for all relevant dependencies. The archive in the git repository used to be + available as a tarball called 'libreboot_meta.tar.gz'. It contains 'metadata' (scripts) + which define how the source was created (where it came from). +

    + +

    + You can use the scripts included to download everything. +

    + +

    + First, install the build dependencies. +

    + +

    + After that, run the get script:
    + $ ./getall +

    + +

    + 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. +

    + +

    + To build the ROM's, see #build. +

    + +

    Back to top of page.

    + +
    + +

    How to build "bucts" (for LenovoBIOS X60/X60S/X60T/T60)

    + +

    + This is for Lenovo BIOS users on the ThinkPad X60/X60S, X60 Tablet and T60. If you have coreboot or libreboot running already, ignore this. +

    + +

    + Bucts is needed when flashing in software the X60/X60S/X60T/T60 ROM while Lenovo BIOS is running; + external flashing will be safe regardless. + 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 "bucts 1" 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 #build_flashrom). + 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 "bucts 0" to + make the machine boot from the normal (highest) block again. +

    + +

    + BUC.TS utility is included in libreboot_src.tar.xz and libreboot_bin.tar.xz.
    + If you downloaded from git, follow #build_meta before you proceed. +

    + +

    + "BUC" means "Backup Control" (it's a register) and "TS" means "Top Swap" + (it's a status bit). Hence "bucts" (BUC.TS). TS 1 and TS 0 corresponds to bucts 1 and bucts 0. +

    + +

    + First, install the build dependencies. +

    + +

    + To build bucts, do this in the main directory:
    + $ ./builddeps-bucts +

    + +

    + The "builddeps" script in libreboot_src also makes use of builddeps-bucts. +

    + +

    Back to top of page.

    + +
    + +

    How to build "flashrom"

    + +

    + Flashrom is the utility for flashing/dumping ROM's. This is what you will use to install libreboot. +

    + +

    + Flashrom source code is included in libreboot_src.tar.gz and libreboot_bin.tar.gz.
    + If you downloaded from git, follow #build_meta before you proceed. +

    + +

    + First, install the build dependencies. +

    + +

    + To build it, do that in the main directory:
    + $ ./builddeps-flashrom +

    + +

    + After you've done that, under ./flashrom/ you will find the following executables: +

    +
      +
    • + flashrom +
        +
      • For flashing while coreboot or libreboot is running.
      • +
      +
    • +
    • + flashrom_lenovobios_sst +
        +
      • This is patched for flashing while Lenovo BIOS is running on an X60 or T60 with the SST25VF016B (SST) flash chip.
      • +
      +
    • +
    • + flashrom_lenovobios_macronix +
        +
      • This is patched for flashing while Lenovo BIOS is running on an X60 or T60 with the MX25L1605D (Macronix) flash chip.
      • +
      +
    • +
    + +

    + The "builddeps" script in libreboot_src also makes use of builddeps-flashrom. +

    + +

    Back to top of page.

    + +
    + +

    Configuring libreboot

    + +

    + 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:
    + $ make menuconfig +

    + +

    + If you've already built a kernel before, you know how to use this interface. +

    + +

    + Configurations are then saved as files called ".config". Copies of each configuration used + for each machine type by the libreboot build scripts are stored in resources/libreboot/config/ +

    + +

    + dmidecode +

    +

    + There is certain information that can be useful to enter in particular: +

    +
      +
    • Local version string
    • +
    • SMBIOS Serial Number
    • +
    • SMBIOS Manufacturer
    • +
    • SMBIOS Version
    • +
    • SMBIOS Product name
    • +
    +

    + This information can be obtained using:
    + $ sudo dmidecode
    + # dmidecode +

    +

    + Specifically, it's good practise to enter the same information for libreboot that you found when running this + with the original BIOS or firmware. libreboot has already done this for you. This information is for reference, + in the hope that it will be useful. +

    + +

    + ThinkPad X60 configuration (file: resources/libreboot/config/x60/config) +

    +
      +
    • General setup / Expert mode = enable
    • +
    • General setup / Local version string = 7BETC7WW (2.08 )
    • +
    • Mainboard / Mainboard vendor = Lenovo
    • +
    • Mainboard / Mainboard model = ThinkPad X60 / X60s / X60t
    • +
    • Mainboard / ROM chip size = 2048 KB (2 MB)
    • +
    • Mainboard / SMBIOS Serial Number = L3BH242
    • +
    • Mainboard / SMBIOS Version Number = ThinkPad X60s
    • +
    • Mainboard / SMBIOS Manufacturer = LENOVO
    • +
    • Mainboard / SMBIOS Product name = 1702L8G
    • +
    • Chipset / Include CPU microcode in CBFS = Do not include microcode updates
    • +
    • Devices / Use native graphics initialization = enable
    • +
    • + Display / Keep VESA framebuffer = disable (disable for text-mode graphics, enable for coreboot vesa framebuffer) +
        +
      • Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at build time + to enable coreboot framebuffer for a separate set of ROM images, in each machine.
      • +
      +
    • +
    • Generic Drivers / Digitizer = Autodetect
    • +
    • Console / Send console output to a CBMEM buffer = enable
    • +
    • Payload / Add a payload = An ELF executable payload
    • +
    • Payload / Payload path and filename = grub.elf
    • +
    +

    + Now go back into Devices: +

    +
      +
    • Devices / Run VGA Option ROMs = disable
    • +
    • Devices / Run Option ROMs on PCI devices = disable
    • +
    +

    + The resulting .config file was saved as resources/libreboot/config/x60/config and is used by the build + scripts for this machine. +

    +

    + This is based on an X60S with the Core 2 Duo L7400 processor. +

    +

    + SMBIOS Version Number is ThinkPad X60 on the X60, but it is believed that the X60 and X60s both have identical + motherboards where the only difference is the CPU. This same configuration is used on the X60 and X60s. +

    + +

    + ThinkPad X60 Tablet configuration (file: resources/libreboot/config/x60t/config) +

    +
      +
    • General setup / Expert mode = enable
    • +
    • General setup / Local version string = 7JET23WW (1.08 )
    • +
    • Mainboard / Mainboard vendor = Lenovo
    • +
    • Mainboard / Mainboard model = ThinkPad X60 / X60s / X60t
    • +
    • Mainboard / ROM chip size = 2048 KB (2 MB)
    • +
    • Mainboard / SMBIOS Serial Number = L3B8281
    • +
    • Mainboard / SMBIOS Version Number = ThinkPad X60 Tablet
    • +
    • Mainboard / SMBIOS Manufacturer = LENOVO
    • +
    • Mainboard / SMBIOS Product name = 6364WJ1
    • +
    • Chipset / Include CPU microcode in CBFS = Do not include microcode updates
    • +
    • Devices / Use native graphics initialization = enable
    • +
    • + Display / Keep VESA framebuffer = disable (disable for text-mode graphics, enable for coreboot vesa framebuffer) +
        +
      • Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at build time + to enable coreboot framebuffer for a separate set of ROM images, in each machine.
      • +
      +
    • +
    • Generic Drivers / Digitizer = Present
    • +
    • Console / Send console output to a CBMEM buffer = enable
    • +
    • Payload / Add a payload = An ELF executable payload
    • +
    • Payload / Payload path and filename = grub.elf
    • +
    +

    + Now go back into Devices: +

    +
      +
    • Devices / Run VGA Option ROMs = disable
    • +
    • Devices / Run Option ROMs on PCI devices = disable
    • +
    +

    + The resulting .config file was saved as resources/libreboot/config/x60t/config and is used by the build + scripts for this machine. +

    +

    + This is based on an X60T with the Core 2 Duo L7400 processor. +

    + +

    + ThinkPad T60 configuration (file: resources/libreboot/config/t60/config) +

    +
      +
    • General setup / Expert mode = enable
    • +
    • General setup / Local version string = 79ETE7WW (2.27 )
    • +
    • Mainboard / Mainboard vendor = Lenovo
    • +
    • Mainboard / Mainboard model = ThinkPad T60 / T60p
    • +
    • Mainboard / ROM chip size = 2048 KB (2 MB)
    • +
    • Mainboard / SMBIOS Serial Number = L3DKE06
    • +
    • Mainboard / SMBIOS Version Number = ThinkPad T60
    • +
    • Mainboard / SMBIOS Manufacturer = LENOVO
    • +
    • Mainboard / SMBIOS Product name = 1951FEG
    • +
    • Chipset / Include CPU microcode in CBFS = Do not include microcode updates
    • +
    • Devices / Use native graphics initialization = enable
    • +
    • + Display / Keep VESA framebuffer = disable (disable for text-mode graphics, enable for coreboot vesa framebuffer) +
        +
      • Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at build time + to enable coreboot framebuffer for a separate set of ROM images, in each machine.
      • +
      +
    • +
    • Console / Send console output to a CBMEM buffer = enable
    • +
    • Payload / Add a payload = An ELF executable payload
    • +
    • Payload / Payload path and filename = grub.elf
    • +
    +

    + Go back into Devices: +

    +
      +
    • Devices / Run VGA Option ROMs = disable
    • +
    • Devices / Run Option ROMs on PCI devices = disable
    • +
    +

    + The resulting .config file was saved as resources/libreboot/config/t60/config and is used by the build + scripts for this machine. +

    +

    + It is believed that the motherboards on 14.1" and 15.1" T60's are the same, so the same configuration is used + on both the 14.1" and 15.1" T60's. +

    + +

    + MacBook2,1 configuration (file: resources/libreboot/config/macbook21/config) +

    +
      +
    • General / Expert mode = enable
    • +
    • General / Local version string = "    MB21.88Z.00A5.B07.0706270922" (without the quotes)
    • +
    • Mainboard / Mainboard vendor = Apple
    • +
    • Mainboard / Mainboard model = Macbook2,1 ICH7 TESTING
    • +
    • Mainboard / ROM chip size = 2048 KB (2 MB)
    • +
    • Mainboard / SMBIOS Serial Number = W8724XXXXXX
    • +
    • Mainboard / SMBIOS Version Number = 1.0
    • +
    • Mainboard / SMBIOS Manufacturer = Apple Inc.
    • +
    • Mainboard / SMBIOS Product Name = MacBook2,1
    • +
    • Chipset / Include CPU microcode in CBFS = Do not include microcode updates
    • +
    • Devices / Use native graphics initialization = enable
    • +
    • + Display / Keep VESA framebuffer = disable (disable for text-mode graphics, enable for coreboot vesa framebuffer) +
        +
      • Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at build time + to enable coreboot framebuffer for a separate set of ROM images, in each machine.
      • +
      +
    • +
    • Console / Send console output to a CBMEM buffer = enable
    • +
    • Payload / Add a payload = An ELF executable payload
    • +
    • Payload / Payload path and filename = grub.elf
    • +
    +

    + Go back and disable option ROM's: +

    +
      +
    • Devices / Run VGA Option ROMs = disable
    • +
    • Devices / Run Option ROMs on PCI devices = disable
    • +
    +

    + The resulting .config file was saved as resources/libreboot/config/macbook21/config and is used by the build + scripts for this machine. This config is also used for the MacBook1,1. +

    + +

    Back to top of page.

    + +
    + +

    How to build the ROM's!

    + +

    You don't need to do much, as there are scripts already written for you that can build everything automatically.

    + +

    + First, install the build dependencies. +

    +

    + If you downloaded libreboot from git, refer to #build_meta. +

    + +

    If running for the first time, run this:
    + $ ./buildall (also performs the "./build" step below)
    + Or if you only want to build dependencies (crossgcc, grub and so on):
    + $ ./builddeps

    + +

    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:
    + $ ./build

    + +

    To un-build (clean) the build dependencies that you built before, do the following:
    + This also deletes the ROM images under ./bin/:
    + $ ./cleandeps

    + +

    Note: after running 'cleandeps', you will need to run 'builddeps' or 'buildall' again before you can use 'build'.

    + +

    After 'build' or 'buildall' has finished, you'll find the ROM images for each machine under ./bin/

    + +

    Preparing release archives (optional)

    + +

    + Run that script:
    + $ ./build-release +

    + +

    + You'll find that the files libreboot_bin.tar.xz and libreboot_src.tar.xz have been created. +

    + +

    Back to top of page

    + +
    + +

    How to add SeaBIOS to your ROM's

    + +

    + SeaBIOS isn't really needed since libreboot uses the GRUB payload which + is much better (for several reasons), so it is no longer included in the ROM + images by default. Instead, you can add it afterwards. +

    + +

    + In the supplied binary archives, or in your own (if you did 'build-release') you can add SeaBIOS + to the ROM images, along with SeaVGABIOS which is a free/libre Video BIOS implementation that wraps + around the 'native graphics initializitation' code in coreboot, for boards that have support for it. +

    + +

    + First, install the build dependencies. +

    + +

    + Build cbfstool:
    + $ ./builddeps-cbfstool +

    + +

    + Now:
    + $ ./addseabios +

    + +

    + SeaBIOS and SeaVGABIOS (which the build scripts created, and the build-release script put - compiled - + inside the binary archive) have now been added to all of the ROM images under ./bin/. A GRUB menuentry will show + up when you boot your machine, allowing you to use SeaBIOS. +

    + +

    Back to top of page

    + +
    + +

    + Copyright © 2014 Francis Rowe <info@gluglug.org.uk>
    + This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions. + A copy of the license can be found at ../license.txt. +

    + +

    + This document is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See ../license.txt for more information. +

    + + + diff --git a/docs/howtos/cbfstool_libreboot5_strace b/docs/gnulinux/cbfstool_libreboot5_strace index 7e3794f..7e3794f 100644 --- a/docs/howtos/cbfstool_libreboot5_strace +++ b/docs/gnulinux/cbfstool_libreboot5_strace diff --git a/docs/howtos/configuring_parabola.html b/docs/gnulinux/configuring_parabola.html index 56c5420..270d2bb 100644 --- a/docs/howtos/configuring_parabola.html +++ b/docs/gnulinux/configuring_parabola.html @@ -5,15 +5,7 @@ Configuring Parabola (post-install) @@ -22,7 +14,7 @@

    Configuring Parabola (post-install)

    - +

    diff --git a/docs/howtos/encrypted_parabola.html b/docs/gnulinux/encrypted_parabola.html index 3a1a75d..ce49cbc 100644 --- a/docs/howtos/encrypted_parabola.html +++ b/docs/gnulinux/encrypted_parabola.html @@ -5,15 +5,7 @@ Installing Parabola GNU/Linux with full disk encryption (including /boot) @@ -22,7 +14,7 @@

    Installing Parabola GNU/Linux with full disk encryption (including /boot)

    - +

    @@ -87,7 +79,7 @@ it is already 'wiped'. You should just wipe the LUKS header. https://www.lisenet.com/2013/luks-add-keys-backup-and-restore-volume-header/ showed me how to do this. It recommends to do the first 3MiB. Now, that guide is recommending putting zero there. I'm doing to use urandom. Do this:
    - # head -c 3145728 /dev/urandom > /dev/sda; sync
    + # head -c 3145728 /dev/urandom > /dev/sda; sync
    (wiping the LUKS header is important, since it has hashed passphrases and so on. It's 'secure', but 'potentially' a risk).

    @@ -279,7 +271,7 @@

    Configure the system

    From the Parabola installation guide (Arch's one was identical):
    - # genfstab -p /mnt >> /mnt/etc/fstab + # genfstab -p /mnt >> /mnt/etc/fstab

    Chroot into new system:
    diff --git a/docs/howtos/encrypted_trisquel.html b/docs/gnulinux/encrypted_trisquel.html index 7599e02..5becddc 100644 --- a/docs/howtos/encrypted_trisquel.html +++ b/docs/gnulinux/encrypted_trisquel.html @@ -5,15 +5,7 @@ Installing Trisquel GNU/Linux with full disk encryption (including /boot) @@ -22,7 +14,7 @@

    Installing Trisquel GNU/Linux with full disk encryption (including /boot)

    - +

    @@ -278,7 +270,7 @@

    After this, you will have a modified ROM with the menu entry for cryptomount, and the entry before that for the GRUB password. Flash the modified ROM - using this tutorial. + using this tutorial.

    diff --git a/docs/howtos/grub_boot_installer.html b/docs/gnulinux/grub_boot_installer.html index 757b48f..6853680 100644 --- a/docs/howtos/grub_boot_installer.html +++ b/docs/gnulinux/grub_boot_installer.html @@ -5,12 +5,7 @@ Libreboot documentation: installing GNU/Linux @@ -19,7 +14,7 @@

    Boot a GNU/Linux installer on USB

    - +

    Prepare the USB drive (in GNU/Linux)

    diff --git a/docs/howtos/grub_cbfs.html b/docs/gnulinux/grub_cbfs.html index e603247..c9a0f45 100644 --- a/docs/howtos/grub_cbfs.html +++ b/docs/gnulinux/grub_cbfs.html @@ -5,15 +5,7 @@ Libreboot documentation: GRUB menu @@ -22,7 +14,7 @@

    How to change your default GRUB menu

    - +

    @@ -44,7 +36,7 @@

    Here is an excellent writeup about CBFS (coreboot filesystem): - http://lennartb.home.xs4all.nl/coreboot/col5.html. + http://lennartb.home.xs4all.nl/coreboot/col5.html.


    @@ -61,8 +53,8 @@ + +
  • Re-insert the modified grubtest.cfg into the ROM image
  • Test it!
  • Final steps
  • @@ -75,13 +67,13 @@

    Download the latest release from - http://libreboot.org/ + http://libreboot.org/
    If you downloaded from git, refer to - ../index.html#build_meta before continuing. + ../git/index.html#build_meta before continuing.

    - Install the build dependencies. + Install the build dependencies.

    @@ -118,7 +110,7 @@

    If you want to re-use the ROM that you currently have flashed (and running) then see - ../index.html#build_flashrom + ../git/index.html#build_flashrom and then run:
    $ sudo ./flashrom -p internal -r libreboot.rom
    Notice that this is using "-r" (read) instead of "-w" (write). @@ -256,7 +248,7 @@ There are lots of possible variations so please try to adapt.

    -

    Parabola GNU/Linux-libre

    +

    Parabola GNU/Linux-libre

    You can basically adapt the above. Note however that Parabola does not keep old kernels still installed, and the file names @@ -303,7 +295,7 @@

    - Now you have a modified ROM. Refer back to ../index.html#flashrom for information + Now you have a modified ROM. Refer back to ../install/index.html#flashrom for information on how to flash it. Once you have done that, shut down and then boot up with your new test configuration.

    @@ -359,7 +351,7 @@

    - Now you have a modified ROM. Refer back to ../index.html#flashrom for information + Now you have a modified ROM. Refer back to ../install/index.html#flashrom for information on how to flash it. Once you have done that, shut down and then boot up with your new configuration.

    diff --git a/docs/gnulinux/index.html b/docs/gnulinux/index.html new file mode 100644 index 0000000..c384575 --- /dev/null +++ b/docs/gnulinux/index.html @@ -0,0 +1,51 @@ + + + + + + + + + GNU/Linux distributions + + + + +

    GNU/Linux distributions

    +

    + This section relates to dealing with GNU/Linux distributions: preparing bootable USB drives, + changing the default GRUB menu and so on. +

    +

    + Or Back to main index. +

    + + +
    + +

    + Copyright © 2014 Francis Rowe <info@gluglug.org.uk>
    + This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions. + A copy of the license can be found at ../license.txt. +

    + +

    + This document is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See ../license.txt for more information. +

    + + + diff --git a/docs/grub/index.html b/docs/grub/index.html new file mode 100644 index 0000000..f2d554a --- /dev/null +++ b/docs/grub/index.html @@ -0,0 +1,123 @@ + + + + + + + + + GRUB payload + + + + +

    GRUB payload

    +

    + This section relates to the GRUB payload used in libreboot. +

    +

    + Or Back to main index. +

    + + +
    + +

    Setting font in GRUB (for reference)

    + +

    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)

    + +

    The old font used was Unifont, and this had some missing characters: for instance, the border showed ??? characters instead of lines.

    + +

    I tried DeJavu Sans Mono from this website: + dejavu-fonts.org

    + +

    Specifically, the version that I chose was the latest at the time of writing (Saturday 21 June 2014): + this one

    + +

    This is a free font that is also contained in GNU/Linux distributions like Trisquel or Parabola.

    + +

    $ cd libreboot_src/grub
    + compile grub ('build' script has the info on how to do this)
    + come back out into libreboot_src/resources/grub:
    + $ cd ../libreboot_src/resources/grub/font

    + +

    I took Dejavu Sans Mono from dejavu (included in this version of libreboot) and did:
    + $ ../../../grub/grub-mkfont -o dejavusansmono.pf2 ../../../dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono.ttf

    + +

    I then added the instructions to 'build' script to include resources/grub/dejavusansmono.pf2 in all of the ROM's in root of cbfs.
    + I then added that instructions to the grub.cfg files (to load the font):
    + loadfont (cbfsdisk)/dejavusansmono.pf2

    + +

    Back to top of page

    + +
    + +

    GRUB keyboard layouts (for reference)

    + +

    Custom keyboard layout in GRUB (for reference)

    + +

    + Keymaps are stored in resources/utilities/grub-assemble/keymap/. +

    + +

    + Example (French Azerty):
    + $ ckbcomp fr > frazerty

    + Go in grub directory:
    + cat frazerty | ./grub/grub-mklayout -o frazerty.gkb +

    + +

    + You must make sure that the files are named keymap and keymap.gkb (where 'keymap' can be whatever you want). +

    + +

    + Then from the above example, you would put frazerty in resources/utilities/grub-assemble/keymap/original/ and + the frazerty.gkb file goes under resources/utilities/grub-assemble/keymap/ +

    + +

    + The scripts build and buildrom-withgrub will automatically see this, and automatically build + ROM's with your custom layout (given the name) and include them under bin. Example: libreboot_frazerty.rom. +

    + +

    Back to top of page

    + +

    UK Dvorak keyboard layout in GRUB (for reference)

    + +

    + ukdvorak had to be created manually, based on usdvorak. diff them (under resources/utilities/grub-assemble/keymap/original) + to see how ukdvorak file was created +

    + +

    $ cat ukdvorak | ./grub/grub-mklayout -o ukdvorak.gkb

    + +

    Back to top of page

    + +
    + +

    + Copyright © 2014 Francis Rowe <info@gluglug.org.uk>
    + This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions. + A copy of the license can be found at ../license.txt. +

    + +

    + This document is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See ../license.txt for more information. +

    + + + diff --git a/docs/howtos/x60_lcd_change.html b/docs/hardware/index.html index 3ddeaac..7a09e6f 100644 --- a/docs/howtos/x60_lcd_change.html +++ b/docs/hardware/index.html @@ -5,36 +5,27 @@ - Libreboot documentation: Unbricking the ThinkPad T60 + Hardware maintenance -
    -

    Changing the LCD panel on X60

    -
    - -

    Or go back to main index

    - -

    This tutorial is incomplete, and only pictures for now.

    - -

    - - - - - - - -

    +

    Hardware maintenance

    +

    + This section relates to hardware maintenance on supported targets. +

    +

    + Or Back to main index. +

    +
    diff --git a/docs/howtos/t60_heatsink.html b/docs/hardware/t60_heatsink.html index f10ea60..c4b68d5 100644 --- a/docs/howtos/t60_heatsink.html +++ b/docs/hardware/t60_heatsink.html @@ -5,12 +5,7 @@ Libreboot documentation: Unbricking the ThinkPad T60 @@ -23,7 +18,7 @@ -

    Or go back to main index

    +

    Or go back to main index

    Hardware requirements

      @@ -41,27 +36,27 @@

      Remove those screws and remove the HDD:
      - +

      Lift off the palm rest:
      - +

      Lift up the keyboard, pull it back a bit, flip it over like that and then disconnect it from the board:
      - +

      Gently wedge both sides loose:
      - +

      Remove that cable from the position:
      - +

      @@ -72,7 +67,7 @@ On the CPU (and there is another chip south-east to it, sorry forgot to take pic) clean off the old thermal paste (rubbing a1ocheal (misspelling intentional. halal internet)) and apply new (Artic Silver 5 is good, others are good too) you should also clean the heatsink the same way
      - +

      @@ -82,37 +77,37 @@

      Attach the heatsink and install the screws (also, make sure to install the AC jack as highlighted):
      - +

      Reinstall that upper bezel:
      - +

      Do that:
      - +

      Attach keyboard:
      - +

      Place keyboard and (sorry, forgot to take pics) reinstall the palmrest and insert screws on the underside:
      - +

      It lives!
      - +

      Always stress test ('stress -c 2' and xsensors. below 90C is ok) when replacing cpu paste/heatsink:
      - +


      diff --git a/docs/howtos/t60_lcd_15.html b/docs/hardware/t60_lcd_15.html index 3b382f5..b1293c1 100644 --- a/docs/howtos/t60_lcd_15.html +++ b/docs/hardware/t60_lcd_15.html @@ -5,15 +5,10 @@ - Libreboot documentation: Unbricking the ThinkPad T60 + Changing LCD panel on 15.1 inch T60 @@ -24,13 +19,13 @@ to remove the hinges and the procedure is a bit more involved than on 15.1". -

      Or go back to main index

      +

      Or go back to main index

      Disassembly

      Remove those covers and unscrew:
      - +

      @@ -39,32 +34,32 @@

      Remove inverter board:
      - +

      Disconnect LCD cable:
      - +

      Remove the panel:
      - +

      Move the rails (left and right side) from the old panel to the new one and then attach LCD cable:
      - +

      - Insert panel (this one is an LG-Philips LP150E05-A2K1, and there are others. See ../index.html#supported_t60_list):
      - + Insert panel (this one is an LG-Philips LP150E05-A2K1, and there are others. See ../hcl/index.html#supported_t60_list):
      +

      - Insert new inverter board (see ../index.html#supported_t60_list for what is recommended on your LCD panel):
      - + Insert new inverter board (see ../hcl/index.html#supported_t60_list for what is recommended on your LCD panel):
      +

      @@ -73,7 +68,7 @@

      It lives!
      - +


      diff --git a/docs/howtos/x60_heatsink.html b/docs/hardware/x60_heatsink.html index 22b55e1..1e14f96 100644 --- a/docs/howtos/x60_heatsink.html +++ b/docs/hardware/x60_heatsink.html @@ -5,12 +5,7 @@ Libreboot documentation: Switch heatsink on ThinkPad X60 @@ -23,7 +18,7 @@ -

      Or go back to main index

      +

      Or go back to main index

      Table of Contents

        @@ -49,75 +44,75 @@

        Disassembly

        Remove those screws:
        - +

        Push the keyboard forward (carefully):
        - +

        Lift the keyboard up and disconnect it from the board:
        - +

        Grab the right-hand side of the chassis and force it off (gently) and pry up the rest of the chassis:
        - +

        You should now have this:
        - +

        Disconnect the wifi antenna cables, the modem cable and the speaker:
        - +

        Unroute the cables along their path, carefully lifting the tape that holds them in place. Then, disconnect the modem cable (other end) and power connection and unroute all the cables so that they dangle by the monitor hinge on the right-hand side:
        - +

        Disconnect the monitor from the motherboard, and unroute the grey antenna cable, carefully lifting the tape that holds it into place:
        - +

        Carefully lift the remaining tape and unroute the left antenna cable so that it is loose:
        - +

        Remove those screws:
        - +

        Remove those screws:
        - +

        Carefully remove the plate, like so:
        - +

        Remove the SATA connector:
        - +

        Now remove the motherboard (gently) and cast the lcd/chassis aside:
        - +

        Look at that black tape above the heatsink, remove it:
        - +

        Now you have removed it:
        - +

        Disconnect the fan and remove all the screws, heatsink will easily come off:
        - +

        diff --git a/docs/howtos/x60_lcd_change.html b/docs/hardware/x60_lcd_change.html index 3ddeaac..261814a 100644 --- a/docs/howtos/x60_lcd_change.html +++ b/docs/hardware/x60_lcd_change.html @@ -5,12 +5,7 @@ Libreboot documentation: Unbricking the ThinkPad T60 @@ -22,18 +17,18 @@

        Changing the LCD panel on X60

        -

        Or go back to main index

        +

        Or go back to main index

        This tutorial is incomplete, and only pictures for now.

        - - - - - - - + + + + + + +


        diff --git a/docs/hcl/index.html b/docs/hcl/index.html new file mode 100644 index 0000000..3ffaea8 --- /dev/null +++ b/docs/hcl/index.html @@ -0,0 +1,593 @@ + + + + + + + + + Hardware compatibility list + + + + +

        Hardware compatibility list

        +

        + This sections relates to known hardware compatibility in libreboot. +

        +

        + Or back to main index. +

        + + +
        + +

        List of supported hardware

        + +

        + Libreboot supports the following machines in this release: +

        + + +

        + 'Supported' means that the build scripts know how to build ROM's for these machines, + and that the machines have been tested (confirmed working). There may be exceptions; + in other words, this is a list of 'officially' supported machines. +

        + +

        + It is also possible to build ROM images (from source) for other machines (and virtual machines, e.g. QEMU). +

        + +

        Back to top of page

        + +
        + +

        Recommended wifi chipsets

        +

        + The following are known to work well: +

        + + +

        Back to top of page

        + +
        + +

        List of supported ThinkPad X60's

        + +

        + Native gpu initialization ('native graphics') which replaces the proprietary VGA Option ROM + ('Video BIOS' or 'VBIOS'), + all known LCD panels are currently compatible: +

        + +

        + To find what LCD panel you have, see: ../misc/index.html#get_edid_panelname. +

        + +
          +
        • TMD-Toshiba LTD121ECHB: #
        • +
        • CMO N121X5-L06: #
        • +
        • Samsung LTN121XJ-L07: #
        • +
        • BOE-Hydis HT121X01-101: #
        • +
        + +

        + You can remove an X61/X61s motherboard from the chassis and install an X60/X60s motherboard in it's place (for flashing libreboot). The chassis is mostly identical + and the motherboards are the same shape/size. +

        + +

        + The X60 typically comes with an Intel wifi chipset which does not work at all without proprietary firmware, and while Lenovo BIOS is running + the machine will refuse to boot if you replace the card. Fortunately it is very easily replaced; + just remove the card and install another one after libreboot is installed. See #recommended_wifi for replacements. +

        + +

        Back to top of page.

        + +
        + +

        List of supported ThinkPad X60 Tablets

        + +

        + Native gpu initialization ('native graphics') which replaces the proprietary VGA Option ROM + ('Video BIOS' or 'VBIOS'). +

        + +

        + To find what LCD panel you have, see: ../misc/index.html#get_edid_panelname. +

        + +

        + There are 5 known LCD panels for the X60 Tablet: +

        +
          +
        • + X60T XGA (1024x768): +
            +
          • BOE-Hydis HV121X03-100 (works)
          • +
          • Samsung LTN121XP01 (does not work. blank screen)
          • +
          • BOE-Hydis HT12X21-351 (does not work. blank screen)
          • +
          +
        • +
        • + X60T SXGA+ (1400x1050): +
            +
          • BOE-Hydis HV121P01-100 (works)
          • +
          • BOE-Hydis HV121P01-101 (works)
          • +
          +
        • +
        + +

        + Most X60T's only have digitizer (pen), but some have finger (touch) aswell as pen; finger/multitouch doesn't work, only digitizer (pen) does. +

        + +

        + You can remove an X61/X61s motherboard from the chassis and install an X60/X60s motherboard in it's place (for flashing libreboot). The chassis is mostly identical + and the motherboards are the same shape/size. It is unknown if the same applies between the X60 Tablet and the X61 Tablet. +

        + +

        + The X60 Tablet typically comes with an Intel wifi chipset which does not work at all without proprietary firmware, and while Lenovo BIOS is running + the machine will refuse to boot if you replace the card. Fortunately it is very easily replaced; + just remove the card and install another one after libreboot is installed. See #recommended_wifi for replacements. +

        + +

        + A user with a X60T that has digitizer+finger support, reported that they could get finger input working. They + used linuxwacom at git tag 0.25.99.2 and had the following in their xorg.conf: +

        + +
        +# Now, for some reason (probably a bug in linuxwacom),
        +# the 'Touch=on' directive gets reset to 'off'.
        +# So you'll need to do
        +# $ xsetwacom --set WTouch Touch on
        +#
        +# tested with linuxwacom git 42a42b2a8636abc9e105559e5dea467163499de7
        +
        +Section "Monitor"
        +    Identifier             "<default monitor>"
        +    DisplaySize     245 184
        +EndSection
        +
        +Section "Screen"
        +    Identifier "Default Screen Section"
        +    Monitor    "<default monitor<"
        +EndSection
        +
        +Section "InputDevice"
        +    Identifier  "WTouch"
        +    Driver      "wacom"
        +    Option      "Device" "/dev/ttyS0"
        +#    Option      "DebugLevel" "12"
        +    Option      "BaudRate" "38400"
        +    Option      "Type" "touch"
        +    Option      "Touch" "on"
        +    Option      "Gesture" "on"
        +    Option      "ForceDevice" "ISDV4"
        +#    Option      "KeepShape" "on"
        +    Option      "Mode" "Absolute"
        +    Option      "RawSample" "2"
        +#    Option      "TPCButton" "off"
        +    Option      "TopX" "17"
        +    Option      "TopY" "53"
        +    Option      "BottomX" "961"
        +    Option      "BottomY" "985"
        +EndSection
        +
        +Section "ServerLayout"
        +  Identifier    "Default Layout"
        +  Screen        "Default Screen Section"
        +  InputDevice   "WTouch" "SendCoreEvents"
        +EndSection
        +
        +
        + +

        Back to top of page.

        + +
        + +

        Supported T60 list

        + +

        + Native gpu initialization ('native graphics') which replaces the proprietary VGA Option ROM + ('Video BIOS' or 'VBIOS'). +

        + +

        + To find what LCD panel you have, see: ../misc/index.html#get_edid_panelname. +

        + +

        + + Some T60's have ATI GPU's, and all T60p's have ATI GPU's These are incompatible! See #t60_ati_intel for how to remedy this. + +

        + +

        + How to dump the EDID:
        + +

        + +

        + Tested LCD panels: working(compatible) +

        +
          +
        • TMD-Toshiba LTD141EN9B (14.1" 1400x1050) (FRU P/N 41W1478 recommended for the inverter board)
        • +
        • Samsung LTN141P4-L02 (14.1" 1400x1050) (FRU P/N 41W1478 recommended for the inverter board)
        • +
        • LG-Philips LP150E05-A2K1 (15.1" 1400x1050) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)
        • +
        • Samsung LTN150P4-L01 (15.1" 1400x1050) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board) (not a T60 screen afaik, but it works)
        • +
        • BOE-Hydis HV150UX1-100 (15.1" 1600x1200) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)
        • +
        • IDtech IAQX10N (15.1" 2048x1536) (GRUB doesn't display at the moment, but GNU/Linux works) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)
        • +
        + +
        + +

        + Tested LCD panels: not working yet (incompatible; see ../future/index.html#lcd_i945_incompatibility) +

        +
          +
        • Samsung LTN141XA-L01 (14.1" 1024x768)
        • +
        • LG-Philips LP150X09 (15.1" 1024x768)
        • +
        • Samsung LTN150XG (15.1" 1024x768) - EDID dump (taken using sudo i2cdump -y 5 0x50)
        • +
        • LG-Philips LP150E06-A5K4 (15.1" 1400x1050) (also, not an official T60 screen)
        • +
        • Samsung LTN154X3-L0A (15.4" 1280x800)
        • +
        + +

        + The following LCD panels are UNTESTED. If you have one of these panels + then please submit a report!: +

        +
          +
        • CMO(IDtech?) N141XC (14.1" 1024x768)
        • +
        • BOE-Hydis HT14X14 (14.1" 1024x768)
        • +
        • TMD-Toshiba LTD141ECMB (14.1" 1024x768)
        • +
        • Boe-Hydis HT14P12 (14.1" 1400x1050) (FRU P/N 41W1478 recommended for the inverter board)
        • +
        • CMO (IDtech?) 13N7068 (15.1" 1024x768)
        • +
        • CMO (IDtech?) 13N7069 (15.1" 1024x768)
        • +
        • BOE-Hydis HV150P01-100 (15.1" 1400x1050) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)
        • +
        • IDtech N150U3-L01 (15.1" 1600x1200) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)
        • +
        • BOE-Hydis HV150UX1-102 (15.1" 1600x1200) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)
        • +
        • IDtech IAQX10S (15.1" 2048x1536) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)
        • +
        • Samsung LTN154P2-L05 (42X4641 42T0329) (15.4" 1680x1050)
        • +
        • LG-Philips LP154W02-TL10 (13N7020 42T0423) (15.4" 1680x1050)
        • +
        • LG-Philips LP154WU1-TLB1 (42T0361) (15.4" 1920x1200) (for T61p but it might work in T60. Unknown!)
        • +
        • Samsung LTN154U2-L05 (42T0408 42T0574) (15.4" 1920x1200) (for T61p but it might work in T60. Unknown!)
        • +
        + +

        + It is unknown whether the 1680x1050 (15.4") and 1920x1200 (15.4") panels use a different inverter board than the 1280x800 panels. +

        + +

        + The T60 typically comes with an Intel wifi chipset which does not work at all without proprietary firmware, and while Lenovo BIOS is running + the machine will refuse to boot if you replace the card. Fortunately it is very easily replaced; + just remove the card and install another one after libreboot is installed. See #recommended_wifi for replacements. +

        + +
        + +

        Back to top of page.

        + +
        + +

        ThinkPad T60 (ATI GPU) and ThinkPad T60 (Intel GPU) differences.

        + +

        + If your T60 is a 14.1" or 15.1" 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. +

        + +

        + As far as I know, 14.1" (Intel GPU) and 15.1" (Intel GPU) T60 motherboards are the same, where + 'spacers' are used on the 15.1" T60. In any case, it makes sense to find one that is guaranteed to fit in your chassis. +

        + +

        + There is also a 15.4" T60 with Intel GPU. +

        + +

        + Note: the T60p laptops all have ATI graphics. + The T60p laptops cannot be used with libreboot under any circumstances. +

        + +

        + The following T60 motherboard (see area highlighted in white) shows an empty space where the ATI GPU would be (this particular motherboard has an Intel GPU):
        + +

        + +

        + 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. +

        + +

        + The 'Video BIOS' is what initializes graphics. +

        + +

        + See: https://en.wikipedia.org/wiki/Video_BIOS.
        + 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. +

        + +

        + 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). +

        + +

        Back to top of page.

        + +
        + +

        Information about the macbook1,1

        + +

        + There is an Apple laptop called the macbook1,1 from 2006 which uses the same i945 chipset as the ThinkPad X60/T60. + A developer ported the MacBook2,1 to coreboot, the ROM images also work on the macbook1,1. +

        + +

        + You can refer to #macbook21 for most of this. Macbook2,1 laptops come with Core 2 Duo processors + which support 64-bit operating systems (and 32-bit). The MacBook1,1 uses Core Duo processors (supports 32-bit OS but not 64-bit), + and it is believed that this is the only difference. +

        + +

        + It is believed that all models are compatible, listed here: +

        + + +

        + Compatible models +

        +

        + Specifically (Order No. / Model No. / CPU): +

        +
          +
        • MA255LL/A / A1181 (EMC 2092) / Core Duo T2500 (tested - working)
        • +
        • MA254LL/A / A1181 (EMC 2092) / Core Duo T2400 (untested)
        • +
        • MA472LL/A / A1181 (EMC 2092) / Core Duo T2500 (untested)
        • +
        + +

        + Also of interest: ../git/index.html#config_macbook21. +

        + +

        + Unbricking: this page shows disassembly guides and mono's page (see #macbook21) + shows the location of the SPI flash chip on the motherboard. How to remove the motherboard. +

        + +

        + No method is yet known for flashing in GNU/Linux while the Apple firmware is running. You will need to disassemble the machine and flash externally. + Reading from flash seems to work. Bus Pirate recommended for external flashing (there are others) and needed tools: clip (eg Pomona 5250), mini usb cable, + bus pirate cable (for connecting Pomona to the bus pirate). +

        + +

        Back to top of page.

        + +
        + +

        Information about the macbook2,1

        + +

        + 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. +

        +

        + 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. +

        +

        + Backups created using wget:
        + $ wget -m -p -E -k -K -np http://macbook.donderklumpen.de/
        + $ wget -m -p -E -k -K -np http://macbook.donderklumpen.de/coreboot/
        + Use -e robots=off if using this trick for other sites and the site restricts using robots.txt +

        + +

        + 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 +

        + +

        + Installing GNU/Linux distributions (on Apple EFI firmware) +

        + +

        + How to boot an ISO: burn it to a CD (like you would normally) and hold down the Alt/Control key while booting. + The bootloader will detect the GNU/Linux CD as 'Windows' (because Apple doesn't think GNU/Linux exists). Install it like you normally would. + When you boot up again, hold Alt/Control once more. The installation (on the HDD) will once again be seen as 'Windows'. (it's not actually Windows, + but Apple likes to think that Apple and Microsoft are all that exist.) + Now to install libreboot, follow ../install/index.html#flashrom_macbook21. +

        + +

        + Information about coreboot +

        + + +

        + coreboot wiki page +

        + + +

        + Compatible models +

        +

        + It is believed that all models are compatible, listed here: +

        + +

        + Specifically (Order No. / Model No. / CPU): +

        +
          +
        • MA699LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T5600 (tested - working)
        • +
        • MA701LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 (tested - working)
        • +
        • MB061LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7200 (untested)
        • +
        • MA700LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 (tested - working)
        • +
        • MB063LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 (untested)
        • +
        • MB062LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 (tested - working)
        • +
        + +

        + Also of interest: ../git/index.html#config_macbook21. +

        + +

        + Unbricking: this page shows disassembly guides and mono's page (see above) + shows the location of the SPI flash chip on the motherboard. How to remove the motherboard. +

        + +

        + Bus Pirate recommended for external flashing (there are others) and needed tools: clip (eg Pomona 5250), mini usb cable, + bus pirate cable (for connecting Pomona to the bus pirate). +

        + +

        + You need to replace OS X with GNU/Linux before flashing libreboot. (OSX won't run at all in libreboot). +

        + +

        + There are some issues with this machine (compared to other computers that libreboot supports): +

        + +

        + This is an apple laptop, so it comes with OS X: it has an Apple keyboard, which means that certain keys you expect are missing: + insert, del, home, end, pgup, pgdown. There is also one mouse button only. Battery life is poor compared to X60/T60 (for now). + It also has other issues: for example, the Apple logo on the back is a hole, exposing the backlight, which means that it glows. You should cover it up. +

        + +

        + The macbook21 gets extremely hot under GNU/Linux and libreboot; Macfanctld (mac fan control daemon) I'm told is a programme (GPLv3 license) that can help with this. +

        + +

        + Debugging the heating issues (initial work):
        + Distro: Trisquel 7. kernel(linux-libre): 3.13.0-32
        + CPU temperatures:
        + 52C(idle)/81C(stress) on factory.bin
        + 70C(idle)/80C(stress) on coreboot(with microcode updates). libreboot results (without microcode updates) were the same.
        + (libreboot and coreboot rom's were both built from the same code, just with or without microcode included in the rom)
        + battery life was higher on original firmware, lower on coreboot/libreboot.
        + microcode patches included [y/n] makes no difference.
        + libreboot: 1hr18min left on idle (99% battery), 42mins left on stress (82% battery)
        + factory.bin: 2 hours left on idle (99% battery), 48mins left on stress (82% battery) +

        +

        + Todo: see what the non-free firmware has in it's ACPI tables using acpidump and iasl -d. Try to implement cstate support in coreboot + (this will allow for lower temperatures). +

        + +

        + + The MacBook2,1 comes with a webcam, which does not work without proprietary software. Also, webcams are a security risk; cover it up! Or remove it. + +

        + +

        + A user reported that they could get better response from the touchpad with the following in their xorg.conf: +

        + +
        +Section "InputClass"
        + Identifier "Synaptics Touchpad"
        + Driver "synaptics"
        + MatchIsTouchpad "on"
        + MatchDevicePath "/dev/input/event*"
        + Driver "synaptics"
        +# The next two values determine how much pressure one needs
        +# for tapping, moving the cursor and other events.
        + Option "FingerLow" "10"
        + Option "FingerHigh" "15"
        +# Do not emulate mouse buttons in the touchpad corners.
        + Option "RTCornerButton" "0"
        + Option "RBCornerButton" "0"
        + Option "LTCornerButton" "0"
        + Option "LBCornerButton" "0"
        +# One finger tap = left-click
        + Option "TapButton1" "1"
        +# Two fingers tap = right-click
        + Option "TapButton2" "3"
        +# Three fingers tap = middle-mouse
        + Option "TapButton3" "2"
        +# Try to not count the palm of the hand landing on the touchpad
        +# as a tap. Not sure if helps.
        + Option "PalmDetect" "1"
        +# The following modifies how long and how fast scrolling continues
        +# after lifting the finger when scrolling
        + Option "CoastingSpeed" "20"
        + Option "CoastingFriction" "200"
        +# Smaller number means that the finger has to travel less distance
        +# for it to count as cursor movement. Larger number prevents cursor
        +# shaking.
        + Option "HorizHysteresis" "10"
        + Option "VertHysteresis" "10"
        +# Prevent two-finger scrolling. Very jerky movement
        + Option "HorizTwoFingerScroll" "0"
        + Option "VertTwoFingerScroll" "0"
        +# Use edge scrolling
        + Option "HorizEdgeScroll" "1"
        + Option "VertEdgeScroll" "1"
        +EndSection
        +
        + +

        Back to top of page.

        + +
        + +

        + Copyright © 2014 Francis Rowe <info@gluglug.org.uk>
        + This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions. + A copy of the license can be found at ../license.txt. +

        + +

        + This document is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See ../../license.txt for more information. +

        + + + diff --git a/docs/howtos/x60_unbrick/0016.jpg b/docs/howtos/x60_unbrick/0016.jpg deleted file mode 100644 index f10ca88..0000000 --- a/docs/howtos/x60_unbrick/0016.jpg +++ /dev/null Binary files differ diff --git a/docs/howtos/x60_unbrick/0018.jpg b/docs/howtos/x60_unbrick/0018.jpg deleted file mode 100644 index 7145d9f..0000000 --- a/docs/howtos/x60_unbrick/0018.jpg +++ /dev/null Binary files differ diff --git a/docs/howtos/x60_unbrick/0019.jpg b/docs/howtos/x60_unbrick/0019.jpg deleted file mode 100644 index 959a6ee..0000000 --- a/docs/howtos/x60_unbrick/0019.jpg +++ /dev/null Binary files differ diff --git a/docs/howtos/x60_unbrick/0021.jpg b/docs/howtos/x60_unbrick/0021.jpg deleted file mode 100644 index 65bcb60..0000000 --- a/docs/howtos/x60_unbrick/0021.jpg +++ /dev/null Binary files differ diff --git a/docs/howtos/x60_unbrick/0022.jpg b/docs/howtos/x60_unbrick/0022.jpg deleted file mode 100644 index cfcad6d..0000000 --- a/docs/howtos/x60_unbrick/0022.jpg +++ /dev/null Binary files differ diff --git a/docs/howtos/x60_unbrick/0023.jpg b/docs/howtos/x60_unbrick/0023.jpg deleted file mode 100644 index 10824fd..0000000 --- a/docs/howtos/x60_unbrick/0023.jpg +++ /dev/null Binary files differ diff --git a/docs/howtos/t60_dev/.htaccess b/docs/images/t60_dev/.htaccess index 75da674..75da674 100644 --- a/docs/howtos/t60_dev/.htaccess +++ b/docs/images/t60_dev/.htaccess diff --git a/docs/howtos/t60_dev/0001.JPG b/docs/images/t60_dev/0001.JPG index 84d2f4f..84d2f4f 100644 --- a/docs/howtos/t60_dev/0001.JPG +++ b/docs/images/t60_dev/0001.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0002.JPG b/docs/images/t60_dev/0002.JPG index 5f8ead5..5f8ead5 100644 --- a/docs/howtos/t60_dev/0002.JPG +++ b/docs/images/t60_dev/0002.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0003.JPG b/docs/images/t60_dev/0003.JPG index 4b0826f..4b0826f 100644 --- a/docs/howtos/t60_dev/0003.JPG +++ b/docs/images/t60_dev/0003.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0004.JPG b/docs/images/t60_dev/0004.JPG index 42d9086..42d9086 100644 --- a/docs/howtos/t60_dev/0004.JPG +++ b/docs/images/t60_dev/0004.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0005.JPG b/docs/images/t60_dev/0005.JPG index 8e9bce3..8e9bce3 100644 --- a/docs/howtos/t60_dev/0005.JPG +++ b/docs/images/t60_dev/0005.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0006.JPG b/docs/images/t60_dev/0006.JPG index 6371b46..6371b46 100644 --- a/docs/howtos/t60_dev/0006.JPG +++ b/docs/images/t60_dev/0006.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0007.JPG b/docs/images/t60_dev/0007.JPG index cedc9d9..cedc9d9 100644 --- a/docs/howtos/t60_dev/0007.JPG +++ b/docs/images/t60_dev/0007.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0008.JPG b/docs/images/t60_dev/0008.JPG index bec57a1..bec57a1 100644 --- a/docs/howtos/t60_dev/0008.JPG +++ b/docs/images/t60_dev/0008.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0009.JPG b/docs/images/t60_dev/0009.JPG index aeeda57..aeeda57 100644 --- a/docs/howtos/t60_dev/0009.JPG +++ b/docs/images/t60_dev/0009.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0010.JPG b/docs/images/t60_dev/0010.JPG index c776171..c776171 100644 --- a/docs/howtos/t60_dev/0010.JPG +++ b/docs/images/t60_dev/0010.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0011.JPG b/docs/images/t60_dev/0011.JPG index 24cb443..24cb443 100644 --- a/docs/howtos/t60_dev/0011.JPG +++ b/docs/images/t60_dev/0011.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0012.JPG b/docs/images/t60_dev/0012.JPG index c719958..c719958 100644 --- a/docs/howtos/t60_dev/0012.JPG +++ b/docs/images/t60_dev/0012.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0013.JPG b/docs/images/t60_dev/0013.JPG index b8ed7ee..b8ed7ee 100644 --- a/docs/howtos/t60_dev/0013.JPG +++ b/docs/images/t60_dev/0013.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0014.JPG b/docs/images/t60_dev/0014.JPG index 5160dc3..5160dc3 100644 --- a/docs/howtos/t60_dev/0014.JPG +++ b/docs/images/t60_dev/0014.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0015.JPG b/docs/images/t60_dev/0015.JPG index 0c1fd18..0c1fd18 100644 --- a/docs/howtos/t60_dev/0015.JPG +++ b/docs/images/t60_dev/0015.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0016.JPG b/docs/images/t60_dev/0016.JPG index c698be2..c698be2 100644 --- a/docs/howtos/t60_dev/0016.JPG +++ b/docs/images/t60_dev/0016.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0017.JPG b/docs/images/t60_dev/0017.JPG index 652a66e..652a66e 100644 --- a/docs/howtos/t60_dev/0017.JPG +++ b/docs/images/t60_dev/0017.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0018.JPG b/docs/images/t60_dev/0018.JPG index cf43067..cf43067 100644 --- a/docs/howtos/t60_dev/0018.JPG +++ b/docs/images/t60_dev/0018.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0019.JPG b/docs/images/t60_dev/0019.JPG index a75f68a..a75f68a 100644 --- a/docs/howtos/t60_dev/0019.JPG +++ b/docs/images/t60_dev/0019.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0020.JPG b/docs/images/t60_dev/0020.JPG index 0c4f7db..0c4f7db 100644 --- a/docs/howtos/t60_dev/0020.JPG +++ b/docs/images/t60_dev/0020.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0021.JPG b/docs/images/t60_dev/0021.JPG index c7d5757..c7d5757 100644 --- a/docs/howtos/t60_dev/0021.JPG +++ b/docs/images/t60_dev/0021.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0022.JPG b/docs/images/t60_dev/0022.JPG index 5971da2..5971da2 100644 --- a/docs/howtos/t60_dev/0022.JPG +++ b/docs/images/t60_dev/0022.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0023.JPG b/docs/images/t60_dev/0023.JPG index 99f67c3..99f67c3 100644 --- a/docs/howtos/t60_dev/0023.JPG +++ b/docs/images/t60_dev/0023.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0024.JPG b/docs/images/t60_dev/0024.JPG index f89b537..f89b537 100644 --- a/docs/howtos/t60_dev/0024.JPG +++ b/docs/images/t60_dev/0024.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0025.JPG b/docs/images/t60_dev/0025.JPG index d6b180e..d6b180e 100644 --- a/docs/howtos/t60_dev/0025.JPG +++ b/docs/images/t60_dev/0025.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0026.JPG b/docs/images/t60_dev/0026.JPG index c8f3299..c8f3299 100644 --- a/docs/howtos/t60_dev/0026.JPG +++ b/docs/images/t60_dev/0026.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0027.JPG b/docs/images/t60_dev/0027.JPG index 10ab8e0..10ab8e0 100644 --- a/docs/howtos/t60_dev/0027.JPG +++ b/docs/images/t60_dev/0027.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0028.JPG b/docs/images/t60_dev/0028.JPG index 64cba1c..64cba1c 100644 --- a/docs/howtos/t60_dev/0028.JPG +++ b/docs/images/t60_dev/0028.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0029.JPG b/docs/images/t60_dev/0029.JPG index 960ebdd..960ebdd 100644 --- a/docs/howtos/t60_dev/0029.JPG +++ b/docs/images/t60_dev/0029.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0030.JPG b/docs/images/t60_dev/0030.JPG index 046fd00..046fd00 100644 --- a/docs/howtos/t60_dev/0030.JPG +++ b/docs/images/t60_dev/0030.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0031.JPG b/docs/images/t60_dev/0031.JPG index 870f22b..870f22b 100644 --- a/docs/howtos/t60_dev/0031.JPG +++ b/docs/images/t60_dev/0031.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0032.JPG b/docs/images/t60_dev/0032.JPG index 70ff44a..70ff44a 100644 --- a/docs/howtos/t60_dev/0032.JPG +++ b/docs/images/t60_dev/0032.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0033.JPG b/docs/images/t60_dev/0033.JPG index 142ca97..142ca97 100644 --- a/docs/howtos/t60_dev/0033.JPG +++ b/docs/images/t60_dev/0033.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0034.JPG b/docs/images/t60_dev/0034.JPG index 907192e..907192e 100644 --- a/docs/howtos/t60_dev/0034.JPG +++ b/docs/images/t60_dev/0034.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0035.JPG b/docs/images/t60_dev/0035.JPG index bf38c89..bf38c89 100644 --- a/docs/howtos/t60_dev/0035.JPG +++ b/docs/images/t60_dev/0035.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0036.JPG b/docs/images/t60_dev/0036.JPG index a7e5bdf..a7e5bdf 100644 --- a/docs/howtos/t60_dev/0036.JPG +++ b/docs/images/t60_dev/0036.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0037.JPG b/docs/images/t60_dev/0037.JPG index ab30c27..ab30c27 100644 --- a/docs/howtos/t60_dev/0037.JPG +++ b/docs/images/t60_dev/0037.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0038.JPG b/docs/images/t60_dev/0038.JPG index 362c547..362c547 100644 --- a/docs/howtos/t60_dev/0038.JPG +++ b/docs/images/t60_dev/0038.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0039.JPG b/docs/images/t60_dev/0039.JPG index 224f72e..224f72e 100644 --- a/docs/howtos/t60_dev/0039.JPG +++ b/docs/images/t60_dev/0039.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0040.JPG b/docs/images/t60_dev/0040.JPG index adcd923..adcd923 100644 --- a/docs/howtos/t60_dev/0040.JPG +++ b/docs/images/t60_dev/0040.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0041.JPG b/docs/images/t60_dev/0041.JPG index 2a04682..2a04682 100644 --- a/docs/howtos/t60_dev/0041.JPG +++ b/docs/images/t60_dev/0041.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0042.JPG b/docs/images/t60_dev/0042.JPG index b5ed8ec..b5ed8ec 100644 --- a/docs/howtos/t60_dev/0042.JPG +++ b/docs/images/t60_dev/0042.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0043.JPG b/docs/images/t60_dev/0043.JPG index 7144a98..7144a98 100644 --- a/docs/howtos/t60_dev/0043.JPG +++ b/docs/images/t60_dev/0043.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0044.JPG b/docs/images/t60_dev/0044.JPG index 27a24c6..27a24c6 100644 --- a/docs/howtos/t60_dev/0044.JPG +++ b/docs/images/t60_dev/0044.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0045.JPG b/docs/images/t60_dev/0045.JPG index 997b498..997b498 100644 --- a/docs/howtos/t60_dev/0045.JPG +++ b/docs/images/t60_dev/0045.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0046.JPG b/docs/images/t60_dev/0046.JPG index 25d6baa..25d6baa 100644 --- a/docs/howtos/t60_dev/0046.JPG +++ b/docs/images/t60_dev/0046.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0047.JPG b/docs/images/t60_dev/0047.JPG index 6b57bf3..6b57bf3 100644 --- a/docs/howtos/t60_dev/0047.JPG +++ b/docs/images/t60_dev/0047.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0048.JPG b/docs/images/t60_dev/0048.JPG index 7339f07..7339f07 100644 --- a/docs/howtos/t60_dev/0048.JPG +++ b/docs/images/t60_dev/0048.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0049.JPG b/docs/images/t60_dev/0049.JPG index cf3a7fd..cf3a7fd 100644 --- a/docs/howtos/t60_dev/0049.JPG +++ b/docs/images/t60_dev/0049.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0050.JPG b/docs/images/t60_dev/0050.JPG index 7de4edd..7de4edd 100644 --- a/docs/howtos/t60_dev/0050.JPG +++ b/docs/images/t60_dev/0050.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0051.JPG b/docs/images/t60_dev/0051.JPG index 87c41b3..87c41b3 100644 --- a/docs/howtos/t60_dev/0051.JPG +++ b/docs/images/t60_dev/0051.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0052.JPG b/docs/images/t60_dev/0052.JPG index 4a8e443..4a8e443 100644 --- a/docs/howtos/t60_dev/0052.JPG +++ b/docs/images/t60_dev/0052.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0053.JPG b/docs/images/t60_dev/0053.JPG index e1044fc..e1044fc 100644 --- a/docs/howtos/t60_dev/0053.JPG +++ b/docs/images/t60_dev/0053.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0054.JPG b/docs/images/t60_dev/0054.JPG index c96c020..c96c020 100644 --- a/docs/howtos/t60_dev/0054.JPG +++ b/docs/images/t60_dev/0054.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0055.JPG b/docs/images/t60_dev/0055.JPG index 6da87d5..6da87d5 100644 --- a/docs/howtos/t60_dev/0055.JPG +++ b/docs/images/t60_dev/0055.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0056.JPG b/docs/images/t60_dev/0056.JPG index 81a6659..81a6659 100644 --- a/docs/howtos/t60_dev/0056.JPG +++ b/docs/images/t60_dev/0056.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0057.JPG b/docs/images/t60_dev/0057.JPG index 268fede..268fede 100644 --- a/docs/howtos/t60_dev/0057.JPG +++ b/docs/images/t60_dev/0057.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0058.JPG b/docs/images/t60_dev/0058.JPG index bedfb12..bedfb12 100644 --- a/docs/howtos/t60_dev/0058.JPG +++ b/docs/images/t60_dev/0058.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0059.JPG b/docs/images/t60_dev/0059.JPG index 422687c..422687c 100644 --- a/docs/howtos/t60_dev/0059.JPG +++ b/docs/images/t60_dev/0059.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0060.JPG b/docs/images/t60_dev/0060.JPG index 8743c0d..8743c0d 100644 --- a/docs/howtos/t60_dev/0060.JPG +++ b/docs/images/t60_dev/0060.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0061.JPG b/docs/images/t60_dev/0061.JPG index e05f626..e05f626 100644 --- a/docs/howtos/t60_dev/0061.JPG +++ b/docs/images/t60_dev/0061.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0062.JPG b/docs/images/t60_dev/0062.JPG index 1fe77a7..1fe77a7 100644 --- a/docs/howtos/t60_dev/0062.JPG +++ b/docs/images/t60_dev/0062.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0063.JPG b/docs/images/t60_dev/0063.JPG index 87b7761..87b7761 100644 --- a/docs/howtos/t60_dev/0063.JPG +++ b/docs/images/t60_dev/0063.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0064.JPG b/docs/images/t60_dev/0064.JPG index e80189e..e80189e 100644 --- a/docs/howtos/t60_dev/0064.JPG +++ b/docs/images/t60_dev/0064.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0065.JPG b/docs/images/t60_dev/0065.JPG index 4e77a88..4e77a88 100644 --- a/docs/howtos/t60_dev/0065.JPG +++ b/docs/images/t60_dev/0065.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0066.JPG b/docs/images/t60_dev/0066.JPG index 793c0f8..793c0f8 100644 --- a/docs/howtos/t60_dev/0066.JPG +++ b/docs/images/t60_dev/0066.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0068.JPG b/docs/images/t60_dev/0068.JPG index 9f9f299..9f9f299 100644 --- a/docs/howtos/t60_dev/0068.JPG +++ b/docs/images/t60_dev/0068.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0069.JPG b/docs/images/t60_dev/0069.JPG index 98931e6..98931e6 100644 --- a/docs/howtos/t60_dev/0069.JPG +++ b/docs/images/t60_dev/0069.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0070.JPG b/docs/images/t60_dev/0070.JPG index 09958c3..09958c3 100644 --- a/docs/howtos/t60_dev/0070.JPG +++ b/docs/images/t60_dev/0070.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0071.JPG b/docs/images/t60_dev/0071.JPG index 104d21e..104d21e 100644 --- a/docs/howtos/t60_dev/0071.JPG +++ b/docs/images/t60_dev/0071.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0072.JPG b/docs/images/t60_dev/0072.JPG index 66c8e3b..66c8e3b 100644 --- a/docs/howtos/t60_dev/0072.JPG +++ b/docs/images/t60_dev/0072.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0073.JPG b/docs/images/t60_dev/0073.JPG index 5d9b9fa..5d9b9fa 100644 --- a/docs/howtos/t60_dev/0073.JPG +++ b/docs/images/t60_dev/0073.JPG Binary files differ diff --git a/docs/howtos/t60_dev/0074.JPG b/docs/images/t60_dev/0074.JPG index 303264a..303264a 100644 --- a/docs/howtos/t60_dev/0074.JPG +++ b/docs/images/t60_dev/0074.JPG Binary files differ diff --git a/docs/howtos/t60_dev/t60_unbrick.jpg b/docs/images/t60_dev/t60_unbrick.jpg index 820a9b4..820a9b4 100644 --- a/docs/howtos/t60_dev/t60_unbrick.jpg +++ b/docs/images/t60_dev/t60_unbrick.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0000.jpg b/docs/images/x60_heatsink/0000.jpg index ce0ec3b..ce0ec3b 100644 --- a/docs/howtos/x60_heatsink/0000.jpg +++ b/docs/images/x60_heatsink/0000.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0001.jpg b/docs/images/x60_heatsink/0001.jpg index 2bbc0ca..2bbc0ca 100644 --- a/docs/howtos/x60_heatsink/0001.jpg +++ b/docs/images/x60_heatsink/0001.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0002.jpg b/docs/images/x60_heatsink/0002.jpg index b55db3b..b55db3b 100644 --- a/docs/howtos/x60_heatsink/0002.jpg +++ b/docs/images/x60_heatsink/0002.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0003.jpg b/docs/images/x60_heatsink/0003.jpg index c5799ae..c5799ae 100644 --- a/docs/howtos/x60_heatsink/0003.jpg +++ b/docs/images/x60_heatsink/0003.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0004.jpg b/docs/images/x60_heatsink/0004.jpg index cd47840..cd47840 100644 --- a/docs/howtos/x60_heatsink/0004.jpg +++ b/docs/images/x60_heatsink/0004.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0005.jpg b/docs/images/x60_heatsink/0005.jpg index 418c9d2..418c9d2 100644 --- a/docs/howtos/x60_heatsink/0005.jpg +++ b/docs/images/x60_heatsink/0005.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0006.jpg b/docs/images/x60_heatsink/0006.jpg index 6d36d93..6d36d93 100644 --- a/docs/howtos/x60_heatsink/0006.jpg +++ b/docs/images/x60_heatsink/0006.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0007.jpg b/docs/images/x60_heatsink/0007.jpg index 971ccdf..971ccdf 100644 --- a/docs/howtos/x60_heatsink/0007.jpg +++ b/docs/images/x60_heatsink/0007.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0008.jpg b/docs/images/x60_heatsink/0008.jpg index 24e6526..24e6526 100644 --- a/docs/howtos/x60_heatsink/0008.jpg +++ b/docs/images/x60_heatsink/0008.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0009.jpg b/docs/images/x60_heatsink/0009.jpg index d318395..d318395 100644 --- a/docs/howtos/x60_heatsink/0009.jpg +++ b/docs/images/x60_heatsink/0009.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0010.jpg b/docs/images/x60_heatsink/0010.jpg index 5e6fdc7..5e6fdc7 100644 --- a/docs/howtos/x60_heatsink/0010.jpg +++ b/docs/images/x60_heatsink/0010.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0011.jpg b/docs/images/x60_heatsink/0011.jpg index 101cf6a..101cf6a 100644 --- a/docs/howtos/x60_heatsink/0011.jpg +++ b/docs/images/x60_heatsink/0011.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0012.jpg b/docs/images/x60_heatsink/0012.jpg index dbb6669..dbb6669 100644 --- a/docs/howtos/x60_heatsink/0012.jpg +++ b/docs/images/x60_heatsink/0012.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0013.jpg b/docs/images/x60_heatsink/0013.jpg index 2d2b9dd..2d2b9dd 100644 --- a/docs/howtos/x60_heatsink/0013.jpg +++ b/docs/images/x60_heatsink/0013.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0014.jpg b/docs/images/x60_heatsink/0014.jpg index 733f997..733f997 100644 --- a/docs/howtos/x60_heatsink/0014.jpg +++ b/docs/images/x60_heatsink/0014.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0015.jpg b/docs/images/x60_heatsink/0015.jpg index 1e81166..1e81166 100644 --- a/docs/howtos/x60_heatsink/0015.jpg +++ b/docs/images/x60_heatsink/0015.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0016.jpg b/docs/images/x60_heatsink/0016.jpg index ea418a5..ea418a5 100644 --- a/docs/howtos/x60_heatsink/0016.jpg +++ b/docs/images/x60_heatsink/0016.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0017.jpg b/docs/images/x60_heatsink/0017.jpg index 8a67482..8a67482 100644 --- a/docs/howtos/x60_heatsink/0017.jpg +++ b/docs/images/x60_heatsink/0017.jpg Binary files differ diff --git a/docs/howtos/x60_heatsink/0018.jpg b/docs/images/x60_heatsink/0018.jpg index 98c43ac..98c43ac 100644 --- a/docs/howtos/x60_heatsink/0018.jpg +++ b/docs/images/x60_heatsink/0018.jpg Binary files differ diff --git a/docs/howtos/x60_lcd_change/0001.JPG b/docs/images/x60_lcd_change/0001.JPG index fd066eb..fd066eb 100755 --- a/docs/howtos/x60_lcd_change/0001.JPG +++ b/docs/images/x60_lcd_change/0001.JPG Binary files differ diff --git a/docs/howtos/x60_lcd_change/0002.JPG b/docs/images/x60_lcd_change/0002.JPG index 96949f1..96949f1 100755 --- a/docs/howtos/x60_lcd_change/0002.JPG +++ b/docs/images/x60_lcd_change/0002.JPG Binary files differ diff --git a/docs/howtos/x60_lcd_change/0003.JPG b/docs/images/x60_lcd_change/0003.JPG index 90216aa..90216aa 100755 --- a/docs/howtos/x60_lcd_change/0003.JPG +++ b/docs/images/x60_lcd_change/0003.JPG Binary files differ diff --git a/docs/howtos/x60_lcd_change/0004.JPG b/docs/images/x60_lcd_change/0004.JPG index 3b704a4..3b704a4 100755 --- a/docs/howtos/x60_lcd_change/0004.JPG +++ b/docs/images/x60_lcd_change/0004.JPG Binary files differ diff --git a/docs/howtos/x60_lcd_change/0005.JPG b/docs/images/x60_lcd_change/0005.JPG index 823bab9..823bab9 100755 --- a/docs/howtos/x60_lcd_change/0005.JPG +++ b/docs/images/x60_lcd_change/0005.JPG Binary files differ diff --git a/docs/howtos/x60_lcd_change/0006.JPG b/docs/images/x60_lcd_change/0006.JPG index 040f2ca..040f2ca 100755 --- a/docs/howtos/x60_lcd_change/0006.JPG +++ b/docs/images/x60_lcd_change/0006.JPG Binary files differ diff --git a/docs/howtos/x60_lcd_change/0007.JPG b/docs/images/x60_lcd_change/0007.JPG index 42c2607..42c2607 100755 --- a/docs/howtos/x60_lcd_change/0007.JPG +++ b/docs/images/x60_lcd_change/0007.JPG Binary files differ diff --git a/docs/howtos/x60_security/0000.jpg b/docs/images/x60_security/0000.jpg index ce0ec3b..ce0ec3b 100644 --- a/docs/howtos/x60_security/0000.jpg +++ b/docs/images/x60_security/0000.jpg Binary files differ diff --git a/docs/howtos/x60_security/0000_bluetooth.jpg b/docs/images/x60_security/0000_bluetooth.jpg index 94a255f..94a255f 100644 --- a/docs/howtos/x60_security/0000_bluetooth.jpg +++ b/docs/images/x60_security/0000_bluetooth.jpg Binary files differ diff --git a/docs/howtos/x60_security/0000_bluetooth0.jpg b/docs/images/x60_security/0000_bluetooth0.jpg index a750b0c..a750b0c 100644 --- a/docs/howtos/x60_security/0000_bluetooth0.jpg +++ b/docs/images/x60_security/0000_bluetooth0.jpg Binary files differ diff --git a/docs/howtos/x60_security/0000_simcard0.jpg b/docs/images/x60_security/0000_simcard0.jpg index 40837ea..40837ea 100644 --- a/docs/howtos/x60_security/0000_simcard0.jpg +++ b/docs/images/x60_security/0000_simcard0.jpg Binary files differ diff --git a/docs/howtos/x60_security/0000_simcard1.jpg b/docs/images/x60_security/0000_simcard1.jpg index c0a5b35..c0a5b35 100644 --- a/docs/howtos/x60_security/0000_simcard1.jpg +++ b/docs/images/x60_security/0000_simcard1.jpg Binary files differ diff --git a/docs/howtos/x60_security/0001.jpg b/docs/images/x60_security/0001.jpg index 2bbc0ca..2bbc0ca 100644 --- a/docs/howtos/x60_security/0001.jpg +++ b/docs/images/x60_security/0001.jpg Binary files differ diff --git a/docs/howtos/x60_security/0001_microphone.jpg b/docs/images/x60_security/0001_microphone.jpg index c419060..c419060 100644 --- a/docs/howtos/x60_security/0001_microphone.jpg +++ b/docs/images/x60_security/0001_microphone.jpg Binary files differ diff --git a/docs/howtos/x60_security/0001_modem.jpg b/docs/images/x60_security/0001_modem.jpg index 6a7a6a0..6a7a6a0 100644 --- a/docs/howtos/x60_security/0001_modem.jpg +++ b/docs/images/x60_security/0001_modem.jpg Binary files differ diff --git a/docs/howtos/x60_security/0001_overview.jpg b/docs/images/x60_security/0001_overview.jpg index 7268e49..7268e49 100644 --- a/docs/howtos/x60_security/0001_overview.jpg +++ b/docs/images/x60_security/0001_overview.jpg Binary files differ diff --git a/docs/howtos/x60_security/0001_speaker.jpg b/docs/images/x60_security/0001_speaker.jpg index 28d3ed6..28d3ed6 100644 --- a/docs/howtos/x60_security/0001_speaker.jpg +++ b/docs/images/x60_security/0001_speaker.jpg Binary files differ diff --git a/docs/howtos/x60_security/0001_wlan_wwan.jpg b/docs/images/x60_security/0001_wlan_wwan.jpg index 0db858d..0db858d 100644 --- a/docs/howtos/x60_security/0001_wlan_wwan.jpg +++ b/docs/images/x60_security/0001_wlan_wwan.jpg Binary files differ diff --git a/docs/howtos/x60_security/0002.jpg b/docs/images/x60_security/0002.jpg index b55db3b..b55db3b 100644 --- a/docs/howtos/x60_security/0002.jpg +++ b/docs/images/x60_security/0002.jpg Binary files differ diff --git a/docs/howtos/x60_security/0003.jpg b/docs/images/x60_security/0003.jpg index c5799ae..c5799ae 100644 --- a/docs/howtos/x60_security/0003.jpg +++ b/docs/images/x60_security/0003.jpg Binary files differ diff --git a/docs/howtos/x60_security/0004.jpg b/docs/images/x60_security/0004.jpg index cd47840..cd47840 100644 --- a/docs/howtos/x60_security/0004.jpg +++ b/docs/images/x60_security/0004.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0000.jpg b/docs/images/x60_unbrick/0000.jpg index ce0ec3b..ce0ec3b 100644 --- a/docs/howtos/x60_unbrick/0000.jpg +++ b/docs/images/x60_unbrick/0000.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0001.jpg b/docs/images/x60_unbrick/0001.jpg index 2bbc0ca..2bbc0ca 100644 --- a/docs/howtos/x60_unbrick/0001.jpg +++ b/docs/images/x60_unbrick/0001.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0002.jpg b/docs/images/x60_unbrick/0002.jpg index b55db3b..b55db3b 100644 --- a/docs/howtos/x60_unbrick/0002.jpg +++ b/docs/images/x60_unbrick/0002.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0003.jpg b/docs/images/x60_unbrick/0003.jpg index c5799ae..c5799ae 100644 --- a/docs/howtos/x60_unbrick/0003.jpg +++ b/docs/images/x60_unbrick/0003.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0004.jpg b/docs/images/x60_unbrick/0004.jpg index cd47840..cd47840 100644 --- a/docs/howtos/x60_unbrick/0004.jpg +++ b/docs/images/x60_unbrick/0004.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0005.jpg b/docs/images/x60_unbrick/0005.jpg index 418c9d2..418c9d2 100644 --- a/docs/howtos/x60_unbrick/0005.jpg +++ b/docs/images/x60_unbrick/0005.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0006.jpg b/docs/images/x60_unbrick/0006.jpg index 6d36d93..6d36d93 100644 --- a/docs/howtos/x60_unbrick/0006.jpg +++ b/docs/images/x60_unbrick/0006.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0007.jpg b/docs/images/x60_unbrick/0007.jpg index 971ccdf..971ccdf 100644 --- a/docs/howtos/x60_unbrick/0007.jpg +++ b/docs/images/x60_unbrick/0007.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0008.jpg b/docs/images/x60_unbrick/0008.jpg index 24e6526..24e6526 100644 --- a/docs/howtos/x60_unbrick/0008.jpg +++ b/docs/images/x60_unbrick/0008.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0009.jpg b/docs/images/x60_unbrick/0009.jpg index d318395..d318395 100644 --- a/docs/howtos/x60_unbrick/0009.jpg +++ b/docs/images/x60_unbrick/0009.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0010.jpg b/docs/images/x60_unbrick/0010.jpg index 5e6fdc7..5e6fdc7 100644 --- a/docs/howtos/x60_unbrick/0010.jpg +++ b/docs/images/x60_unbrick/0010.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0011.jpg b/docs/images/x60_unbrick/0011.jpg index edc14c7..edc14c7 100644 --- a/docs/howtos/x60_unbrick/0011.jpg +++ b/docs/images/x60_unbrick/0011.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0012.jpg b/docs/images/x60_unbrick/0012.jpg index dbb6669..dbb6669 100644 --- a/docs/howtos/x60_unbrick/0012.jpg +++ b/docs/images/x60_unbrick/0012.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0013.jpg b/docs/images/x60_unbrick/0013.jpg index 2d2b9dd..2d2b9dd 100644 --- a/docs/howtos/x60_unbrick/0013.jpg +++ b/docs/images/x60_unbrick/0013.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0014.jpg b/docs/images/x60_unbrick/0014.jpg index 733f997..733f997 100644 --- a/docs/howtos/x60_unbrick/0014.jpg +++ b/docs/images/x60_unbrick/0014.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0015.jpg b/docs/images/x60_unbrick/0015.jpg index 1e81166..1e81166 100644 --- a/docs/howtos/x60_unbrick/0015.jpg +++ b/docs/images/x60_unbrick/0015.jpg Binary files differ diff --git a/docs/images/x60_unbrick/0016.jpg b/docs/images/x60_unbrick/0016.jpg new file mode 100644 index 0000000..a44b2e6 --- /dev/null +++ b/docs/images/x60_unbrick/0016.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0017.jpg b/docs/images/x60_unbrick/0017.jpg index 69b28c0..69b28c0 100644 --- a/docs/howtos/x60_unbrick/0017.jpg +++ b/docs/images/x60_unbrick/0017.jpg Binary files differ diff --git a/docs/images/x60_unbrick/0019.jpg b/docs/images/x60_unbrick/0019.jpg new file mode 100644 index 0000000..f88cc22 --- /dev/null +++ b/docs/images/x60_unbrick/0019.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0020.jpg b/docs/images/x60_unbrick/0020.jpg index e6b2536..e6b2536 100644 --- a/docs/howtos/x60_unbrick/0020.jpg +++ b/docs/images/x60_unbrick/0020.jpg Binary files differ diff --git a/docs/images/x60_unbrick/0022.jpg b/docs/images/x60_unbrick/0022.jpg new file mode 100644 index 0000000..cb2bf33 --- /dev/null +++ b/docs/images/x60_unbrick/0022.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0024.jpg b/docs/images/x60_unbrick/0024.jpg index 9ce9d45..9ce9d45 100644 --- a/docs/howtos/x60_unbrick/0024.jpg +++ b/docs/images/x60_unbrick/0024.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0025.jpg b/docs/images/x60_unbrick/0025.jpg index 7b6da73..7b6da73 100644 --- a/docs/howtos/x60_unbrick/0025.jpg +++ b/docs/images/x60_unbrick/0025.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0026.jpg b/docs/images/x60_unbrick/0026.jpg index 526c11c..526c11c 100644 --- a/docs/howtos/x60_unbrick/0026.jpg +++ b/docs/images/x60_unbrick/0026.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0027.jpg b/docs/images/x60_unbrick/0027.jpg index 877dc59..877dc59 100644 --- a/docs/howtos/x60_unbrick/0027.jpg +++ b/docs/images/x60_unbrick/0027.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0028.jpg b/docs/images/x60_unbrick/0028.jpg index d22d932..d22d932 100644 --- a/docs/howtos/x60_unbrick/0028.jpg +++ b/docs/images/x60_unbrick/0028.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0029.jpg b/docs/images/x60_unbrick/0029.jpg index 27f9190..27f9190 100644 --- a/docs/howtos/x60_unbrick/0029.jpg +++ b/docs/images/x60_unbrick/0029.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0030.jpg b/docs/images/x60_unbrick/0030.jpg index 813b5c6..813b5c6 100644 --- a/docs/howtos/x60_unbrick/0030.jpg +++ b/docs/images/x60_unbrick/0030.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0031.jpg b/docs/images/x60_unbrick/0031.jpg index 49fe541..49fe541 100644 --- a/docs/howtos/x60_unbrick/0031.jpg +++ b/docs/images/x60_unbrick/0031.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0032.jpg b/docs/images/x60_unbrick/0032.jpg index e8625ef..e8625ef 100644 --- a/docs/howtos/x60_unbrick/0032.jpg +++ b/docs/images/x60_unbrick/0032.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0033.jpg b/docs/images/x60_unbrick/0033.jpg index 3abfa37..3abfa37 100644 --- a/docs/howtos/x60_unbrick/0033.jpg +++ b/docs/images/x60_unbrick/0033.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0034.jpg b/docs/images/x60_unbrick/0034.jpg index c8ab597..c8ab597 100644 --- a/docs/howtos/x60_unbrick/0034.jpg +++ b/docs/images/x60_unbrick/0034.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0035.jpg b/docs/images/x60_unbrick/0035.jpg index 03d5482..03d5482 100644 --- a/docs/howtos/x60_unbrick/0035.jpg +++ b/docs/images/x60_unbrick/0035.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0036.jpg b/docs/images/x60_unbrick/0036.jpg index 244c06c..244c06c 100644 --- a/docs/howtos/x60_unbrick/0036.jpg +++ b/docs/images/x60_unbrick/0036.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0037.jpg b/docs/images/x60_unbrick/0037.jpg index f55db4f..f55db4f 100644 --- a/docs/howtos/x60_unbrick/0037.jpg +++ b/docs/images/x60_unbrick/0037.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0038.jpg b/docs/images/x60_unbrick/0038.jpg index 0735825..0735825 100644 --- a/docs/howtos/x60_unbrick/0038.jpg +++ b/docs/images/x60_unbrick/0038.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0039.jpg b/docs/images/x60_unbrick/0039.jpg index dff9ba4..dff9ba4 100644 --- a/docs/howtos/x60_unbrick/0039.jpg +++ b/docs/images/x60_unbrick/0039.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0040.jpg b/docs/images/x60_unbrick/0040.jpg index 74a9b7f..74a9b7f 100644 --- a/docs/howtos/x60_unbrick/0040.jpg +++ b/docs/images/x60_unbrick/0040.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0041.jpg b/docs/images/x60_unbrick/0041.jpg index 1b15834..1b15834 100644 --- a/docs/howtos/x60_unbrick/0041.jpg +++ b/docs/images/x60_unbrick/0041.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0042.jpg b/docs/images/x60_unbrick/0042.jpg index 849a260..849a260 100644 --- a/docs/howtos/x60_unbrick/0042.jpg +++ b/docs/images/x60_unbrick/0042.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0043.jpg b/docs/images/x60_unbrick/0043.jpg index c842695..c842695 100644 --- a/docs/howtos/x60_unbrick/0043.jpg +++ b/docs/images/x60_unbrick/0043.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0044.jpg b/docs/images/x60_unbrick/0044.jpg index 2b78380..2b78380 100644 --- a/docs/howtos/x60_unbrick/0044.jpg +++ b/docs/images/x60_unbrick/0044.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0045.jpg b/docs/images/x60_unbrick/0045.jpg index d6d8e2d..d6d8e2d 100644 --- a/docs/howtos/x60_unbrick/0045.jpg +++ b/docs/images/x60_unbrick/0045.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0046.jpg b/docs/images/x60_unbrick/0046.jpg index 5eef878..5eef878 100644 --- a/docs/howtos/x60_unbrick/0046.jpg +++ b/docs/images/x60_unbrick/0046.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0047.jpg b/docs/images/x60_unbrick/0047.jpg index 87517e0..87517e0 100644 --- a/docs/howtos/x60_unbrick/0047.jpg +++ b/docs/images/x60_unbrick/0047.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0048.jpg b/docs/images/x60_unbrick/0048.jpg index a701a48..a701a48 100644 --- a/docs/howtos/x60_unbrick/0048.jpg +++ b/docs/images/x60_unbrick/0048.jpg Binary files differ diff --git a/docs/howtos/x60_unbrick/0049.jpg b/docs/images/x60_unbrick/0049.jpg index 630ac53..630ac53 100644 --- a/docs/howtos/x60_unbrick/0049.jpg +++ b/docs/images/x60_unbrick/0049.jpg Binary files differ diff --git a/docs/howtos/x60t_unbrick/.htaccess b/docs/images/x60t_unbrick/.htaccess index 75da674..75da674 100644 --- a/docs/howtos/x60t_unbrick/.htaccess +++ b/docs/images/x60t_unbrick/.htaccess diff --git a/docs/howtos/x60t_unbrick/0000.JPG b/docs/images/x60t_unbrick/0000.JPG index 4d8de31..4d8de31 100644 --- a/docs/howtos/x60t_unbrick/0000.JPG +++ b/docs/images/x60t_unbrick/0000.JPG Binary files differ diff --git a/docs/howtos/x60t_unbrick/0001.JPG b/docs/images/x60t_unbrick/0001.JPG index 7783c4f..7783c4f 100644 --- a/docs/howtos/x60t_unbrick/0001.JPG +++ b/docs/images/x60t_unbrick/0001.JPG Binary files differ diff --git a/docs/howtos/x60t_unbrick/0002.JPG b/docs/images/x60t_unbrick/0002.JPG index ddc6aac..ddc6aac 100644 --- a/docs/howtos/x60t_unbrick/0002.JPG +++ b/docs/images/x60t_unbrick/0002.JPG Binary files differ diff --git a/docs/howtos/x60t_unbrick/0003.JPG b/docs/images/x60t_unbrick/0003.JPG index e1b6586..e1b6586 100644 --- a/docs/howtos/x60t_unbrick/0003.JPG +++ b/docs/images/x60t_unbrick/0003.JPG Binary files differ diff --git a/docs/howtos/x60t_unbrick/0004.JPG b/docs/images/x60t_unbrick/0004.JPG index b4ae18d..b4ae18d 100644 --- a/docs/howtos/x60t_unbrick/0004.JPG +++ b/docs/images/x60t_unbrick/0004.JPG Binary files differ diff --git a/docs/howtos/x60t_unbrick/0005.JPG b/docs/images/x60t_unbrick/0005.JPG index b7b324b..b7b324b 100644 --- a/docs/howtos/x60t_unbrick/0005.JPG +++ b/docs/images/x60t_unbrick/0005.JPG Binary files differ diff --git a/docs/howtos/x60t_unbrick/0006.JPG b/docs/images/x60t_unbrick/0006.JPG index 795d02a..795d02a 100644 --- a/docs/howtos/x60t_unbrick/0006.JPG +++ b/docs/images/x60t_unbrick/0006.JPG Binary files differ diff --git a/docs/howtos/x60t_unbrick/0007.JPG b/docs/images/x60t_unbrick/0007.JPG index 0ccdbad..0ccdbad 100644 --- a/docs/howtos/x60t_unbrick/0007.JPG +++ b/docs/images/x60t_unbrick/0007.JPG Binary files differ diff --git a/docs/howtos/x60t_unbrick/0008.JPG b/docs/images/x60t_unbrick/0008.JPG index 5312934..5312934 100644 --- a/docs/howtos/x60t_unbrick/0008.JPG +++ b/docs/images/x60t_unbrick/0008.JPG Binary files differ diff --git a/docs/howtos/x60t_unbrick/0009.JPG b/docs/images/x60t_unbrick/0009.JPG index 9d8e7fa..9d8e7fa 100644 --- a/docs/howtos/x60t_unbrick/0009.JPG +++ b/docs/images/x60t_unbrick/0009.JPG Binary files differ diff --git a/docs/howtos/x60t_unbrick/0010.JPG b/docs/images/x60t_unbrick/0010.JPG index ea37b18..ea37b18 100644 --- a/docs/howtos/x60t_unbrick/0010.JPG +++ b/docs/images/x60t_unbrick/0010.JPG Binary files differ diff --git a/docs/howtos/x60t_unbrick/0011.JPG b/docs/images/x60t_unbrick/0011.JPG index ebbaa74..ebbaa74 100644 --- a/docs/howtos/x60t_unbrick/0011.JPG +++ b/docs/images/x60t_unbrick/0011.JPG Binary files differ diff --git a/docs/index.html b/docs/index.html index e5fe5df..fe17fc4 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,1752 +5,165 @@ - Libreboot documentation: Main + Documentation for libreboot project -
        -

        Libreboot Documentation

        - - -
        - -

        - It is assumed that you are running GNU/Linux. No other operating system is known to be compatible (with libreboot) for this release. -

        - -

        - The information here is mainly user documentation. For development notes and TODO's, see release.html and - future/index.html -

        - -

        GNU/Linux distributions

        - - -

        Working with source code

        - - -

        Supported hardware

        - - -

        Installing libreboot (software: using internal programmer)

        - - -

        Installing libreboot (hardware: using external programmer)

        - - -

        Security topics

        - - -

        Hardware maintenance

        - - -

        GRUB2 payload

        - - -

        Miscallaneous

        - - -
        - -

        What is libreboot, really?

        - -

        - Project goals (and differences versus coreboot): -

        -
          -
        • - Coreboot contains blobs (proprietary data/code) and libreboot does not (it intentionally removes them). -
        • -
        • - Coreboot is hacker-friendly and focuses on software developers, libreboot is user-focused and attempts to - turn coreboot into a distribution, sort of like a GNU/Linux distribution (same concept, different software). For example, libreboot - distributes GRUB/memtest86+/bucts/flashrom (and more) and comes with user-focused documentation and build scripts; libreboot - is therefore made more 'user-friendly'. -
        • -
        - -

        - Libreboot is not a fork of coreboot, despite misconceptions of this fact. Libreboot (downstream supplier) is a parallel effort - which works closely with and re-bases on the latest coreboot (upstream supplier) every so often. -

        - -

        - - As such, all new coreboot development should be done in coreboot, not libreboot! - Libreboot is about deblobbing, and packaging coreboot in a user-friendly way, where most work is already done for the user! - If, for example you wanted to attempt porting a new motherboard then you should do that in coreboot. Libreboot will (as a downstream) - receive your change at some point in the future, in a future release. - -

        - -

        - A 'stable' coreboot: -

        -
          -
        • - Coreboot uses the rolling release model - (and it is therefore quite volatile; one day when you build coreboot, it may or may not work correctly on your machine). -
        • -
        • - Libreboot changes less often (as far as the release model is concerned), focusing instead on 'tested' releases for specific machines. - At any given time, it might also be possible to build ROM images for systems other than those officially supported. If you get your board to work - (without violating the "coreboot development goes in coreboot" rule, then others could benefit from your work). -
        • -
        - -

        - On the other hand, coreboot is also strict about what it accepts (merges) into the main git repository: - most of the time, a lot of changes are under review at review.coreboot.org (as a way of encouraging as much further development - as possible before accepting the patch). -

        - -

        - Meanwhile, libreboot is a lot less strict in this area and freely merges specific patches that are desirable, sometimes before they are merged into coreboot's main repository. -

        - -

        Back to top of page.

        - -
        - -

        Install build dependencies

        - -

        - Before doing anything, you need the dependencies first. -

        -
          -
        • deps-trisquel script installs dependencies for Trisquel 6 (also tested in Trisquel 7).
        • -
        • deps-parabola script installs dependencies for Parabola
        • -
        - -

        - For all other GNU/Linux distributions, you may have to adapt these scripts. By all means send patches! -

        - -

        Back to top of page

        - -
        - -

        Get the full source code from metadata (git clone)

        - -

        - If you downloaded libreboot from git, then there are some steps to download and patch - the source code for all relevant dependencies. The archive in the git repository used to be - available as a tarball called 'libreboot_meta.tar.gz'. It contains 'metadata' (scripts) - which define how the source was created (where it came from). -

        - -

        - You can use the scripts included to download everything. -

        +

        Documentation for libreboot project

        - First, install the build dependencies. + It is assumed that you are running GNU/Linux + (no other operating system is known to work with this release).

        -

        - After that, run the get script:
        - $ ./getall + What is libreboot?

        -

        - 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. -

        - -

        - To build the ROM's, see #build. -

        - -

        Back to top of page.

        - -
        - -

        How to build "bucts" (for LenovoBIOS X60/X60S/X60T/T60)

        - -

        - This is for Lenovo BIOS users on the ThinkPad X60/X60S, X60 Tablet and T60. If you have coreboot or libreboot running already, ignore this. -

        - -

        - Bucts is needed when flashing in software the X60/X60S/X60T/T60 ROM while Lenovo BIOS is running; - external flashing will be safe regardless. - 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 "bucts 1" 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 #build_flashrom). - 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 "bucts 0" to - make the machine boot from the normal (highest) block again. -

        - -

        - BUC.TS utility is included in libreboot_src.tar.gz and libreboot_bin.tar.gz.
        - If you downloaded from git, follow #build_meta before you proceed. -

        - -

        - "BUC" means "Backup Control" (it's a register) and "TS" means "Top Swap" - (it's a status bit). Hence "bucts" (BUC.TS). TS 1 and TS 0 corresponds to bucts 1 and bucts 0. -

        - -

        - First, install the build dependencies. -

        - -

        - To build bucts, do this in the main directory:
        - $ ./builddeps-bucts -

        - -

        - The "builddeps" script in libreboot_src also makes use of builddeps-bucts. -

        - -

        Back to top of page.

        - -
        - -

        How to build "flashrom"

        - -

        - Flashrom is the utility for flashing/dumping ROM's. This is what you will use to install libreboot. -

        - -

        - Flashrom source code is included in libreboot_src.tar.gz and libreboot_bin.tar.gz.
        - If you downloaded from git, follow #build_meta before you proceed. -

        - -

        - First, install the build dependencies. -

        - -

        - To build it, do that in the main directory:
        - $ ./builddeps-flashrom -

        - -

        - After you've done that, under ./flashrom/ you will find the following executables: -

        -
          -
        • - flashrom -
            -
          • For flashing while coreboot or libreboot is running.
          • -
          -
        • -
        • - flashrom_lenovobios_sst -
            -
          • This is patched for flashing while Lenovo BIOS is running on an X60 or T60 with the SST25VF016B (SST) flash chip.
          • -
          -
        • -
        • - flashrom_lenovobios_macronix -
            -
          • This is patched for flashing while Lenovo BIOS is running on an X60 or T60 with the MX25L1605D (Macronix) flash chip.
          • -
          -
        • -
        - -

        - The "builddeps" script in libreboot_src also makes use of builddeps-flashrom. -

        - -

        Back to top of page.

        - -
        - -

        Configuring libreboot

        - -

        - 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:
        - $ make menuconfig -

        - -

        - If you've already built a kernel before, you know how to use this interface. -

        - -

        - Configurations are then saved as files called ".config". Copies of each configuration used - for each machine type by the libreboot build scripts are stored in resources/libreboot/config/ -

        - -

        - dmidecode -

        -

        - There is certain information that can be useful to enter in particular: -

        -
          -
        • Local version string
        • -
        • SMBIOS Serial Number
        • -
        • SMBIOS Manufacturer
        • -
        • SMBIOS Version
        • -
        • SMBIOS Product name
        • -
        +

        Release information

        - This information can be obtained using:
        - $ sudo dmidecode
        - # dmidecode + Information about this release can be found at release.html. + Always check libreboot.org for updates.

        - Specifically, it's good practise to enter the same information for libreboot that you found when running this - with the original BIOS or firmware. libreboot has already done this for you. This information is for reference, - in the hope that it will be useful. + The release page and future/index.html contain details + about future work.

        -

        - ThinkPad X60 configuration (file: resources/libreboot/config/x60/config) -

        -
          -
        • General setup / Expert mode = enable
        • -
        • General setup / Local version string = 7BETC7WW (2.08 )
        • -
        • Mainboard / Mainboard vendor = Lenovo
        • -
        • Mainboard / Mainboard model = ThinkPad X60 / X60s / X60t
        • -
        • Mainboard / ROM chip size = 2048 KB (2 MB)
        • -
        • Mainboard / SMBIOS Serial Number = L3BH242
        • -
        • Mainboard / SMBIOS Version Number = ThinkPad X60s
        • -
        • Mainboard / SMBIOS Manufacturer = LENOVO
        • -
        • Mainboard / SMBIOS Product name = 1702L8G
        • -
        • Chipset / Include CPU microcode in CBFS = Do not include microcode updates
        • -
        • Devices / Use native graphics initialization = enable
        • -
        • - Display / Keep VESA framebuffer = disable (disable for text-mode graphics, enable for coreboot vesa framebuffer) -
            -
          • Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at build time - to enable coreboot framebuffer for a separate set of ROM images, in each machine.
          • -
          -
        • -
        • Generic Drivers / Digitizer = Autodetect
        • -
        • Console / Send console output to a CBMEM buffer = enable
        • -
        • Payload / Add a payload = An ELF executable payload
        • -
        • Payload / Payload path and filename = grub.elf
        • -
        +

        Hardware compatibility list

        - Now go back into Devices: + Information about what systems libreboot supports.

        -
          -
        • Devices / Run VGA Option ROMs = disable
        • -
        • Devices / Run Option ROMs on PCI devices = disable
        • -

        - The resulting .config file was saved as resources/libreboot/config/x60/config and is used by the build - scripts for this machine. + Goto hcl/index.html.

        + +

        Installing libreboot

        - This is based on an X60S with the Core 2 Duo L7400 processor. + Information about how to install libreboot on supported targets, + using software and/or dedicated hardware.

        - SMBIOS Version Number is ThinkPad X60 on the X60, but it is believed that the X60 and X60s both have identical - motherboards where the only difference is the CPU. This same configuration is used on the X60 and X60s. + Goto install/index.html.

        -

        - ThinkPad X60 Tablet configuration (file: resources/libreboot/config/x60t/config) -

        -
          -
        • General setup / Expert mode = enable
        • -
        • General setup / Local version string = 7JET23WW (1.08 )
        • -
        • Mainboard / Mainboard vendor = Lenovo
        • -
        • Mainboard / Mainboard model = ThinkPad X60 / X60s / X60t
        • -
        • Mainboard / ROM chip size = 2048 KB (2 MB)
        • -
        • Mainboard / SMBIOS Serial Number = L3B8281
        • -
        • Mainboard / SMBIOS Version Number = ThinkPad X60 Tablet
        • -
        • Mainboard / SMBIOS Manufacturer = LENOVO
        • -
        • Mainboard / SMBIOS Product name = 6364WJ1
        • -
        • Chipset / Include CPU microcode in CBFS = Do not include microcode updates
        • -
        • Devices / Use native graphics initialization = enable
        • -
        • - Display / Keep VESA framebuffer = disable (disable for text-mode graphics, enable for coreboot vesa framebuffer) -
            -
          • Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at build time - to enable coreboot framebuffer for a separate set of ROM images, in each machine.
          • -
          -
        • -
        • Generic Drivers / Digitizer = Present
        • -
        • Console / Send console output to a CBMEM buffer = enable
        • -
        • Payload / Add a payload = An ELF executable payload
        • -
        • Payload / Payload path and filename = grub.elf
        • -
        +

        GNU/Linux distributions

        - Now go back into Devices: + Installing GNU/Linux distributions, preparing bootable USB drives, changing the default GRUB + menu and so on.

        -
          -
        • Devices / Run VGA Option ROMs = disable
        • -
        • Devices / Run Option ROMs on PCI devices = disable
        • -

        - The resulting .config file was saved as resources/libreboot/config/x60t/config and is used by the build - scripts for this machine. + This also contains guides for fully encrypted Trisquel and Parabola GNU/Linux-libre installations.

        - This is based on an X60T with the Core 2 Duo L7400 processor. + Goto gnulinux/index.html.

        -

        - ThinkPad T60 configuration (file: resources/libreboot/config/t60/config) -

        -
          -
        • General setup / Expert mode = enable
        • -
        • General setup / Local version string = 79ETE7WW (2.27 )
        • -
        • Mainboard / Mainboard vendor = Lenovo
        • -
        • Mainboard / Mainboard model = ThinkPad T60 / T60p
        • -
        • Mainboard / ROM chip size = 2048 KB (2 MB)
        • -
        • Mainboard / SMBIOS Serial Number = L3DKE06
        • -
        • Mainboard / SMBIOS Version Number = ThinkPad T60
        • -
        • Mainboard / SMBIOS Manufacturer = LENOVO
        • -
        • Mainboard / SMBIOS Product name = 1951FEG
        • -
        • Chipset / Include CPU microcode in CBFS = Do not include microcode updates
        • -
        • Devices / Use native graphics initialization = enable
        • -
        • - Display / Keep VESA framebuffer = disable (disable for text-mode graphics, enable for coreboot vesa framebuffer) -
            -
          • Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at build time - to enable coreboot framebuffer for a separate set of ROM images, in each machine.
          • -
          -
        • -
        • Console / Send console output to a CBMEM buffer = enable
        • -
        • Payload / Add a payload = An ELF executable payload
        • -
        • Payload / Payload path and filename = grub.elf
        • -
        - Go back into Devices: -

        -
          -
        • Devices / Run VGA Option ROMs = disable
        • -
        • Devices / Run Option ROMs on PCI devices = disable
        • -
        -

        - The resulting .config file was saved as resources/libreboot/config/t60/config and is used by the build - scripts for this machine. -

        +

        Developing libreboot

        - It is believed that the motherboards on 14.1" and 15.1" T60's are the same, so the same configuration is used - on both the 14.1" and 15.1" T60's. + Information about configuring libreboot, building from source, maintaining the project, + working in git and so on.

        - -

        - MacBook2,1 configuration (file: resources/libreboot/config/macbook21/config) -

        -
          -
        • General / Expert mode = enable
        • -
        • General / Local version string = "    MB21.88Z.00A5.B07.0706270922" (without the quotes)
        • -
        • Mainboard / Mainboard vendor = Apple
        • -
        • Mainboard / Mainboard model = Macbook2,1 ICH7 TESTING
        • -
        • Mainboard / ROM chip size = 2048 KB (2 MB)
        • -
        • Mainboard / SMBIOS Serial Number = W8724XXXXXX
        • -
        • Mainboard / SMBIOS Version Number = 1.0
        • -
        • Mainboard / SMBIOS Manufacturer = Apple Inc.
        • -
        • Mainboard / SMBIOS Product Name = MacBook2,1
        • -
        • Chipset / Include CPU microcode in CBFS = Do not include microcode updates
        • -
        • Devices / Use native graphics initialization = enable
        • -
        • - Display / Keep VESA framebuffer = disable (disable for text-mode graphics, enable for coreboot vesa framebuffer) -
            -
          • Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at build time - to enable coreboot framebuffer for a separate set of ROM images, in each machine.
          • -
          -
        • -
        • Console / Send console output to a CBMEM buffer = enable
        • -
        • Payload / Add a payload = An ELF executable payload
        • -
        • Payload / Payload path and filename = grub.elf
        • -

        - Go back and disable option ROM's: + Goto git/index.html.

        -
          -
        • Devices / Run VGA Option ROMs = disable
        • -
        • Devices / Run Option ROMs on PCI devices = disable
        • -
        -

        - The resulting .config file was saved as resources/libreboot/config/macbook21/config and is used by the build - scripts for this machine. This config is also used for the MacBook1,1. -

        - -

        Back to top of page.

        - -
        - -

        How to build the ROM's!

        - -

        You don't need to do much, as there are scripts already written for you that can build everything automatically.

        - -

        - First, install the build dependencies. -

        -

        - If you downloaded libreboot from git, refer to #build_meta. -

        - -

        If running for the first time, run this:
        - $ ./buildall (also performs the "./build" step below)
        - Or if you only want to build dependencies (crossgcc, grub and so on):
        - $ ./builddeps

        - -

        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:
        - $ ./build

        - -

        To un-build (clean) the build dependencies that you built before, do the following:
        - This also deletes the ROM images under ./bin/:
        - $ ./cleandeps

        - -

        Note: after running 'cleandeps', you will need to run 'builddeps' or 'buildall' again before you can use 'build'.

        - -

        After 'build' or 'buildall' has finished, you'll find the ROM images for each machine under ./bin/

        - -

        Preparing release archives (optional)

        +

        Security topics

        - Run that script:
        - $ ./build-release + Goto security/index.html.

        +

        Hardware maintenance

        - You'll find that the files libreboot_bin.tar.xz and libreboot_src.tar.xz have been created. + Goto hardware/index.html.

        - -

        Back to top of page

        - -
        - -

        How to add SeaBIOS to your ROM's

        - -

        - SeaBIOS isn't really needed since libreboot uses the GRUB payload which - is much better (for several reasons), so it is no longer included in the ROM - images by default. Instead, you can add it afterwards. -

        - -

        - In the supplied binary archives, or in your own (if you did 'build-release') you can add SeaBIOS - to the ROM images, along with SeaVGABIOS which is a free/libre Video BIOS implementation that wraps - around the 'native graphics initializitation' code in coreboot, for boards that have support for it. -

        - -

        - First, install the build dependencies. -

        - -

        - Build cbfstool:
        - $ ./builddeps-cbfstool -

        - -

        - Now:
        - $ ./addseabios -

        - -

        - SeaBIOS and SeaVGABIOS (which the build scripts created, and the build-release script put - compiled - - inside the binary archive) have now been added to all of the ROM images under ./bin/. A GRUB menuentry will show - up when you boot your machine, allowing you to use SeaBIOS. -

        - -

        Back to top of page

        - -
        - -

        List of supported hardware

        - -

        - Libreboot supports the following machines in this release: -

        - - -

        - 'Supported' means that the build scripts know how to build ROM's for these machines, - and that the machines have been tested (confirmed working). There may be exceptions; - in other words, this is a list of 'officially' supported machines. -

        - -

        - It is also possible to build ROM images (from source) for other machines (and virtual machines, e.g. QEMU). -

        - -

        Back to top of page

        - -
        - -

        Recommended wifi chipsets

        -

        - The following are known to work well: -

        - - -

        Back to top of page

        - -
        - -

        List of supported ThinkPad X60's

        - -

        - Native gpu initialization ('native graphics') which replaces the proprietary VGA Option ROM - ('Video BIOS' or 'VBIOS'), - all known LCD panels are currently compatible: -

        - -

        - To find what LCD panel you have, see: #get_edid_panelname. -

        - -
          -
        • TMD-Toshiba LTD121ECHB: #
        • -
        • CMO N121X5-L06: #
        • -
        • Samsung LTN121XJ-L07: #
        • -
        • BOE-Hydis HT121X01-101: #
        • -
        - -

        - You can remove an X61/X61s motherboard from the chassis and install an X60/X60s motherboard in it's place (for flashing libreboot). The chassis is mostly identical - and the motherboards are the same shape/size. -

        - -

        - The X60 typically comes with an Intel wifi chipset which does not work at all without proprietary firmware, and while Lenovo BIOS is running - the machine will refuse to boot if you replace the card. Fortunately it is very easily replaced; - just remove the card and install another one after libreboot is installed. See #recommended_wifi for replacements. -

        - -

        Back to top of page.

        - -
        - -

        List of supported ThinkPad X60 Tablets

        - -

        - Native gpu initialization ('native graphics') which replaces the proprietary VGA Option ROM - ('Video BIOS' or 'VBIOS'). -

        - -

        - To find what LCD panel you have, see: #get_edid_panelname. -

        - -

        - There are 5 known LCD panels for the X60 Tablet: -

        -
          -
        • - X60T XGA (1024x768): -
            -
          • BOE-Hydis HV121X03-100 (works)
          • -
          • Samsung LTN121XP01 (does not work. blank screen)
          • -
          • BOE-Hydis HT12X21-351 (does not work. blank screen)
          • -
          -
        • -
        • - X60T SXGA+ (1400x1050): -
            -
          • BOE-Hydis HV121P01-100 (works)
          • -
          • BOE-Hydis HV121P01-101 (works)
          • -
          -
        • -
        - -

        - Most X60T's only have digitizer (pen), but some have finger (touch) aswell as pen; finger/multitouch doesn't work, only digitizer (pen) does. -

        - -

        - You can remove an X61/X61s motherboard from the chassis and install an X60/X60s motherboard in it's place (for flashing libreboot). The chassis is mostly identical - and the motherboards are the same shape/size. It is unknown if the same applies between the X60 Tablet and the X61 Tablet. -

        - -

        - The X60 Tablet typically comes with an Intel wifi chipset which does not work at all without proprietary firmware, and while Lenovo BIOS is running - the machine will refuse to boot if you replace the card. Fortunately it is very easily replaced; - just remove the card and install another one after libreboot is installed. See #recommended_wifi for replacements. -

        - -

        - A user with a X60T that has digitizer+finger support, reported that they could get finger input working. They - used linuxwacom at git tag 0.25.99.2 and had the following in their xorg.conf: -

        - -
        -# This file be public domain.
        -
        -# Now, for some reason (probably a bug in linuxwacom),
        -# the 'Touch=on' directive gets reset to 'off'.
        -# So you'll need to do
        -# $ xsetwacom --set WTouch Touch on
        -#
        -# tested with linuxwacom git 42a42b2a8636abc9e105559e5dea467163499de7
        -
        -Section "Monitor"
        -    Identifier             ""
        -    DisplaySize     245 184
        -EndSection
        -
        -Section "Screen"
        -    Identifier "Default Screen Section"
        -    Monitor    ""
        -EndSection
        -
        -Section "InputDevice"
        -    Identifier  "WTouch"
        -    Driver      "wacom"
        -    Option      "Device" "/dev/ttyS0"
        -#    Option      "DebugLevel" "12"
        -    Option      "BaudRate" "38400"
        -    Option      "Type" "touch"
        -    Option      "Touch" "on"
        -    Option      "Gesture" "on"
        -    Option      "ForceDevice" "ISDV4"
        -#    Option      "KeepShape" "on"
        -    Option      "Mode" "Absolute"
        -    Option      "RawSample" "2"
        -#    Option      "TPCButton" "off"
        -    Option      "TopX" "17"
        -    Option      "TopY" "53"
        -    Option      "BottomX" "961"
        -    Option      "BottomY" "985"
        -EndSection
        -
        -Section "ServerLayout"
        -  Identifier    "Default Layout"
        -  Screen        "Default Screen Section"
        -  InputDevice   "WTouch" "SendCoreEvents"
        -EndSection
        -
        -
        - -

        Back to top of page.

        - -
        - -

        Supported T60 list

        - -

        - Native gpu initialization ('native graphics') which replaces the proprietary VGA Option ROM - ('Video BIOS' or 'VBIOS'). -

        - -

        - To find what LCD panel you have, see: #get_edid_panelname. -

        - -

        - - Some T60's have ATI GPU's, and all T60p's have ATI GPU's These are incompatible! See #t60_ati_intel for how to remedy this. - -

        - -

        - How to dump the EDID:
        - -

        - -

        - Tested LCD panels: working(compatible) -

        -
          -
        • TMD-Toshiba LTD141EN9B (14.1" 1400x1050) (FRU P/N 41W1478 recommended for the inverter board)
        • -
        • Samsung LTN141P4-L02 (14.1" 1400x1050) (FRU P/N 41W1478 recommended for the inverter board)
        • -
        • LG-Philips LP150E05-A2K1 (15.1" 1400x1050) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)
        • -
        • Samsung LTN150P4-L01 (15.1" 1400x1050) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board) (not a T60 screen afaik, but it works)
        • -
        • BOE-Hydis HV150UX1-100 (15.1" 1600x1200) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)
        • -
        • IDtech IAQX10N (15.1" 2048x1536) (GRUB doesn't display at the moment, but GNU/Linux works) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)
        • -
        - -
        - + +

        GRUB payload

        - Tested LCD panels: not working yet (incompatible; see future/index.html#lcd_i945_incompatibility) + Information about fonts and keyboard layouts used in GRUB.

        -
          -
        • Samsung LTN141XA-L01 (14.1" 1024x768)
        • -
        • LG-Philips LP150X09 (15.1" 1024x768)
        • -
        • Samsung LTN150XG (15.1" 1024x768) - EDID dump (taken using sudo i2cdump -y 5 0x50)
        • -
        • LG-Philips LP150E06-A5K4 (15.1" 1400x1050) (also, not an official T60 screen)
        • -
        • Samsung LTN154X3-L0A (15.4" 1280x800)
        • -
        -

        - The following LCD panels are UNTESTED. If you have one of these panels - then please submit a report!: + Goto grub/index.html

        -
          -
        • CMO(IDtech?) N141XC (14.1" 1024x768)
        • -
        • BOE-Hydis HT14X14 (14.1" 1024x768)
        • -
        • TMD-Toshiba LTD141ECMB (14.1" 1024x768)
        • -
        • Boe-Hydis HT14P12 (14.1" 1400x1050) (FRU P/N 41W1478 recommended for the inverter board)
        • -
        • CMO (IDtech?) 13N7068 (15.1" 1024x768)
        • -
        • CMO (IDtech?) 13N7069 (15.1" 1024x768)
        • -
        • BOE-Hydis HV150P01-100 (15.1" 1400x1050) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)
        • -
        • IDtech N150U3-L01 (15.1" 1600x1200) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)
        • -
        • BOE-Hydis HV150UX1-102 (15.1" 1600x1200) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)
        • -
        • IDtech IAQX10S (15.1" 2048x1536) (P/N 42T0078 FRU 42T0079 or P/N 41W1338 recommended for the inverter board)
        • -
        • Samsung LTN154P2-L05 (42X4641 42T0329) (15.4" 1680x1050)
        • -
        • LG-Philips LP154W02-TL10 (13N7020 42T0423) (15.4" 1680x1050)
        • -
        • LG-Philips LP154WU1-TLB1 (42T0361) (15.4" 1920x1200) (for T61p but it might work in T60. Unknown!)
        • -
        • Samsung LTN154U2-L05 (42T0408 42T0574) (15.4" 1920x1200) (for T61p but it might work in T60. Unknown!)
        • -
        +

        Miscellaneous

        - It is unknown whether the 1680x1050 (15.4") and 1920x1200 (15.4") panels use a different inverter board than the 1280x800 panels. + Random topics that don't belong anywhere else.

        - -

        - The T60 typically comes with an Intel wifi chipset which does not work at all without proprietary firmware, and while Lenovo BIOS is running - the machine will refuse to boot if you replace the card. Fortunately it is very easily replaced; - just remove the card and install another one after libreboot is installed. See #recommended_wifi for replacements. -

        - -
        - -

        Back to top of page.

        - -
        - -

        ThinkPad T60 (ATI GPU) and ThinkPad T60 (Intel GPU) differences.

        - -

        - If your T60 is a 14.1" or 15.1" 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. -

        - -

        - As far as I know, 14.1" (Intel GPU) and 15.1" (Intel GPU) T60 motherboards are the same, where - 'spacers' are used on the 15.1" T60. In any case, it makes sense to find one that is guaranteed to fit in your chassis. -

        - -

        - There is also a 15.4" T60 with Intel GPU. -

        - -

        - Note: the T60p laptops all have ATI graphics. - The T60p laptops cannot be used with libreboot under any circumstances. -

        - -

        - The following T60 motherboard (see area highlighted in white) shows an empty space where the ATI GPU would be (this particular motherboard has an Intel GPU): - -

        - -

        - 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. -

        - -

        - The 'Video BIOS' is what initializes graphics. -

        - -

        - See: https://en.wikipedia.org/wiki/Video_BIOS.
        - 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. -

        - -

        - 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). -

        - -

        Back to top of page.

        - -
        - -

        Information about the macbook1,1

        - -

        - There is an Apple laptop called the macbook1,1 from 2006 which uses the same i945 chipset as the ThinkPad X60/T60. - A developer ported the MacBook2,1 to coreboot, the ROM images also work on the macbook1,1. -

        - -

        - You can refer to #macbook21 for most of this. Macbook2,1 laptops come with Core 2 Duo processors - which support 64-bit operating systems (and 32-bit). The MacBook1,1 uses Core Duo processors (supports 32-bit OS but not 64-bit), - and it is believed that this is the only difference. -

        - -

        - It is believed that all models are compatible, listed here: -

        - - -

        - Compatible models -

        - Specifically (Order No. / Model No. / CPU): + Goto misc/index.html.

        -
          -
        • MA255LL/A / A1181 (EMC 2092) / Core Duo T2500 (tested - working) -
        • MA254LL/A / A1181 (EMC 2092) / Core Duo T2400 (untested)
        • -
        • MA472LL/A / A1181 (EMC 2092) / Core Duo T2500 (untested)
        • -
        - -

        - Also of interest: #config_macbook21. -

        - -

        - Unbricking: this page shows disassembly guides and mono's page (see #macbook21) - shows the location of the SPI flash chip on the motherboard. How to remove the motherboard. -

        - -

        - No method is yet known for flashing in GNU/Linux while the Apple firmware is running. You will need to disassemble the machine and flash externally. - Reading from flash seems to work. Bus Pirate recommended for external flashing (there are others) and needed tools: clip (eg Pomona 5250), mini usb cable, - bus pirate cable (for connecting Pomona to the bus pirate). -

        - -

        Back to top of page.


        -

        Information about the macbook2,1

        +

        What is libreboot, really?

        - 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. -

        -

        - 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. -

        -

        - Backups created using wget:
        - $ wget -m -p -E -k -K -np http://macbook.donderklumpen.de/
        - $ wget -m -p -E -k -K -np http://macbook.donderklumpen.de/coreboot/
        - Use -e robots=off if using this trick for other sites and the site restricts using robots.txt + Libreboot is a coreboot distribution (distro) with proprietary software removed, + intended to be a free + (libre) 'BIOS' replacement for your computer.

        - 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 + Read the full Free Software definition.

        - Installing GNU/Linux distributions (on Apple EFI firmware) -

        - -

        - How to boot an ISO: burn it to a CD (like you would normally) and hold down the Alt/Control key while booting. - The bootloader will detect the GNU/Linux CD as 'Windows' (because Apple doesn't think GNU/Linux exists). Install it like you normally would. - When you boot up again, hold Alt/Control once more. The installation (on the HDD) will once again be seen as 'Windows'. (it's not actually Windows, - but Apple likes to think that Apple and Microsoft are all that exist.) - Now to install libreboot, follow #flashrom_macbook21. -

        - -

        - Information about coreboot -

        - - -

        - coreboot wiki page -

        - - -

        - Compatible models + Project goals (and differences versus coreboot):

        -

        - It is believed that all models are compatible, listed here: -

        - -

        - Specifically (Order No. / Model No. / CPU): -

        -
          -
        • MA699LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T5600 (tested - working)
        • -
        • MA701LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 (tested - working)
        • -
        • MB061LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7200 (untested)
        • -
        • MA700LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 (tested - working)
        • -
        • MB063LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 (untested)
        • -
        • MB062LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 (tested - working)
        • -
        - -

        - Also of interest: #config_macbook21. -

        - -

        - Unbricking: this page shows disassembly guides and mono's page (see above) - shows the location of the SPI flash chip on the motherboard. How to remove the motherboard. -

        - -

        - Bus Pirate recommended for external flashing (there are others) and needed tools: clip (eg Pomona 5250), mini usb cable, - bus pirate cable (for connecting Pomona to the bus pirate). -

        - -

        - You need to replace OS X with GNU/Linux before flashing libreboot. (OSX won't run at all in libreboot). -

        - -

        - There are some issues with this machine (compared to other computers that libreboot supports): -

        - -

        - This is an apple laptop, so it comes with OS X: it has an Apple keyboard, which means that certain keys you expect are missing: - insert, del, home, end, pgup, pgdown. There is also one mouse button only. Battery life is poor compared to X60/T60 (for now). - It also has other issues: for example, the Apple logo on the back is a hole, exposing the backlight, which means that it glows. You should cover it up. -

        - -

        - The macbook21 gets extremely hot under GNU/Linux and libreboot; Macfanctld (mac fan control daemon) I'm told is a programme (GPLv3 license) that can help with this. -

        - -

        - Debugging the heating issues (initial work):
        - Distro: Trisquel 7. kernel(linux-libre): 3.13.0-32
        - CPU temperatures:
        - 52C(idle)/81C(stress) on factory.bin
        - 70C(idle)/80C(stress) on coreboot(with microcode updates). libreboot results (without microcode updates) were the same.
        - (libreboot and coreboot rom's were both built from the same code, just with or without microcode included in the rom)
        - battery life was higher on original firmware, lower on coreboot/libreboot.
        - microcode patches included [y/n] makes no difference.
        - libreboot: 1hr18min left on idle (99% battery), 42mins left on stress (82% battery)
        - factory.bin: 2 hours left on idle (99% battery), 48mins left on stress (82% battery) -

        -

        - Todo: see what the non-free firmware has in it's ACPI tables using acpidump and iasl -d. Try to implement cstate support in coreboot - (this will allow for lower temperatures). -

        - -

        - - The MacBook2,1 comes with a webcam, which does not work without proprietary software. Also, webcams are a security risk; cover it up! Or remove it. - -

        - -

        - A user reported that they could get better response from the touchpad with the following in their xorg.conf: -

        - -
        -Section "InputClass"
        - Identifier "Synaptics Touchpad"
        - Driver "synaptics"
        - MatchIsTouchpad "on"
        - MatchDevicePath "/dev/input/event*"
        - Driver "synaptics"
        -# The next two values determine how much pressure one needs
        -# for tapping, moving the cursor and other events.
        - Option "FingerLow" "10"
        - Option "FingerHigh" "15"
        -# Do not emulate mouse buttons in the touchpad corners.
        - Option "RTCornerButton" "0"
        - Option "RBCornerButton" "0"
        - Option "LTCornerButton" "0"
        - Option "LBCornerButton" "0"
        -# One finger tap = left-click
        - Option "TapButton1" "1"
        -# Two fingers tap = right-click
        - Option "TapButton2" "3"
        -# Three fingers tap = middle-mouse
        - Option "TapButton3" "2"
        -# Try to not count the palm of the hand landing on the touchpad
        -# as a tap. Not sure if helps.
        - Option "PalmDetect" "1"
        -# The following modifies how long and how fast scrolling continues
        -# after lifting the finger when scrolling
        - Option "CoastingSpeed" "20"
        - Option "CoastingFriction" "200"
        -# Smaller number means that the finger has to travel less distance
        -# for it to count as cursor movement. Larger number prevents cursor
        -# shaking.
        - Option "HorizHysteresis" "10"
        - Option "VertHysteresis" "10"
        -# Prevent two-finger scrolling. Very jerky movement
        - Option "HorizTwoFingerScroll" "0"
        - Option "VertTwoFingerScroll" "0"
        -# Use edge scrolling
        - Option "HorizEdgeScroll" "1"
        - Option "VertEdgeScroll" "1"
        -EndSection
        -
        - -

        Back to top of page.

        - -
        - -

        Recommended ROM's to flash

        - -

        - List of directories corresponding to each board: -

        -
          -
        • ThinkPad X60, X60s: bin/x60/
        • -
        • ThinkPad X60 Tablet: bin/x60t/
        • -
        • ThinkPad T60: bin/t60/ (note, see #supported_t60_list)
        • -
        • Apple MacBook2,1: bin/macbook21/
        • -
        • Apple MacBook1,1: bin/macbook21/ (it's not a typo; the same ROM's work)
        • -
        - -

        These images use coreboot text-mode graphics:

          -
        • US Qwerty keyboard: libreboot_usqwerty_txtmode.rom
        • -
        • UK Qwerty keyboard: libreboot_ukqwerty_txtmode.rom
        • -
        • US Dvorak keyboard: libreboot_usdvorak_txtmode.rom
        • -
        • UK Dvorak keyboard: libreboot_ukdvorak_txtmode.rom
        • -
        • French Azerty keyboard: libreboot_frazerty_txtmode.rom
        • -
        • Italian Qwerty keyboard: libreboot_itqwerty_txtmode.rom
        • -
        • Swedish Qwerty keyboard: libreboot_svenska_txtmode.rom
        • -
        -

        These images use coreboot framebuffer graphics:

        -
          -
        • US Qwerty keyboard: libreboot_usqwerty_vesafb.rom
        • -
        • UK Qwerty keyboard: libreboot_ukqwerty_vesafb.rom
        • -
        • US Dvorak keyboard: libreboot_usdvorak_vesafb.rom
        • -
        • UK Dvorak keyboard: libreboot_ukdvorak_vesafb.rom
        • -
        • French Azerty keyboard: libreboot_frazerty_vesafb.rom
        • -
        • Italian Qwerty keyboard: libreboot_itqwerty_vesafb.rom
        • -
        • Swedish Qwerty keyboard: libreboot_svenska_vesafb.rom
        • +
        • + Coreboot contains blobs (proprietary data/code) and libreboot does not (it intentionally removes them). +
        • +
        • + Coreboot is hacker-friendly and focuses on software developers, libreboot is user-focused and attempts to + turn coreboot into a distribution, sort of like a GNU/Linux distribution (same concept, different software). For example, libreboot + distributes GRUB/memtest86+/bucts/flashrom (and more) and comes with user-focused documentation and build scripts; libreboot + is therefore made more 'user-friendly'. +
        -

        - _txtmode images come with a working MemTest86+ and GRUB Invaders, both of which require text-mode. - _vesafb images are recommended in most cases. -

        - -

        - This will give you your native keyboard layout inside 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). - #grub_keyboardshows you how this was done. If your native keyboard layout - differs, you can adapt those notes and hack the 'build' script for your needs. -

        - -

        Back to top of page.

        - -
        - -

        X60/X60S/X60T/T60: How to flash the ROM's onto your machine (if running Lenovo BIOS firmware).

        - -
        - -

        - Hover over the next paragraph to make it black. -

        -

        - 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: - http://www.coreboot.org/Board:lenovo/x60/Installation.
        - Do not make this decision lightly! This is your last and only chance. -

        - -

        - The following is for the libreboot image and *not* the factory bios dump: -

        -

        - Check the last two 64K regions in your ROM file (libreboot.rom in this example):
        - $ dd if=libreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s libreboot.rom) - 0x10000] count=64k
        - $ dd if=libreboot.rom of=lower64k.bin bs=1 skip=$[$(stat -c %s libreboot.rom) - 0x20000] count=64k
        - $ sha512sum lower64k.bin top64k.bin
        - Make *sure* that they match before you continue. The ROM's included pre-compiled in libreboot should already match. - If they don't match, then do this (based on those instructions from coreboot wiki):
        - $ dd if=top64k.bin of=libreboot.rom bs=1 seek=$[$(stat -c %s libreboot.rom) - 0x20000] count=64k conv=notrunc
        - After this, the ROM will be safe to flash. Explanation is provided in #build_bucts. -

        - -
        - -

        This is for the ThinkPad X60 and T60 while running Lenovo BIOS. If you already have coreboot or libreboot running, - then go to #flashrom instead!

        - -

        If you are flashing a Lenovo ThinkPad T60, be sure to read #supported_t60_list

        - -

        - First, install the build dependencies. -

        - -
        - -

        - - Before you proceed, make *sure* to build flashrom and bucts from source. Both are provided. This is very important! - -

        - - -
        - -

        "YOURBOARD/YOURROM" should be replaced with what is correct as per #rom. Alternatively - you may be using your own custom ROM. Adapt.

        - -

        - Run the script:
        - $ sudo ./lenovobios_firstflash bin/YOURBOARD/YOURROM. -

        - -
        - -

        - You should see within the output the following:
        - "Updated BUC.TS=1 - 64kb address ranges at 0xFFFE0000 and 0xFFFF0000 are swapped". -

        - -

        - You should also see within the output the following:
        - "Flash chip is in an unknown state", "FAILED" and "DO NOT SHUTDOWN OR REBOOT"
        - Seeing this means that the operation was a resounding success! DON'T PANIC. -

        - -

        - See this link for more details: - http://thread.gmane.org/gmane.linux.bios.flashrom/575. -

        - -

        - If the above is what you see, then SHUT DOWN. Wait a few seconds, and then boot; libreboot is running, but there is a 2nd procedure *needed* (see below). -

        - -
        - -

        - - If you boot and you see nothing, try turning up the backlight (Fn+Home). - -

        - -

        - When you have booted up again:
        - $ sudo ./lenovobios_secondflash bin/YOURBOARD/YOURROM -

        - -
        - -

        - You should see within the output the following:
        - "Updated BUC.TS=0 - 128kb address range 0xFFFE0000-0xFFFFFFFF is untranslated" -

        - -

        - You should also see within the output the following:
        - "Verifying flash... VERIFIED." -

        - -

        Shut down again, wait a few seconds, and then boot.

        - -
        - -

        - Some thinkpads come with WWAN cards installed, along with sim cards. These use non-free firmware and should be removed. - You might also want to remove bluetooth. See x60_security.html and - t60_security.html. -

        - -

        Back to top of page.

        - -
        - -

        macbook21: How to flash your ROM (if running Apple EFI firmware)

        - -
        - -

        - Hover over the next paragraph to make it black. -

        -

        - 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 Apple EFI firmware - 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 Apple EFI is (believed, but unproven to be) tied to the specific machine that it came from; it will not (as is believed) 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 Apple EFI firmware again) or lose it forever. The macbook21 installation - guide on the coreboot wiki will show you how to do this: - http://www.coreboot.org/Board:apple/macbook21.
        - Do not make this decision lightly! This is (very likely) your last and only chance. -

        - -

        - (this theory is untested at the time of writing) -

        -

        - Note: If you have a MacBook1,1 then these instructions will not work. See #macbook11 for MacBook1,1 flashing instructions. -

        - -
        - -

        - - This is for the MacBook2,1 while running Apple EFI firmware. If you already have - coreboot or libreboot running, then go to #flashrom instead! - -

        - -

        - Be sure to read the information in #macbook21. -

        - -

        - First, install the build dependencies. -

        - -
        - -

        - - Before you proceed, make *sure* to build flashrom from source. This is very important! - -

        - - -
        - -

        - Look at #rom to see which ROM is suitable for your machine. Alternatively you may be using your own - custom ROM. Adapt. -

        - -

        - Flashing is actually easy (compared to X60/T60).
        - $ sudo flashrom -p internal:laptop=force_I_want_a_brick -w bin/YOURBOARD/YOURROM -

        - -

        - Alternatively, a script is provided which does the same thing:
        - $ sudo ./macbook21_firstflash bin/YOURBOARD/YOURROM -

        - -
        - -

        - You should also see within the output the following:
        - "Verifying flash... VERIFIED." -

        - -

        - If you see that, great! Shut down now (power off). Wait a few seconds and then boot! -

        - -

        - - If you boot and you see nothing, try turning up the backlight (F2 for macbook21). - -

        - - -
        - -

        Back to top of page.

        - -
        - -

        X60/X60S/X60T/T60/macbook21: How to flash the ROM's onto your machine (if running libreboot or coreboot already)

        - -

        - - These instructions work for the Lenovo ThinkPad X60/X60S/X60T/T60 and Apple MacBook2,1. - -

        -

        - - This assumes that you already have coreboot or libreboot running. - -

        -

        - - If you have Lenovo BIOS running (X60/X60S/X60T/T60), go to #flashrom_lenovobios instead. - -

        -

        - - If you have Apple EFI firmware running (macbook21), go to #flashrom_macbook21 instead. - -

        -

        - - If you are flashing a Lenovo ThinkPad T60, be sure to read #supported_t60_list. - -

        -

        - - If you are flashing an Apple MacBook2,1, be sure to read the information in #macbook21. - -

        -

        - First, install the build dependencies. -

        -
        - -

        - - Before you proceed, make *sure* to build flashrom from source. This is very important! - -

        - - -
        -

        - Look at #rom to see which ROM is suitable for your machine. Alternative you may be using your own - custom ROM. Adapt. -

        -

        - Flash the ROM:
        - $ sudo ./flash bin/YOURBOARD/YOURROM -

        - -
        - -

        - You should see "Verifying flash... VERIFIED." written at the end of the flashrom output. SHUT DOWN - after you see this, and then boot up again after a few seconds. + Libreboot is not a fork of coreboot, despite misconceptions of this fact. Libreboot (downstream supplier) is a parallel effort + which works closely with and re-bases on the latest coreboot (upstream supplier) every so often.

        - If you boot and you see nothing, try turning up the backlight (Fn+Home for X60/X60S/X60T/T60, F2 for macbook21). + As such, all new coreboot development should be done in coreboot, not libreboot! + Libreboot is about deblobbing, and packaging coreboot in a user-friendly way, where most work is already done for the user! + If, for example you wanted to attempt porting a new motherboard then you should do that in coreboot. Libreboot will (as a downstream) + receive your change at some point in the future, in a future release.

        -
        - -

        - Some thinkpads come with WWAN cards installed, along with sim cards. These use non-free firmware and should be removed. - You might also want to remove bluetooth. See x60_security.html and - t60_security.html. -

        - -

        Back to top of page

        - -
        - -

        Setting font in GRUB (for reference)

        - -

        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)

        - -

        The old font used was Unifont, and this had some missing characters: for instance, the border showed ??? characters instead of lines.

        - -

        I tried DeJavu Sans Mono from this website: - dejavu-fonts.org

        - -

        Specifically, the version that I chose was the latest at the time of writing (Saturday 21 June 2014): - this one

        - -

        This is a free font that is also contained in GNU/Linux distributions like Trisquel or Parabola.

        - -

        $ cd libreboot_src/grub
        - compile grub ('build' script has the info on how to do this)
        - come back out into libreboot_src/resources/grub:
        - $ cd ../libreboot_src/resources/grub/font

        - -

        I took Dejavu Sans Mono from dejavu (included in this version of libreboot) and did:
        - $ ../../../grub/grub-mkfont -o dejavusansmono.pf2 ../../../dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono.ttf

        - -

        I then added the instructions to 'build' script to include resources/grub/dejavusansmono.pf2 in all of the ROM's in root of cbfs.
        - I then added that instructions to the grub.cfg files (to load the font):
        - loadfont (cbfsdisk)/dejavusansmono.pf2

        - -

        Back to top of page

        - -
        - -

        GRUB keyboard layouts (for reference)

        - -

        Custom keyboard layout in GRUB (for reference)

        - -

        - Keymaps are stored in resources/utilities/grub-assemble/keymap/. -

        - -

        - Example (French Azerty):
        - $ ckbcomp fr > frazerty

        - Go in grub directory:
        - cat frazerty | ./grub/grub-mklayout -o frazerty.gkb -

        - -

        - You must make sure that the files are named keymap and keymap.gkb (where 'keymap' can be whatever you want). -

        - -

        - Then from the above example, you would put frazerty in resources/utilities/grub-assemble/keymap/original/ and - the frazerty.gkb file goes under resources/utilities/grub-assemble/keymap/ -

        +

        + A 'stable' coreboot: +

        +
          +
        • + Coreboot uses the rolling release model + (and it is therefore quite volatile; one day when you build coreboot, it may or may not work correctly on your machine). +
        • +
        • + Libreboot changes less often (as far as the release model is concerned), focusing instead on 'tested' releases for specific machines. + At any given time, it might also be possible to build ROM images for systems other than those officially supported. If you get your board to work + (without violating the "coreboot development goes in coreboot" rule, then others could benefit from your work). +
        • +

        - The scripts build and buildrom-withgrub will automatically see this, and automatically build - ROM's with your custom layout (given the name) and include them under bin. Example: libreboot_frazerty.rom. + On the other hand, coreboot is also strict about what it accepts (merges) into the main git repository: + most of the time, a lot of changes are under review at review.coreboot.org (as a way of encouraging as much further development + as possible before accepting the patch).

        -

        Back to top of page

        - -

        UK Dvorak keyboard layout in GRUB (for reference)

        -

        - ukdvorak had to be created manually, based on usdvorak. diff them (under resources/utilities/grub-assemble/keymap/original) - to see how ukdvorak file was created + Meanwhile, libreboot is a lot less strict in this area and freely merges specific patches that are desirable, sometimes before they are merged into coreboot's main repository.

        - $ cat ukdvorak | ./grub/grub-mklayout -o ukdvorak.gkb

        - -

        Back to top of page

        - -
        - -

        High Pitched Whining Noise on Idle (how to remove in Trisquel)

        - -

        - Tested in Trisquel 6. -

        -

        - Note: untested in Trisquel 7. Remove this note when it is. -

        - -

        Powertop - how to use

        - -

        Now you can use this command to kill that noise:
        - $ sudo powertop --auto-tune

        - -

        You can also run it without parameters and then go into 'Tunables' and set everything to 'Good'

        - -

        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:

        - -

        Powertop - Start automatically at boot time (Trisquel 6)

        - -

        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.

        - -

        $ ./powertop.trisquel6

        - -

        This has been tested on Trisquel 6.

        - -

        Back to top of page

        - -
        - -

        High Pitched Whining Noise on Idle (how to remove in Parabola)

        - -

        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).

        - -

        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!

        - -

        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!

        - -

        Be root
        - $ su -

        - -

        Installed powertop:
        - # pacman -S powertop

        - -

        and added the following to /etc/systemd/system/powertop.service :

        - -
        
        -[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
        -
        - - -

        Finally, as root do that:
        - # systemctl enable powertop
        - # systemctl start powertop

        - -

        The next time you boot the machine, the buzz will be gone.

        - -

        Back to top of page

        - -
        - -

        X60/T60: Serial port - how to use (for dock owners)

        -

        - For the Thinkpad X60 you can use the "UltraBase X6" dock (for the X60 Tablet it is called - X6 Tablet UltraBase). For the ThinkPad T60, - you can use the "Advanced Mini Dock". -

        -

        - 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. -

        -

        - On the 2nd machine, you can try this (using GNU Screen):
        - $ sudo screen /dev/ttyUSB0 115200 -

        -

        - How to quit GNU Screen: Ctrl+A then release and press K, and then press Y. -

        -

        There are also others like Minicom but I like GNU Screen

        -

        - 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. -

        -

        - 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:
        - https://help.ubuntu.com/community/SerialConsoleHowto -

        -

        - Note: part of the tutorial above requires changing your grub.cfg. Just change the linux line to add instructions for enabling getty. - See howtos/grub_cbfs.html. -

        -

        Back to top of page - -


        - -

        Get EDID: Find out the name (model) of your LCD panel

        -

        - Get the panel name with sudo get-edid | strings
        - Or look in /sys/class/drm/card0-LVDS-1/edid -

        -

        - Alternatively you can use i2cdump. In Trisquel, this is in the package i2c-tools.
        - $ sudo modprobe i2c-dev
        - $ sudo i2cdump -y 5 0x50
        - $ sudo rmmod i2c-dev
        - You'll see the panel name in the output (from the EDID dump). -

        -

        - 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. -

        -

        Back to top of page.


        diff --git a/docs/install/index.html b/docs/install/index.html new file mode 100644 index 0000000..571e115 --- /dev/null +++ b/docs/install/index.html @@ -0,0 +1,405 @@ + + + + + + + + + Installing libreboot + + + + +

        Installing libreboot

        +

        + This section relates to installing libreboot on supported targets. +

        +

        + Or Back to main index. +

        +

        Installing libreboot (software)

        + + +

        Installing libreboot (hardware)

        + + +
        + +

        Recommended ROM's to flash

        + +

        + List of directories corresponding to each board: +

        +
          +
        • ThinkPad X60, X60s: bin/x60/
        • +
        • ThinkPad X60 Tablet: bin/x60t/
        • +
        • ThinkPad T60: bin/t60/ (note, see ../hcl/index.html#supported_t60_list)
        • +
        • Apple MacBook2,1: bin/macbook21/
        • +
        • Apple MacBook1,1: bin/macbook21/ (it's not a typo; the same ROM's work)
        • +
        + +

        These images use coreboot text-mode graphics:

        +
          +
        • US Qwerty keyboard: libreboot_usqwerty_txtmode.rom
        • +
        • UK Qwerty keyboard: libreboot_ukqwerty_txtmode.rom
        • +
        • US Dvorak keyboard: libreboot_usdvorak_txtmode.rom
        • +
        • UK Dvorak keyboard: libreboot_ukdvorak_txtmode.rom
        • +
        • French Azerty keyboard: libreboot_frazerty_txtmode.rom
        • +
        • Italian Qwerty keyboard: libreboot_itqwerty_txtmode.rom
        • +
        • Swedish Qwerty keyboard: libreboot_svenska_txtmode.rom
        • +
        +

        These images use coreboot framebuffer graphics:

        +
          +
        • US Qwerty keyboard: libreboot_usqwerty_vesafb.rom
        • +
        • UK Qwerty keyboard: libreboot_ukqwerty_vesafb.rom
        • +
        • US Dvorak keyboard: libreboot_usdvorak_vesafb.rom
        • +
        • UK Dvorak keyboard: libreboot_ukdvorak_vesafb.rom
        • +
        • French Azerty keyboard: libreboot_frazerty_vesafb.rom
        • +
        • Italian Qwerty keyboard: libreboot_itqwerty_vesafb.rom
        • +
        • Swedish Qwerty keyboard: libreboot_svenska_vesafb.rom
        • +
        + +

        + _txtmode images come with a working MemTest86+ and GRUB Invaders, both of which require text-mode. + _vesafb images are recommended in most cases. +

        + +

        + This will give you your native keyboard layout inside 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). + ../grub/index.html#grub_keyboard 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. +

        + +

        Back to top of page.

        + +
        + +

        X60/X60S/X60T/T60: How to flash the ROM's onto your machine (if running Lenovo BIOS firmware).

        + +
        + +

        + Hover over the next paragraph to make it black. +

        +

        + 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: + http://www.coreboot.org/Board:lenovo/x60/Installation.
        + Do not make this decision lightly! This is your last and only chance. +

        + +

        + The following is for the libreboot image and *not* the factory bios dump: +

        +

        + Check the last two 64K regions in your ROM file (libreboot.rom in this example):
        + $ dd if=libreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s libreboot.rom) - 0x10000] count=64k
        + $ dd if=libreboot.rom of=lower64k.bin bs=1 skip=$[$(stat -c %s libreboot.rom) - 0x20000] count=64k
        + $ sha512sum lower64k.bin top64k.bin
        + Make *sure* that they match before you continue. The ROM's included pre-compiled in libreboot should already match. + If they don't match, then do this (based on those instructions from coreboot wiki):
        + $ dd if=top64k.bin of=libreboot.rom bs=1 seek=$[$(stat -c %s libreboot.rom) - 0x20000] count=64k conv=notrunc
        + After this, the ROM will be safe to flash. Explanation is provided in ../git/index.html#build_bucts. +

        + +
        + +

        This is for the ThinkPad X60 and T60 while running Lenovo BIOS. If you already have coreboot or libreboot running, + then go to #flashrom instead!

        + +

        If you are flashing a Lenovo ThinkPad T60, be sure to read ../hcl/index.html#supported_t60_list

        + +

        + First, install the build dependencies. +

        + +
        + +

        + + Before you proceed, make *sure* to build flashrom and bucts from source. Both are provided. This is very important! + +

        + + +
        + +

        "YOURBOARD/YOURROM" should be replaced with what is correct as per #rom. Alternatively + you may be using your own custom ROM. Adapt.

        + +

        + Run the script:
        + $ sudo ./lenovobios_firstflash bin/YOURBOARD/YOURROM. +

        + +
        + +

        + You should see within the output the following:
        + "Updated BUC.TS=1 - 64kb address ranges at 0xFFFE0000 and 0xFFFF0000 are swapped". +

        + +

        + You should also see within the output the following:
        + "Flash chip is in an unknown state", "FAILED" and "DO NOT SHUTDOWN OR REBOOT"
        + Seeing this means that the operation was a resounding success! DON'T PANIC. +

        + +

        + See this link for more details: + http://thread.gmane.org/gmane.linux.bios.flashrom/575. +

        + +

        + If the above is what you see, then SHUT DOWN. Wait a few seconds, and then boot; libreboot is running, but there is a 2nd procedure *needed* (see below). +

        + +
        + +

        + + If you boot and you see nothing, try turning up the backlight (Fn+Home). + +

        + +

        + When you have booted up again:
        + $ sudo ./lenovobios_secondflash bin/YOURBOARD/YOURROM +

        + +
        + +

        + You should see within the output the following:
        + "Updated BUC.TS=0 - 128kb address range 0xFFFE0000-0xFFFFFFFF is untranslated" +

        + +

        + You should also see within the output the following:
        + "Verifying flash... VERIFIED." +

        + +

        Shut down again, wait a few seconds, and then boot.

        + +
        + +

        + Some thinkpads come with WWAN cards installed, along with sim cards. These use non-free firmware and should be removed. + You might also want to remove bluetooth. See ../security/x60_security.html and + ../security/t60_security.html. +

        + +

        Back to top of page.

        + +
        + +

        macbook21: How to flash your ROM (if running Apple EFI firmware)

        + +
        + +

        + Hover over the next paragraph to make it black. +

        +

        + 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 Apple EFI firmware + 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 Apple EFI is (believed, but unproven to be) tied to the specific machine that it came from; it will not (as is believed) 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 Apple EFI firmware again) or lose it forever. The macbook21 installation + guide on the coreboot wiki will show you how to do this: + http://www.coreboot.org/Board:apple/macbook21.
        + Do not make this decision lightly! This is (very likely) your last and only chance. +

        + +

        + (this theory is untested at the time of writing) +

        + +

        + Note: If you have a MacBook1,1 then these instructions will not work. See ../hcl/index.html#macbook11 for MacBook1,1 flashing instructions. +

        + +
        + +

        + + This is for the MacBook2,1 while running Apple EFI firmware. If you already have + coreboot or libreboot running, then go to #flashrom instead! + +

        + +

        + Be sure to read the information in ../hcl/index.html#macbook21. +

        + +

        + First, install the build dependencies. +

        + +
        + +

        + + Before you proceed, make *sure* to build flashrom from source. This is very important! + +

        + + +
        + +

        + Look at #rom to see which ROM is suitable for your machine. Alternatively you may be using your own + custom ROM. Adapt. +

        + +

        + Flashing is actually easy (compared to X60/T60).
        + $ sudo flashrom -p internal:laptop=force_I_want_a_brick -w bin/YOURBOARD/YOURROM +

        + +

        + Alternatively, a script is provided which does the same thing:
        + $ sudo ./macbook21_firstflash bin/YOURBOARD/YOURROM +

        + +
        + +

        + You should also see within the output the following:
        + "Verifying flash... VERIFIED." +

        + +

        + If you see that, great! Shut down now (power off). Wait a few seconds and then boot! +

        + +

        + + If you boot and you see nothing, try turning up the backlight (F2 for macbook21). + +

        + + +
        + +

        Back to top of page.

        + +
        + +

        X60/X60S/X60T/T60/macbook21: How to flash the ROM's onto your machine (if running libreboot or coreboot already)

        + +

        + + These instructions work for the Lenovo ThinkPad X60/X60S/X60T/T60 and Apple MacBook2,1. + +

        +

        + + This assumes that you already have coreboot or libreboot running. + +

        +

        + + If you have Lenovo BIOS running (X60/X60S/X60T/T60), go to #flashrom_lenovobios instead. + +

        +

        + + If you have Apple EFI firmware running (macbook21), go to #flashrom_macbook21 instead. + +

        +

        + + If you are flashing a Lenovo ThinkPad T60, be sure to read ../hcl/index.html#supported_t60_list. + +

        +

        + + If you are flashing an Apple MacBook2,1, be sure to read the information in ../hcl/index.html#macbook21. + +

        +

        + First, install the build dependencies. +

        +
        + +

        + + Before you proceed, make *sure* to build flashrom from source. This is very important! + +

        + + +
        +

        + Look at #rom to see which ROM is suitable for your machine. Alternative you may be using your own + custom ROM. Adapt. +

        +

        + Flash the ROM:
        + $ sudo ./flash bin/YOURBOARD/YOURROM +

        + +
        + +

        + You should see "Verifying flash... VERIFIED." written at the end of the flashrom output. SHUT DOWN + after you see this, and then boot up again after a few seconds. +

        + +

        + + If you boot and you see nothing, try turning up the backlight (Fn+Home for X60/X60S/X60T/T60, F2 for macbook21). + +

        + +
        + +

        + Some thinkpads come with WWAN cards installed, along with sim cards. These use non-free firmware and should be removed. + You might also want to remove bluetooth. See ../security/x60_security.html and + ../security/t60_security.html. +

        + +

        Back to top of page

        + +
        + +

        + Copyright © 2014 Francis Rowe <info@gluglug.org.uk>
        + This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions. + A copy of the license can be found at ../license.txt. +

        + +

        + This document is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See ../license.txt for more information. +

        + + + diff --git a/docs/howtos/t60_unbrick.html b/docs/install/t60_unbrick.html index 69648e1..b79f3de 100644 --- a/docs/howtos/t60_unbrick.html +++ b/docs/install/t60_unbrick.html @@ -5,12 +5,7 @@ Libreboot documentation: Unbricking the ThinkPad T60 @@ -23,7 +18,7 @@ -

        Or go back to main index

        +

        Or go back to main index

        Table of Contents

          @@ -43,15 +38,15 @@
        • a 2nd computer (maybe another T60. any computer will do)
        • external flashrom-compatible programmer (I'm using the "bus pirate")
        • SOIC-8 IC clip (I'm using the Pomona 5250)
        • -
        • Cable (programmer<>clip) - mine came with the bus pirate.
        • -
        • USB mini a to b cable (for buspirate<>computer connection).
        • +
        • Cable (programmer<>clip) - mine came with the bus pirate.
        • +
        • USB mini a to b cable (for buspirate<>computer connection).
        • rubbing a***hol (misspelling intentional. halal internet) and thermal compound for changing CPU heatsink (procedure involves removing heatsink)

        Software requirements

        Brick type 1: bucts not reset.

        @@ -60,14 +55,14 @@ the ROM wasn't dd'd.* or if Lenovo BIOS was present and libreboot wasn't flashed.

        In this case, unbricking is easy: reset BUC.TS to 0 by removing that yellow cmos coin (it's a battery) and putting it back after a minute or two:
        -

        +

        *Those dd commands should be applied to all newly compiled T60 ROM's (the ROM's in libreboot binary archives already have this applied!):
        dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k
        dd if=coreboot.rom bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k | hexdump
        dd if=top64k.bin of=coreboot.rom bs=1 seek=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k conv=notrunc
        (doing this makes the ROM suitable for use when flashing a machine that still has Lenovo BIOS running, - using those instructions: http://www.coreboot.org/Board:lenovo/x60/Installation. + using those instructions: http://www.coreboot.org/Board:lenovo/x60/Installation. (it says x60, but instructions for t60 are identical)

        @@ -83,109 +78,109 @@

        Remove those screws and remove the HDD:
        - +

        Lift off the palm rest:
        - +

        Lift up the keyboard, pull it back a bit, flip it over like that and then disconnect it from the board:
        - +

        Gently wedge both sides loose:
        - +

        Remove that cable from the position:
        - +

        Now remove that bezel. Remove wifi, nvram battery and speaker connector (also remove 56k modem, on the left of wifi):
        - +

        Remove those screws:
        - +

        Disconnect the power jack:
        - +

        Remove nvram battery:
        - +

        Disconnect cable (for 56k modem) and disconnect the other cable:
        - +

        Disconnect speaker cable:
        - +

        Disconnect the other end of the 56k modem cable:
        - +

        Make sure you removed it:
        - +

        Unscrew those:
        - +

        Make sure you removed those:
        - +

        Disconnect LCD cable from board:
        - +

        Remove those screws then remove the LCD assembly:
        - +

        Once again, make sure you removed those:
        - +

        Remove the shielding containing the motherboard, then flip it over. Remove these screws, placing them on a steady surface in the same layout as they were in before you removed them. Also, you should mark each screw hole after removing the screw (a permanent marker pen will do), this is so that you have a point of reference when re-assembling the machine:
        - - + +

        At this point, you should wire up your programmer according to it's documentation. For me, this was (see: "SparkFun cable pin reference"):
        - http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts.
        + http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts.
        Correlating with the following information, I was able to wire up my pirate correctly:
        - http://flashrom.org/Bus_Pirate#Connections
        + http://flashrom.org/Bus_Pirate#Connections
        And by following that advice:
        - http://www.coreboot.org/Board:lenovo/x60/Installation#Howto.
        + http://www.coreboot.org/Board:lenovo/x60/Installation#Howto.
        (it says X60 but instructions are virtually the same for the T60, with except to physical differences in how to disassemble the machine)
        Note: that last page says to wire up only those 5 pins (see below) like that: 1, 2, 4, 5, 6.
        Note: and then, for power it says (on that coreboot.org page) to connect the power jack to the board and connect the @@ -193,22 +188,22 @@ Note: I ignored that advice, and wired up all 8 pins. And it worked.
        Here is the pinout (correlate it with your programmer's documentation):
        - +

        Connecting the pomona:
        - +

        Connect programmer to 2nd computer:
        - +

        Programmer has power:
        - +

        @@ -217,19 +212,21 @@ Note: there are also other ROM images for T60
        Note: this is using buspirate as the programmer, so it is flashing the T60, not the 2nd computer!
        Here's my terminal window on the 2nd computer (also the programmer is active):
        -
        +
        So, you should see the following:
        -- +

        -			flashrom v0.9.5.2-r1517 on Linux 3.2.0-61-generic (i686), built with libpci 3.1.8, GCC 4.6.3, little endian
        -			flashrom is free software, get the source code at http://www.flashrom.org
        -
        -			Calibrating delay loop... delay loop is unreliable, trying to continue OK.
        -			Found Macronix flash chip "MX25L1605" (2048 kB, SPI) on buspirate_spi.
        -			Reading old flash chip contents... done.
        -			Erasing and writing flash chip... Erase/write done.
        -			Verifying flash... VERIFIED. 
        -			
        +flashrom v0.9.5.2-r1517 on Linux 3.2.0-61-generic (i686), built with libpci 3.1.8, GCC 4.6.3, little endian +flashrom is free software, get the source code at http://www.flashrom.org + +Calibrating delay loop... delay loop is unreliable, trying to continue OK. +Found Macronix flash chip "MX25L1605" (2048 kB, SPI) on buspirate_spi. +Reading old flash chip contents... done. +Erasing and writing flash chip... Erase/write done. +Verifying flash... VERIFIED. +
    +

    --
    At the end it says "VERIFIED", which means that the procedure worked. If you see this, it means that you can put your T60 back together. So let's do that now. @@ -237,44 +234,44 @@

    Put those screws back:
    - +

    Put it back into lower chassis:
    - +

    Attach LCD and insert screws (also, attach the lcd cable to the board):
    - +

    Insert those screws:
    - +

    On the CPU (and there is another chip south-east to it, sorry forgot to take pic) clean off the old thermal paste (rubbing a1ocheal (misspelling intentional. halal internet)) and apply new (Artic Silver 5 is good, others are good too) you should also clean the heatsink the same way
    - +

    Attach the heatsink and install the screws (also, make sure to install the AC jack as highlighted):
    - +

    Reinstall that upper bezel:
    - +

    Do that:
    - +

    @@ -283,22 +280,22 @@

    Attach keyboard and install nvram battery:
    - +

    Place keyboard and (sorry, forgot to take pics) reinstall the palmrest and insert screws on the underside:
    - +

    It lives!
    - +

    Always stress test ('stress -c 2' and xsensors. below 90C is ok) when replacing cpu paste/heatsink:
    - +


    diff --git a/docs/howtos/x60_unbrick.html b/docs/install/x60_unbrick.html index 945712d..751c4a8 100644 --- a/docs/howtos/x60_unbrick.html +++ b/docs/install/x60_unbrick.html @@ -5,12 +5,7 @@ Libreboot documentation: Unbricking the ThinkPad X60 @@ -23,7 +18,7 @@ -

    Or go back to main index

    +

    Or go back to main index

    Table of Contents

    Software requirements

    Brick type 1: bucts not reset.

    @@ -59,14 +54,14 @@ the ROM wasn't dd'd.* or if Lenovo BIOS was present and libreboot wasn't flashed.

    In this case, unbricking is easy: reset BUC.TS to 0 by removing that yellow cmos coin (it's a battery) and putting it back after a minute or two:
    -

    +

    *Those dd commands should be applied to all newly compiled X60 ROM's (the ROM's in libreboot binary archives already have this applied!):
    dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k
    dd if=coreboot.rom bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k | hexdump
    dd if=top64k.bin of=coreboot.rom bs=1 seek=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k conv=notrunc
    (doing this makes the ROM suitable for use when flashing a machine that still has Lenovo BIOS running, - using those instructions: http://www.coreboot.org/Board:lenovo/x60/Installation. + using those instructions: http://www.coreboot.org/Board:lenovo/x60/Installation.

    bad rom (or user error), machine won't boot

    @@ -79,217 +74,213 @@

    Remove those screws:
    - +

    Push the keyboard forward (carefully):
    - +

    Lift the keyboard up and disconnect it from the board:
    - +

    Grab the right-hand side of the chassis and force it off (gently) and pry up the rest of the chassis:
    - +

    You should now have this:
    - +

    Disconnect the wifi antenna cables, the modem cable and the speaker:
    - +

    Unroute the cables along their path, carefully lifting the tape that holds them in place. Then, disconnect the modem cable (other end) and power connection and unroute all the cables so that they dangle by the monitor hinge on the right-hand side:
    - +

    Disconnect the monitor from the motherboard, and unroute the grey antenna cable, carefully lifting the tape that holds it into place:
    - +

    Carefully lift the remaining tape and unroute the left antenna cable so that it is loose:
    - +

    Remove the screw that is highlighted (do NOT remove the other one; it holds part of the heatsink (other side) into place):
    - +

    Remove those screws:
    - +

    Carefully remove the plate, like so:
    - +

    Remove the SATA connector:
    - +

    Now remove the motherboard (gently) and cast the lcd/chassis aside:
    - +

    Lift back that tape and hold it with something. Highlighted is the SPI flash chip:
    - +

    At this point, you should wire up your programmer according to it's documentation. For me, this was (see: "SparkFun cable pin reference"):
    - http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts.
    + http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts.
    Correlating with the following information, I was able to wire up my pirate correctly:
    - http://flashrom.org/Bus_Pirate#Connections
    + http://flashrom.org/Bus_Pirate#Connections
    And by following that advice:
    - http://www.coreboot.org/Board:lenovo/x60/Installation#Howto.
    + http://www.coreboot.org/Board:lenovo/x60/Installation#Howto.
    Note: that last page says to wire up only those 5 pins (see below) like that: 1, 2, 4, 5, 6.
    Note: and then, for power it says (on that coreboot.org page) to connect the power jack to the board and connect the AC adapter (without powering on the board).
    Note: I ignored that advice, and wired up all 8 pins. And it worked.
    Here is the pinout (correlate it with your programmer's documentation):
    - +

    - My programmer, usb cable and clip:
    -
    My programmer (bus pirate):
    -
    +
    My clip (pomona 5250):
    -
    - My USB mini a to b cable:
    -
    +
    Connecting the pomona:
    -
    +
    Connecting the USB cable from programmer to 2nd(working/non-bricked) computer, my T60:
    -
    - Programmer is now active:
    -
    +
    Now I install flashrom on the T60 (running Trisquel GNU/Linux) and do this:
    flashrom -p buspirate_spi:dev=/dev/ttyUSB0 -w bin/x60/libreboot_usqwerty.rom
    Note: there are also other ROM images for X60
    Note: this is using buspirate as the programmer, so it is flashing the X60, not the T60!
    Here's my terminal window on the T60:
    -
    +
    So, you should see the following:
    -- -

    -			flashrom v0.9.5.2-r1517 on Linux 3.2.0-61-generic (i686), built with libpci 3.1.8, GCC 4.6.3, little endian
    -			flashrom is free software, get the source code at http://www.flashrom.org
    +		

    +
    +flashrom v0.9.5.2-r1517 on Linux 3.2.0-61-generic (i686), built with libpci 3.1.8, GCC 4.6.3, little endian
    +flashrom is free software, get the source code at http://www.flashrom.org
     
    -			Calibrating delay loop... delay loop is unreliable, trying to continue OK.
    -			Found Macronix flash chip "MX25L1605" (2048 kB, SPI) on buspirate_spi.
    -			Reading old flash chip contents... done.
    -			Erasing and writing flash chip... Erase/write done.
    -			Verifying flash... VERIFIED. 
    -			
    +Calibrating delay loop... delay loop is unreliable, trying to continue OK. +Found Macronix flash chip "MX25L1605" (2048 kB, SPI) on buspirate_spi. +Reading old flash chip contents... done. +Erasing and writing flash chip... Erase/write done. +Verifying flash... VERIFIED. +
    +

    --
    At the end it says "VERIFIED", which means that the procedure worked. If you see this, it means that you can put your X60 back together. So let's do that now.

    Remove the programmer and put it away somewhere. Put back the tape and press firmly over it:
    - +

    Your empty chassis:
    - +

    Put the motherboard back in:
    - +

    Reconnect SATA:
    - +

    Put the plate back and re-insert those screws:
    - +

    Re-route that antenna cable around the fan and apply the tape:
    - +

    Route the cable here and then (not shown, due to error on my part) reconnect the monitor cable to the motherboard and re-insert the screws:
    - +

    Re-insert that screw:
    - +

    Route the black antenna cable like so:
    - +

    Tuck it in neatly like so:
    - +

    Route the modem cable like so:
    - +

    Connect modem cable to board and tuck it in neatly like so:
    - +

    Route the power connection and connect it to the board like so:
    - +

    Route the antenna and modem cables neatly like so:
    - +

    Connect the wifi antenna cables. At the start of the tutorial, this machine had an Intel wifi chip. Here you see I've replaced it with an Atheros AR5B95 (supports 802.11n and can be used without blobs):
    - +

    Connect the modem cable:
    - +

    Connect the speaker:
    - +

    You should now have this:
    - +

    Re-connect the upper chassis:
    - +

    Re-connect the keyboard:
    - +

    Re-insert the screws that you removed earlier:
    - +

    Power on!
    - +

    Trisquel live USB menu (using GRUB's ISOLINUX parser):
    - +

    Trisquel live desktop:
    - +


    diff --git a/docs/howtos/x60tablet_unbrick.html b/docs/install/x60tablet_unbrick.html index da60227..b5aad3c 100644 --- a/docs/howtos/x60tablet_unbrick.html +++ b/docs/install/x60tablet_unbrick.html @@ -5,12 +5,7 @@ Libreboot documentation: Unbricking the ThinkPad X60 Tablet @@ -23,7 +18,7 @@ -

    Or go back to main index

    +

    Or go back to main index

    Table of Contents

    Software requirements

    Brick type 1: bucts not reset.

    @@ -59,14 +54,14 @@ the ROM wasn't dd'd.* or if Lenovo BIOS was present and libreboot wasn't flashed.

    In this case, unbricking is easy: reset BUC.TS to 0 by removing that yellow cmos coin (it's a battery) and putting it back after a minute or two:
    -

    +

    *Those dd commands should be applied to all newly compiled X60 ROM's (the ROM's in libreboot binary archives already have this applied!):
    dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k
    dd if=coreboot.rom bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k | hexdump
    dd if=top64k.bin of=coreboot.rom bs=1 seek=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k conv=notrunc
    (doing this makes the ROM suitable for use when flashing a machine that still has Lenovo BIOS running, - using those instructions: http://www.coreboot.org/Board:lenovo/x60/Installation. + using those instructions: http://www.coreboot.org/Board:lenovo/x60/Installation.

    bad rom (or user error), machine won't boot

    @@ -79,103 +74,98 @@

    - +

    Remove those screws:
    - +

    Remove the HDD:
    - +

    Push keyboard forward to loosen it:
    - +

    Lift:
    - +

    Remove those:
    - +

    - +

    Also remove that (marked) and unroute the antenna cables:
    - +

    Some X60T's you have to unroute those too:
    - +

    Remove the LCD extend board screws. Also remove those screws (see blue marks) and remove/unroute the cables and remove the metal plate:
    - +

    Remove that screw and then remove the board:
    - +

    At this point, you should wire up your programmer according to it's documentation. For me, this was (see: "SparkFun cable pin reference"):
    - http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts.
    + http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts.
    Correlating with the following information, I was able to wire up my pirate correctly:
    - http://flashrom.org/Bus_Pirate#Connections
    + http://flashrom.org/Bus_Pirate#Connections
    And by following that advice:
    - http://www.coreboot.org/Board:lenovo/x60/Installation#Howto.
    + http://www.coreboot.org/Board:lenovo/x60/Installation#Howto.
    Note: that last page says to wire up only those 5 pins (see below) like that: 1, 2, 4, 5, 6.
    Note: and then, for power it says (on that coreboot.org page) to connect the power jack to the board and connect the AC adapter (without powering on the board).
    Note: I ignored that advice, and wired up all 8 pins. And it worked.
    Here is the pinout (correlate it with your programmer's documentation):
    -
    +
    (SPI chip here is on the bottom of the board)

    Bus pirate:
    - +

    Pomona 5250:
    - +

    Connect pomona:
    - +

    Connect pirate to USB on 2nd computer:
    - +

    - Pirate is active:
    - -

    - -

    - +

    diff --git a/docs/misc/index.html b/docs/misc/index.html new file mode 100644 index 0000000..8fb52ff --- /dev/null +++ b/docs/misc/index.html @@ -0,0 +1,184 @@ + + + + + + + + + Miscellaneous + + + + +

    Miscellaneous

    +

    + Or Back to main index. +

    + + +
    + +

    High Pitched Whining Noise on Idle (how to remove in Trisquel)

    + +

    + Tested in Trisquel 6. +

    +

    + Note: untested in Trisquel 7. Remove this note when it is. +

    + +

    Powertop - how to use

    + +

    Now you can use this command to kill that noise:
    + $ sudo powertop --auto-tune

    + +

    You can also run it without parameters and then go into 'Tunables' and set everything to 'Good'

    + +

    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:

    + +

    Powertop - Start automatically at boot time (Trisquel 6)

    + +

    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.

    + +

    $ ./powertop.trisquel6

    + +

    This has been tested on Trisquel 6.

    + +

    Back to top of page

    + +
    + +

    High Pitched Whining Noise on Idle (how to remove in Parabola)

    + +

    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).

    + +

    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!

    + +

    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!

    + +

    Be root
    + $ su -

    + +

    Installed powertop:
    + # pacman -S powertop

    + +

    and added the following to /etc/systemd/system/powertop.service :

    + +
    
    +[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
    +
    + + +

    Finally, as root do that:
    + # systemctl enable powertop
    + # systemctl start powertop

    + +

    The next time you boot the machine, the buzz will be gone.

    + +

    Back to top of page

    + +
    + +

    X60/T60: Serial port - how to use (for dock owners)

    +

    + For the Thinkpad X60 you can use the "UltraBase X6" dock (for the X60 Tablet it is called + X6 Tablet UltraBase). For the ThinkPad T60, + you can use the "Advanced Mini Dock". +

    +

    + 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. +

    +

    + On the 2nd machine, you can try this (using GNU Screen):
    + $ sudo screen /dev/ttyUSB0 115200 +

    +

    + How to quit GNU Screen: Ctrl+A then release and press K, and then press Y. +

    +

    There are also others like Minicom but I like GNU Screen

    +

    + 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. +

    +

    + 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:
    + https://help.ubuntu.com/community/SerialConsoleHowto +

    +

    + Note: part of the tutorial above requires changing your grub.cfg. Just change the linux line to add instructions for enabling getty. + See ../gnulinux/grub_cbfs.html. +

    +

    Back to top of page + +


    + +

    Get EDID: Find out the name (model) of your LCD panel

    +

    + Get the panel name with sudo get-edid | strings
    + Or look in /sys/class/drm/card0-LVDS-1/edid +

    +

    + Alternatively you can use i2cdump. In Trisquel, this is in the package i2c-tools.
    + $ sudo modprobe i2c-dev
    + $ sudo i2cdump -y 5 0x50
    + $ sudo rmmod i2c-dev
    + You'll see the panel name in the output (from the EDID dump). +

    +

    + 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. +

    + +

    Back to top of page.

    + +
    + +

    + Copyright © 2014 Francis Rowe <info@gluglug.org.uk>
    + This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions. + A copy of the license can be found at ../license.txt. +

    + +

    + This document is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See ../license.txt for more information. +

    + + + diff --git a/docs/patch.html b/docs/misc/patch.html index 2131951..3d926ac 100644 --- a/docs/patch.html +++ b/docs/misc/patch.html @@ -6,12 +6,7 @@ @@ -119,7 +114,7 @@ <p> Just make whatever changes you want to a git clone and then:<br/> - <b>$ git diff > patch.git</b> + <b>$ git diff > patch.git</b> </p> <p> @@ -155,13 +150,13 @@ <p> Copyright © 2014 Francis Rowe <info@gluglug.org.uk><br/> This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions. - A copy of the license can be found at <a href="license.txt">license.txt</a>. + A copy of the license can be found at <a href="../license.txt">../license.txt</a>. </p> <p> This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="license.txt">license.txt</a> for more information. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information. </p> </body> diff --git a/docs/release.html b/docs/release.html index 9547eda..3f66e5e 100644 --- a/docs/release.html +++ b/docs/release.html @@ -5,21 +5,7 @@ <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 { /* for people who are colour-blind */ - color: #000; - } - div.important { - background-color:#ccc; - } + @import url('css/main.css'); </style> <title>Libreboot release information @@ -73,8 +59,8 @@

    - Installation instructions can be found at index.html#flashrom. - Building instructions (for source code) can be found at index.html#build. + Installation instructions can be found at install/index.html#flashrom. + Building instructions (for source code) can be found at git/index.html#build.

    Machines supported in this release:

    @@ -91,29 +77,29 @@
  • Lenovo ThinkPad X60 Tablet (1024x768 and 1400x1050) with digitizer support
  • - Lenovo ThinkPad T60 (Intel GPU) (there are issues; see below) + Lenovo ThinkPad T60 (Intel GPU) (there are issues; see below):
  • Apple MacBook1,1 (MA255LL/A, MA254LL/A, MA472LL/A)
  • Apple MacBook2,1 (MA699LL/A, MA701LL/A, MB061LL/A, MA700LL/A, MB063LL/A, MB062LL/A)
  • @@ -139,7 +125,7 @@
  • builddeps-coreboot: use 'make crossgcc-i386' instead of 'make crossgcc'. Libreboot only targets x86 at the time of writing.
  • ROM images no longer include SeaBIOS. Instead, the user adds it afterwards. Documentation and scripts updated.
  • -
  • docs/howtos/encrypted_parabola.html: Notes about linux-libre-grsec
  • +
  • docs/images/encrypted_parabola.html: Notes about linux-libre-grsec
  • Documentation: encrypted_parabola.html: add tutorial for encrypted Parabola GNU/Linux installation.
  • Documentation: added more info about wifi chipsets
  • diff --git a/docs/howtos/dock.html b/docs/security/dock.html index ef62e83..2b7fe75 100644 --- a/docs/howtos/dock.html +++ b/docs/security/dock.html @@ -5,15 +5,7 @@ Notes about DMA and the docking station (X60/T60) @@ -22,7 +14,6 @@

    Notes about DMA and the docking station (X60/T60)

    -
    @@ -67,7 +58,7 @@ other one is in the laptop, so we have:
                                 ________________
      _________________         |                |
     |                 |        | Dock connector:|
    -|Dock: NSC pc87982|<--LPC--->D_LPC_DREQ0    |
    +|Dock: NSC pc87982|<--LPC--->D_LPC_DREQ0    |
     |_________________|        |_______^________|
                                        |
                                        |
    @@ -112,7 +103,7 @@ outside:
     >          int timeout = 1000;
     > +        int val;
     > +        
    -> +        if (get_option(&val, "dock") != CB_SUCCESS)
    +> +        if (get_option(&val, "dock") != CB_SUCCESS)
     > +                val = 1;
     > +        if (val == 0)
     > +                return 0;
    @@ -156,7 +147,7 @@ added too?
     	

    This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See ../license.txt../license.txt for more information.

    diff --git a/docs/howtos/x60_lcd_change.html b/docs/security/index.html index 3ddeaac..64008b8 100644 --- a/docs/howtos/x60_lcd_change.html +++ b/docs/security/index.html @@ -5,36 +5,22 @@ - Libreboot documentation: Unbricking the ThinkPad T60 + Security topics -
    -

    Changing the LCD panel on X60

    -
    - -

    Or go back to main index

    - -

    This tutorial is incomplete, and only pictures for now.

    - -

    - - - - - - - -

    +

    Security topics

    +

    + Or Back to main index. +

    +
    diff --git a/docs/howtos/t60_security.html b/docs/security/t60_security.html index f39c739..eb3db03 100644 --- a/docs/howtos/t60_security.html +++ b/docs/security/t60_security.html @@ -5,12 +5,7 @@ Libreboot documentation: Security on the ThinkPad T60 @@ -23,7 +18,7 @@ -

    Or go back to main index

    +

    Or go back to main index

    Table of Contents

      @@ -78,32 +73,32 @@

      Remove those screws and remove the HDD:
      - +

      Lift off the palm rest:
      - +

      Lift up the keyboard, pull it back a bit, flip it over like that and then disconnect it from the board:
      - +

      Gently wedge both sides loose:
      - +

      Remove that cable from the position:
      - +

      Now remove that bezel. Remove wifi, nvram battery and speaker connector (also remove 56k modem, on the left of wifi):
      -
      +
      Reason: has direct (and very fast) memory access, and could (theoretically) leak data over a side-channel.
      Wifi: The ath5k/ath9k cards might not have firmware at all. They might safe but could have access to the computer's RAM trough DMA. If people have an intel @@ -114,75 +109,75 @@

      Remove those screws:
      - +

      Disconnect the power jack:
      - +

      Remove nvram battery (we will put it back later):
      - +

      Disconnect cable (for 56k modem) and disconnect the other cable:
      - +

      Disconnect speaker cable:
      - +

      Disconnect the other end of the 56k modem cable:
      - +

      Make sure you removed it:
      - +

      Unscrew those:
      - +

      Make sure you removed those:
      - +

      Disconnect LCD cable from board:
      - +

      Remove those screws then remove the LCD assembly:
      - +

      Once again, make sure you removed those:
      - +

      Remove the shielding containing the motherboard, then flip it over. Remove these screws, placing them on a steady surface in the same layout as they were in before you removed them. Also, you should mark each screw hole after removing the screw (a permanent marker pen will do), this is so that you have a point of reference when re-assembling the machine:
      - - + +

      Remove microphone (soldering iron not needed. Just wedge it out gently):
      -
      +
      Rationale:
      Another reason to remove the microphone: If your computer gets[1] compromised, it can record what you say, and use it to receive data from nearby devices if @@ -193,12 +188,12 @@

      Remove infrared:
      - +

      Remove cardbus (it's in a socket, no need to disable. Just remove the port itself):
      -
      +
      Rationale:
      It has direct memory access and can be used to extract sensitive details (such as LUKS keys). See 'GoodBIOS' video linked at the end (speaker is Peter Stuge, a coreboot hacker). The video covers X60 @@ -207,7 +202,7 @@

      Before re-installing the upper chassis, remove the speaker:
      -
      +
      Reason: combined with the microphone issue, this could be used to leak data.
      If your computer gets[1] compromised, it can be used to transmit data to nearby compromised devices. It's unknown if it can be @@ -217,7 +212,7 @@

      Remove the wwan:
      -
      +
      Wwan (3d modem): They run proprietary software and have access to the computer's RAM! So it's like AMT but over the GSM network which is probably even worse.
      @@ -227,64 +222,64 @@

      This is where the simcard connector is soldered. See notes above about wwan. Remove simcard by removing battery and then it's accessible (so, remember to do this when you re-assemble. or you could do it now?)
      - +

      Put those screws back:
      - +

      Put it back into lower chassis:
      - +

      Attach LCD and insert screws (also, attach the lcd cable to the board):
      - +

      Insert those screws:
      - +

      On the CPU (and there is another chip south-east to it, sorry forgot to take pic) clean off the old thermal paste (rubbing a1ocheal (misspelling intentional. halal internet)) and apply new (Artic Silver 5 is good, others are good too) you should also clean the heatsink the same way
      - +

      Attach the heatsink and install the screws (also, make sure to install the AC jack as highlighted):
      - +

      Reinstall that upper bezel:
      - +

      Do that:
      - +

      Attach keyboard and install nvram battery:
      - +

      Place keyboard and (sorry, forgot to take pics) reinstall the palmrest and insert screws on the underside:
      - +

      Remove those covers and unscrew:
      - +

      @@ -293,7 +288,7 @@

      Remove bluetooth module:
      - +

      @@ -302,12 +297,12 @@

      It lives!
      - +

      Always stress test ('stress -c 2' and xsensors. below 90C is ok) when replacing cpu paste/heatsink:
      - +

      @@ -391,8 +386,8 @@ Further reading material (software security)

      diff --git a/docs/howtos/x60_security.html b/docs/security/x60_security.html index e24ae12..33ccb6d 100644 --- a/docs/howtos/x60_security.html +++ b/docs/security/x60_security.html @@ -5,12 +5,7 @@ Libreboot documentation: Security on the ThinkPad X60 @@ -23,7 +18,7 @@ -

      Or go back to main index

      +

      Or go back to main index

      Table of Contents

        @@ -79,17 +74,17 @@

        Firstly remove the bluetooth (if your X60 has this):
        The marked screws are underneath those stickers (marked in those 3 locations at the bottom of the LCD assembly):
        -
        +
        Now gently pry off the bottom part of the front bezel, and the bluetooth module is on the left (easily removable):
        -
        +

        If your model was WWAN, remove the simcard (check anyway):
        Uncover those 2 screws at the bottom:
        -
        +
        SIM card (not present in the picture) is in the marked location:
        -
        +
        Replacement: USB dongle.

        @@ -99,28 +94,28 @@

        Remove those screws:
        - +

        Push the keyboard forward (carefully):
        - +

        Lift the keyboard up and disconnect it from the board:
        - +

        Grab the right-hand side of the chassis and force it off (gently) and pry up the rest of the chassis:
        - +

        You should now have this:
        - +

        The following is a summary of what you will remove (already done to this machine):
        -
        +
        Note: the blue lines represent antenna cables and modem cables. You don't need to remove these, but you can if you want (to make it tidier after removing other parts). I removed the antenna wires, the modem jack, the modem cable and also (on another model) a device inside the part where the wwan antenna goes (wasn't sure what it was, but I knew it wasn't needed). This is optional @@ -128,7 +123,7 @@

        Remove the microphone (can desolder it, but you can also easily pull it off with you hands). Already removed here:
        -
        +
        Rationale:
        Another reason to remove the microphone: If your computer gets[1] compromised, it can record what you say, and use it to receive data from nearby devices if @@ -139,13 +134,13 @@

        Remove the modem:
        -
        +
        (useless, obsolete device)

        Remove the speaker:
        -
        +
        Reason: combined with the microphone issue, this could be used to leak data.
        If your computer gets[1] compromised, it can be used to transmit data to nearby compromised devices. It's unknown if it can be @@ -155,7 +150,7 @@

        Remove the wlan (also remove wwan if you have it):
        -
        +
        Reason: has direct (and very fast) memory access, and could (theoretically) leak data over a side-channel.
        Wifi: The ath5k/ath9k cards might not have firmware at all. They might safe but could have access to the computer's RAM trough DMA. If people have an intel @@ -252,8 +247,8 @@ Further reading material (software security)

        -- cgit v0.9.1