diff options
Diffstat (limited to 'docs/install')
-rw-r--r-- | docs/install/bbb_setup.md | 39 | ||||
-rw-r--r-- | docs/install/c201.md | 52 | ||||
-rw-r--r-- | docs/install/d510mo.md | 8 | ||||
-rw-r--r-- | docs/install/d945gclf.md | 7 | ||||
-rw-r--r-- | docs/install/ga-g41m-es2l.md | 8 | ||||
-rw-r--r-- | docs/install/images/x200/disassembly/0006.1.jpg | bin | 0 -> 32364 bytes | |||
-rw-r--r-- | docs/install/index.md | 72 | ||||
-rw-r--r-- | docs/install/kcma-d8.md | 13 | ||||
-rw-r--r-- | docs/install/kgpe-d16.md | 15 | ||||
-rw-r--r-- | docs/install/r400_external.md | 44 | ||||
-rw-r--r-- | docs/install/rpi_setup.md | 66 | ||||
-rw-r--r-- | docs/install/t400_external.md | 49 | ||||
-rw-r--r-- | docs/install/t500_external.md | 52 | ||||
-rw-r--r-- | docs/install/t60_unbrick.md | 30 | ||||
-rw-r--r-- | docs/install/x200_external.md | 149 | ||||
-rw-r--r-- | docs/install/x60_unbrick.md | 30 | ||||
-rw-r--r-- | docs/install/x60tablet_unbrick.md | 30 |
17 files changed, 367 insertions, 297 deletions
diff --git a/docs/install/bbb_setup.md b/docs/install/bbb_setup.md index af9026b3..b80203b4 100644 --- a/docs/install/bbb_setup.md +++ b/docs/install/bbb_setup.md @@ -28,7 +28,7 @@ flashing on the ThinkPad X200, but it should work for other targets. here is a photo of the setup for the teensy: <http://h5ai.swiftgeek.net/IMG_20160601_120855.jpg> -Onto the Beaglebone black\... +Onto the Beaglebone black... Hardware requirements ===================== @@ -150,12 +150,14 @@ Alternatives to SSH (in case SSH fails) You can also use a serial FTDI debug board with GNU Screen, to access the serial console. # screen /dev/ttyUSB0 115200 + Here are some example photos:\ ![](images/x200/ftdi.jpg) ![](images/x200/ftdi_port.jpg)\ You can also connect the USB cable from the BBB to another computer and a new network interface will appear, with its own IP address. This is directly accessible from SSH, or screen: + # screen /dev/ttyACM0 115200 You can also access the uboot console, using the serial method instead @@ -202,14 +204,16 @@ before continuing. Check that the firmware exists: # ls /lib/firmware/BB-SPI0-01-00A0.\* + Output: /lib/firmware/BB-SPI0-01-00A0.dtbo Then: - # echo BB-SPI0-01 > /sys/devices/bone\_capemgr.\*/slots - # cat /sys/devices/bone\_capemgr.\*/slots + # echo BB-SPI0-01 > /sys/devices/bone_capemgr.\*/slots + # cat /sys/devices/bone_capemgr.\*/slots + Output: 0: 54:PF--- @@ -223,6 +227,7 @@ Output: Verify that the spidev device now exists: # ls -al /dev/spid\* + Output: crw-rw---T 1 root spi 153, 0 Nov 19 21:07 /dev/spidev1.0 @@ -246,7 +251,8 @@ your BBB. Now test flashrom: - # ./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 + Output: Calibrating delay loop... OK. @@ -327,25 +333,12 @@ leads, **but** keep all other leads short (10cm or less) You should now have something that looks like this:\ ![](images/x200/5252_bbb0.jpg) ![](images/x200/5252_bbb1.jpg) -Notes about stability {#stability} -===================== - -<http://flashrom.org/ISP> is what we typically do in libreboot, though -not always. That page has some notes about using resistors to affect -stability. Currently, we use spispeed=512 (512kHz) but it is possible to -use higher speeds while maintaining stability. - -tty0\_ in \#libreboot was able to get better flashing speeds with the -following configuration: - -- "coax" with 0.1 mm core and aluminum foley (from my kitchen), add - 100 Ohm resistors (serial) -- put heatshrink above the foley, for: CS, CLK, D0, D1 -- Twisted pair used as core (in case more capacitors are needed) -- See this image: <http://i.imgur.com/qHGxKpj.jpg> -- He was able to flash at 50MHz (lower speeds are also fine). - Copyright © 2014, 2015 Leah Rowe <info@minifree.org>\ Copyright © 2015 Patrick "P. J." McDermott <pj@pehjota.net>\ Copyright © 2015 Albin Söderqvist\ -This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License Version 1.3 or any later +version published by the Free Software Foundation +with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. +A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/install/c201.md b/docs/install/c201.md index 648adde5..bcacd75b 100644 --- a/docs/install/c201.md +++ b/docs/install/c201.md @@ -1,5 +1,6 @@ --- title: ASUS Chromebook C201 installation guide +x-toc-enable: true ... These instructions are for installing Libreboot to the ASUS Chromebook @@ -25,26 +26,14 @@ source code is made available by Google: It is not distributed along with Libreboot yet. However, it is preinstalled on the device, with ChromeOS. -Installing Libreboot internally requires sufficient privileges on the -system installed on the device.\ -When the device has ChromeOS installed (as it does initially), it is -necessary to gain root privileges in ChromeOS, to be able to access a -root shell. - -- [Gaining root privileges on ChromeOS](#root_chromeos) -- [Preparing the device for the installation](#preparing_device) - - [Configuring verified boot - parameters](#configuring_verified_boot_parameters) - - [Removing the write protect - screw](#removing_write_protect_screw) -- [Installing Libreboot to the SPI flash]() - - [Installing Libreboot internally, from the - device](#installing_libreboot_internally) - - [Installing Libreboot externally, with a SPI flash - programmer](#installing_libreboot_externally) -- [Debian GNU+Linux is recommended for this device](#debian) +Installing Libreboot internally requires sufficient privileges on the system +installed on the device. When the device has ChromeOS installed (as it does +initially), it is necessary to gain root privileges in ChromeOS, to be able to +access a root shell. Gaining root privileges on ChromeOS +-------------------------------- + In order to gain root privileges on ChromeOS, developer mode has to be enabled from the recovery mode screen and debugging features have to be enabled in ChromeOS. @@ -75,7 +64,7 @@ Before installing Libreboot on the device, both its software and hardware has to be prepared to allow the installation procedure and to ensure that security features don't get in the way. -Configuring verified boot parameters {#configuring_verified_boot_parameters} +Configuring verified boot parameters ------------------------------------ It is recommended to have access to the [developer mode @@ -89,7 +78,7 @@ parameters](../depthcharge/#configuring_verified_boot_parameters): Those changes can be reverted later, when the device is known to be in a working state. -Removing the write protect screw {#removing_write_protect_screw} +Removing the write protect screw -------------------------------- Since part of the SPI flash is write-protected by a screw, it is @@ -111,7 +100,7 @@ screw](images/c201/wp-screw.jpg)](images/c201/wp-screw.jpg) The write protect screw can be put back in place later, when the device is known to be in a working state. -Installing Libreboot to the SPI flash {#installing_libreboot_spi_flash} +Installing Libreboot to the SPI flash ===================================== The SPI flash (that holds Libreboot) is divided into various partitions @@ -119,7 +108,7 @@ that are used to implement parts of the CrOS security system. Libreboot is installed in the *read-only* coreboot partition, that becomes writable after removing the write-protect screw. -Installing Libreboot internally, from the device {#installing_libreboot_internally} +Installing Libreboot internally, from the device ------------------------------------------------ Before installing Libreboot to the SPI flash internally, the device has @@ -131,16 +120,20 @@ transferred to the device. The following operations have to be executed with root privileges on the device (e.g. using the *root* account). In addition, the **cros-flash-replace** script has to be made executable: + # chmod a+x cros-flash-replace The SPI flash has to be read first: + # flashrom -p host -r flash.img\ + **Note: it might be a good idea to copy the produced flash.img file at this point and store it outside of the device for backup purposes.** Then, the **cros-flash-replace** script has to be executed as such: # ./cros-flash-replace flash.img coreboot ro-frid + If any error is shown, it is definitely a bad idea to go further than this point. @@ -149,11 +142,11 @@ The resulting flash image can then be flashed back: # flashrom -p host -w flash.img You should also see within the output the following:\ -**"Verifying flash\... VERIFIED."** +**"Verifying flash... VERIFIED."** Shut down. The device will now boot to Libreboot. -Installing Libreboot externally, with a SPI flash programmer {#installing_libreboot_externally} +Installing Libreboot externally, with a SPI flash programmer ------------------------------------------------------------ Before installing Libreboot to the SPI flash internally, the device has @@ -184,12 +177,14 @@ host (e.g. using the *root* account). In addition, the The SPI flash has to be read first (using the right spi programmer): # flashrom -p *programmer* -r flash.img + **Note: it might be a good idea to copy the produced flash.img file at this point and store it outside of the device for backup purposes.** Then, the **cros-flash-replace** script has to be executed as such: # ./cros-flash-replace flash.img coreboot ro-frid + If any error is shown, it is definitely a bad idea to go further than this point. @@ -199,7 +194,7 @@ programmer): # flashrom -p *programmer* -w flash.img You should also see within the output the following:\ -**"Verifying flash\... VERIFIED."** +**"Verifying flash... VERIFIED."** The device will now boot to Libreboot. @@ -210,4 +205,9 @@ Debian is recommended for this device (which is on that list. See <https://wiki.debian.org/InstallingDebianOn/Asus/C201>. Copyright © 2015 Paul Kocialkowski <contact@paulk.fr>\ -This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License Version 1.3 or any later +version published by the Free Software Foundation +with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. +A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/install/d510mo.md b/docs/install/d510mo.md index a695ce48..4a03c29c 100644 --- a/docs/install/d510mo.md +++ b/docs/install/d510mo.md @@ -9,6 +9,7 @@ Flash chip size {#flashchips} =============== Use this to find out: + # flashrom -p internal -V Flashing instructions {#clip} @@ -21,4 +22,9 @@ This is an image of the flash chip, for reference:\ ![](../images/d510mo/d510mo.jpg) Copyright © 2016 Leah Rowe <info@minifree.org>\ -This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License Version 1.3 or any later +version published by the Free Software Foundation +with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. +A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/install/d945gclf.md b/docs/install/d945gclf.md index 351fc3e0..ddb52a64 100644 --- a/docs/install/d945gclf.md +++ b/docs/install/d945gclf.md @@ -18,4 +18,9 @@ Here is an image of the flash chip:\ ![](../images/d945gclf/d945gclf_spi.jpg) Copyright © 2016 Leah Rowe <info@minifree.org>\ -This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License Version 1.3 or any later +version published by the Free Software Foundation +with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. +A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/install/ga-g41m-es2l.md b/docs/install/ga-g41m-es2l.md index a4f197ef..cf119bbc 100644 --- a/docs/install/ga-g41m-es2l.md +++ b/docs/install/ga-g41m-es2l.md @@ -9,6 +9,7 @@ Flash chip size {#flashchips} =============== Use this to find out: + # flashrom -p internal -V Flashing instructions {#clip} @@ -45,4 +46,9 @@ coreboot-libre. Therefore, you must set your own MAC address in your operating system. Copyright © 2016 Leah Rowe <info@minifree.org>\ -This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License Version 1.3 or any later +version published by the Free Software Foundation +with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. +A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/install/images/x200/disassembly/0006.1.jpg b/docs/install/images/x200/disassembly/0006.1.jpg Binary files differnew file mode 100644 index 00000000..1888012b --- /dev/null +++ b/docs/install/images/x200/disassembly/0006.1.jpg diff --git a/docs/install/index.md b/docs/install/index.md index 6b33a33c..5d9ba5c3 100644 --- a/docs/install/index.md +++ b/docs/install/index.md @@ -4,10 +4,10 @@ title: Installation instructions This section relates to installing Libreboot on supported targets. -**NOTE: if running flashrom -p internal for software based flashing, and -you get an error related to /dev/mem access, you should reboot with -iomem=relaxed kernel parameter before running flashrom, or use a kernel -that has CONFIG\_STRICT\_DEVMEM not enabled.** +**NOTE: if running flashrom -p internal for software based flashing, and you +get an error related to `/dev/mem` access, you should reboot with +`iomem=relaxed` kernel parameter before running flashrom, or use a kernel that +has `CONFIG_STRICT_DEVMEM` not enabled.** Which systems are Libreboot compatible with? -------------------------------------------- @@ -28,14 +28,11 @@ Flashing via software methods, on system: - [Apple MacBook2,1](#flashrom_macbook21) - [ASUS Chromebook C201](c201.md) -Setting up programmers, for external flashing via hardware method +Setting up programmers, for external SPI flashing ----------------------------------------------------------------- -- [How to program an SPI flash chip with the BeagleBone - Black](bbb_setup.md) - -- [How to program an SPI flash chip with the Raspberry - Pi](rpi_setup.md) +- [BeagleBone Black Setup](bbb_setup.md) +- [Raspberry Pi Setup](rpi_setup.md) Flashing via hardware methods, on system: ----------------------------------------- @@ -53,6 +50,7 @@ Flashing via hardware methods, on system: - [ThinkPad R400](r400_external.md) - [ThinkPad T400](t400_external.md) - [ThinkPad T500](t500_external.md) +- [ThinkPad W500](t500_external.md) Information about libreboot ROM images {#rom} ====================================== @@ -62,15 +60,14 @@ source code. These images are provided for user convenience, so that they don't have to build anything from source on their own. The ROM images in each archive use the following at the end of the file -name, if they are built with the GRUB payload: -**\_*keymap*\_*mode*.rom** +name, if they are built with the GRUB payload: `*_*keymap*_*mode*.rom` -Available *modes*: **vesafb** or **txtmode**. The *vesafb* ROM images -are recommended, in most cases; *txtmode* ROM images come with +Available `modes`: `vesafb` or `txtmode`. The `vesafb` ROM images +are recommended, in most cases; `txtmode` ROM images come with MemTest86+, which requires text-mode instead of the usual framebuffer used by coreboot native graphics initialization. -*keymap* can be one of several keymaps that keyboard supports (there are +`keymap` can be one of several keymaps that keyboard supports (there are quite a few), which affects the keyboard layout configuration that is used in GRUB. It doesn't matter which ROM image you choose here, as far as the keymap in GNU+Linux is concerned. @@ -86,12 +83,10 @@ Libreboot comes with ROM images built for QEMU, by default: Examples of how to use libreboot ROM images in QEMU: -- \$ **qemu-system-i386 -M q35 -m 512 -bios - qemu\_q35\_ich9\_keymap\_mode.rom** -- \$ **qemu-system-i386 -M pc -m 512 -bios - qemu\_i440fx\_piix4\_keymap\_mode.rom** + $ qemu-system-i386 -M q35 -m 512 -bios qemu_q35_ich9_keymap_mode.rom + $ qemu-system-i386 -M pc -m 512 -bios qemu_i440fx_piix4_keymap_mode.rom -You can optionally specify the **-serial stdio** argument, so that QEMU +You can optionally specify the `-serial stdio` argument, so that QEMU will emulate a serial terminal on the standard input/output (most likely your terminal emulator or TTY). @@ -107,8 +102,8 @@ any dedicated hardware. In other words, you can do everything entirely in software, directly from the OS that is running on your libreboot system. -**If you are using libreboot\_src or git, then make sure that you built -the sources first (see [../git/\#build](../git/#build)).** +**If you are using `libreboot_src` or git, then make sure that you built the +sources first (see [../git/\#build](../git/#build)).** Look at the [list of ROM images](#rom) to see which image is compatible with your device. @@ -126,7 +121,7 @@ Apple EFI should refer to [\#flashrom\_macbook21](#flashrom_macbook21) X200 users, refer to [x200\_external.md](x200_external.md), R400 users refer to [r400\_external.md](r400_external.md), T400 users -refer to [t400\_external.md](t400_external.md), T500 users refer to +refer to [t400\_external.md](t400_external.md), T500 and W500 users refer to [t500\_external.md](t500_external.md) ASUS KFSN4-DRE? @@ -207,7 +202,7 @@ you. Most people do not write-protect the flash chip, so you probably didn't either.* Similarly, it is possible to write-protect the flash chip in coreboot or -libreboot on GM45 laptops (X200/R400/T400/T500). If you did this, then +libreboot on GM45 laptops (X200/R400/T400/T500/W500). If you did this, then you will need to use the links above for flashing, treating your laptop as though it currently has the proprietary firmware (because write-protected SPI flash requires external re-flashing, as is also the @@ -217,10 +212,10 @@ If you did not write-protect the flash chip, or it came to you without any write-protection (***libreboot does not write-protect the flash chip by default, so this probably applies to you***), read on! -MAC address on GM45 (X200/R400/T400/T500) +MAC address on GM45 (X200/R400/T400/T500/W500) ----------------------------------------- -**Users of the X200/R400/T400/T500 take note:** The MAC address for the +**Users of the X200/R400/T400/T500/W500 take note:** The MAC address for the onboard ethernet chipset is located inside the flash chip. Libreboot ROM images for these laptops contain a generic MAC address by default, but this is not what you want. *Make sure to change the MAC address inside @@ -248,12 +243,13 @@ Flash chip size --------------- Use this to find out: + # flashrom -p internal -V All good? --------- -Excellent! Moving on\... +Excellent! Moving on... Download the *libreboot\_util.tar.xz* archive, and extract it. Inside, you will find a directory called *flashrom*. This contains statically @@ -267,6 +263,7 @@ appropriate executable. It is also possible for you to build these executables from the libreboot source code archives. How to update the flash chip contents: + $ sudo ./flash update [yourrom.rom](#rom) Ocassionally, coreboot changes the name of a given board. If flashrom @@ -275,7 +272,7 @@ correct ROM image, then run this alternative command: $ sudo ./flash forceupdate [yourrom.rom](#rom) -You should see **"Verifying flash\... VERIFIED."** written at the end +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. @@ -327,16 +324,18 @@ When you have booted up again, you must also do this: $ sudo ./flash i945lenovo\_secondflash [yourrom.rom](#rom) -If flashing fails at this stage, try the following:\ -\$ **sudo ./flashrom/i686/flashrom -p -internal:laptop=force\_I\_want\_a\_brick -w [yourrom.rom](#rom)** +If flashing fails at this stage, try the following: + + # sudo ./flashrom/i686/flashrom -p + +internal:laptop=force\_I\_want\_a\_brick -w [yourrom.rom](#rom) 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."** +**"Verifying flash... VERIFIED."** MacBook2,1: Initial installation guide (if running the proprietary firmware) {#flashrom_macbook21} ============================================================================ @@ -366,9 +365,14 @@ Use this flashing script, to install libreboot: $ sudo ./flash i945apple\_firstflash [yourrom.rom](#rom) You should also see within the output the following:\ -**"Verifying flash\... VERIFIED."** +**"Verifying flash... VERIFIED."** Shut down. Copyright © 2014, 2015, 2016 Leah Rowe <info@minifree.org>\ -This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License Version 1.3 or any later +version published by the Free Software Foundation +with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. +A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/install/kcma-d8.md b/docs/install/kcma-d8.md index 1dced30b..c4f83eea 100644 --- a/docs/install/kcma-d8.md +++ b/docs/install/kcma-d8.md @@ -1,5 +1,6 @@ --- title: KCMA-D8 external flashing instructions +x-toc-enable: true ... Initial flashing instructions for kcma-d8. @@ -17,11 +18,6 @@ For more general information about this board, refer to TODO: show photos here, and other info. -- [kcma-d8 boards (and full systems) with libreboot - preinstalled](#preinstall) - -- [External programmer](#programmer) - External programmer {#programmer} =================== @@ -34,4 +30,9 @@ the programmer. **DO NOT** remove the chip with your hands. Use a chip extractor tool. Copyright © 2016 Leah Rowe <info@minifree.org>\ -This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License Version 1.3 or any later +version published by the Free Software Foundation +with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. +A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/install/kgpe-d16.md b/docs/install/kgpe-d16.md index 8e041834..8e0ad8fd 100644 --- a/docs/install/kgpe-d16.md +++ b/docs/install/kgpe-d16.md @@ -1,5 +1,6 @@ --- title: KGPE-D16 external flashing instructions +x-toc-enable: true ... Initial flashing instructions for KGPE-D16. @@ -17,12 +18,7 @@ For more general information about this board, refer to TODO: show photos here, and other info. -- [KGPE-D16 boards (and full systems) with libreboot - preinstalled](#preinstall) - -- [External programmer](#programmer) - -External programmer {#programmer} +External programmer =================== Refer to [bbb\_setup.md](bbb_setup.md) for a guide on how to set up @@ -34,4 +30,9 @@ the programmer. **DO NOT** remove the chip with your hands. Use a chip extractor tool. Copyright © 2015 Leah Rowe <info@minifree.org>\ -This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License Version 1.3 or any later +version published by the Free Software Foundation +with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. +A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/install/r400_external.md b/docs/install/r400_external.md index c0c50d80..80e1a676 100644 --- a/docs/install/r400_external.md +++ b/docs/install/r400_external.md @@ -62,6 +62,7 @@ Flash chip size {#flashchips} =============== Use this to find out: + # flashrom -p internal -V MAC address {#macaddress} @@ -214,7 +215,9 @@ Log in as root on your BBB, using the instructions in [bbb\_setup.html\#bbb\_access](bbb_setup.html#bbb_access). Test that flashrom works: - # ./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512\ + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512\ + In this case, the output was: flashrom v0.9.7-r1854 on Linux 3.8.13-bone47 (armv7l) @@ -227,19 +230,27 @@ In this case, the output was: Please specify which chip definition to use with the -c <chipname> option. How to backup factory.rom (change the -c option as neeed, for your flash -chip):\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -r -factory.rom**\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -r -factory1.rom**\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -r -factory2.rom**\ +chip): + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r + +factory.rom + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r + +factory1.rom + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r + +factory2.rom + Note: the **-c** option is not required in libreboot's patched flashrom, because the redundant flash chip definitions in *flashchips.c* have been removed.\ Now compare the 3 images: # sha512sum factory\*.rom + If the hashes match, then just copy one of them (the factory.rom) to a safe place (on a drive connected to another system, not the BBB). This is useful for reverse engineering work, if there is a desirable @@ -253,13 +264,15 @@ flashing it. Although there is a default MAC address inside the ROM image, this is not what you want. **Make sure to always change the MAC address to one that is correct for your system.** -Now flash it:\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -w -path/to/libreboot/rom/image.rom -V** +Now flash it: + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -w + +path/to/libreboot/rom/image.rom -V ![](images/x200/disassembly/0015.jpg) -You might see errors, but if it says **Verifying flash\... VERIFIED** at +You might see errors, but if it says **Verifying flash... VERIFIED** at the end, then it's flashed and should boot. If you see errors, try again (and again, and again); the message **Chip content is identical to the requested image** is also an indication of a successful @@ -351,4 +364,9 @@ You should see something like this: Now [install GNU+Linux](../gnulinux/). Copyright © 2014, 2015 Leah Rowe <info@minifree.org>\ -This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License Version 1.3 or any later +version published by the Free Software Foundation +with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. +A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/install/rpi_setup.md b/docs/install/rpi_setup.md index 3230cb63..23b99aae 100644 --- a/docs/install/rpi_setup.md +++ b/docs/install/rpi_setup.md @@ -2,25 +2,22 @@ title: How to program an SPI flash chip with the Raspberry Pi ... -This document exists as a guide for reading from or writing to an SPI -flash chip with the Raspberry Pi, using the -[flashrom](http://flashrom.org/Flashrom) software. Most revisions of the -RPi should work. +This document exists as a guide for reading from or writing to an SPI flash +chip with the Raspberry Pi, using the [flashrom](http://flashrom.org/Flashrom) +software. Most revisions of the RPi should work. The Libreboot project recommends using -[blobless GNU/Linux](https://blog.rosenzweig.io/blobless-linux-on-the-pi.html) -on the Raspberry Pi, to avoid having to run non-free software. This -only became possible in February 2017 and the instructions below are -not yet updated with the necessary steps, so please do not follow the -steps below unless you are willing to run non-free software on your -Raspberry Pi. +[blobless GNU+Linux](https://blog.rosenzweig.io/blobless-linux-on-the-pi.html) +on the Raspberry Pi, to avoid having to run non-free software. This only became +possible in February 2017 and the instructions below are not yet updated with +the necessary steps, so please do not follow the steps below unless you are +willing to run non-free software on your Raspberry Pi. -This only covers SOIC-8 flash chips, for now. SOIC-16 guide coming later -(for now, it should be easy enough for you to figure this out for -SOIC-16). +This only covers SOIC-8 flash chips, for now. SOIC-16 guide coming later (for +now, it should be easy enough for you to figure this out for SOIC-16). -[](#raspberry-pi-thinkpad-x60t60-and-macbook-21){#user-content-raspberry-pi-thinkpad-x60t60-and-macbook-21 .anchor}Raspberry Pi (ThinkPad X60/T60 and Macbook 2,1) ------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Raspberry Pi (ThinkPad X60/T60 and Macbook 2,1) +------------------------------------------------ The Raspberry Pi (a multipurpose \$25 GNU+Linux computer) can be used as a BIOS flashing tool, thanks to its GPIO pins and SPI support. @@ -28,7 +25,7 @@ a BIOS flashing tool, thanks to its GPIO pins and SPI support. > **Note:** The Raspberry Pi Model A is not supported, since it has no > GPIO pins. -### [](#disassembling-the-thinkpad){#user-content-disassembling-the-thinkpad .anchor}Disassembling the ThinkPad +### Disassembling the ThinkPad Follow the [X60 Hardware Maintenance Manual](http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles_pdf/42x3550_04.pdf) @@ -45,7 +42,7 @@ Guide](t60_unbrick.md). - On the T60, the BIOS chip is just under the palmrest, but blocked by a magnesium frame (which you will have to remove). -### [](#pomona-clip-pinout){#user-content-pomona-clip-pinout .anchor}Pomona Clip Pinout +### Pomona Clip Pinout Diagram of the 26 GPIO Pins of the Raspberry Pi Model B (for the Model B+ with 40 pins, start counting from the right and leave 14 pins): @@ -78,7 +75,7 @@ detect a chip, or it will "detect" a `0x0` chip. Finally, make sure that the Pomona clip makes contact with the metal wires of the chip. It can be a challenge, but keep trying. -### [](#how-to-supply-power-to-the-flashchip){#user-content-how-to-supply-power-to-the-flashchip .anchor}How to supply power to the flashchip +### How to supply power to the flashchip There are two ways to supply power to the chip: plugging in an AC adapter (without turning the laptop on), and using the 8th 3.3v pin. @@ -90,8 +87,8 @@ Macronix chips require an AC Adapter to power up. Your results may vary. -[](#reading-the-flashchip){#user-content-reading-the-flashchip .anchor}Reading the Flashchip --------------------------------------------------------------------------------------------- +Reading the Flashchip +---------------------- First, visually inspect (with a magnifying glass) the type of flashchip on the motherboard. @@ -99,7 +96,7 @@ on the motherboard. Next, download and compile the latest Flashrom source code on the Raspberry Pi. - sudo apt-get install build-essential pciutils usbutils libpci-dev libusb-dev libftdi1 libftdi-dev zlib1g-dev subversion + sudo apt-get install build-essential pciutils usbutils libpci-dev libusb-dev libftdi1 libftdi-dev zlib1g-dev subversion libusb-1.0-0-dev svn co svn://flashrom.org/flashrom/trunk flashrom cd flashrom make @@ -127,8 +124,8 @@ If the md5sums match after three tries, `flashrom` has managed to read the flashchip precisely (but not always accurately). You may try and flash Libreboot now. -[](#flashing-libreboot){#user-content-flashing-libreboot .anchor}Flashing Libreboot ------------------------------------------------------------------------------------ +Flashing Libreboot +------------------- > **Note:** replace `/path/to/libreboot.rom` with the location of your > chosen ROM, such as `../bin/x60/libreboot_usqwerty.rom`): @@ -148,7 +145,7 @@ successfully. If not, just flash again. Erasing and writing flash chip... Erase/write done. Verifying flash... VERIFIED. -### [](#sources){#user-content-sources .anchor}Sources +### Sources - [Scruss - Simple ADC with the Raspberry Pi](http://scruss.com/blog/2013/02/02/simple-adc-with-the-raspberry-pi/) @@ -163,7 +160,7 @@ successfully. If not, just flash again. - [rPI with Flashrom and SOIC Clip Powerpoint](http://satxhackers.org/wp/hack-content/uploads/2013/04/rPI_flashrom.pdf) -### [](#raspberry-pi-pinout-diagrams){#user-content-raspberry-pi-pinout-diagrams .anchor}Raspberry Pi Pinout Diagrams +### Raspberry Pi Pinout Diagrams MCP 3008 Pin Pi GPIO Pin \# Pi Pin Name ----- ---------- ---------------- -------------------- @@ -179,10 +176,10 @@ successfully. If not, just flash again. - Source: [Perl & Raspberry Pi - Raspberry Pi GPIO Pinout](http://raspberrypi.znix.com/hipidocs/topic_gpiopins.htm) -[](#raspberry-pi-thinkpad-x200){#user-content-raspberry-pi-thinkpad-x200 .anchor}Raspberry Pi (ThinkPad X200) -------------------------------------------------------------------------------------------------------------- +Raspberry Pi (ThinkPad X200) +----------------------------- -### [](#requirements){#user-content-requirements .anchor}Requirements: +### Requirements: - An x86, x86\_64, or arm7l (for changing the libreboot.rom image mac address) @@ -229,7 +226,7 @@ Install Noobs to your fat32 formatted SD card x86# cp -R ~/work/noobs/* /path/to/mounted/SDcard/ -### [](#set-up-noobs-on-raspberry-pi){#user-content-set-up-noobs-on-raspberry-pi .anchor}Set up NOOBS on Raspberry Pi +### Set up NOOBS on Raspberry Pi Plug in the NOOBs SDCard to your Raspberry Pi, and enable the following under 'Advanced Options': @@ -246,7 +243,7 @@ On first boot On second boot - pi# sudo apt-get update && sudo apt-get install libftdi1 libftdi-dev libusb-dev libpci-dev subversion + pi# sudo apt-get update && sudo apt-get install libftdi1 libftdi-dev libusb-dev libpci-dev subversion libusb-1.0-0-dev Other dependencies that should already be installed with the noobs base install include: @@ -353,8 +350,8 @@ done. Shut down your pi, put your box back together, and install a libre OS for great good! -[](#raspberry-pi-c720-chromebook){#user-content-raspberry-pi-c720-chromebook .anchor}Raspberry Pi (C720 Chromebook) -------------------------------------------------------------------------------------------------------------------- +Raspberry Pi (C720 Chromebook) +------------------------------- The Raspberry Pi (a multipurpose \$25 GNU+Linux computer) can be used as a BIOS flashing tool, thanks to its GPIO pins and SPI support. @@ -408,12 +405,12 @@ Finally, put the Pomona SOIC clip on the chip: ![Pomona Clip Connected](images/rpi/0008.jpg) -### [](#flashrom){#user-content-flashrom .anchor}Flashrom +### Flashrom [Once it's all set up, flashrom works out of the box.](http://www.flashrom.org/RaspberryPi) -### [](#sources-1){#user-content-sources-1 .anchor}Sources +### Sources - **Pomona SOIC Clip flashing** - [Arch Linux Wiki - Installing Arch Linux on @@ -434,4 +431,5 @@ Copyright © 2014, 2015 Lawrence Wu <sagnessagiel@gmail.com>\ Copyright © 2015 snuffeluffegus <>\ Copyright © 2015 Kevin Keijzer <>\ Copyright © 2016 Leah Rowe <info@minifree.org>\ + This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) diff --git a/docs/install/t400_external.md b/docs/install/t400_external.md index d81376e0..bbb7240f 100644 --- a/docs/install/t400_external.md +++ b/docs/install/t400_external.md @@ -28,8 +28,9 @@ A note about CPUs [ThinkWiki](http://www.thinkwiki.org/wiki/Category:T400) has a list of CPUs for this system. The Core 2 Duo P8400, P8600 and P8700 are believed -to work in libreboot. The T9600 was confirmed to work, so the -T9500/T9550 probably also work. +to work in libreboot. + +T9600, T9500 and T9550 are all compatible, as reported by users. Quad-core CPUs -------------- @@ -58,6 +59,7 @@ Flash chip size {#flashchips} =============== Use this to find out: + # flashrom -p internal -V MAC address {#macaddress} @@ -211,7 +213,9 @@ Log in as root on your BBB, using the instructions in [bbb\_setup.html\#bbb\_access](bbb_setup.html#bbb_access). Test that flashrom works: - # ./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 + In this case, the output was: flashrom v0.9.7-r1854 on Linux 3.8.13-bone47 (armv7l) @@ -224,19 +228,27 @@ In this case, the output was: Please specify which chip definition to use with the -c <chipname> option. How to backup factory.rom (change the -c option as neeed, for your flash -chip):\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -r -factory.rom**\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -r -factory1.rom**\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -r -factory2.rom**\ +chip): + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r + +factory.rom + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r + +factory1.rom + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r + +factory2.rom + Note: the **-c** option is not required in libreboot's patched flashrom, because the redundant flash chip definitions in *flashchips.c* have been removed.\ Now compare the 3 images: # sha512sum factory\*.rom + If the hashes match, then just copy one of them (the factory.rom) to a safe place (on a drive connected to another system, not the BBB). This is useful for reverse engineering work, if there is a desirable @@ -250,13 +262,15 @@ flashing it. Although there is a default MAC address inside the ROM image, this is not what you want. **Make sure to always change the MAC address to one that is correct for your system.** -Now flash it:\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -w -path/to/libreboot/rom/image.rom -V** +Now flash it: + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -w + +path/to/libreboot/rom/image.rom -V ![](images/x200/disassembly/0015.jpg) -You might see errors, but if it says **Verifying flash\... VERIFIED** at +You might see errors, but if it says **Verifying flash... VERIFIED** at the end, then it's flashed and should boot. If you see errors, try again (and again, and again); the message **Chip content is identical to the requested image** is also an indication of a successful @@ -348,4 +362,9 @@ You should see something like this: Now [install GNU+Linux](../gnulinux/). Copyright © 2015 Leah Rowe <info@minifree.org>\ -This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License Version 1.3 or any later +version published by the Free Software Foundation +with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. +A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/install/t500_external.md b/docs/install/t500_external.md index 731ec8e0..749ef455 100644 --- a/docs/install/t500_external.md +++ b/docs/install/t500_external.md @@ -8,6 +8,8 @@ This guide is for those who want libreboot on their ThinkPad T500 while they still have the original Lenovo BIOS present. This guide can also be followed (adapted) if you brick your T500, to know how to recover. +W500 is also mostly compatible with this guide. + Libreboot T400 {#t400} ============== @@ -27,8 +29,10 @@ A note about CPUs [ThinkWiki](http://www.thinkwiki.org/wiki/Category:T500) has a list of CPUs for this system. The Core 2 Duo P8400, P8600 and P8700 are believed to work in libreboot. The T9600 was also tested on the T400 and -confirmed working, so the T9400/T9500/T9550 probably also work, but they -are untested. +confirmed working. + +T9550 was tested by a user, and is compatible as reported in the IRC channel. +T9500 and T9400 may also work, but YMMV. Quad-core CPUs -------------- @@ -57,6 +61,7 @@ Flash chip size {#flashchips} =============== Use this to find out: + # flashrom -p internal -V MAC address {#macaddress} @@ -225,7 +230,9 @@ Log in as root on your BBB, using the instructions in [bbb\_setup.html\#bbb\_access](bbb_setup.html#bbb_access). Test that flashrom works: - # ./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 + In this case, the output was: flashrom v0.9.7-r1854 on Linux 3.8.13-bone47 (armv7l) @@ -238,19 +245,27 @@ In this case, the output was: Please specify which chip definition to use with the -c <chipname> option. How to backup factory.rom (change the -c option as neeed, for your flash -chip):\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -r -factory.rom**\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -r -factory1.rom**\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -r -factory2.rom**\ +chip): + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r + +factory.rom + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r + +factory1.rom + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r + +factory2.rom + Note: the **-c** option is not required in libreboot's patched flashrom, because the redundant flash chip definitions in *flashchips.c* have been removed.\ Now compare the 3 images: # sha512sum factory\*.rom + If the hashes match, then just copy one of them (the factory.rom) to a safe place (on a drive connected to another system, not the BBB). This is useful for reverse engineering work, if there is a desirable @@ -264,13 +279,15 @@ flashing it. Although there is a default MAC address inside the ROM image, this is not what you want. **Make sure to always change the MAC address to one that is correct for your system.** -Now flash it:\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -w -path/to/libreboot/rom/image.rom -V** +Now flash it: + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -w + +path/to/libreboot/rom/image.rom -V ![](images/x200/disassembly/0015.jpg) -You might see errors, but if it says **Verifying flash\... VERIFIED** at +You might see errors, but if it says **Verifying flash... VERIFIED** at the end, then it's flashed and should boot. If you see errors, try again (and again, and again); the message **Chip content is identical to the requested image** is also an indication of a successful @@ -362,4 +379,9 @@ You should see something like this: Now [install GNU+Linux](../gnulinux/). Copyright © 2015 Leah Rowe <info@minifree.org>\ -This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License Version 1.3 or any later +version published by the Free Software Foundation +with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. +A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/install/t60_unbrick.md b/docs/install/t60_unbrick.md index 8df863e7..bc8d83e3 100644 --- a/docs/install/t60_unbrick.md +++ b/docs/install/t60_unbrick.md @@ -1,30 +1,23 @@ --- title: ThinkPad T60 Recovery guide +x-toc-enable: true ... This section documents how to recover from a bad flash that prevents your ThinkPad T60 from booting. -Table of Contents ------------------ - -- Types of brick: - - [Brick type 1: bucts not reset](#bucts_brick) - - [Brick type 2: bad rom (or user error), system won't - boot](#recovery) - Brick type 1: bucts not reset. {#bucts_brick} ============================== You still have Lenovo BIOS, or you had libreboot running and you flashed another ROM; and you had bucts 1 set and 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:\ ![](../images/t60_dev/0006.JPG)\ -\ + \*Those dd commands should be applied to all newly compiled T60 ROM images (the ROM images in libreboot binary archives already have this applied!):\ @@ -148,11 +141,13 @@ Flashrom binaries for ARM (tested on a BBB) are distributed in libreboot\_util. Alternatively, libreboot also distributes flashrom source code which can be built. -SSH'd into the BBB:\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -w -yourrom.rom** +SSH'd into the BBB: -It should be **Verifying flash\... VERIFIED** at the end. If flashrom + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -w + +yourrom.rom + +It should be **Verifying flash... VERIFIED** at the end. If flashrom complains about multiple flash chip definitions detected, then choose one of them following the instructions in the output. @@ -204,4 +199,9 @@ replacing cpu paste/heatsink:\ ![](../images/t60_dev/0074.JPG) Copyright © 2014, 2015 Leah Rowe <info@minifree.org>\ -This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License Version 1.3 or any later +version published by the Free Software Foundation +with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. +A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/install/x200_external.md b/docs/install/x200_external.md index adcc473b..6414fe7c 100644 --- a/docs/install/x200_external.md +++ b/docs/install/x200_external.md @@ -1,42 +1,31 @@ --- -title: Flashing the X200 with a BeagleBone Black +title: Flashing the X200 with a BeagleBone Black +x-toc-enable: true ... -Initial flashing instructions for X200. - This guide is for those who want libreboot on their ThinkPad X200 while they still have the original Lenovo BIOS present. This guide can also be followed (adapted) if you brick your X200, to know how to recover. -- [X200 laptops with libreboot pre-installed](#preinstall) -- [Flash chips](#flashchips) -- [MAC address](#macaddress) -- [Initial BBB configuration and installation procedure](#clip) -- [Boot it!](#boot) -- [Wifi](#wifi) -- [wwan](#wwan) -- [Memory](#memory) -- [X200S and X200 Tablet users: GPIO33 trick will not work.](#gpio33) - -X200 laptops with libreboot pre-installed {#preinstall} +X200 laptops with libreboot pre-installed ========================================= If you don't want to install libreboot yourself, companies exist that sell these laptops with libreboot pre-installed, along with a free GNU+Linux distribution. -Flash chip size {#flashchips} +Flash chip size =============== Use this to find out: + # flashrom -p internal -V -The X200S and X200 Tablet will use a WSON-8 flash chip, on the bottom of -the motherboard (this requires removal of the motherboard). **Not all -X200S/X200T are supported; see -[../hardware/x200.html\#x200s](../hardware/x200.html#x200s).** +The X200S and X200 Tablet will use a WSON-8 flash chip, on the bottom of the +motherboard (this requires removal of the motherboard). Not all X200S/X200T are +supported; see [here](../hardware/x200.html#x200s). -MAC address {#macaddress} +MAC address =========== On the X200/X200S/X200T, the MAC address for the onboard gigabit @@ -50,7 +39,7 @@ image before flashing it. It will be written in one of these locations: ![](images/x200/disassembly/0002.jpg) ![](images/x200/disassembly/0001.jpg) -Initial BBB configuration {#clip} +Initial BBB configuration ========================= Refer to [bbb\_setup.md](bbb_setup.md) for how to set up the BBB for @@ -73,8 +62,6 @@ header), for SOIC-16 (clip: Pomona 5252): This is how you will connect. Numbers refer to pin numbers on the BBB, on the plugs near the DC jack. Here is a photo of the SOIC-16 flash chip. Pins are labelled: - - The following shows how to connect the clip to the BBB (on the P9 header), for SOIC-8 (clip: Pomona 5250): @@ -91,18 +78,15 @@ header), for SOIC-8 (clip: Pomona 5250): Look at the pads in that photo, on the left and right. Those are for SOIC-16. Would it be possible to remove the SOIC-8 and solder a SOIC-16 chip on those pins? -**On the X200S and X200 Tablet the flash chip is underneath the board, -in a WSON package. The pinout is very much the same as a SOIC-8, except -you need to solder (there are no clips available).\ -The following image shows how this is done:**\ -![](images/x200/wson_soldered.jpg "Copyright 2014 Steve Shenton <sgsit@libreboot.org> see license notice at the end of this document")\ -In this image, a pin header was soldered onto the WSON. Another solution -might be to de-solder the WSON-8 chip and put a SOIC-8 there instead. -Check the list of SOIC-8 flash chips at -[../hardware/gm45\_remove\_me.html\#flashchips](../hardware/gm45_remove_me.md#flashchips) -but do note that these are only 4MiB (32Mb) chips. The only X200 SPI -chips with 8MiB capacity are SOIC-16. For 8MiB capacity in this case, -the X201 SOIC-8 flash chip (Macronix 25L6445E) might work. +On the X200S and X200 Tablet the flash chip is underneath the board, in a WSON +package. The pinout is very much the same as a SOIC-8, but such package makes +it impossible to use testclip. In order to enable external flashing of device, +chip has to be changed to SOIC-8 one. Such procedure requires hot air station +and soldering station (with "knife" K-Tip to easily solder SOIC-8). + +Check the list of SOIC-8 flash chips at [List of supported flash +chips](https://www.flashrom.org/Supported_hardware#Supported_flash_chips)\ 25XX +series SPI NOR Flash in 8/16MiB sizes will work fine with libreboot. The procedure ------------- @@ -114,13 +98,14 @@ completely, since the flash chip is on the other side of the board). Remove these screws:\ ![](images/x200/disassembly/0003.jpg) -Push the keyboard forward, gently, then lift it off and disconnect it -from the board:\ +Gently push the keyboard towards the screen, then lift it off, and optionally +disconnect it from the board:\ ![](images/x200/disassembly/0004.jpg) ![](images/x200/disassembly/0005.jpg) -Pull the palm rest off, lifting from the left and right side at the back -of the palm rest:\ +Disconnect the cable of the fingerpring reader, and then pull up the palm rest, +lifting up the left and right side of it:\ +![](images/x200/disassembly/0006.1.jpg) ![](images/x200/disassembly/0006.jpg) Lift back the tape that covers a part of the flash chip, and then @@ -133,19 +118,10 @@ to your PSU:\ ![](images/x200/disassembly/0009.jpg) ![](images/x200/disassembly/0010.jpg) -Connect the 3.3V supply from your PSU to the flash chip (via the clip):\ +Connect the 3.3V DC supply from your PSU to the flash chip (via the clip):\ ![](images/x200/disassembly/0011.jpg) ![](images/x200/disassembly/0012.jpg) -Of course, make sure that your PSU is also plugged in and turn on:\ -![](images/x200/disassembly/0013.jpg) - -This tutorial tells you to use an ATX PSU, for the 3.3V DC supply. The -PSU used when taking these photos is actually not an ATX PSU, but a PSU -that is designed specifically for providing 3.3V DC (an ATX PSU will -also work):\ -![](images/x200/disassembly/0014.jpg) - Now, you should be ready to install libreboot. Flashrom binaries for ARM (tested on a BBB) are distributed in @@ -156,7 +132,9 @@ Log in as root on your BBB, using the instructions in [bbb\_setup.html\#bbb\_access](bbb_setup.html#bbb_access). Test that flashrom works: - # ./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 + In this case, the output was: flashrom v0.9.7-r1854 on Linux 3.8.13-bone47 (armv7l) @@ -168,20 +146,20 @@ In this case, the output was: Multiple flash chip definitions match the detected chip(s): "MX25L6405(D)", "MX25L6406E/MX25L6436E", "MX25L6445E/MX25L6473E" Please specify which chip definition to use with the -c <chipname> option. -How to backup factory.rom (change the -c option as neeed, for your flash -chip):\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -r -factory.rom**\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -r -factory1.rom**\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -r -factory2.rom**\ -Note: the **-c** option is not required in libreboot's patched +Here is how to backup factory.rom: + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r factory.rom + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r factory1.rom + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r factory2.rom + +Note: the `-c` option is not required in libreboot's patched flashrom, because the redundant flash chip definitions in *flashchips.c* -have been removed.\ +have been removed. + Now compare the 3 images: - # sha512sum factory\*.rom + # sha512sum factory*.rom + If the hashes match, then just copy one of them (the factory.rom) to a safe place (on a drive connected to another system, not the BBB). This is useful for reverse engineering work, if there is a desirable @@ -192,19 +170,19 @@ Follow the instructions at [../hardware/gm45\_remove\_me.html\#ich9gen](../hardware/gm45_remove_me.html#ich9gen) to change the MAC address inside the libreboot ROM image, before flashing it. Although there is a default MAC address inside the ROM -image, this is not what you want. **Make sure to always change the MAC -address to one that is correct for your system.** +image, this is not what you want. Make sure to always change the MAC +address to one that is correct for your system. + +Now flash it: -Now flash it:\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -w -path/to/libreboot/rom/image.rom -V** + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -w path/to/libreboot/rom/image.rom -V ![](images/x200/disassembly/0015.jpg) -You might see errors, but if it says **Verifying flash\... VERIFIED** at +You might see errors, but if it says `Verifying flash... VERIFIED` at the end, then it's flashed and should boot. If you see errors, try -again (and again, and again); the message **Chip content is identical to -the requested image** is also an indication of a successful +again (and again, and again); the message `Chip content is identical to +the requested image` is also an indication of a successful installation. Example output from running the command (see above): @@ -237,7 +215,8 @@ whitelist of approved chips, and it will refuse to boot if you use an 'unauthorized' wifi card. The following photos show an Atheros AR5B95 being installed, to replace -the Intel chip that this X200 came with:\ +the Intel chip that this X200 came with: + ![](images/x200/disassembly/0016.jpg) ![](images/x200/disassembly/0017.jpg) @@ -251,6 +230,17 @@ track your movements. Not to be confused with wifi (wifi is fine). +Intel Turbo Memory +================== + +Some X200 devices were sold with Intel Turbo Memory installed in the top-most +mini PCI-e slot. This has been [shown to be +ineffective](http://www.anandtech.com/show/2252) at disk caching or battery +saving in most use cases. While there are [Linux +drivers](https://github.com/yarrick/turbomem) available, it is blacklisted in +at least GNU+Trisquel, and possibly other free operating systems. It should +probably be removed. + Memory ====== @@ -263,10 +253,11 @@ work in some cases. Make sure that the RAM you buy is the 2Rx8 density. -In this photo, 8GiB of RAM (2x4GiB) is installed:\ +In this photo, 8GiB of RAM (2x4GiB) is installed: + ![](images/x200/disassembly/0018.jpg) -Boot it! {#boot} +Boot it! -------- You should see something like this: @@ -275,7 +266,7 @@ You should see something like this: Now [install GNU+Linux](../gnulinux/). -X200S and X200 Tablet users: GPIO33 trick will not work. {#gpio33} +X200S and X200 Tablet users: GPIO33 trick will not work. -------------------------------------------------------- sgsit found out about a pin called GPIO33, which can be grounded to @@ -283,7 +274,8 @@ disable the flashing protections by the descriptor and stop the ME from starting (which itself interferes with flashing attempts). The theory was proven correct; however, it is still useless in practise. -Look just above the 7 in TP37 (that's GPIO33):\ +Look just above the 7 in TP37 (that's GPIO33): + ![](../hardware/images/x200/gpio33_location.jpg) By default we would see this in lenovobios, when trying flashrom -p @@ -316,5 +308,10 @@ On a related note, libreboot has a utility that could help with investigating this: [../hardware/gm45\_remove\_me.html\#demefactory](../hardware/gm45_remove_me.md#demefactory) -Copyright © 2014, 2015 Leah Rowe <info@minifree.org>\ -This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) +Copyright © 2014, 2015 Leah Rowe <info@minifree.org> + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License Version 1.3 or any later +version published by the Free Software Foundation +with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. +A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/install/x60_unbrick.md b/docs/install/x60_unbrick.md index af040705..9c558631 100644 --- a/docs/install/x60_unbrick.md +++ b/docs/install/x60_unbrick.md @@ -1,30 +1,23 @@ --- title: ThinkPad X60 Recovery guide +x-toc-enable: true ... This section documents how to recover from a bad flash that prevents your ThinkPad X60 from booting. -Table of Contents -================= - -- Types of brick: - - [Brick type 1: bucts not reset](#bucts_brick) - - [Brick type 2: bad rom (or user error), system won't - boot](#recovery) - Brick type 1: bucts not reset. {#bucts_brick} ============================== You still have Lenovo BIOS, or you had libreboot running and you flashed another ROM; and you had bucts 1 set and 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:\ ![](../images/x60_unbrick/0004.jpg)\ -\ + \*Those dd commands should be applied to all newly compiled X60 ROM images (the ROM images in libreboot binary archives already have this applied!):\ @@ -133,11 +126,13 @@ Flashrom binaries for ARM (tested on a BBB) are distributed in libreboot\_util. Alternatively, libreboot also distributes flashrom source code which can be built. -SSH'd into the BBB:\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -w -yourrom.rom** +SSH'd into the BBB: -It should be **Verifying flash\... VERIFIED** at the end. If flashrom + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -w + +yourrom.rom + +It should be **Verifying flash... VERIFIED** at the end. If flashrom complains about multiple flash chip definitions detected, then choose one of them following the instructions in the output. @@ -216,4 +211,9 @@ Operating system:\ ![](../images/x60_unbrick/0049.jpg) Copyright © 2014, 2015 Leah Rowe <info@minifree.org>\ -This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License Version 1.3 or any later +version published by the Free Software Foundation +with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. +A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/install/x60tablet_unbrick.md b/docs/install/x60tablet_unbrick.md index 78adf270..3a04ad3f 100644 --- a/docs/install/x60tablet_unbrick.md +++ b/docs/install/x60tablet_unbrick.md @@ -1,30 +1,23 @@ --- title: ThinkPad X60 Tablet Recovery guide +x-toc-enable: true ... This section documents how to recover from a bad flash that prevents your ThinkPad X60 Tablet from booting. -Table of Contents ------------------ - -- Types of brick: - - [Brick type 1: bucts not reset](#bucts_brick) - - [Brick type 2: bad rom (or user error), system won't - boot](#recovery) - Brick type 1: bucts not reset. {#bucts_brick} ============================== You still have Lenovo BIOS, or you had libreboot running and you flashed another ROM; and you had bucts 1 set and 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:\ ![](../images/x60t_unbrick/0008.JPG)\ -\ + \*Those dd commands should be applied to all newly compiled X60 ROM images (the ROM images in libreboot binary archives already have this applied!):\ @@ -112,15 +105,22 @@ Flashrom binaries for ARM (tested on a BBB) are distributed in libreboot\_util. Alternatively, libreboot also distributes flashrom source code which can be built. -SSH'd into the BBB:\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -w -yourrom.rom** +SSH'd into the BBB: -It should be **Verifying flash\... VERIFIED** at the end. If flashrom + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -w + +yourrom.rom + +It should be **Verifying flash... VERIFIED** at the end. If flashrom complains about multiple flash chip definitions detected, then choose one of them following the instructions in the output. Reverse the steps to re-assemble your system. Copyright © 2014, 2015 Leah Rowe <info@minifree.org>\ -This page is available under the [CC BY SA 4.0](../cc-by-sa-4.0.txt) + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License Version 1.3 or any later +version published by the Free Software Foundation +with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. +A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) |