diff options
54 files changed, 669 insertions, 757 deletions
diff --git a/docs/bsd/freebsd.md b/docs/bsd/freebsd.md index f66ca88b..0148cf2f 100644 --- a/docs/bsd/freebsd.md +++ b/docs/bsd/freebsd.md @@ -1,5 +1,6 @@ --- title: How to install FreeBSD on a libreboot system +x-toc-enable: true ... This section relates to preparing, booting and installing FreeBSD on @@ -19,13 +20,6 @@ if it does not). Instructions are provided here, to boot and install FreeBSD but we're not sure whether it is currently fully compatible with libreboot. -- [Prepare the USB drive (in FreeBSD)](#prepare) -- [Installing FreeBSD without full disk encryption](#noencryption) -- [Installing FreeBSD with full disk encryption](#encryption) -- [Booting](#booting) -- [Configuring Grub](#configuring_grub) -- [Troubleshooting](#troubleshooting) - **This section is only for the GRUB payload. For depthcharge (used on CrOS devices in libreboot), instructions have yet to be written in the libreboot documentation.** @@ -85,6 +79,7 @@ the bootable FreeBSD USB drive: Connect the USB drive. Check dmesg: $ dmesg + Check lsblk to confirm which drive it is: $ lsblk @@ -143,7 +138,7 @@ because it doesn't exist. In most cases, you should use the vesafb ROM images. Example filename: libreboot\_ukdvorak\_vesafb.rom. -won't boot\...something about file not found +won't boot...something about file not found --------------------------------------------- Your device names (i.e. usb0, usb1, sd0, sd1, wd0, ahci0, hd0, etc) and @@ -152,8 +147,6 @@ numbers may differ. Use TAB completion. Copyright © 2016 Leah Rowe <info@minifree.org>\ Copyright © 2016 Scott Bonds <scott@ggr.com>\ - - 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/bsd/index.md b/docs/bsd/index.md index 8237f884..6fc5d7e6 100644 --- a/docs/bsd/index.md +++ b/docs/bsd/index.md @@ -16,8 +16,6 @@ instructions have yet to be written.** Copyright © 2016 Scott Bonds <scott@ggr.com>\ - - 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/bsd/netbsd.md b/docs/bsd/netbsd.md index 39157ef6..226b3b96 100644 --- a/docs/bsd/netbsd.md +++ b/docs/bsd/netbsd.md @@ -1,5 +1,6 @@ --- title: How to install NetBSD on a libreboot system +x-toc-enable: true ... This section relates to preparing, booting and installing NetBSD on your @@ -14,13 +15,6 @@ Thanks go to ioxcide in [this Reddit post](https://www.reddit.com/r/BSD/comments/53jt70/libreboot_and_bsds/) for the initial instructions. -- [Prepare the USB drive (in NetBSD)](#prepare) -- [Installing NetBSD without full disk encryption](#noencryption) -- [Installing NetBSD with full disk encryption](#encryption) -- [Booting](#booting) -- [Configuring Grub](#configuring_grub) -- [Troubleshooting](#troubleshooting) - **This section is only for the GRUB payload. For depthcharge (used on CrOS devices in libreboot), instructions have yet to be written in the libreboot documentation.** @@ -81,6 +75,7 @@ the bootable NetBSD USB drive: Connect the USB drive. Check dmesg: $ dmesg + Check lsblk to confirm which drive it is: $ lsblk @@ -135,14 +130,13 @@ command to boot NetBSD every time, you can create a GRUB configuration that's aware of your NetBSD installation and that will automatically be used by libreboot. -On your NetBSD root partition, create the **/grub** directory and add -the file **libreboot\_grub.cfg** to it. Inside the -**libreboot\_grub.cfg** add these lines: +On your NetBSD root partition, create the `/grub` directory and add +the file `libreboot_grub.cfg` to it. Inside the +`libreboot_grub.cfg` add these lines: -**default=0 timeout=3 menuentry "NetBSD" {\ - knetbsd -r wd0a (ahci0,netbsd1)/netbsd\ -}\ -** + default=0 timeout=3 menuentry "NetBSD" { + knetbsd -r wd0a (ahci0,netbsd1)/netbsd + } The next time you boot, you'll see the old Grub menu for a few seconds, then you'll see the a new menu with only NetBSD on the list. After 3 @@ -160,7 +154,7 @@ because it doesn't exist. In most cases, you should use the vesafb ROM images. Example filename: libreboot\_ukdvorak\_vesafb.rom. -won't boot\...something about file not found +won't boot...something about file not found --------------------------------------------- Your device names (i.e. usb0, usb1, sd0, sd1, wd0, ahci0, hd0, etc) and @@ -169,8 +163,6 @@ numbers may differ. Use TAB completion. Copyright © 2016 Leah Rowe <info@minifree.org>\ Copyright © 2016 Scott Bonds <scott@ggr.com>\ - - 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/bsd/openbsd.md b/docs/bsd/openbsd.md index 0124356e..8c33e5df 100644 --- a/docs/bsd/openbsd.md +++ b/docs/bsd/openbsd.md @@ -1,5 +1,6 @@ --- title: How to install LibertyBSD or OpenBSD on a libreboot system +x-toc-enable: true ... NOTE: This guide was written for OpenBSD by the person who contributed @@ -13,13 +14,6 @@ This section relates to preparing, booting and installing OpenBSD on your libreboot system, using nothing more than a USB flash drive (and *dd*). They've only been tested on a Lenovo ThinkPad x200. -- [Prepare the USB drive (in OpenBSD)](#prepare) -- [Installing OpenBSD without full disk encryption](#noencryption) -- [Installing OpenBSD with full disk encryption](#encryption) -- [Booting](#booting) -- [Configuring Grub](#configuring_grub) -- [Troubleshooting](#troubleshooting) - **This section is only for the GRUB payload. For depthcharge (used on CrOS devices in libreboot), instructions have yet to be written in the libreboot documentation.** @@ -80,6 +74,7 @@ the bootable OpenBSD USB drive: Connect the USB drive. Check dmesg: $ dmesg + Check lsblk to confirm which drive it is: $ lsblk @@ -156,14 +151,12 @@ command to boot OpenBSD every time, you can create a GRUB configuration that's aware of your OpenBSD installation and that will automatically be used by libreboot. -On your OpenBSD root partition, create the **/grub** directory and add -the file **libreboot\_grub.cfg** to it. Inside the -**libreboot\_grub.cfg** add these lines: +On your OpenBSD root partition, create the `/grub` directory and add the file +`libreboot_grub.cfg` to it. Inside the `libreboot_grub.cfg` add these lines: -**default=0 timeout=3 menuentry "OpenBSD" {\ - kopenbsd -r sd0a (ahci0,openbsd1)/bsd\ -}\ -** + default=0 timeout=3 menuentry "OpenBSD" { + kopenbsd -r sd0a (ahci0,openbsd1)/bsd + } The next time you boot, you'll see the old Grub menu for a few seconds, then you'll see the a new menu with only OpenBSD on the list. After 3 @@ -181,7 +174,7 @@ because it doesn't exist. In most cases, you should use the vesafb ROM images. Example filename: libreboot\_ukdvorak\_vesafb.rom. -won't boot\...something about file not found +Won't boot...something about file not found --------------------------------------------- Your device names (i.e. usb0, usb1, sd0, sd1, wd0, ahci0, hd0, etc) and @@ -190,8 +183,6 @@ numbers may differ. Use TAB completion. Copyright © 2016 Scott Bonds <scott@ggr.com>\ 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/depthcharge/index.md b/docs/depthcharge/index.md index 1c361a7d..1c0c8d13 100644 --- a/docs/depthcharge/index.md +++ b/docs/depthcharge/index.md @@ -1,24 +1,11 @@ --- title: Depthcharge payload +x-toc-enable: true ... This section relates to the depthcharge payload used in libreboot. -- [CrOS security model](#cros_security_model) -- [Developer mode screen](#developer_mode_screen) - - Holding the developer mode screen - - Booting normally - - Booting from different mediums - - Showing device information - - Warnings - -- [Recovery mode screen](#recovery_mode_screen) - - [Recovering from a bad state](#recovering_bad_state) - - [Enabling developer mode](#enabling_developer_mode) -- [Configuring verified boot - parameters](#configuring_verified_boot_parameters) - -CrOS security model {#cros_security_model} +CrOS security model =================== CrOS (Chromium OS/Chrome OS) devices such as Chromebooks implement a @@ -32,27 +19,24 @@ kernels without verifying their signature and booting from external media or legacy payload unless explicitly allowed: see [configuring verified boot parameters](#configuring_verified_boot_parameters). -Developer mode screen {#developer_mode_screen} +Developer mode screen ===================== -The developer mode screen can be accessed in depthcharge when developer -mode is enabled.\ -Developer mode can be enabled from the [recovery mode -screen](#recovery_mode_screen). +The developer mode screen can be accessed in depthcharge when developer mode is +enabled. Developer mode can be enabled from the recovery mode screen. It allows booting normally, booting from internal storage, booting from -external media (when enabled), booting from legacy payload (when -enabled), showing information about the device and disabling developer -mode. +external media (when enabled), booting from legacy payload (when enabled), +showing information about the device and disabling developer mode. -Holding the developer mode screen {#holding_developer_mode_screen} +Holding the developer mode screen --------------------------------- As instructed on the developer mode screen, the screen can be held by pressing **Ctrl + H** in the first 3 seconds after the screen is shown. After that delay, depthcharge will resume booting normally. -Booting normally {#booting_normally} +Booting normally ---------------- As instructed on the developer mode screen, a regular boot will happen @@ -60,7 +44,7 @@ after **3 seconds** (if developer mode screen is not held).\ The default boot medium (internal storage, external media, legacy payload) is shown on screen. -Booting from different mediums {#booting_different_mediums} +Booting from different mediums ------------------------------ Depthcharge allows booting from different mediums, when they are allowed @@ -74,13 +58,12 @@ can be triggered by pressing various key combinations: - External media: **Ctrl + U** (when enabled) - Legacy payload: **Ctrl + L** (when enabled) -Showing device information {#showing_device_information} +Showing device information -------------------------- -As instructed on the developer mode screen, showing device information -can be triggered by pressing **Ctrl + I** or **Tab**.\ -Various information is shown, including vboot non-volatile data, TPM -status, GBB flags and key hashes.\ +As instructed on the developer mode screen, showing device information can be +triggered by pressing **Ctrl + I** or **Tab**. Various information is shown, +including vboot non-volatile data, TPM status, GBB flags and key hashes. Warnings -------- @@ -91,7 +74,7 @@ The developer mode screen will show warnings when: - Booting from external media is enabled - Booting legacy payloads is enabled -Recovery mode screen {#recovery_mode_screen} +Recovery mode screen ==================== The recovery mode screen can be accessed in depthcharge, by pressing @@ -101,7 +84,7 @@ It allows recovering the device from a bad state by booting from a trusted recovery media. When accessed with the device in a good state, it also allows enabling developer mode. -Recovering from a bad state {#recovering_bad_state} +Recovering from a bad state --------------------------- When the device fails to verify the signature of a piece of the boot @@ -127,15 +110,14 @@ replaced. When the recovery private key is available (e.g. when using self-generated keys), it can be used to sign a kernel for recovery purposes. -Enabling developer mode {#enabling_developer_mode} +Enabling developer mode ----------------------- As instructed on the recovery mode screen, developer mode can be enabled -by pressing **Ctrl + D**.\ -Instructions to confirm enabling developer mode are then shown on -screen. +by pressing **Ctrl + D**. Instructions to confirm enabling developer mode are +then shown on screen. -Configuring verified boot parameters {#configuring_verified_boot_parameters} +Configuring verified boot parameters ==================================== Depthcharge's behavior relies on the verified boot (vboot) reference @@ -161,42 +143,30 @@ security of the device. The following parameters can be configured: -- Kernels signature verification: - - Enabled with: +Kernels signature verification: - \# **crossystem dev\_boot\_signed\_only=1** - - Disabled with: + # crossystem dev_boot_signed_only=1 # enable + # crossystem dev_boot_signed_only=0 # disable - \# **crossystem dev\_boot\_signed\_only=0** -- External media boot: - - Enabled with: +External media boot: - \# **crossystem dev\_boot\_usb=1** - - Disabled with: + # crossystem dev_boot_usb=1 # enable + # crossystem dev_boot_usb=0 # disable - \# **crossystem dev\_boot\_usb=0** -- Legacy payload boot: - - Enabled with: +Legacy payload boot: - \# **crossystem dev\_boot\_legacy=1** - - Disabled with: + # crossystem dev_boot_legacy=1 # enable + # crossystem dev_boot_legacy=0 # disable - \# **crossystem dev\_boot\_legacy=0** -- Default boot medium: - - Internal storage: +Default boot medium: - \# **crossystem dev\_default\_boot=disk** - - External media: + # crossystem dev_default_boot=disk # internal storage + # crossystem dev_default_boot=usb # external media + # crossystem dev_default_boot=legacy # legacy payload - \# **crossystem dev\_default\_boot=usb** - - Legacy payload: - - \# **crossystem dev\_default\_boot=legacy** 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/fdl-1.3.md b/docs/fdl-1.3.md index 13e2839b..0f883f0c 100644 --- a/docs/fdl-1.3.md +++ b/docs/fdl-1.3.md @@ -426,7 +426,6 @@ license notices just after the title page: Copyright (C) YEAR YOUR NAME. - 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/git/index.md b/docs/git/index.md index d8ed35a2..c820bc69 100644 --- a/docs/git/index.md +++ b/docs/git/index.md @@ -1,5 +1,6 @@ --- title: Instructions for compiling from the source code +x-toc-enable: true ... Depthcharge is currently not documented, since it is in the new build @@ -9,15 +10,7 @@ included in the BUILD\_HOWTO file in libreboot.git or \_src. This section relates to building libreboot from source, and working with the git repository. -- [Install build dependencies](#build_dependencies) -- [Get the full source code from metadata (git clone)](#build_meta) -- [How to build "bucts" (for LenovoBIOS - X60/X60S/X60T/T60)](#build_bucts) - -- [How to build "flashrom"](#build_flashrom) -- [How to build the ROM images](#build) - -Install build dependencies {#build_dependencies} +Install build dependencies ========================== Before doing anything, you need the dependencies first. This is true if @@ -28,17 +21,22 @@ statically compiled executables for the utilities are included.** For Debian Stretch (may also work on Debian Jessie), you can run the following command: + $ sudo ./oldbuild dependencies debian + (this will also work in Devuan) For Parabola, you can run the following command: + $ sudo ./oldbuild dependencies parabola\ + or: + # ./oldbuild dependencies parabola For other GNU+Linux distributions, you can adapt the existing scripts. -Get the full source code from metadata (git clone) {#build_meta} +Get the full source code from metadata (git clone) ================================================== If you downloaded libreboot from git, then there are some steps to @@ -57,6 +55,7 @@ requirement is: $ git config --global user.name "Your Name" $ git config --global user.email your@emailaddress.com + This is what will also appear in git logs if you ever commit your own changes to a given repository. For more information, see <http://git-scm.com/doc>. @@ -79,7 +78,7 @@ them. Read the script in a text editor to learn more. To build the ROM images, see [\#build](#build). -How to build "bucts" (for LenovoBIOS X60/X60S/X60T/T60) {#build_bucts} +How to build "bucts" (for LenovoBIOS X60/X60S/X60T/T60) ========================================================= **This is for Lenovo BIOS users on the ThinkPad X60/X60S, X60 Tablet and @@ -136,7 +135,7 @@ To statically compile it, do this: The "builddeps" script in libreboot\_src also makes use of builddeps-bucts. -How to build "flashrom" {#build_flashrom} +How to build "flashrom" ========================= Flashrom is the utility for flashing/dumping ROM images. This is what @@ -177,7 +176,7 @@ executables: The "builddeps" script in libreboot\_src also makes use of builddeps-flashrom. -How to build the ROM images {#build} +How to build the ROM images =========================== You don't need to do much, as there are scripts already written for you @@ -211,12 +210,14 @@ modulename*. To see the possible values for *modulename*, use: After that, build the ROM images (for all boards): $ ./oldbuild roms withgrub + Alternatively, you can build for a specific board or set of boards. For example: $ ./oldbuild roms withgrub x60 $ ./oldbuild roms withgrub x200\_8mb $ ./oldbuild roms withgrub x60 x200\_8mb + The list of board options can be found by looking at the directory names in **resources/libreboot/config/grub/**. @@ -314,6 +315,7 @@ The command that you used for generating the release archives will also run the following command: $ ./oldbuild release tobuild + The archive **tobuild.tar.xz** will have been created under **release/oldbuildsystem/**, containing bucts, flashrom and all other required resources for building them. @@ -327,8 +329,6 @@ under **release/oldbuildsystem/rom/**. 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/gnulinux/configuring_parabola.md b/docs/gnulinux/configuring_parabola.md index 29dc0243..2aef3624 100644 --- a/docs/gnulinux/configuring_parabola.md +++ b/docs/gnulinux/configuring_parabola.md @@ -1,5 +1,6 @@ --- title: Configuring Parabola (post-install) +x-toc-enable: true ... Post-installation configuration steps for Parabola GNU+Linux-libre. @@ -7,38 +8,6 @@ Parabola is extremely flexible; this is just an example. This example uses LXDE because it's lightweight, but we recommend the *MATE* desktop (which is actually about as lightweight as LXDE). -Table of Contents -================= - -- [Configuring pacman](#pacman_configure) - - [Updating Parabola](#pacman_update) - - [Maintaining Parabola during system updates](#pacman_maintain) - - [Clearing package cache after updating](#pacman_cacheclean) - - [Pacman command equivalents (compared to other package - managers)](#pacman_commandequiv) - - [your-freedom](#yourfreedom) - -- [Add a user account](#useradd) -- [System D](#systemd) -- [Interesting repositories](#interesting_repos) -- [Setup a network connection in Parabola](#network) - - [Setting hostname](#network_hostname) - - [Network status](#network_status) - - [Network interface names](#network_devicenames) - - [Network setup](#network_setup) -- [System maintenance](#system_maintain) - important! -- [Configuring the desktop](#desktop) - - [Install Xorg](#desktop_xorg) - - [Xorg keyboard layout](#desktop_kblayout) - - [Install LXDE](#desktop_lxde) - - [LXDE - clock](#lxde_clock) - - [LXDE - font](#lxde_font) - - [LXDE - screenlock](#lxde_screenlock) - - [LXDE - automounting](#lxde_automount) - - [LXDE - disable suspend](#lxde_suspend) - - [LXDE - battery monitor](#lxde_battery) - - [LXDE - network manager](#lxde_network) - While not strictly related to the libreboot project, this guide is intended to be useful for those interested in installing Parabola on their libreboot system. @@ -86,9 +55,13 @@ careful about this when reading anything on the Arch wiki. Some of these steps require internet access. I'll go into networking later but for now, I just connected my system to a switch and did: + # systemctl start dhcpcd.service + You can stop it later by running: + # systemctl stop dhcpcd.service\ + For most people this should be enough, but if you don't have DHCP on your network then you should setup your network connection first:\ [Setup network connection in Parabola](#network) @@ -114,6 +87,7 @@ In the end, I didn't change my configuration for pacman. When you are updating, resync with the latest package names/versions: # pacman -Syy + (according to the wiki, -Syy is better than Sy because it refreshes the package list even if it appears to be up to date, which can be useful when switching to another mirror).\ @@ -190,6 +164,7 @@ The wiki also mentions this method for removing everything from the cache, including currently installed packages that are cached: # pacman -Scc + This is inadvisable, since it means re-downloading the package again if you wanted to quickly re-install it. This should only be used when disk space is at a premium. @@ -227,6 +202,7 @@ Read the entire document linked to above, and then continue. Add your user: # useradd -m -G wheel -s /bin/bash *yourusername* + Set a password: # passwd *yourusername* @@ -254,6 +230,7 @@ supplier) to use systemd. The manpage should also help: # man systemd + The section on 'unit types' is especially useful. According to the wiki, systemd 'journal' keeps logs of a size up to @@ -287,9 +264,11 @@ Finally, the wiki mentions 'temporary' files and the utility for managing them. # man systemd-tmpfiles + The command for 'clean' is: # systemd-tmpfiles --clean + According to the manpage, this *"cleans all files and directories with an age parameter"*. According to the Arch wiki, this reads information in /etc/tmpfiles.d/ and /usr/lib/tmpfiles.d/ to know what actions to @@ -301,6 +280,7 @@ However, /usr/lib/tmpfiles.d/ contained some files. The first one was etc.conf, containing information and a reference to this manpage: # man tmpfiles.d + Read that manpage, and then continue studying all the files. The systemd developers tell me that it isn't usually necessary to touch @@ -343,6 +323,7 @@ when installing Parabola. You can also do it with systemd (do so now, if you like): # hostnamectl set-hostname *yourhostname* + This writes the specified hostname to /etc/hostname. More information can be found in these manpages: @@ -430,6 +411,7 @@ non-free firmware inside, but it's transparent to you but the smart data comes from it. Therefore, don't rely on it too much): # pacman -S smartmontools + Read <https://wiki.archlinux.org/index.php/S.M.A.R.T.> to learn how to use it. @@ -449,6 +431,7 @@ Based on <https://wiki.archlinux.org/index.php/Xorg>. Firstly, install it! # pacman -S xorg-server + I also recommend installing this (contains lots of useful tools, including *xrandr*): @@ -458,9 +441,11 @@ Install the driver. For me this was *xf86-video-intel* on the ThinkPad X60. T60 and macbook11/21 should be the same. # pacman -S xf86-video-intel + For other systems you can try: # pacman -Ss xf86-video- | less + Combined with looking at your *lspci* output, you can determine which driver is needed. By default, Xorg will revert to xf86-video-vesa which is a generic driver and doesn't provide true hardware acceleration. @@ -566,6 +551,7 @@ I also like to install these: Enable LXDM (the default display manager, providing a graphical login): # systemctl enable lxdm.service + It will start when you boot up the system. To start it now, do: # systemctl start lxdm.service @@ -576,17 +562,20 @@ start lxde without lxdm. Read <https://wiki.archlinux.org/index.php/Xinitrc>. Open LXterminal: + $ cp /etc/skel/.xinitrc \~ + Open .xinitrc and add the following plus a line break at the bottom of the file.\ *\# Probably not needed. The same locale info that we set before\ \# Based on advice from the LXDE wiki export LC\_ALL=en\_GB.UTF-8\ export LANGUAGE=en\_GB.UTF-8\ export LANG=en\_GB.UTF-8\ -\ + \# Start lxde desktop\ exec startlxde\ * Now make sure that it is executable: + $ chmod +x .xinitrc ### LXDE - clock {#lxde_clock} @@ -643,6 +632,7 @@ Install Network Manager: You will also want the graphical applet: # pacman -S network-manager-applet + Arch wiki says that an autostart rule will be written at */etc/xdg/autostart/nm-applet.desktop* @@ -657,6 +647,7 @@ LXDE uses openbox, so I refer to:\ It tells me for the applet I need: # pacman -S xfce4-notifyd gnome-icon-theme + Also, for storing authentication details (wifi) I need: # pacman -S gnome-keyring @@ -665,6 +656,7 @@ I wanted to quickly enable networkmanager: # systemctl stop dhcpcd # systemctl start NetworkManager + Enable NetworkManager at boot time: # systemctl enable NetworkManager @@ -677,8 +669,6 @@ theme, in *lxappearance*. 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/gnulinux/encrypted_debian.md b/docs/gnulinux/encrypted_debian.md index 27e5be35..2a1e2e79 100644 --- a/docs/gnulinux/encrypted_debian.md +++ b/docs/gnulinux/encrypted_debian.md @@ -22,17 +22,20 @@ tampering by someone with physical access to the system. This guide is written for Debian net installer. You can download the ISO from the homepage on [debian.org](https://www.debian.org/). Use this on -the GRUB terminal to boot it from USB (for 64-bit Intel or AMD):\ -**set root='usb0'\ -linux /install.amd/vmlinuz\ -initrd /install.amd/initrd.gz\ -boot\ -** If you are on a 32-bit system (e.g. X60):\ -**set root='usb0'\ -linux /install.386/vmlinuz\ -initrd /install.386/initrd.gz\ -boot** - +the GRUB terminal to boot it from USB (for 64-bit Intel or AMD): + + set root='usb0' + linux /install.amd/vmlinuz + initrd /install.amd/initrd.gz + boot + +If you are on a 32-bit system (e.g. X60): + + set root='usb0' + linux /install.386/vmlinuz + initrd /install.386/initrd.gz + boot + [This guide](grub_boot_installer.md) shows how to create a boot USB drive with the Debian ISO image. @@ -165,13 +168,11 @@ Booting your system =================== At this point, you will have finished the installation. At your GRUB -payload, press C to get to the command line. +payload, press C to get to the command line, and enter: -Do that:\ grub> cryptomount -a - grub> set root='lvm/matrix-rootvol'\ -grub> **linux /vmlinuz root=/dev/mapper/matrix-rootvol -cryptdevice=/dev/mapper/matrix-rootvol:root**\ + grub> set root='lvm/matrix-rootvol' + grub> linux /vmlinuz root=/dev/mapper/matrix-rootvolcryptdevice=/dev/mapper/matrix-rootvol:root grub> initrd /initrd.img grub> boot @@ -182,6 +183,7 @@ If you didn't encrypt your home directory, then you can safely ignore this section. Immediately after logging in, do that: + $ sudo ecryptfs-unwrap-passphrase This will be needed in the future if you ever need to recover your home @@ -199,12 +201,11 @@ Modify your grub.cfg (in the firmware) [using this tutorial](grub_cbfs.md); just change the default menu entry 'Load Operating System' to say this inside: -**cryptomount -a**\ -**set root='lvm/matrix-rootvol'**\ -**linux /vmlinuz root=/dev/mapper/matrix-rootvol -cryptdevice=/dev/mapper/matrix-rootvol:root**\ -**initrd /initrd.img** - + cryptomount -a + set root='lvm/matrix-rootvol' + linux /vmlinuz root=/dev/mapper/matrix-rootvolcryptdevice=/dev/mapper/matrix-rootvol:root + initrd /initrd.img + Without specifying a device, the *-a* parameter tries to unlock all detected LUKS volumes. You can also specify -u UUID or -a (device). @@ -302,8 +303,6 @@ problems. Removing that worked around the issue. 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/gnulinux/encrypted_parabola.md b/docs/gnulinux/encrypted_parabola.md index 25c4e5c6..deb0ba4e 100644 --- a/docs/gnulinux/encrypted_parabola.md +++ b/docs/gnulinux/encrypted_parabola.md @@ -65,12 +65,14 @@ article](https://wiki.archlinux.org/index.php/Solid_State_Drives). Edit whole article and keep all points in mind, adapting them for this guide. Securely wipe the drive: + # dd if=/dev/urandom of=/dev/sda; sync NOTE: If you have an SSD, only do this the first time. If it was already LUKS-encrypted before, use the info below to wipe the LUKS header. Also, check online for your SSD what the recommended erase block size is. For example if it was 2MiB: + # dd if=/dev/urandom of=/dev/sda bs=2M; sync If your drive was already LUKS encrypted (maybe you are re-installing @@ -82,6 +84,7 @@ guide is recommending putting zero there. I'm going to use urandom. Do this: # head -c 3145728 /dev/urandom > /dev/sda; sync + (Wiping the LUKS header is important, since it has hashed passphrases and so on. It's 'secure', but 'potentially' a risk). @@ -93,6 +96,7 @@ list the available keymaps and use yours: # localectl list-keymaps # loadkeys LAYOUT + For me, LAYOUT would have been dvorak-uk. Establish an internet connection @@ -142,13 +146,14 @@ I am then directed to Parabola forces you to RTFM. Do that. -It tells me to run: +To populate the list below, it tells me to run: + + # cryptsetup benchmark - # cryptsetup benchmark (for making sure the list below is -populated)\ Then: # cat /proc/crypto + This gives me crypto options that I can use. It also provides a representation of the best way to set up LUKS (in this case, security is a priority; speed, a distant second). To gain a better understanding, I @@ -162,10 +167,14 @@ on Reading through, it seems like Serpent (encryption) and Whirlpool (hash) is the best option. -I am initializing LUKS with the following:\ -\# **cryptsetup -v --cipher serpent-xts-plain64 --key-size 512 --hash +I am initializing LUKS with the following: + + # cryptsetup -v --cipher serpent-xts-plain64 --key-size 512 --hash + whirlpool --iter-time 500 --use-random --verify-passphrase luksFormat -/dev/sda1** Choose a **secure** passphrase here. Ideally lots of +/dev/sda1 + + Choose a **secure** passphrase here. Ideally lots of lowercase/uppercase numbers, letters, symbols etc all in a random pattern. The password length should be as long as you are able to handle without writing it down or storing it anywhere. @@ -178,14 +187,14 @@ Create LVM Now I refer to <https://wiki.archlinux.org/index.php/LVM>. -Open the LUKS partition: +Open the LUKS partition at /dev/mapper/lvm: # cryptsetup luksOpen /dev/sda1 lvm -(it will be available at /dev/mapper/lvm) Create LVM partition: # pvcreate /dev/mapper/lvm + Show that you just created it: # pvdisplay @@ -194,22 +203,24 @@ Now I create the volume group, inside of which the logical volumes will be created: # vgcreate matrix /dev/mapper/lvm + (volume group name is 'matrix' - choose your own name, if you like) Show that you created it: # vgdisplay -Now create the logical volumes: +Now create the logical volumes (2G swap parittion named swapvol): + + # lvcreate -L 2G matrix -n swapvol - # lvcreate -L 2G matrix -n swapvol (2G swap partition, named -swapvol)\ -Again, choose your own name if you like. Also, make sure to choose a -swap size of your own needs. It basically depends on how much RAM you -have installed. I refer to +Again, choose your own name if you like. Also, make sure to choose a swap size +of your own needs. It basically depends on how much RAM you have installed. I +refer to <http://www.linux.com/news/software/applications/8208-all-about-linux-swap-space>. +This creates a single large partition in the rest of the space, named root: + + # lvcreate -l +100%FREE matrix -n root - # lvcreate -l +100%FREE matrix -n root (single large partition in -the rest of the space, named root)\ You can also be flexible here, for example you can specify a /boot, a /, a /home, a /var, a /usr, etc. For example, if you will be running a web/mail server then you want /var in its own partition (so that if it @@ -227,6 +238,7 @@ Create / and swap partitions, and mount For the swapvol LV I use: # mkswap /dev/mapper/matrix-swapvol + Activate swap: # swapon /dev/matrix/swapvol @@ -263,49 +275,70 @@ server)) and then did: # pacman -Syy # pacman -Syu - # pacman -Sy pacman (and then I did the other 2 steps above, -again)\ + # pacman -Sy pacman + In my case I did the steps in the next paragraph, and followed the steps in this paragraph again. -<troubleshooting>\ - The following is based on 'Verification of package signatures' in -the Parabola install guide.\ - Check there first to see if steps differ by now.\ - Now you have to update the default Parabola keyring. This is used for -signing and verifying packages:\ - \# **pacman -Sy parabola-keyring**\ - It says that if you get GPG errors, then it's probably an expired -key and, therefore, you should do:\ - \# **pacman-key --populate parabola**\ - \# **pacman-key --refresh-keys**\ - \# **pacman -Sy parabola-keyring**\ - To be honest, you should do the above anyway. Parabola has a lot of -maintainers, and a lot of keys. Really!\ - If you get an error mentioning dirmngr, do:\ - \# **dirmngr </dev/null**\ - Also, it says that if the clock is set incorrectly then you have to -manually set the correct time\ - (if keys are listed as expired because of it):\ - \# **date MMDDhhmm\[\[CC\]YY\]\[.ss\]**\ - I also had to install:\ - \# **pacman -S archlinux-keyring**\ - \# **pacman-key --populate archlinux**\ - In my case I saw some conflicting files reported in pacman, stopping -me from using it.\ - I deleted the files that it mentioned and then it worked. -Specifically, I had this error:\ - *licenses: /usr/share/licenses/common/MPS exists in filesystem*\ - I rm -Rf'd the file and then pacman worked. I'm told that the -following would have also made it work:\ - \# **pacman -Sf licenses**\ -</troubleshooting>\ +Troubleshooting +--------------- + +The following is based on 'Verification of package signatures' in +the Parabola install guide. + +Check there first to see if steps differ by now. + +Now you have to update the default Parabola keyring. This is used for +signing and verifying packages: + + # pacman -Sy parabola-keyring + +It says that if you get GPG errors, then it's probably an expired +key and, therefore, you should do: + + # pacman-key --populate parabola + # pacman-key --refresh-keys + # pacman -Sy parabola-keyring + +To be honest, you should do the above anyway. Parabola has a lot of +maintainers, and a lot of keys. Really! + +If you get an error mentioning dirmngr, do: + + # dirmngr < /dev/null + +Also, it says that if the clock is set incorrectly then you have to manually +set the correct time + + # date MMDDhhmm\[\[CC\]YY\]\[.ss\] + +I also had to install: + + # pacman -S archlinux-keyring + # pacman-key --populate archlinux + +In my case I saw some conflicting files reported in pacman, stopping +me from using it. +I deleted the files that it mentioned and then it worked. +Specifically, I had this error: + + licenses: /usr/share/licenses/common/MPS exists in filesystem + +I rm -Rf'd the file and then pacman worked. I'm told that the +following would have also made it work: + + # pacman -Sf licenses + +More packages +-------------- I also like to install other packages (base-devel, compilers and so on) and wpa\_supplicant/dialog/iw/wpa\_actiond are needed for wireless after -the install:\ -\# **pacstrap /mnt base base-devel wpa\_supplicant dialog iw -wpa\_actiond** +the install: + + # pacstrap /mnt base base-devel wpa_supplicant dialog iw + +wpa\_actiond Configure the system -------------------- @@ -315,9 +348,11 @@ Generate an fstab - UUIDs are used because they have certain advantages prefer labels instead, replace the -U option with -L): # genfstab -U -p /mnt >> /mnt/etc/fstab + Check the created file: # cat /mnt/etc/fstab + (If there are any errors, edit the file. Do **NOT** run the genfstab command again!) @@ -346,16 +381,18 @@ Parabola does not have wget. This is sinister. Install it: Locale: # vi /etc/locale.gen + Uncomment your needed localisations. For example en\_GB.UTF-8 (UTF-8 is highly recommended over other options). # locale-gen - # echo LANG=en\_GB.UTF-8 > /etc/locale.conf - # export LANG=en\_GB.UTF-8 + # echo LANG=en_GB.UTF-8 > /etc/locale.conf + # export LANG=en_GB.UTF-8 Console font and keymap: # vi /etc/vconsole.conf + In my case: KEYMAP=dvorak-uk @@ -364,6 +401,7 @@ In my case: Time zone: # ln -s /usr/share/zoneinfo/Europe/London /etc/localtime + (Replace Zone and Subzone to your liking. See /usr/share/zoneinfo) Hardware clock: @@ -374,6 +412,7 @@ Hostname: Write your hostname to /etc/hostname. For example, if your hostname is parabola: # echo parabola > /etc/hostname + Add the same hostname to /etc/hosts: # vi /etc/hosts @@ -392,6 +431,7 @@ Mkinitcpio: Configure /etc/mkinitcpio.conf as needed (see information about each hook.) Specifically, for this use case: # vi /etc/mkinitcpio.conf + Then modify the file like so: - MODULES="i915" @@ -418,9 +458,11 @@ with (this is different from Arch, specifying linux-libre instead of linux): # mkinitcpio -p linux-libre + Also do it for linux-libre-lts: # mkinitcpio -p linux-libre-lts + Also do it for linux-libre-grsec: # mkinitcpio -p linux-libre-grsec @@ -430,9 +472,11 @@ default for its password hashing. I referred to <https://wiki.archlinux.org/index.php/SHA_password_hashes>. # vi /etc/pam.d/passwd + Add rounds=65536 at the end of the uncommented 'password' line. # passwd root + Make sure to set a secure password! Also, it must never be the same as your LUKS password. @@ -457,7 +501,8 @@ file=/var/log/faillog*\ To unlock a user manually (if a password attempt is failed 3 times), do: - # pam\_tally --user *theusername* --reset What the above + # pam_tally --user *theusername* --reset What the above + configuration does is lock the user out for 10 minutes, if they make 3 failed login attempts. @@ -487,6 +532,7 @@ Lock the encrypted partition (close it): # cryptsetup luksClose lvm # shutdown -h now + Remove the installation media, then boot up again. Booting from GRUB @@ -538,13 +584,18 @@ current firmware - where *libreboot.rom* is an example: make sure to adapt: # flashrom -p internal -r libreboot.rom + If flashrom complains about multiple flash chips detected, add a *-c* option at the end, with the name of your chosen chip is quotes.\ You can check if everything is in there (*grub.cfg* and *grubtest.cfg* would be really nice): + $ ./cbfstool libreboot.rom print + Extract grubtest.cfg: + $ ./cbfstool libreboot.rom extract -n grubtest.cfg -f grubtest.cfg\ + And modify: $ vi grubtest.cfg @@ -578,20 +629,25 @@ Save your changes in grubtest.cfg, then delete the unmodified config from the ROM image: $ ./cbfstool libreboot.rom remove -n grubtest.cfg -and insert the modified grubtest.cfg:\ -\$ **./cbfstool libreboot.rom add -n grubtest.cfg -f grubtest.cfg -t -raw**\ + +and insert the modified grubtest.cfg: + + # ./cbfstool libreboot.rom add -n grubtest.cfg -f grubtest.cfg -t + +raw Now refer to [../install/#flashrom](../install/#flashrom). Cd (up) to the libreboot\_util directory and update the flash chip contents: # ./flash update libreboot.rom + 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: # ./flash forceupdate libreboot.rom -You should see "Verifying flash\... VERIFIED." written at the end of + +You should see "Verifying flash... VERIFIED." written at the end of the flashrom output. With this new configuration, Parabola can boot automatically and you @@ -616,13 +672,17 @@ the main config still links (in the menu) to grubtest.cfg, so that you don't have to manually switch to it, in case you ever want to follow this guide again in the future (modifying the already modified config). Inside libreboot\_util/cbfstool/{armv7l i686 x86\_64}, we can do this -with the following command:\ -\$ **sed -e 's:(cbfsdisk)/grub.cfg:(cbfsdisk)/grubtest.cfg:g' -e +with the following command: + + # sed -e 's:(cbfsdisk)/grub.cfg:(cbfsdisk)/grubtest.cfg:g' -e + 's:Switch to grub.cfg:Switch to grubtest.cfg:g' < grubtest.cfg > -grub.cfg**\ +grub.cfg + Delete the grub.cfg that remained inside the ROM: $ ./cbfstool libreboot.rom remove -n grub.cfg + Add the modified version that you just made: $ ./cbfstool libreboot.rom add -n grub.cfg -f grub.cfg -t raw @@ -632,7 +692,8 @@ Now you have a modified ROM. Once more, refer to directory and update the flash chip contents: # ./flash update libreboot.rom -And wait for the "Verifying flash\... VERIFIED." Once you have done + +And wait for the "Verifying flash... VERIFIED." Once you have done that, shut down and then boot up with your new configuration. When done, delete GRUB (remember, we only needed it for the @@ -656,26 +717,32 @@ will be asked to enter your passphrase a second time. A workaround is to put a keyfile inside initramfs, with instructions for the kernel to use it when booting. This is safe, because /boot/ is encrypted (otherwise, putting a keyfile inside initramfs would be a bad idea).\ -Boot up and login as root or your user. Then generate the key file:\ -\# **dd bs=512 count=4 if=/dev/urandom of=/etc/mykeyfile -iflag=fullblock**\ +Boot up and login as root or your user. Then generate the key file: + + # dd bs=512 count=4 if=/dev/urandom of=/etc/mykeyfile + +iflag=fullblock + Insert it into the luks volume: # cryptsetup luksAddKey /dev/sdX /etc/mykeyfile + and enter your LUKS passphrase when prompted. Add the keyfile to the initramfs by adding it to FILES in /etc/mkinitcpio.conf. For example: # FILES="/etc/mykeyfile" + Create the initramfs image from scratch: # mkinitcpio -p linux-libre # mkinitcpio -p linux-libre-lts # mkinitcpio -p linux-libre-grsec + Add the following to your grub.cfg - you are now able to do that, see above! -, or add it in the kernel command line for GRUB: # cryptkey=rootfs:/etc/mykeyfile -\ + You can also place this inside the grub.cfg that exists in CBFS: [grub\_cbfs.md](grub_cbfs.md). @@ -775,8 +842,6 @@ problems. Removing that worked around the issue. Copyright © 2014, 2015, 2016 Leah Rowe <info@minifree.org>\ Copyright © 2015 Jeroen Quint <jezza@diplomail.ch>\ - - 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/gnulinux/grub_boot_installer.md b/docs/gnulinux/grub_boot_installer.md index 228dadff..6137b5b7 100644 --- a/docs/gnulinux/grub_boot_installer.md +++ b/docs/gnulinux/grub_boot_installer.md @@ -1,18 +1,12 @@ --- title: How to install GNU+Linux on a libreboot system +x-toc-enable: true ... This section relates to preparing, booting and installing a GNU+Linux distribution on your libreboot system, using nothing more than a USB flash drive (and *dd*). -- [Prepare the USB drive (in GNU+Linux)](#prepare) -- [Installing GNU+Linux with full disk encryption](#encryption) -- [Debian or Devuan net install?](#debian_netinstall) -- [Booting ISOLINUX images (automatic method)](#parse_isolinux) -- [Booting ISOLINUX images (manual method)](#manual_isolinux) -- [Troubleshooting](#troubleshooting) - **This section is only for the GRUB payload. For depthcharge (used on CrOS devices in libreboot), instructions have yet to be written in the libreboot documentation.** @@ -72,6 +66,7 @@ how to create the bootable GNU+Linux USB drive: Connect the USB drive. Check dmesg: $ dmesg | tail + Check to confirm which drive it is, for example, if you think its sd3: $ disklabel sd3 @@ -92,10 +87,8 @@ Continue reading, for information about how to do that. Installing GNU+Linux with full disk encryption ---------------------------------------------- -- [Installing Debian or Devuan GNU+Linux with full disk encryption - (including /boot)](encrypted_debian.md) -- [Installing Parabola GNU+Linux with full disk encryption (including - /boot)](encrypted_parabola.md) +- [Debian or Devuan GNU+Linux with full disk encryption](encrypted_debian.md) +- [Parabola GNU+Linux with full disk encryption](encrypted_parabola.md) Debian or Devuan net install? ----------------------------- @@ -103,16 +96,21 @@ Debian or Devuan net install? Download the Debian or Devuan net installer. You can download the ISO from the homepage on [debian.org](https://www.debian.org/), or [the Devuan homepage](https://www.devuan.org/) for Devuan. Use this on the -GRUB terminal to boot it from USB (for 64-bit Intel or AMD):\ -**set root='usb0'\ -linux /install.amd/vmlinuz\ -initrd /install.amd/initrd.gz\ -boot\ -** If you are on a 32-bit system (e.g. X60):\ -**set root='usb0'\ -linux /install.386/vmlinuz\ -initrd /install.386/initrd.gz\ -boot**\ +GRUB terminal to boot it from USB (for 64-bit Intel or AMD): + + + set root='usb0' + linux /install.amd/vmlinuz + initrd /install.amd/initrd.gz + boot + +If you are on a 32-bit system (e.g. X60): + + set root='usb0' + linux /install.386/vmlinuz + initrd /install.386/initrd.gz + boot + We recommend using the *MATE* desktop. Booting ISOLINUX images (automatic method) @@ -131,14 +129,21 @@ distribution. You must adapt them appropriately, for whatever GNU+Linux distribution it is that you are trying to install.* If the ISOLINUX parser or *Search for GRUB configuration* options won't -work, then press C in GRUB to access the command line.\ +work, then press C in GRUB to access the command line. + grub> ls -Get the device from above output, eg (usb0). Example:\ - grub> cat (usb0)/isolinux/isolinux.cfg\ + +Get the device from above output, eg (usb0). Example: + + grub> cat (usb0)/isolinux/isolinux.cfg + Either this will show the ISOLINUX menuentries for that ISO, or link to -other .cfg files, for example /isolinux/foo.cfg.\ -If it did that, then you do:\ +other .cfg files, for example /isolinux/foo.cfg. + +If it did that, then you do: + grub> cat (usb0)/isolinux/foo.cfg + And so on, until you find the correct menuentries for ISOLINUX. **The file */isolinux/foo.cfg* is a fictional example. Do not actually use this example, unless you actually have that file, if it is @@ -154,15 +159,17 @@ options in txt.cfg. This is important if you want 64-bit booting on your system. Devuan versions based on Debian 8.x may also have the same issue. -Now look at the ISOLINUX menuentry. It'll look like:\ -**kernel /path/to/kernel\ -append PARAMETERS initrd=/path/to/initrd MAYBE\_MORE\_PARAMETERS\ -** GRUB works the same way, but in it's own way. Example GRUB -commands:\ - grub> set root='usb0'\ +Now look at the ISOLINUX menuentry. It'll look like: + + kernel /path/to/kernel append PARAMETERS initrd=/path/to/initrd ... + +GRUB works similarly. Example GRUB commands: + + grub> set root='usb0' grub> linux /path/to/kernel PARAMETERS MAYBE\_MORE\_PARAMETERS grub> initrd /path/to/initrd grub> boot + Note: *usb0* may be incorrect. Check the output of the *ls* command in GRUB, to see a list of USB devices/partitions. Of course this will vary from distro to distro. If you did all of that correctly, then it should @@ -193,8 +200,9 @@ When using the ROM images that use coreboot's "text mode" instead of the coreboot framebuffer, booting the Debian or Devuan net installer results in graphical corruption because it is trying to switch to a framebuffer which doesn't exist. Use that kernel parameter on the -'linux' line when booting it:\ -**vga=normal fb=false** +'linux' line when booting it: + + vga=normal fb=false This forces debian-installer to start in text-mode, instead of trying to switch to a framebuffer. @@ -211,8 +219,6 @@ debian-installer (text mode) net install method. Copyright © 2014, 2015, 2016 Leah Rowe <info@minifree.org>\ Copyright © 2016 Scott Bonds <scott@ggr.com>\ - - 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/gnulinux/grub_cbfs.md b/docs/gnulinux/grub_cbfs.md index 4b58d3e5..01e4d3de 100644 --- a/docs/gnulinux/grub_cbfs.md +++ b/docs/gnulinux/grub_cbfs.md @@ -1,5 +1,6 @@ --- title: How to replace the default GRUB configuration file +x-toc-enable: true ... Libreboot on x86 uses the GRUB @@ -27,20 +28,6 @@ Here is an excellent writeup about CBFS (coreboot filesystem): **This guide is \*only\* for the GRUB payload. If you use the depthcharge payload, ignore this section entirely.** -Table of Contents -================= - -- [Introduction](#introduction) -- [1st option: don't re-flash](#option1_dont_reflash) -- [2nd option: re-flash](#option2_reflash) - - [Acquire the necessary utilities](#tools) - - [Acquiring the correct ROM image](#rom) - - [Extract grubtest from the ROM image](#extract_testconfig) - - [Re-insert the modified grubtest.cfg into the ROM - image](#reinsert_modified_testconfig) - - [Testing](#testing) - - [Final steps](#final_steps) - Introduction ------------ @@ -58,7 +45,7 @@ If you aren't up to that then don't worry; it is possible to use a custom GRUB menu without flashing a new image, by loading a GRUB configuration from a partition on the main storage instead. -1st option: don't re-flash {#option1_dont_reflash} +1st option: don't re-flash --------------------------- By default, GRUB in libreboot is configured to scan all partitions on @@ -94,22 +81,23 @@ of this page is irrelevant to you); **in libreboot\_grub.cfg on disk, if you are adapting it based on grub.cfg from CBFS then remove the check for libreboot\_grub.cfg otherwise it will loop.**. -2nd option: re-flash {#option2_reflash} +2nd option: re-flash -------------------- You can modify what is stored inside the flash chip quite easily. Read on to find out how. -Acquire the necessary utilities {#tools} +Acquire the necessary utilities ------------------------------- Use ***cbfstool*** and ***flashrom***. There are available in the *libreboot\_util* release archive, or they can be compiled (see [../git/\#build\_flashrom](../git/#build_flashrom)). Flashrom is also available from the repositories: + # pacman -S flashrom -Acquiring the correct ROM image {#rom} +Acquiring the correct ROM image ------------------------------- You can either work directly with one of the ROM images already included @@ -119,19 +107,22 @@ image file is named *libreboot.rom*, so please make sure to adapt. ROM images are included pre-compiled in libreboot. You can also dump your current firmware, using flashrom: + $ sudo flashrom -p internal -r libreboot.rom # flashrom -p internal -r libreboot.rom + If you are told to specify the chip, add the option **-c {your chip}** to the command, for example: # flashrom -c MX25L6405 -p internal -r libreboot.rom -Extract grubtest.cfg from the ROM image {#extract_testconfig} +Extract grubtest.cfg from the ROM image --------------------------------------- You can check the contents of the ROM image, inside CBFS: - $ cd \.../libreboot\_util/cbfstool** $ ./cbfstool libreboot.rom + $ cd .../libreboot\_util/cbfstool** $ ./cbfstool libreboot.rom + print** The files *grub.cfg* and *grubtest.cfg* should be present. grub.cfg is @@ -145,7 +136,7 @@ Extract grubtest.cfg from the ROM image: Modify the grubtest.cfg accordingly. -Re-insert the modified grubtest.cfg into the ROM image {#reinsert_modified_testconfig} +Re-insert the modified grubtest.cfg into the ROM image ------------------------------------------------------ Once your grubtest.cfg is modified and saved, delete the unmodified @@ -164,11 +155,14 @@ Testing [../install/\#flashrom](../install/#flashrom) for information on how to flash it. $ cd /libreboot\_util** \# **./flash update libreboot.rom\ + 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: + # ./flash forceupdate libreboot.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. Once you have done that, shut down and then boot up with your new test configuration.** @@ -180,7 +174,7 @@ sceptical in any way, then re-do the steps above until you get it right! Do \*not\* proceed past this point unless you are 100% sure that your new configuration is safe (or desirable) to use.** -Final steps {#final_steps} +Final steps ----------- When you are satisfied booting from grubtest.cfg, you can create a copy @@ -190,10 +184,12 @@ difference: the menuentry 'Switch to grub.cfg' will be changed to grubtest.cfg. This is so that the main config still links (in the menu) to grubtest.cfg, so that you don't have to manually switch to it, in case you ever want to follow this guide again in the future (modifying -the already modified config). From /libreboot\_util/cbfstool, do:\ -\$ **sed -e 's:(cbfsdisk)/grub.cfg:(cbfsdisk)/grubtest.cfg:g' -e +the already modified config). From /libreboot\_util/cbfstool, do: + + # sed -e 's:(cbfsdisk)/grub.cfg:(cbfsdisk)/grubtest.cfg:g' -e + 's:Switch to grub.cfg:Switch to grubtest.cfg:g' < grubtest.cfg > -grub.cfg**\ +grub.cfg Delete the grub.cfg that remained inside the ROM: @@ -211,8 +207,6 @@ boot up with your new configuration.** Copyright © 2014, 2015 Leah Rowe <info@minifree.org>\ Copyright © 2015 Jeroen Quint <jezza@diplomail.ch>\ - - 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/gnulinux/grub_hardening.md b/docs/gnulinux/grub_hardening.md index 12485949..c4843890 100644 --- a/docs/gnulinux/grub_hardening.md +++ b/docs/gnulinux/grub_hardening.md @@ -31,14 +31,10 @@ image: Helpful links: -- [GRUB manual - \#security](https://www.gnu.org/software/grub/manual/html_node/Security.html#Security) -- [GRUB info - pages](http://git.savannah.gnu.org/cgit/grub.git/tree/docs/grub.texi) -- [SATA connected storage considered dangerous until proven - otherwise.](../../faq.md#firmware-hddssd) -- [Coreboot GRUB security - howto](https://www.coreboot.org/GRUB2#Security) +- [GRUB manual](https://www.gnu.org/software/grub/manual/html_node/Security.html#Security) +- [GRUB info pages](http://git.savannah.gnu.org/cgit/grub.git/tree/docs/grub.texi) +- [SATA connected storage considered dangerous.](../../faq.md#firmware-hddssd) +- [Coreboot GRUB security howto](https://www.coreboot.org/GRUB2#Security) GRUB Password ============= @@ -138,7 +134,7 @@ First generate a GPG keypair to use for signing. Option RSA (sign only) is ok. **Warning:** GRUB does not read ASCII armored keys. When attempting to -trust \... a key filename it will print error: bad signature +trust ... a key filename it will print error: bad signature mkdir --mode 0700 keys gpg --homedir keys --gen-key @@ -158,6 +154,7 @@ Now that we have a key, we can sign some files with it. We have to sign: Suppose that we have a pair of **my.kernel** and **my.initramfs** and an on-disk **libreboot\_grub.cfg**. We sign them by issuing the following commands: + gpg --homedir keys --detach-sign my.initramfs gpg --homedir keys --detach-sign my.kernel gpg --homedir keys --detach-sign libreboot_grub.cfg @@ -176,12 +173,10 @@ What remains now is to include the modifications into the image (rom): cbfstool my.rom add -n grubtest.cfg -f my.grubtest.cfg -t raw cbfstool my.rom add -n grubtest.cfg.sig -f my.grubtest.cfg.sig -t raw -\... and flashing it. +... and flashing it. Copyright © 2017 Fedja Beader <fedja@protonmail.ch>\ - - 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/gnulinux/index.md b/docs/gnulinux/index.md index 3814b75f..4903d1c6 100644 --- a/docs/gnulinux/index.md +++ b/docs/gnulinux/index.md @@ -24,8 +24,6 @@ instructions have yet to be written.** 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/grub/index.md b/docs/grub/index.md index f148cc0f..12c86359 100644 --- a/docs/grub/index.md +++ b/docs/grub/index.md @@ -1,28 +1,23 @@ --- title: GRUB payload +x-toc-enable: true ... This section relates to the GRUB payload used in libreboot. -- [Changing the background image in GRUB](#grub_background) -- [Setting font in GRUB](#grub_font) -- [GRUB keyboard layouts](#grub_keyboard) - - [Custom keyboard layout in GRUB](#grub_custom_keyboard) - - [UK Dvorak keyboard layout in GRUB](#grub_ukdvorak_keyboard) - -Changing the background image in GRUB {#grub_background} +Changing the background image in GRUB ===================================== Use cbfstool from libreboot\_util, or libreboot\_src/coreboot/util/cbfstool/ if you want to build from source. -./cbfstool yourrom.rom remove background.png -n background.png\ -./cbfstool yourrom.rom add -f background.png -n background.png -t raw + $ ./cbfstool yourrom.rom remove background.png -n background.png + $ ./cbfstool yourrom.rom add -f background.png -n background.png -t raw When you've done this, re-flash your ROM and you should have a new background at boot time. -Setting font in GRUB (for reference) {#grub_font} +Setting font in GRUB (for reference) ==================================== You don't need to do this unless you would like to change the default @@ -43,27 +38,29 @@ This is a free font that is also contained in GNU+Linux distributions like Debian, Devuan or Parabola. $ cd libreboot\_src/grub + compile grub (the build scripts info on how to do this)\ come back out into libreboot\_src/resources/grub: $ cd ../libreboot\_src/resources/grub/font I took Dejavu Sans Mono from dejavu (included in this version of -libreboot) and did:\ -**\$ ../../../grub/grub-mkfont -o dejavusansmono.pf2 -dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono.ttf** +libreboot) and did: + + $ ../../../grub/grub-mkfont -o dejavusansmono.pf2 dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono.ttf I then added the instructions to 'gen.sh' script in grub-assemble to include resources/grub/dejavusansmono.pf2 in all of the ROM images, at the root of the GRUB memdisk.\ I then added that instructions to the grub.cfg files (to load the -font):\ -**loadfont (memdisk)/dejavusansmono.pf2** +font): + + loadfont (memdisk)/dejavusansmono.pf2 -GRUB keyboard layouts (for reference) {#grub_keyboard} +GRUB keyboard layouts (for reference) ===================================== -Custom keyboard layout in GRUB (for reference) {#grub_custom_keyboard} +Custom keyboard layout in GRUB (for reference) ---------------------------------------------- Keymaps are stored in resources/utilities/grub-assemble/keymap/. @@ -71,9 +68,10 @@ Keymaps are stored in resources/utilities/grub-assemble/keymap/. Example (French Azerty): $ ckbcomp fr > frazerty -\ -Go in grub directory:\ -**cat frazerty | ./grub/grub-mklayout -o frazerty.gkb** + +Go in grub directory: + + $ cat frazerty | ./grub/grub-mklayout -o frazerty.gkb You must make sure that the files are named keymap and keymap.gkb (where 'keymap' can be whatever you want). @@ -87,7 +85,7 @@ The build scripts will automatically see this, and automatically build ROM images with your custom layout (given the name) and include them under bin. Example: **libreboot\_frazerty.rom**. -UK Dvorak keyboard layout in GRUB (for reference) {#grub_ukdvorak_keyboard} +UK Dvorak keyboard layout in GRUB (for reference) ------------------------------------------------- ukdvorak had to be created manually, based on usdvorak. diff them (under @@ -98,8 +96,6 @@ file was created Copyright © 2014 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/hardware/c201.md b/docs/hardware/c201.md index 82b68fc9..8dba1f85 100644 --- a/docs/hardware/c201.md +++ b/docs/hardware/c201.md @@ -1,5 +1,6 @@ --- title: ASUS Chromebook C201 +x-toc-enable: true ... This is a Chromebook, using the Rockchip RK3288 SoC. It uses an ARM CPU, @@ -16,18 +17,7 @@ confirmed to work.** Flashing instructions can be found at [../install/\#flashrom](../install/#flashrom) -- [Google's intent with CrOS devices](#googlesintent) -- [Considerations about ChromeOS and free operating systems](#os) -- [Caution: Video acceleration requires a non-free blob, software - rendering can be used instead.](#videoblobs) -- [Caution: WiFi requires a non-free blob, a USB dongle can be used - instead.](#wifiblobs) -- [EC firmware is free software!](#ec) -- [No microcode!](#microcode) -- [Depthcharge payload](#depthcharge) -- [Flash chip write protection: the screw](#thescrew) - -Google's intent with CrOS devices {#googlesintent} +Google's intent with CrOS devices ================================== CrOS (Chromium OS/Chrome OS) devices, such as Chromebooks, were not @@ -56,7 +46,7 @@ are supported in libreboot. Those laptops are supported, in spite of Apple and Lenovo, companies which are actually *hostile* to the free software movement. -Considerations about ChromeOS and free operating systems {#os} +Considerations about ChromeOS and free operating systems ======================================================== This laptop comes preinstalled (from the factory) with Google ChromeOS. @@ -73,7 +63,7 @@ install Debian. TODO: instructions for Devuan -Caution: Video acceleration requires a non-free blob, software rendering can be used instead. {#videoblobs} +Caution: Video acceleration requires a non-free blob, software rendering can be used instead. ============================================================================================= The Tamil driver source code for the onboard Mali T GPU is not released. @@ -92,7 +82,7 @@ The Tamil developer wrote this blog post, which sheds light on the story: [http://libv.livejournal.com/27461.html,http://libv.livejournal.com/27461.html](http://libv.livejournal.com/27461.html). -Caution: WiFi requires a non-free blob, a USB dongle can be used instead. {#wifiblobs} +Caution: WiFi requires a non-free blob, a USB dongle can be used instead. ========================================================================= These laptops have non-removeable (soldered on) WiFi chips, which @@ -117,7 +107,7 @@ These wifi dongles use the AR9271 (atheros) chipset, supported by the free *ath9k\_htc* driver in the Linux kernel. They work in *linux-libre* too. -EC firmware is free software! {#ec} +EC firmware is free software! ============================= It's free software. Google provides the source. Build scripts will be @@ -132,7 +122,7 @@ when using one of these laptops. The libreboot FAQ briefly describes what an *EC* is: [../../faq.md#firmware-ec](../../faq.md#firmware-ec) -No microcode! {#microcode} +No microcode! ============= Unlike x86 (e.g. Intel/AMD) CPUs, ARM CPUs do not use microcode, not @@ -146,14 +136,14 @@ present), which are proprietary software. On ARM CPUs, the instruction set is implemented in circuitry, without microcode. -Depthcharge payload {#depthcharge} +Depthcharge payload =================== These systems do not use the GRUB payload. Instead, they use a payload called depthcharge, which is common on CrOS devices. This is free software, maintained by Google. -Flash chip write protection: the screw {#thescrew} +Flash chip write protection: the screw ====================================== It's next to the flash chip. Unscrew it, and the flash chip is @@ -178,8 +168,6 @@ is such a stupidly simple idea, which all designs should implement. 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/hardware/d510mo.md b/docs/hardware/d510mo.md index 9d4350b1..b2e85b0a 100644 --- a/docs/hardware/d510mo.md +++ b/docs/hardware/d510mo.md @@ -15,8 +15,6 @@ Flashing instructions can be found at 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/hardware/d945gclf.md b/docs/hardware/d945gclf.md index aeb85706..c3f4754a 100644 --- a/docs/hardware/d945gclf.md +++ b/docs/hardware/d945gclf.md @@ -76,8 +76,6 @@ fan connector back, and you are done. Copyright © 2016 Arthur Heymans <arthur@aheymans.xyz>\ Copyright © 2016 Vitaly Castaño Solana <vita\_cell@hotmail.com>\ - - 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/hardware/ga-g41m-es2l.md b/docs/hardware/ga-g41m-es2l.md index 143c2f85..fbcf2132 100644 --- a/docs/hardware/ga-g41m-es2l.md +++ b/docs/hardware/ga-g41m-es2l.md @@ -19,8 +19,6 @@ Flashing instructions can be found at 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/hardware/gm45_remove_me.md b/docs/hardware/gm45_remove_me.md index a5343ac9..5d9bc312 100644 --- a/docs/hardware/gm45_remove_me.md +++ b/docs/hardware/gm45_remove_me.md @@ -37,11 +37,13 @@ factory.bin dump. ich9gen executables can be found under ./ich9deblob/ statically compiled in libreboot\_util. If you are using src or git, build ich9gen from source with: + $ ./oldbuild module ich9deblob The executable will appear under resources/utilities/ich9deblob/ Run: + $ ./ich9gen Running ich9gen this way (without any arguments) generates a default @@ -70,6 +72,7 @@ generate a descriptor+gbe image with your own MAC address inside (with the Gbe checksum updated to match). Run: $ ./ich9gen --macaddress XX:XX:XX:XX:XX:XX + (replace the XX chars with the hexadecimal chars in the MAC address that you want) @@ -85,15 +88,23 @@ Two new files will be created: Assuming that your libreboot image is named **libreboot.rom**, copy the file to where **libreboot.rom** is located and then insert the descriptor+gbe file into the ROM image.\ -For 16MiB flash chips:\ -\$ **dd if=ich9fdgbe\_16m.bin of=libreboot.rom bs=1 count=12k -conv=notrunc**\ -For 8MiB flash chips:\ -\$ **dd if=ich9fdgbe\_8m.bin of=libreboot.rom bs=1 count=12k -conv=notrunc**\ -For 4MiB flash chips:\ -\$ **dd if=ich9fdgbe\_4m.bin of=libreboot.rom bs=1 count=12k -conv=notrunc**\ +For 16MiB flash chips: + + # dd if=ich9fdgbe_16m.bin of=libreboot.rom bs=1 count=12k + +conv=notrunc + +For 8MiB flash chips: + + # dd if=ich9fdgbe_8m.bin of=libreboot.rom bs=1 count=12k + +conv=notrunc + +For 4MiB flash chips: + + # dd if=ich9fdgbe_4m.bin of=libreboot.rom bs=1 count=12k + +conv=notrunc Your libreboot.rom image is now ready to be flashed on the system. Refer back to [../install/\#flashrom](../install/#flashrom) for how to flash @@ -164,6 +175,7 @@ you ran **./oldbuild module all** or **./oldbuild module ich9deblob** from the main directory (./), otherwise you can build it like so: $ ./oldbuild module ich9deblob + An executable file named **ich9deblob** will now appear under resources/utilities/ich9deblob/ @@ -192,9 +204,11 @@ Intel. Only the Intel NICs need a GbE region in the flash chip. Assuming that your libreboot image is named **libreboot.rom**, copy the **deblobbed\_descriptor.bin** file to where **libreboot.rom** is located -and then run:\ -\$ **dd if=deblobbed\_descriptor.bin of=libreboot.rom bs=1 count=12k -conv=notrunc** +and then run: + + # dd if=deblobbed_descriptor.bin of=libreboot.rom bs=1 count=12k + +conv=notrunc Alternatively, if you got a the **deblobbed\_4kdescriptor.bin** file (no GbE defined), do this: \$ **dd if=deblobbed\_4kdescriptor.bin @@ -235,9 +249,11 @@ Simply run (with factory.rom in the same directory): It will generate a 4KiB descriptor file (only the descriptor, no GbE). Insert that into a factory.rom image (NOTE: do this on a copy of it. -Keep the original factory.rom stored safely somewhere):\ -\$ **dd if=demefactory\_4kdescriptor.bin of=factory\_nome.rom bs=1 -count=4k conv=notrunc** +Keep the original factory.rom stored safely somewhere): + + # dd if=demefactory_4kdescriptor.bin of=factory_nome.rom bs=1 + +count=4k conv=notrunc TODO: test this.\ TODO: lenovobios (GM45 thinkpads) still write-protects parts of the @@ -423,7 +439,7 @@ actually be others on the X200. 0xBABA"* In honour of the song *Baba O'Reilly* by *The Who* apparently. We're -not making this stuff up\... +not making this stuff up... 0x3ABA, 0x34BA, 0x40BA and more have been observed in the main Gbe regions on the X200 factory.rom dumps. The checksums of the backup @@ -518,8 +534,6 @@ It has only a 448 byte fragment different from 0x00 or 0xFF. 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/hardware/imac52.md b/docs/hardware/imac52.md index 54efd3e6..99db1977 100644 --- a/docs/hardware/imac52.md +++ b/docs/hardware/imac52.md @@ -6,8 +6,6 @@ Information to be written soon, but this board is merged in libreboot. 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/hardware/index.md b/docs/hardware/index.md index 2e20b680..fb9e0ed2 100644 --- a/docs/hardware/index.md +++ b/docs/hardware/index.md @@ -1,29 +1,18 @@ --- title: Hardware compatibility list +x-toc-enable: true ... This sections relates to known hardware compatibility in libreboot. For installatation instructions, refer to [../install/](../install/). -- [List of supported hardware](#supported_list) - - [Desktops (x86, AMD and Intel)](#supported_desktops_x86amdintel) - - [Servers/workstations](#supported_workstations_x86amd) - - [Laptops (ARM)](#supported_laptops_arm) - - [Laptops (Intel, x86)](#supported_laptops_x86intel) - -- NOTES: - - [Updating the EC firmware on i945 and GM45 - (recommended)](#ecupdate) - - [How to find what EC version you have (i945/GM45)](#ecversion) -- [Recommended wifi chipsets](#recommended_wifi) - -List of supported hardware {#supported_list} +List of supported hardware -------------------------- Libreboot supports the following systems in this release: -### Desktops (AMD, Intel, x86) {#supported_desktops_x86amdintel} +### Desktops (AMD, Intel, x86) - [Gigabyte GA-G41M-ES2L motherboard](ga-g41m-es2l.md) - [Intel D510MO motherboard](d510mo.md) @@ -31,28 +20,27 @@ Libreboot supports the following systems in this release: - [Intel D945GCLF](d945gclf.md) - [Apple iMac 5,2](imac52.md) -### Servers/workstations (AMD, x86) {#supported_workstations_x86amd} +### Servers/workstations (AMD, x86) - [ASUS KFSN4-DRE motherboard](kfsn4-dre.md) - [ASUS KGPE-D16 motherboard](kgpe-d16.md) -### Laptops (ARM) {#supported_laptops_arm} +### Laptops (ARM) - [ASUS Chromebook C201](c201.md) -### Laptops (Intel, x86) {#supported_laptops_x86intel} +### Laptops (Intel, x86) -- [Lenovo ThinkPad X60/X60s](#supported_x60_list) -- [Lenovo ThinkPad X60 Tablet](#supported_x60t_list) -- [Lenovo ThinkPad T60](#supported_t60_list) (there are exceptions. - see link) +- [Lenovo ThinkPad X60/X60s](#list-of-supported-x60s) +- [Lenovo ThinkPad X60 Tablet](#list-of-supported-x60-tablets) +- [Lenovo ThinkPad T60](#supported-t60-list) (some exceptions) - [Lenovo ThinkPad X200](x200.md) - [Lenovo ThinkPad R400](r400.md) - [Lenovo ThinkPad T400](t400.md) - [Lenovo ThinkPad T500](t500.md) - [Lenovo ThinkPad W500](t500.md) -- [Apple MacBook1,1](#macbook11) -- [Apple MacBook2,1](#macbook21) +- [Apple MacBook1,1](#information-about-the-macbook11) +- [Apple MacBook2,1](#information-about-the-macbook21) 'Supported' means that the build scripts know how to build ROM images for these systems, and that the systems have been tested (confirmed @@ -62,7 +50,7 @@ working). There may be exceptions; in other words, this is a list of It is also possible to build ROM images (from source) for other systems (and virtual systems, e.g. QEMU). -EC update on i945 (X60, T60) and GM45 (X200, T400, T500, R400, W500) {#ecupdate} +EC update on i945 (X60, T60) and GM45 (X200, T400, T500, R400, W500) ============================================================== It is recommended that you update to the latest EC firmware version. The @@ -81,19 +69,21 @@ only replaces the BIOS firmware, not EC. Updated EC firmware has several advantages e.g. bettery battery handling. -How to find what EC version you have (i945/GM45) {#ecversion} +How to find what EC version you have (i945/GM45) ================================================ -In GNU+Linux, you can try this:\ -**grep 'at EC' /proc/asound/cards** +In GNU+Linux, you can try this: + + $ grep 'at EC' /proc/asound/cards -Sample output:\ -**ThinkPad Console Audio Control at EC reg 0x30, fw 7WHT19WW-3.6** +Sample output: + + ThinkPad Console Audio Control at EC reg 0x30, fw 7WHT19WW-3.6 7WHT19WW is the version in different notation, use search engine to find out regular version - in this case it's a 1.06 for x200 tablet -Recommended wifi chipsets {#recommended_wifi} +Recommended wifi chipsets ------------------------- The following are known to work well: @@ -111,7 +101,7 @@ project if these work with linux-libre kernel (TODO: test): - \[0200\]: Qualcomm Atheros AR242x / AR542x Wireless Network Adapter (PCI-Express) \[168c:001c\] -List of supported ThinkPad X60s {#supported_x60_list} +List of supported ThinkPad X60s ------------------------------- Native gpu initialization ('native graphics') which replaces the @@ -139,7 +129,7 @@ is very easily replaced; just remove the card and install another one **after** libreboot is installed. See [\#recommended\_wifi](#recommended_wifi) for replacements. -List of supported ThinkPad X60 Tablets {#supported_x60t_list} +List of supported ThinkPad X60 Tablets -------------------------------------- Native gpu initialization ('native graphics') which replaces the @@ -223,7 +213,7 @@ could get finger input working. They used linuxwacom at git tag InputDevice "WTouch" "SendCoreEvents" EndSection -Supported T60 list {#supported_t60_list} +Supported T60 list ------------------ Native gpu initialization ('native graphics') which replaces the @@ -300,7 +290,7 @@ is very easily replaced; just remove the card and install another one **after** libreboot is installed. See [\#recommended\_wifi](#recommended_wifi) for replacements. -ThinkPad T60 (ATI GPU) and ThinkPad T60 (Intel GPU) differences. {#t60_ati_intel} +ThinkPad T60 (ATI GPU) and ThinkPad T60 (Intel GPU) differences. ---------------------------------------------------------------- If your T60 is a 14.1" or 15.1" model with an ATI GPU, it won't work @@ -321,7 +311,7 @@ cannot be used with libreboot under any circumstances. The following T60 motherboard (see area highlighted in white) shows an empty space where the ATI GPU would be (this particular motherboard has an Intel GPU):\ -\ + ![](../images/t60_dev/t60_unbrick.jpg) The reason that the ATI GPU on T60 is unsupported is due to the VBIOS @@ -342,7 +332,7 @@ usable as a laptop because there would be no visual display at all. That being said, such a configuration is acceptable for use in a 'headless' server setup (with serial and/or ssh console as the display). -Information about the macbook1,1 {#macbook11} +Information about the macbook1,1 -------------------------------- There is an Apple laptop called the macbook1,1 from 2006 which uses the @@ -382,7 +372,7 @@ firmware is running. You will need to disassemble the system and flash externally. Reading from flash seems to work. For external flashing, refer to [../install/bbb\_setup.md](../install/bbb_setup.md). -Information about the macbook2,1 {#macbook21} +Information about the macbook2,1 -------------------------------- There is an Apple laptop called the macbook2,1 from late 2006 or early @@ -399,22 +389,13 @@ for whatever reason, since they include a lot of useful information. Backups created using wget: $ wget -m -p -E -k -K -np http://macbook.donderklumpen.de/ -**\$ wget -m -p -E -k -K -np -http://macbook.donderklumpen.de/coreboot/**\ -Use **-e robots=off** if using this trick for other sites and the site -restricts using robots.txt + $ wget -m -p -E -k -K -np http://macbook.donderklumpen.de/coreboot/ -**Links to wget backups (and the backups themselves) of Mono's pages -(see above) removed temporarily. Mono has given me permission to -distribute them, but I need to ask this person to tell me what license -these works fall under first. Otherwise, the above URLs should be fine. -NOTE TO SELF: REMOVE THIS WHEN DONE** +Use `-e robots=off` if using this trick for other sites and the site restricts +using robots.txt ### Installing GNU+Linux distributions (on Apple EFI firmware) -- [Parabola GNU+Linux installation on a macbook2,1 with Apple EFI - firmware](#) (this is a copy of Mono's page, see above) - How to boot an ISO: burn it to a CD (like you would normally) and hold down the Alt/Control key while booting. The bootloader will detect the GNU+Linux CD as 'Windows' (because Apple doesn't think GNU+Linux @@ -425,11 +406,6 @@ likes to think that Apple and Microsoft are all that exist.) Now to install libreboot, follow [../install/\#flashrom\_macbook21](../install/#flashrom_macbook21). -### Information about coreboot - -- [Coreboot on the macbook2,1](#) (this is a copy of Mono's page, see - above) - ### coreboot wiki page - <https://www.coreboot.org/Board:apple/macbook21> @@ -541,8 +517,6 @@ libreboot git repository. 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/hardware/kcma-d8.md b/docs/hardware/kcma-d8.md index fa5a2615..9d5067b1 100644 --- a/docs/hardware/kcma-d8.md +++ b/docs/hardware/kcma-d8.md @@ -97,8 +97,6 @@ Check the ASUS website. 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/hardware/kfsn4-dre.md b/docs/hardware/kfsn4-dre.md index da3a75bb..4efc4648 100644 --- a/docs/hardware/kfsn4-dre.md +++ b/docs/hardware/kfsn4-dre.md @@ -70,8 +70,6 @@ Other information 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/hardware/kgpe-d16.md b/docs/hardware/kgpe-d16.md index 87868249..19d68416 100644 --- a/docs/hardware/kgpe-d16.md +++ b/docs/hardware/kgpe-d16.md @@ -211,8 +211,6 @@ The information here is adapted, from the ASUS website. 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/hardware/r400.md b/docs/hardware/r400.md index f8c1f213..66854b5c 100644 --- a/docs/hardware/r400.md +++ b/docs/hardware/r400.md @@ -63,8 +63,6 @@ TODO: put hardware register logs here like on the [X200](x200.md) and 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/hardware/t400.md b/docs/hardware/t400.md index b30c436b..bec2d895 100644 --- a/docs/hardware/t400.md +++ b/docs/hardware/t400.md @@ -75,8 +75,6 @@ outputs from the T400: 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/hardware/t500.md b/docs/hardware/t500.md index 66d6a37d..862484dd 100644 --- a/docs/hardware/t500.md +++ b/docs/hardware/t500.md @@ -72,6 +72,7 @@ The patches above are based on the output from ich9deblob on a factory.rom image dumped from the T500 with a SOIC-8 4MiB flash chip. The patch re-creates the X200 descriptor/gbe source, so the commands were something like: + $ diff -u t500gbe x200gbe $ diff -u t500descriptor x200descriptor @@ -96,8 +97,6 @@ outputs from the T500: 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/hardware/x200.md b/docs/hardware/x200.md index c6f9230a..8afbe504 100644 --- a/docs/hardware/x200.md +++ b/docs/hardware/x200.md @@ -228,9 +228,11 @@ be useful for RAM compatibility info (note: coreboot raminit is different, so this page might be BS) pehjota started collecting some steppings for different CPUs on several -X200 laptops. You can get the CPUID by running:\ -\$ **dmesg | sed -n 's/\^.\* microcode: CPU0 -sig=0x\\(\[\^,\]\*\\),.\*\$/\\1/p'** +X200 laptops. You can get the CPUID by running: + + # dmesg | sed -n 's/\^.\* microcode: CPU0 + +sig=0x\\(\[\^,\]\*\\),.\*\$/\\1/p' What pehjota wrote: The laptops that have issues resuming from suspend, as well as a laptop that (as I mentioned earlier in \#libreboot) won't @@ -266,8 +268,6 @@ Unsorted notes {#unsorted} Copyright © 2014, 2015 Leah Rowe <info@minifree.org>\ Copyright © 2015 Patrick "P. J." McDermott <pj@pehjota.net>\ - - 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/index.md b/docs/index.md index c9ecbc33..70d3e5f7 100644 --- a/docs/index.md +++ b/docs/index.md @@ -180,8 +180,6 @@ libreboot. 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/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 diff --git a/docs/misc/bbb_ehci.md b/docs/misc/bbb_ehci.md index f1240d24..6af3c2a4 100644 --- a/docs/misc/bbb_ehci.md +++ b/docs/misc/bbb_ehci.md @@ -353,8 +353,6 @@ Interface](http://cs.usfca.edu/~cruse/cs698s10/) Copyright © 2015 Alex David <opdecirkel@gmail.com>\ - - 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/misc/index.md b/docs/misc/index.md index 6abd95ad..79b8d367 100644 --- a/docs/misc/index.md +++ b/docs/misc/index.md @@ -201,10 +201,12 @@ is included in libreboot, and can be used to enable or disable this behaviour. Disable or enable beeps when removing/adding the charger: + $ sudo ./nvramtool -w power\_management\_beeps=Enable $ sudo ./nvramtool -w power\_management\_beeps=Disable Disable or enable beeps when battery is low: + $ sudo ./nvramtool -w low\_battery\_beep=Enable $ sudo ./nvramtool -w low\_battery\_beep=Disable @@ -222,9 +224,11 @@ package i2c-tools. $ sudo modprobe i2c-dev $ sudo i2cdump -y 5 0x50 (you might have to change the value for + -y) $ sudo rmmod i2c-dev + You'll see the panel name in the output (from the EDID dump). If neither of these options work (or they are unavailable), physically @@ -265,8 +269,6 @@ Put this script in /etc/init.d/ on debian-based systems. 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/release.md b/docs/release.md index 7c73a4d8..56b2548f 100644 --- a/docs/release.md +++ b/docs/release.md @@ -425,8 +425,6 @@ Changes for this release, relative to r20150208 (earliest changes last, recent c - **New board:** ThinkPad R400 support added to libreboot. - bbb\_setup.html: tell user to use libreboot's own flashrom - - Release 20150124, 20150126 and 20150208 {#release20150124} ======================================= @@ -638,8 +636,6 @@ Changes for this release (latest changes first, earliest changes last) html errors - Documentation (macbook21 related): clean up - - Release 20141015 {#release20141015} ================ @@ -1482,11 +1478,8 @@ Development notes - initial release - source code deblobbed - 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/www/footer.md b/www/footer.md new file mode 100644 index 00000000..dfddfd75 --- /dev/null +++ b/www/footer.md @@ -0,0 +1,7 @@ + +[License](/docs/fdl-1.3.md) -- +[Template](/license.md) -- +[Authors](/contrib.md) -- +[Conduct Guidelines](/conduct.md) -- +[Management Guidelines](/management.md) -- +[Peers Community](https://peers.community/) -- diff --git a/www/global.css b/www/global.css index fb265cd8..b325ef31 100644 --- a/www/global.css +++ b/www/global.css @@ -13,11 +13,8 @@ body { body { line-height: 1.6; font-family: Cantarell, sans-serif; - font-size: 1.1em; color: #222; -} - -header { - text-align: center; + font-size: 1.1em; + color: #222; } #logo { @@ -38,14 +35,10 @@ a:hover { display: block; } -h1, h2, h3 { +h1, h2, h3, .h:hover a { display: inline; } .h a { display: none; } - -.h:hover a { - display: inline; -} diff --git a/www/headercenter.css b/www/headercenter.css new file mode 100644 index 00000000..6b8c294c --- /dev/null +++ b/www/headercenter.css @@ -0,0 +1,3 @@ +header { + text-align: center; +} diff --git a/www/headerleft.css b/www/headerleft.css deleted file mode 100644 index 645ab4ea..00000000 --- a/www/headerleft.css +++ /dev/null @@ -1,3 +0,0 @@ -header { - text-align: left !important; -} diff --git a/www/publish.sh b/www/publish.sh index 6ca0fcbc..e75ec332 100755 --- a/www/publish.sh +++ b/www/publish.sh @@ -35,18 +35,14 @@ if [ "${FILE}" != "./index" ]; then fi RETURN="<a href='$DEST'>Back to previous index</a>" - OPTS="--css /headerleft.css -T Libreboot" + OPTS="-T Libreboot" +else + OPTS="--css /headercenter.css" fi if [ "${FILE}" != "./docs/fdl-1.3" ] && [ "${FILE}" != "./conduct" ]; then - echo "" >> temp.md - printf "[License](/docs/fdl-1.3.md) --\n" >> temp.md - printf "[Template](/license.md) --\n" >> temp.md - printf "[Authors](/contrib.md) --\n" >> temp.md - printf "[Conduct Guidelines](/conduct.md) --\n" >> temp.md - printf "[Management Guidelines](/management.md) --\n" >> temp.md - printf "[Peers Community](https://peers.community/) \n" >> temp.md + cat footer.md >> temp.md fi # change out .md -> .html |