diff options
Diffstat (limited to 'docs/install')
-rw-r--r-- | docs/install/bbb_setup.md | 16 | ||||
-rw-r--r-- | docs/install/c201.md | 47 | ||||
-rw-r--r-- | docs/install/d510mo.md | 3 | ||||
-rw-r--r-- | docs/install/d945gclf.md | 2 | ||||
-rw-r--r-- | docs/install/ga-g41m-es2l.md | 3 | ||||
-rw-r--r-- | docs/install/index.md | 58 | ||||
-rw-r--r-- | docs/install/kcma-d8.md | 8 | ||||
-rw-r--r-- | docs/install/kgpe-d16.md | 10 | ||||
-rw-r--r-- | docs/install/r400_external.md | 39 | ||||
-rw-r--r-- | docs/install/rpi_setup.md | 59 | ||||
-rw-r--r-- | docs/install/t400_external.md | 39 | ||||
-rw-r--r-- | docs/install/t500_external.md | 39 | ||||
-rw-r--r-- | docs/install/t60_unbrick.md | 25 | ||||
-rw-r--r-- | docs/install/x200_external.md | 80 | ||||
-rw-r--r-- | docs/install/x60_unbrick.md | 25 | ||||
-rw-r--r-- | docs/install/x60tablet_unbrick.md | 25 |
16 files changed, 230 insertions, 248 deletions
diff --git a/docs/install/bbb_setup.md b/docs/install/bbb_setup.md index 1182bb16..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. @@ -331,8 +337,6 @@ Copyright © 2014, 2015 Leah Rowe <info@minifree.org>\ Copyright © 2015 Patrick "P. J." McDermott <pj@pehjota.net>\ Copyright © 2015 Albin Söderqvist\ - - 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 diff --git a/docs/install/c201.md b/docs/install/c201.md index 2e1d23b8..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. @@ -211,8 +206,6 @@ See <https://wiki.debian.org/InstallingDebianOn/Asus/C201>. Copyright © 2015 Paul Kocialkowski <contact@paulk.fr>\ - - 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 diff --git a/docs/install/d510mo.md b/docs/install/d510mo.md index 818b5464..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} @@ -22,8 +23,6 @@ This is an image of the flash chip, for reference:\ Copyright © 2016 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 diff --git a/docs/install/d945gclf.md b/docs/install/d945gclf.md index 4a87b1c3..ddb52a64 100644 --- a/docs/install/d945gclf.md +++ b/docs/install/d945gclf.md @@ -19,8 +19,6 @@ Here is an image of the flash chip:\ Copyright © 2016 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 diff --git a/docs/install/ga-g41m-es2l.md b/docs/install/ga-g41m-es2l.md index a11364ed..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} @@ -46,8 +47,6 @@ operating system. Copyright © 2016 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 diff --git a/docs/install/index.md b/docs/install/index.md index 4bd14cf1..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: ----------------------------------------- @@ -63,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. @@ -87,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). @@ -108,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. @@ -249,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 @@ -268,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 @@ -276,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. @@ -328,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} ============================================================================ @@ -367,14 +365,12 @@ 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>\ - - 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 diff --git a/docs/install/kcma-d8.md b/docs/install/kcma-d8.md index 5c2f8d47..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} =================== @@ -35,8 +31,6 @@ extractor tool. Copyright © 2016 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 diff --git a/docs/install/kgpe-d16.md b/docs/install/kgpe-d16.md index ab73cdea..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 @@ -35,8 +31,6 @@ extractor tool. Copyright © 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 diff --git a/docs/install/r400_external.md b/docs/install/r400_external.md index 7d5721aa..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 @@ -352,8 +365,6 @@ Now [install GNU+Linux](../gnulinux/). 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 diff --git a/docs/install/rpi_setup.md b/docs/install/rpi_setup.md index 5665ed40..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. +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. @@ -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': @@ -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 diff --git a/docs/install/t400_external.md b/docs/install/t400_external.md index b3773c34..bbb7240f 100644 --- a/docs/install/t400_external.md +++ b/docs/install/t400_external.md @@ -59,6 +59,7 @@ Flash chip size {#flashchips} =============== Use this to find out: + # flashrom -p internal -V MAC address {#macaddress} @@ -212,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) @@ -225,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 @@ -251,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 @@ -350,8 +363,6 @@ Now [install GNU+Linux](../gnulinux/). Copyright © 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 diff --git a/docs/install/t500_external.md b/docs/install/t500_external.md index 567f9159..749ef455 100644 --- a/docs/install/t500_external.md +++ b/docs/install/t500_external.md @@ -61,6 +61,7 @@ Flash chip size {#flashchips} =============== Use this to find out: + # flashrom -p internal -V MAC address {#macaddress} @@ -229,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) @@ -242,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 @@ -268,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 @@ -367,8 +380,6 @@ Now [install GNU+Linux](../gnulinux/). Copyright © 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 diff --git a/docs/install/t60_unbrick.md b/docs/install/t60_unbrick.md index 98c0be51..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. @@ -205,8 +200,6 @@ replacing cpu paste/heatsink:\ 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 diff --git a/docs/install/x200_external.md b/docs/install/x200_external.md index 1f2fa151..6414fe7c 100644 --- a/docs/install/x200_external.md +++ b/docs/install/x200_external.md @@ -1,43 +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) -- [Intel Turbo Memory](#turbomem) -- [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 @@ -51,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 @@ -74,7 +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,12 +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, 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. +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 ------------- @@ -142,6 +132,7 @@ 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 In this case, the output was: @@ -161,13 +152,13 @@ Here is how to backup 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 +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 + # 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 @@ -179,18 +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: + # ./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): @@ -238,10 +230,16 @@ track your movements. Not to be confused with wifi (wifi is fine). -Intel Turbo Memory {#turbomem} +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. +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 ====== @@ -259,7 +257,7 @@ 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: @@ -268,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 @@ -312,8 +310,6 @@ investigating this: 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 diff --git a/docs/install/x60_unbrick.md b/docs/install/x60_unbrick.md index e1c9098a..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. @@ -217,8 +212,6 @@ Operating system:\ 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 diff --git a/docs/install/x60tablet_unbrick.md b/docs/install/x60tablet_unbrick.md index d11e7cbb..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,11 +105,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. @@ -124,8 +119,6 @@ Reverse the steps to re-assemble your system. 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 |