123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <style type="text/css">
- @import url('../css/main.css');
- </style>
- <title>How to install GNU/Linux on a libreboot system</title>
- </head>
- <body>
- <div id="pagetop" class="section">
- <h1>How to install GNU/Linux on a libreboot system</h1>
- <p>
- 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 <i>dd</i>).
- </p>
- <ul>
- <li><a href="#prepare">Prepare the USB drive (in GNU/Linux)</a></li>
- <li><a href="#encryption">Installing GNU/Linux with full disk encryption</a></li>
- <li><a href="#guix">GNU Guix System Distribution?</a></li>
- <li><a href="#trisquel_netinstall">Trisquel net install?</a></li>
- <li><a href="#parse_isolinux">Booting ISOLINUX images (automatic method)</a></li>
- <li><a href="#manual_isolinux">Booting ISOLINUX images (manual method)</a></li>
- <li><a href="#troubleshooting">Troubleshooting</a></li>
- </ul>
- <p>
- <a href="index.html">Back to previous index</a>
- </p>
- </div>
- <div class="section">
- <p>
- <b>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.</b>
- </p>
- </div>
- <div id="prepare" class="section">
-
- <h2>Prepare the USB drive (in GNU/Linux)</h2>
- <p>
- Connect the USB drive. Check dmesg:<br/>
- <b>$ dmesg</b><br/>
- Check lsblk to confirm which drive it is:<br/>
- <b>$ lsblk</b>
- </p>
- <p>
- Check that it wasn't automatically mounted. If it was, unmount it. For example:<br/>
- <b>$ sudo umount /dev/sdX*</b><br/>
- <b># umount /dev/sdX*</b>
- </p>
- <p>
- dmesg told you what device it is. Overwrite the drive, writing your distro ISO to it with dd. For example:<br/>
- <b>$ sudo dd if=gnulinux.iso of=/dev/sdX bs=8M; sync</b><br/>
- <b># dd if=gnulinux.iso of=/dev/sdX bs=8M; sync</b>
- </p>
-
- <p>
- You should now be able to boot the installer from your USB drive. Continue reading, for
- information about how to do that.
- </p>
- <p>
- <a href="#pagetop">Back to top of page</a>.
- </p>
-
- </div>
- <div id="encryption" class="section">
- <h2>Installing GNU/Linux with full disk encryption</h2>
- <ul>
- <li><a href="encrypted_trisquel.html">Installing Trisquel GNU/Linux with full disk encryption (including /boot)</a></li>
- <li><a href="encrypted_parabola.html">Installing Parabola GNU/Linux with full disk encryption (including /boot)</a></li>
- </ul>
- <p>
- <a href="#pagetop">Back to top of page</a>.
- </p>
- </div>
-
- <div id="guix" class="section">
-
- <h2>GNU Guix System Distribution?</h2>
- <p>
- The Guix installers uses the GRUB bootloader, unlike most GNU/Linux installers which will likely use ISOLINUX.
- </p>
- <p>
- To boot the Guix live USB install, select <b><i>Search for GRUB configuration (grub.cfg) outside of CBFS</i></b> from
- the GRUB payload menu. After you have done that, a new menuentry will appear at the very bottom with text like
- <b><i>Load Config from (usb0)</i></b>; select that, and it should boot.
- </p>
- <p>
- Once you have installed Guix onto the main storage device, check
- <a href="grub_cbfs.html#option1_dont_reflash">grub_cbfs.html#option1_dont_reflash</a> for hints on how
- to boot it.
- </p>
- <p>
- GuixSD (Guix System Distribution) is highly recommended; it's part of GNU, and
- <a href="https://www.gnu.org/distros/free-distros.html">endorsed</a> by the Free Software Foundation.
- </p>
- <p>
- <a href="#pagetop">Back to top of page</a>.
- </p>
-
- </div>
- <div id="trisquel_netinstall" class="section">
- <h2>Trisquel net install?</h2>
- <p>
- Tip: don't use the official net install image. Download the full GNOME ISO (the ~1.5GiB one).
- In this ISO, there is still the capability to boot the net install, while it also provides
- an easy to use live system (which you can boot from USB). This ISO also works using
- <i>syslinux_configfile -i</i> (the <i>Parse ISOLINUX</i> menu entries in the default
- GRUB configuration that libreboot uses).
- </p>
- <p>
- <a href="#pagetop">Back to top of page</a>.
- </p>
- </div>
- <div id="parse_isolinux" class="section">
-
- <h2>Booting ISOLINUX images (automatic method)</h2>
- <p>
- Boot it in GRUB using the <i>Parse ISOLINUX config (USB)</i> option.
- A new menu should appear in GRUB, showing the boot options for that distro; this is a GRUB menu, converted from the usual
- ISOLINUX menu provided by that distro.
- </p>
- <p>
- <a href="#pagetop">Back to top of page</a>.
- </p>
-
- </div>
-
- <div id="manual_isolinux" class="section">
-
- <h2>Booting ISOLINUX images (manual method)</h2>
- <p>
- <i>These are generic instructions. They may or may not be correct for your
- distribution. You must adapt them appropriately, for whatever GNU/Linux distribution
- it is that you are trying to install.</i>
- </p>
- <p>
- If the ISOLINUX parser or <i>Search for GRUB configuration</i> options won't work, then press C in GRUB to access the command line.<br/>
- grub> <b>ls</b><br/>
- Get the device from above output, eg (usb0). Example:<br/>
- grub> <b>cat (usb0)/isolinux/isolinux.cfg</b><br/>
- Either this will show the ISOLINUX menuentries for that ISO, or link to other .cfg files, for example /isolinux/foo.cfg.<br/>
- If it did that, then you do:<br/>
- grub> <b>cat (usb0)/isolinux/foo.cfg</b><br/>
- And so on, until you find the correct menuentries for ISOLINUX.
- <b>The file <i>/isolinux/foo.cfg</i> is a fictional example. Do not actually
- use this example, unless you actually have that file, if it is appropriate.</b>
- </p>
- <p>
- For Trisquel (and other debian-based distros), there are typically menuentries listed in
- <i>/isolinux/txt.cfg</i> or <i>/isolinux/gtk.cfg</i>. For dual-architecture ISO images
- (i686 and x86_64), there may be separate files/directories for each architecture.
- Just keep searching through the image, until you find the correct ISOLINUX configuration file.
- </p>
- <p>
- Now look at the ISOLINUX menuentry. It'll look like:<br/>
- <b>
- kernel /path/to/kernel<br/>
- append PARAMETERS initrd=/path/to/initrd MAYBE_MORE_PARAMETERS<br/>
- </b>
- GRUB works the same way, but in it's own way. Example GRUB commands:<br/>
- grub> <b>set root='usb0'</b><br/>
- grub> <b>linux /path/to/kernel PARAMETERS MAYBE_MORE_PARAMETERS</b><br/>
- grub> <b>initrd /path/to/initrd</b><br/>
- grub> <b>boot</b><br/>
- Note: <i>usb0</i> may be incorrect. Check the output of the <i>ls</i> 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 now be booting your USB
- drive in the way that you specified.
- </p>
- <p>
- <a href="#pagetop">Back to top of page</a>.
- </p>
-
- </div>
- <div id="troubleshooting" class="section">
-
- <h1>Troubleshooting</h1>
- <p>
- Most of these issues occur when using libreboot with coreboot's 'text mode' instead of the coreboot framebuffer.
- This mode is useful for booting payloads like memtest86+ which expect text-mode, but for GNU/Linux distributions
- it can be problematic when they are trying to switch to a framebuffer because it doesn't exist.
- </p>
- <p>
- In most cases, you should use the vesafb ROM images. Example filename: libreboot_ukdvorak_vesafb.rom.
- </p>
- <h2>parabola won't boot in text-mode</h2>
- <p>
- Use one of the ROM images with vesafb in the filename (uses coreboot framebuffer instead of text-mode).
- </p>
- <h2>debian-installer (trisquel net install) graphical corruption in text-mode</h2>
- <p>
- When using the ROM images that use coreboot's "text mode" instead of the coreboot framebuffer,
- booting the Trisquel 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:<br/>
- <b>vga=normal fb=false</b>
- </p>
- <p>
- Tested in Trisquel 6 (and 7). This forces debian-installer to start in text-mode, instead of trying to switch to a framebuffer.
- </p>
- <p>
- If selecting text-mode from a GRUB menu created using the ISOLINUX parser, you can press E on the menu entry to add this.
- Or, if you are booting manually (from GRUB terminal) then just add the parameters.
- </p>
- <p>
- This workaround was found on the page: <a href="https://www.debian.org/releases/stable/i386/ch05s04.html">https://www.debian.org/releases/stable/i386/ch05s04.html</a>.
- It should also work for gNewSense, Debian and any other apt-get distro that provides debian-installer (text mode) net install method.
- </p>
- <p>
- <a href="#pagetop">Back to top of page</a>.
- </p>
-
- </div>
- <div class="section">
- <p>
- Copyright © 2014, 2015 Leah Rowe <info@minifree.org><br/>
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
- A copy of the license can be found at <a href="../gfdl-1.3.txt">../gfdl-1.3.txt</a>
- </p>
- <p>
- Updated versions of the license (when available) can be found at
- <a href="https://www.gnu.org/licenses/licenses.html">https://www.gnu.org/licenses/licenses.html</a>
- </p>
- <p>
- UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
- EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
- AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
- ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
- IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
- WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
- PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
- ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
- KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
- ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
- </p>
- <p>
- TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
- TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
- NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
- INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
- COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
- USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
- ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
- DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
- IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
- </p>
- <p>
- The disclaimer of warranties and limitation of liability provided
- above shall be interpreted in a manner that, to the extent
- possible, most closely approximates an absolute disclaimer and
- waiver of all liability.
- </p>
-
- </div>
- </body>
- </html>
|