diff options
Diffstat (limited to 'docs/install/index.html')
-rw-r--r-- | docs/install/index.html | 539 |
1 files changed, 539 insertions, 0 deletions
diff --git a/docs/install/index.html b/docs/install/index.html new file mode 100644 index 00000000..69bb53fe --- /dev/null +++ b/docs/install/index.html @@ -0,0 +1,539 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <style type="text/css"> + @import url('../css/main.css'); + </style> + + <title>Installing libreboot</title> +</head> + +<body> + + <div class="section"> + + <h1 id="pagetop">Installing libreboot</h1> + <p> + This section relates to installing libreboot on supported targets. + </p> + <p> + 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. + </p> + <p> + <a href="../index.html">Back to previous index</a> + </p> + + </div> + + <div class="section"> + + <h2>Software methods</h2> + <ul> + <li><a href="#rom">List of ROM images in libreboot</a></li> + <li><a href="#flashrom">How to update or install libreboot (if you are already running libreboot or coreboot)</a></li> + <li><a href="#flashrom">KFSN4-DRE: initial installation guide (if running the proprietary firmware or libreboot)</a></li> + <li><a href="#flashrom_lenovobios">ThinkPad X60/T60: Initial installation guide (if running the proprietary firmware)</a></li> + <li><a href="#flashrom_macbook21">MacBook2,1: Initial installation guide (if running the proprietary firmware)</a></li> + <li><a href="c201.html">ASUS Chromebook C201 installation guide</a> (Installing Libreboot internally, from the device)</li> + </ul> + + <h2>Hardware methods</h2> + <ul> + <li><a href="bbb_setup.html">How to program an SPI flash chip with the BeagleBone Black</a></li> + <li><a href="ga-g41m-es2l.html">Flashing the Gigabyte GA-G41M-ES2L (has 2 SOIC-8 chips, one is backup)</a></li> + <li><a href="d510mo.html">Flashing the Intel D510MO</a></li> + <li><a href="bbb_ehci.html">How to configure EHCI debugging on the BeagleBone Black</a></li> + <li><a href="kgpe-d16.html">KGPE-D16 (needed if running the proprietary firmware, or to unbrick)</a></li> + <li><a href="kcma-d8.html">KCMA-D8 (needed if running the proprietary firmware, or to unbrick)</a></li> + <li><a href="x60_unbrick.html">ThinkPad X60: Recovery guide</a></li> + <li><a href="x60tablet_unbrick.html">ThinkPad X60 Tablet: Recovery guide</a></li> + <li><a href="t60_unbrick.html">ThinkPad T60: Recovery guide</a></li> + <li><a href="x200_external.html">ThinkPad X200/X200S/X200T (needed if running the proprietary firmware, or to unbrick)</a></li> + <li><a href="r400_external.html">ThinkPad R400 (needed if running the proprietary firmware, or to unbrick)</a></li> + <li><a href="t400_external.html">ThinkPad T400 (needed if running the proprietary firmware, or to unbrick)</a></li> + <li><a href="t500_external.html">ThinkPad T500 (needed if running the proprietary firmware, or to unbrick)</a></li> + <li><a href="c201.html">ASUS Chromebook C201 installation guide</a> (Installing Libreboot externally, with a SPI flash programmer)</li> + </ul> + + </div> + + <div class="section"> + + <h1 id="rom">List of ROM images in libreboot</h1> + + <p> + Libreboot distributes pre-compiled ROM images, built from the libreboot source code. + These images are provided for user convenience, so that they don't have + to build anything from source on their own. + </p> + + <p> + The ROM images in each archive use the following at the end of the file name, + if they are built with the GRUB payload: <b>_<i>keymap</i>_<i>mode</i>.rom</b> + </p> + <p> + Available <i>modes</i>: <b>vesafb</b> or <b>txtmode</b>. The <i>vesafb</i> ROM images are recommended, in most cases; + <i>txtmode</i> ROM images come with MemTest86+, which requires text-mode instead of the usual framebuffer used + by coreboot native graphics initialization. + </p> + <p> + <i>keymap</i> 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. + </p> + <p> + Keymaps are named appropriately according to each keyboard layout + support in GRUB. To learn how these keymaps are created, see + <a href="../grub/index.html#grub_keyboard">../grub/index.html#grub_keyboard</a> + </p> + + <h2 id="qemu">QEMU</h2> + + <p> + Libreboot comes with ROM images built for QEMU, by default: + </p> + + <p> + Examples of how to use libreboot ROM images in QEMU: + </p> + <ul> + <li>$ <b>qemu-system-i386 -M q35 -m 512 -bios qemu_q35_ich9_keymap_mode.rom</b></li> + <li>$ <b>qemu-system-i386 -M pc -m 512 -bios qemu_i440fx_piix4_keymap_mode.rom</b></li> + </ul> + <p> + You can optionally specify the <b>-serial stdio</b> argument, so that QEMU will emulate + a serial terminal on the standard input/output (most likely your terminal emulator or TTY). + </p> + <p> + Other arguments are available for QEMU. The manual will contain more information. + </p> + + <p> + <a href="#pagetop">Back to top of page.</a> + </p> + + </div> + + <div class="section"> + + <h1 id="flashrom">How to update or install libreboot (if you are already running libreboot or coreboot)</h1> + + <p> + On all current targets, updating libreboot can be accomplished without disassembly and, + therefore, without having to externally re-flash using any dedicated hardware. In other words, + you can do everything entirely in software, directly from the OS that is running on your libreboot + system. + </p> + + <div class="important"> + <p> + <b>If you are using libreboot_src or git, then make sure that you built the sources first (see <a href="../git/index.html#build">../git/index.html#build</a>).</b> + </p> + </div> + + <p> + Look at the <a href="#rom">list of ROM images</a> to see which image is compatible with your device. + </p> + + <h2>Are you currently running the original, proprietary firmware?</h2> + + <p> + If you are currently running the proprietary firmware (not libreboot or coreboot), + then the flashing instructions for your system are going to be different. + </p> + <p> + X60/T60 users running the proprietary firmware should refer to <a href="#flashrom_lenovobios">#flashrom_lenovobios</a>. + MacBook2,1 users running Apple EFI should refer to <a href="#flashrom_macbook21">#flashrom_macbook21</a> + </p> + <p> + X200 users, refer to <a href="x200_external.html">x200_external.html</a>, + R400 users refer to <a href="r400_external.html">r400_external.html</a>, + T400 users refer to <a href="t400_external.html">t400_external.html</a>, + T500 users refer to <a href="t500_external.html">t500_external.html</a> + </p> + + <h2>ASUS KFSN4-DRE?</h2> + + <p> + Internal flashing should work just fine, even if you are + currently booting the proprietary firmware. + </p> + + <p> + Libreboot currently lacks documentation for externally + re-flashing an LPC flash chip. However, these boards have + the flash chip inside of a PLCC socket, and it is possible + to hot-swap the chips. If you want to back up your + known-working image, simply hot-swap the chip for one that + is the same capacity, after having dumped a copy of the + current firmware (flashrom -p internal -r yourchosenname.rom), + and then flash that chip with the known-working image. + Check whether the system still boots, and if it does, then + it should be safe to flash the new image (because you now + have a backup of the old image). + </p> + + <p> + Keeping at least one spare LPC PLCC chip with working firmware + on it is highly recommended, in case of bricks. + </p> + + <p> + <b> + DO NOT hot-swap the chip with your bare hands. Use a PLCC + chip extractor. These can be found online. + See <a href="http://www.coreboot.org/Developer_Manual/Tools#Chip_removal_tools">http://www.coreboot.org/Developer_Manual/Tools#Chip_removal_tools</a> + </b> + </p> + + <p> + Do check the HCL entry: <a href="../hcl/kfsn4-dre.html">../hcl/kfsn4-dre.html</a> + </p> + + <h2>ASUS KGPE-D16?</h2> + + <p> + If you have the proprietary BIOS, you need to flash libreboot externally. + See <a href="kgpe-d16.html">kgpe-d16.html</a>. + </p> + <p> + If you already have coreboot or libreboot installed, without write protection on the flash + chip, then you can do it in software (otherwise, see link above). + </p> + + <p> + <b> + DO NOT hot-swap the chip with your bare hands. Use a PDIP-8 + chip extractor. These can be found online. + See <a href="http://www.coreboot.org/Developer_Manual/Tools#Chip_removal_tools">http://www.coreboot.org/Developer_Manual/Tools#Chip_removal_tools</a> + </b> + </p> + + <p> + Do check the HCL entry: <a href="../hcl/kgpe-d16.html">../hcl/kgpe-d16.html</a> + </p> + + <h2>ASUS KCMA-D8?</h2> + + <p> + If you have the proprietary BIOS, you need to flash libreboot externally. + See <a href="kgpe-d16.html">kcma-d8.html</a>. + </p> + <p> + If you already have coreboot or libreboot installed, without write protection on the flash + chip, then you can do it in software (otherwise, see link above). + </p> + + <p> + <b> + DO NOT hot-swap the chip with your bare hands. Use a PDIP-8 + chip extractor. These can be found online. + See <a href="http://www.coreboot.org/Developer_Manual/Tools#Chip_removal_tools">http://www.coreboot.org/Developer_Manual/Tools#Chip_removal_tools</a> + </b> + </p> + + <p> + Do check the HCL entry: <a href="../hcl/kcma-d8.html">../hcl/kcma-d8.html</a> + </p> + + <h2>Are you currently running libreboot (or coreboot)?</h2> + + <p> + X60/T60 users should be fine with this guide. If you write-protected the flash chip, please refer to + <a href="x60_unbrick.html">x60_unbrick.html</a>, <a href="x60tablet_unbrick.html">x60tablet_unbrick.html</a> + or <a href="t60_unbrick.html">t60_unbrick.html</a>. <i>This probably does not apply to you. Most people + do not write-protect the flash chip, so you probably didn't either.</i> + </p> + <p> + 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 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 case when running the proprietary firmware). + </p> + + <p> + If you did not write-protect the flash chip, or it came to you without any write-protection + (<b><i>libreboot does not write-protect the flash chip by default, so this probably applies to you</i></b>), + read on! + </p> + + <h2>MAC address on GM45 (X200/R400/T400/T500)</h2> + + <p> + <b>Users of the X200/R400/T400/T500 take note:</b> 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 (00:F5:F0:40:71:FE), but this is not what you want. + <i>Make sure to change the MAC address inside the ROM image, before flashing it. + The instructions on <a href="../hcl/gm45_remove_me.html#ich9gen">../hcl/gm45_remove_me.html#ich9gen</a> + show how to do this.</i> + </p> + + <p> + It is important that you change the default MAC address, before flashing. It will be printed on a sticker + at the bottom of the laptop, or it will be printed on a sticker next to or underneath the RAM. Alternatively, + and assuming that your current firmware has the correct MAC address in it, you can get it from your OS. + </p> + + <h2>Flash chip size</h2> + + <p> + Use this to find out:<br/> + # <b>dmidecode | grep ROM\ Size</b> + </p> + + <h2>All good?</h2> + + <p>Excellent! Moving on...</p> + + <p> + Download the <i>libreboot_util.tar.xz</i> archive, and extract it. Inside, you will find + a directory called <i>flashrom</i>. This contains statically compiled executable files of + the <i>flashrom</i> utility, which you will use to re-flash your libreboot system. + </p> + + <p> + Simply use <i>cd</i> on your terminal, to switch to the <i>libreboot_util</i> directory. Inside, + there is a script called <i>flash</i>, which will detect what CPU architecture you have + (e.g. i686, x86_64) and use the appropriate executable. It is also possible for you to + build these executables from the libreboot source code archives. + </p> + + <div class="important"> + <p> + How to update the flash chip contents:<br/> + $ <b>sudo ./flash update <a href="#rom">yourrom.rom</a></b> + </p> + </div> + <div class="important"> + <p> + Ocassionally, coreboot changes the name of a given board. If flashrom complains about a board mismatch, but + you are sure that you chose the correct ROM image, then run this alternative command:<br/> + $ <b>sudo ./flash forceupdate <a href="#rom">yourrom.rom</a></b> + </p> + </div> + + <div class="important"> + + <p> + You should see <b>"Verifying flash... VERIFIED."</b> written at the end of the flashrom output. <b>Shut down</b> + after you see this, and then boot up again after a few seconds. + </p> + + </div> + + <p><a href="#pagetop">Back to top of page</a></p> + + </div> + + <div class="section"> + + <h1 id="flashrom_lenovobios">ThinkPad X60/T60: Initial installation guide (if running the proprietary firmware)</h1> + + <p><b>This is for the ThinkPad X60 and T60 while running Lenovo BIOS. If you already have coreboot or libreboot running, + then go to <a href="#flashrom">#flashrom</a> instead!</b></p> + + <p><b>If you are flashing a Lenovo ThinkPad T60, be sure to read <a href="../hcl/index.html#supported_t60_list">../hcl/index.html#supported_t60_list</a></b></p> + + <div class="important"> + <p> + <b>If you are using libreboot_src or git, then make sure that you built the sources first (see <a href="../git/index.html#build">../git/index.html#build</a>).</b> + </p> + </div> + + <p> + <b> + Warning: this guide will not instruct the user how to backup the original Lenovo BIOS firmware. These backups + are tied to each system, and will not work on any other. + For that, please refer to <a href="http://www.coreboot.org/Board:lenovo/x60/Installation">http://www.coreboot.org/Board:lenovo/x60/Installation</a>. + </b> + </p> + + <div class="important"> + + <p> + <b> + If you're using libreboot 20150518, note that there is a mistake in the flashing script. + do this: <em>rm -f patch && wget -O flash http://git.savannah.gnu.org/cgit/libreboot.git/plain/flash?id=910b212e90c6f9c57025e1c7b0c08897af787496 && chmod +x flash</em> + </b> + </p> + + <p> + The first half of the procedure is as follows:<br/> + $ <b>sudo ./flash i945lenovo_firstflash <a href="#rom">yourrom.rom</a>.</b> + </p> + + </div> + + <div class="important"> + + <p> + You should see within the output the following:<br/> + <b>"Updated BUC.TS=1 - 64kb address ranges at 0xFFFE0000 and 0xFFFF0000 are swapped"</b>. + </p> + + <p> + You should also see within the output the following:<br/> + <b>"Your flash chip is in an unknown state"</b>, <b>"FAILED"</b> and <b>"DO NOT REBOOT OR POWEROFF"</b><br/> + Seeing this means that the operation was a <b>resounding</b> success! <b>DON'T PANIC</b>. + </p> + + <p> + See this link for more details: + <a href="http://thread.gmane.org/gmane.linux.bios.flashrom/575">http://thread.gmane.org/gmane.linux.bios.flashrom/575</a>. + </p> + + <p> + If the above is what you see, then <b>SHUT DOWN</b>. Wait a few seconds, and then boot; libreboot is running, but there is a 2nd procedure <b>*needed*</b> (see below). + </p> + + </div> + + <div class="important"> + <p> + When you have booted up again, you must also do this:<br/> + $ <b>sudo ./flash i945lenovo_secondflash <a href="#rom">yourrom.rom</a></b> + </p> + <p> + If flashing fails at this stage, try the following:<br/> + $ <b>sudo ./flashrom/i686/flashrom -p internal:laptop=force_I_want_a_brick -w <a href="#rom">yourrom.rom</a></b> + </p> + </div> + + <div class="important"> + + <p> + You should see within the output the following:<br/> + <b>"Updated BUC.TS=0 - 128kb address range 0xFFFE0000-0xFFFFFFFF is untranslated"</b> + </p> + + <p> + You should also see within the output the following:<br/> + <b>"Verifying flash... VERIFIED."</b> + </p> + + </div> + + <p><a href="#pagetop">Back to top of page.</a></p> + + </div> + + <div class="section"> + + <h1 id="flashrom_macbook21">MacBook2,1: Initial installation guide (if running the proprietary firmware)</h1> + + <div class="important"> + + <p> + <b>If you have a MacBook1,1, refer to <a href="../hcl/index.html#macbook11">../hcl/index.html#macbook11</a> for flashing instructions.</b> + </p> + + </div> + + <p> + <b> + This is for the MacBook2,1 while running Apple EFI firmware. If you already have + coreboot or libreboot running, then go to <a href="#flashrom">#flashrom</a> instead! + </b> + </p> + + <p> + Be sure to read the information in <a href="../hcl/index.html#macbook21">../hcl/index.html#macbook21</a>. + </p> + + <p> + <b> + Warning: this guide will not instruct the user how to backup the original Apple EFI firmware. + For that, please refer to <a href="http://www.coreboot.org/Board:apple/macbook21">http://www.coreboot.org/Board:apple/macbook21</a>. + </b> + </p> + + <div class="important"> + <p> + <b>If you are using libreboot_src or git, then make sure that you built the sources first (see <a href="../git/index.html#build">../git/index.html#build</a>).</b> + </p> + </div> + + <p> + Look at the <a href="#rom">list of ROM images</a> to see which image is compatible with your device. + </p> + + <div class="important"> + <p> + Use this flashing script, to install libreboot:<br/> + $ <b>sudo ./flash i945apple_firstflash <a href="#rom">yourrom.rom</a></b> + </p> + </div> + + <div class="important"> + + <p> + You should also see within the output the following:<br/> + <b>"Verifying flash... VERIFIED."</b> + </p> + + <p> + Shut down. + </p> + + </div> + + <p><a href="#pagetop">Back to top of page.</a></p> + + </div> + + <div class="section"> + + <p> + Copyright © 2014, 2015, 2016 Leah Rowe <info@minifree.org><br/> + 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 the license can be found at <a href="../gfdl-1.3.txt">../gfdl-1.3.txt</a> + </p> + + <p> + Updated versions of the license (when available) can be found at + <a href="https://www.gnu.org/licenses/licenses.html">https://www.gnu.org/licenses/licenses.html</a> + </p> + + <p> + UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + </p> + <p> + TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + </p> + <p> + The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + </p> + + </div> + +</body> +</html> |