aboutsummaryrefslogtreecommitdiff
path: root/i18n/fr_FR/docs/gnulinux/grub_cbfs.md
diff options
context:
space:
mode:
Diffstat (limited to 'i18n/fr_FR/docs/gnulinux/grub_cbfs.md')
-rw-r--r--i18n/fr_FR/docs/gnulinux/grub_cbfs.md398
1 files changed, 398 insertions, 0 deletions
diff --git a/i18n/fr_FR/docs/gnulinux/grub_cbfs.md b/i18n/fr_FR/docs/gnulinux/grub_cbfs.md
new file mode 100644
index 00000000..f6c99332
--- /dev/null
+++ b/i18n/fr_FR/docs/gnulinux/grub_cbfs.md
@@ -0,0 +1,398 @@
+---
+title: Modifying the GRUB Configuration in Libreboot Systems
+x-toc enable: true
+...
+
+
+This guide will go through all the steps to modify a GRUB configuration file
+in Libreboot; this is so that the user doesn't have to manually boot
+their operating system each time, by typing in commands at the GRUB command line.
+
+For the purposes of this guide, you can either modify the GRUB configuration file
+that resides in the computer's ROM, or else you could modify the version that
+exists within the operating system itself; both options will be explained here.
+
+## How to Get the GRUB Configuration File
+The first step of the process is to actually get a hold of the GRUB configuration file
+that we need to modify. There are two ways to do this:
+
+1. We can extract the one that already exists within the ROM
+2. We can use one of the pre-compiled ROMS supplied by the Libreboot project
+
+However, both ways will require us to download the Libreboot Utility Archive.
+
+### Download the Libreboot Utility Archive
+The Libreboot Utility Archive contains the programs that we'll need
+to get our **grubtest.cfg** file. The latest release of the Libreboot Utility Archive
+can be downloaded [from libreboot.org](https://www.mirrorservice.org/sites/libreboot.org/release/stable/20160907/libreboot_r20160907_util.tar.xz).
+The quickest way to download it would be to use the `wget` program,
+which (if you don't know) allows you to download files from the internet.
+
+If you don't already have it installed, you can install it,
+using the `apt-get` command (in Debian-based distributions):
+
+ $ sudo apt-get install wget
+
+You can install it in Arch-based systems, using `pacman`:
+
+ $ sudo pacman -S wget
+
+Once you've installed `wget`, use it to download the file,
+simply by passing it the URL as an argument; you can save the file anywhere,
+but for the purpose of this guide, save it in **~/Downloads**
+(your **Home** directory's downloads folder).
+First, change the current working directory to **~/Downloads**:
+
+ $ cd ~/Downloads
+
+This guide assumes you are using the **20160907** version of Libreboot;
+if using a different version, modify the following commands accordingly:
+
+ $ wget https://www.mirrorservice.org/sites/libreboot.org/release/stable/20160907/\
+ >libreboot_r20160907_util.tar.xz
+
+After the file is downloaded, use the `tar` command to extract its contents:
+
+ $ tar -xf libreboot_r20160907_util.tar.xz
+
+After extraction, the folder will have the same name as the archive: in this case,
+**libreboot\_r20160907\_util**. For simplicity's sake, we'll rename it **libreboot\_util**,
+using the `mv` command:
+
+ $ mv "libreboot_r20160907_util" "libreboot_util"
+
+Now you have the folder with all the utilities necessary to read and modify the contents of the ROM.
+
+### Get the Necessary Utilities
+Once you have the **libreboot\_util** archive, you can find the `cbfstool` and `flashrom`
+utilities in **libreboot\_util/cbfstools/x86\_64/cbfstool**,
+and **libreboot\_util/flashrom/x86\_64/flashrom**, respectively.
+
+**NOTE: This guide assumes that you are using a device with the** x86\_64 **architecture;
+if you are using a device with a different architecture (e.g.,** i686 **or** armv7l**),
+the proper version of** `cbfstool` **and** `flashrom` **will be in that folder,
+inside their respective directories.**
+
+You could also compile both of these utilities; see [How to Build flashrom](../git/#build_flashrom).
+
+`flashrom` is also available from the repositories; if using an Arch-based distribution,
+use `pacman`:
+
+ $ sudo pacman -S flashrom
+
+Or, if you have a Debian-based distribution, use `apt-get`:
+
+ $ sudo apt-get install flashrom
+
+### Get the ROM Image
+You can either work directly with one of the ROM images already included
+in the libreboot ROM archives, or re-use the ROM that you have currently
+flashed. For the purpose of this tutorial, it is assumed that your ROM
+image file is named **libreboot.rom**, so please make sure to adapt.
+
+There are two ways to get a pre-compiled ROM image:
+
+#### 1. Download a Pre-Compiled Image from the Libreboot Website
+For the current release, **20160907**, they can be found [on a Libreboot mirror](https://www.mirrorservice.org/sites/libreboot.org/release/stable/20160907/rom/grub/);
+please adopt this guide, if using a different version of Libreboot.
+
+You also need to make sure that you select both the correct ROM for the device you're using,
+as well as the correct flash chip size (if applicable): **4mb**, **8mb**, or **16mb**;
+variable flash chip sizes only apply for the Thinkpads that Libreboot supports (excluding the X60 and T60).
+
+You can find the flash chip size, by running the following command:
+
+ # flashrom -p internal
+
+Look for a line like this:
+
+ Found Macronix flash chip "MX25L6406E/MX25L6408E" (8192 kB, SPI) \
+ mapped at physical address 0x00000000ff800000.
+
+Running this command on my Thinkpad X200 gives me the above result, so I know that
+my flash chip size is **8mb**.
+
+Once you've determined the correct ROMs and flash chip size, download them from the website.
+Since I'm currently using an X200 to write this guide, I'll demonstrate how
+to download the correct ROM images for that model.
+
+First, we're going to navigate to the **libreboot\_util** folder:
+
+ $ cd ~/Downloads/libreboot_util/
+
+Then, we will download the ROM images, using `wget`:
+
+ $ wget https://www.mirrorservice.org/sites/libreboot.org/release/stable/\
+ >20160907/rom/grub/libreboot_r20160907_grub_x200_8mb.tar.xz
+
+Extract the archive, using `tar`:
+
+ $ tar -xf libreboot_r20160907_grub_x200_8mb.tar.xz
+
+Navigate to the directory that you just created:
+
+ $ cd libreboot_r20160907_grub_x200_8mb
+
+Now that we are in the archive, we must choose the correct ROM image.
+To figure out the correct image, we must first parse the filenames for each ROM.
+For example, for the file named **x200_8mb_usqwerty_vesafb.rom**:
+
+ Model Name: x200
+ Flash Chip Size: 8mb
+ Country: us
+ Keyboard Layout: qwerty
+ ROM Type: vesafb or txtmode
+
+Since I am using a QWERTY keyboard, I will ignore all the non-QWERTY options.
+Note that there are two types of ROMs: **vesafb** and **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.
+
+I'll choose **x200_8mb_usqwerty_vesafb.rom**; I'll copy the file (to the `cbfstool` directory),
+and rename it with one command:
+
+ $ mv "x200_8mb_usqwerty_vesafb.rom" ../cbfstool/x86_64/libreboot.rom
+
+#### 2. Create an Image from the Current ROM
+The simpler way to get a ROM image is to just create it from your current ROM,
+using `flashrom`, making sure to save it in the `cbfstool` folder, inside **libreboot\_util**:
+
+ $ sudo flashrom -p internal -r ~/Downloads/libreboot_util/cbfstool/x86_64/libreboot.rom
+
+If you are told to specify the chip, add the option `-c {your chip}` to the command, like this:
+
+ $ sudo flashrom -c MX25L6405 -p internal -r ~/Downloads/libreboot_util/cbfstool/x86_64/libreboot.rom
+
+Now you are ready to extract the GRUB configuration files from the ROM, and modify them the way you want.
+
+
+### Copy grubtest.cfg from the ROM Image
+You can check the contents of the ROM image, inside CBFS, using `cbfstool`.
+First, navigate to the cbfstool folder:
+
+ $ cd ~/Downloads/libreboot_util/cbfstool/x86_64/
+
+Then, run the `cbfstool` commmand, with the `print` option; this will display
+a list of all the files located in the ROM:
+
+ $ ./cbfstool libreboot.rom print
+
+You should see **grub.cfg** and **grubtest.cfg** in the list. **grub.cfg** is
+loaded by default, with a menu entry for switching to **grubtest.cfg**. In
+this tutorial, you will first modify and test **grubtest.cfg**. This is to
+reduce the possibility of bricking your device, so *DO NOT SKIP THIS!*
+
+Extract (i.e., get a copy of ) **grubtest.cfg** from the ROM image:
+
+ $ ./cbfstool libreboot.rom extract -n grubtest.cfg -f grubtest.cfg
+
+By default `cbfstool` will extract files to the current working directory;
+so, **grubtest.cfg** should appear in the same folder as **libreboot.rom**.
+
+## How to Modify the GRUB Configuration File
+This section will instruct the user *how* to modify their GRUB configuration file;
+whether they decide to use the version located in their operating system's **/** folder,
+or the one located in the ROM, the modifications will be the same.
+
+Once the file is open, look for the following line (it will be towards the bottom of the file):
+
+ menuentry 'Load Operating System [o]' --hotkey='o' --unrestricted
+
+After this line, there will be an opening bracket **{**, followed by a several lines
+of code, and then a closing bracket **}**; delete everything that is between those two brackets,
+and replace it with the following code, if you're using an Arch-based disribution (e.g., Parabola GNU+Linux-Libre):
+
+ cryptomount -a
+ set root='lvm/matrix-root'
+ linux /boot/vmlinuz-linux-libre root=/dev/matrix/root cryptdevice=/dev/sda1:root \
+ cryptkey=rootfs:/etc/mykeyfile
+ initrd /boot/initramfs-linux-libre.img
+
+Or, replace it with this, if you are using a Debian-based distribution (e.g., Trisquel GNU+Linux):
+
+ cryptomount -a
+ set root='lvm/matrix-rootvol'
+ linux /vmlinuz root=/dev/mapper/matrix-rootvol cryptdevice=/dev/mapper/matrix-rootvol:root
+ initrd /initrd.img
+
+Remember, that these names come from the instructions to install GNU+Linux
+on Libreboot systems, located [in the docs](index.md). If you followed different instructions,
+(or for some other reason, used different names), simply put the names
+of your **root** and **swap** volumes, in place of the ones used here.
+
+This covers the basic changes that we can make to GRUB; however, there are some more
+changes that you could make, to increase the security of your GRUB configuration.
+If you are interested in those modifications, see the Libreboot guide on [Hardening GRUB](grub_hardening.md).
+
+That's it for the modifications! Now all you need to do is follow the instructions below,
+in order to use this new configuration to boot your system.
+
+## Change the GRUB Configuration File that the Operating System Uses
+Now that we have explained *how* to modify the file itself, we need to explain
+how to actually make our system *use* the new GRUB configuration file to boot.
+
+### Without Re-Flashing the ROM
+To change the GRUB Configuration that our system uses, without having to re-flash the ROM,
+we need to take our **grubest.cfg** file, rename it to **libreboot\_grub**;
+this is because that, by default, GRUB in Libreboot is configured to scan all partitions on
+the main storage for **/boot/grub/libreboot\_grub.cfg** or **/grub/libreboot\_grub.cfg**
+(for systems where **/boot** is on a dedicated partition), and then use it automatically.
+
+Therefore, we need to either copy **libreboot\_grub.cfg** to **/grub**, or to **/boot/grub**:
+
+ $ sudo cp ~/Downloads/libreboot_util/cbfstool/x86_64/libreboot_grub.cfg /boot/grub # or /grub
+
+Now, the next time we boot our computer, GRUB (in Libreboot) will automatically switch
+to this configuration file. *This means that you do not have to re-flash,
+recompile, or otherwise modify Libreboot at all!*
+
+### With Re-Flashing the ROM
+Changing the GRUB configuration that resides in ROM is a bit more complicated
+that the one in **/**, but most of the hard work is already done.
+
+#### Change grubtest.cfg in ROM
+Now that you have the modified **grubtest.cfg**, we need to remove
+the old **grubtest.cfg** from the ROM, and put in our new one. To remove
+the old one, we will use `cbfstool`:
+
+ $ ./cbfstool libreboot.rom remove -n grubtest.cfg
+
+Then, add the new one to the ROM:
+
+ $ ./cbfstool libreboot.rom add -n grubtest.cfg -f grubtest.cfg -t raw
+
+#### Change MAC address in ROM {#changeMAC}
+The last step before flashing the new ROM, is to change the MAC address inside it.
+Every libreboot ROM image contains a generic MAC address; you want to make sure
+that your ROM image contains yours, so as to not create any problems on your network
+(say, for example, that multiple family members had libreboot computers, and used
+the same ROM image to flash those computers).
+
+To do this, we will use the `ich9gen` utility, also located in **libreboot_util**.
+
+First, you need to find the current MAC address of your computer; there are
+two ways to do this:
+
+1. Read the white label on the bottom of the case (however, this will only work,
+if your motherboard has never been replaced).
+2. Run `ifconfig`; look for your ethernet device (e.g., **enpXXX**
+in Arch-based distributions, or **eth0** in Debian-based distributions),
+and look for a set of characters like this: `00:f3:f0:45:91:fe`.
+
+Next, you need to move **libreboot.rom** to the following folder; this is where
+the executable for `ich9gen` is located:
+
+ $ mv libreboot.rom ~/Downloads/libreboot_r20160907_util/ich9deblob/x86_64
+
+Once there, run the following command, making sure to use your own MAC address,
+instead of what's written below:
+
+ $ ./ich9gen --macaddress XX:XX:XX:XX:XX:XX
+
+Three new files will be created:
+
+* **ich9fdgbe_4m.bin**: this is for GM45 laptops with the 4MB flash chip.
+* **ich9fdgbe_8m.bin**: this is for GM45 laptops with the 8MB flash chip.
+* **ich9fdgbe_16m.bin**: this is for GM45 laptops with the 16MB flash chip.
+
+Look for the one that corresponds to the size of your ROM image; for example,
+if your flash chip size is **8mb**, you'll want to use **ich9fdgbe_8m.bin**.
+
+Now, insert this file (called the `descriptor+gbe`) into the ROM image, using `dd`:
+
+ $ dd if=ich9fdgbe_8m.bin of=libreboot.rom bs=1 count=12k conv=notrunc
+
+Move **libreboot.rom** back to the **libreboot\_util** directory:
+
+ $ mv libreboot.rom ~/Downloads/libreboot_util
+
+You are finally ready to flash the ROM!
+
+#### Flash Updated ROM Image
+The last step of flashing the ROM requires us to change our current working directory
+to **libreboot\_util**:
+
+ $ cd ~/Downloads/libreboot_util
+
+Now, all we have to do is use the `flash` script in this directory,
+with the `update` option, using **libreboot.rom** as the argument:
+
+ $ sudo ./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:
+
+ $ sudo ./flash forceupdate libreboot.rom
+
+You will see the `flashrom` program running for a little while, and 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 installation.
+
+#### Reboot the Computer
+Now that you have flashed the image, reboot the computer. Keep pressing `spacebar`
+right after you turn it on, until you see the GRUB menu, to prevent libreboot
+from automatically trying to load the operating system.
+
+Scroll down with the arrow keys, and choose the `Load test configuration (grubtest.cfg) inside of CBFS` option;
+this will switch the GRUB configuration to your test version. If all goes well,
+it should prompt you for a GRUB username and password, and then your LUKS password.
+
+Once the operating system starts loading, it will prompt you for your LUKS password again.
+If it continues, and loads into the OS without errors, then that means your flashing
+attempt was a success.
+
+#### Final Steps
+When you are satisfied booting from **grubtest.cfg**, you can create a copy
+of **grubtest.cfg**, called **grub.cfg**.
+
+First, go to the `cbfstool` directory:
+
+ $ cd ~/Downloads/libreboot_util/cbfstool/x86_64/
+
+Then, create a copy of **grubest.cfg**, named **grub.cfg**:
+
+ $ cp grubtest.cfg ./grub.cfg
+
+Now you will use the `sed` command to make several changes to the file:
+the menu entry `'Switch to grub.cfg'` will be changed to `Switch to grubtest.cfg`,
+and inside it, all instances of **grub.cfg** to **grubtest.cfg**.
+This is so that the main configuration 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).:
+
+ $ 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
+
+Move **libreboot.rom** from **libreboot\_util** to your current directory:
+
+ $ mv ~/Downloads/libreboot_util/libreboot.rom .
+
+Delete the **grub.cfg** that's already inside the ROM:
+
+ $ ./cbfstool libreboot.rom remove -n grub.cfg
+
+Add your modified **grub.cfg** to the ROM:
+
+ $ ./cbfstool libreboot.rom add -n grub.cfg -f grub.cfg -t raw
+
+Move **libreboot.rom** back to **libreboot\_util**:
+
+ $ mv libreboot.rom ../..
+
+If you don't remember how to flash it, refer back to the *Flash Updated ROM Image*, above; it's the same method as you used before. Afterwards, reboot the machine with your new configuration.
+
+Copyright © 2014, 2015, 2016 Leah Rowe <info@minifree.org>
+
+Copyright © 2017 Elijah Smith <esmith1412@posteo.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
+with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts.
+A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md)
+