issue120:labo_linux2
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
issue120:labo_linux2 [2017/05/12 18:38] – d52fr | issue120:labo_linux2 [2017/05/15 14:32] (Version actuelle) – andre_domenech | ||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
Another key benefit of LFS is that it allows you to have more control over the system without relying on someone else's Linux implementation. With LFS, you are in the driver' | Another key benefit of LFS is that it allows you to have more control over the system without relying on someone else's Linux implementation. With LFS, you are in the driver' | ||
- | Aimeriez-vous en apprendre plus sur Linux ? Si c'est le cas, une des meilleurs | + | Aimeriez-vous en apprendre plus sur Linux ? Si c'est le cas, une des meilleures |
- | Linux from Scratch est un projet qui vous fournit les instructions pas-à-pas pour construire votre propre système Linux personnalisé, | + | Linux from Scratch est un projet qui vous fournit les instructions pas à pas pour construire votre propre système Linux personnalisé, |
- | Une autre bénéfice important de LFS est qu'il vous permet d' | + | Un autre bénéfice important de LFS est qu'il vous permet d' |
**LFS allows you to create very compact Linux systems. When installing regular distributions, | **LFS allows you to create very compact Linux systems. When installing regular distributions, | ||
Ligne 17: | Ligne 17: | ||
Another advantage of a custom-built Linux system is security. By compiling the entire system from source code, you are empowered to audit everything and apply all the security patches desired. It is no longer necessary to wait for somebody else to compile binary packages that fix a security hole. Unless you examine the patch and implement it yourself, you have no guarantee that the new binary package was built correctly and adequately fixes the problem.** | Another advantage of a custom-built Linux system is security. By compiling the entire system from source code, you are empowered to audit everything and apply all the security patches desired. It is no longer necessary to wait for somebody else to compile binary packages that fix a security hole. Unless you examine the patch and implement it yourself, you have no guarantee that the new binary package was built correctly and adequately fixes the problem.** | ||
- | LFS vous permet de créer des systèmes Linux très compacts. Lors de l' | + | LFS vous permet de créer des systèmes Linux très compacts. Lors de l' |
- | Un autre avantage d'un système Linux construit spécialement est la sécurité. En compilant le système entier depuis le code source, il vous est permis d' | + | Un autre avantage d'un système Linux construit spécialement, c'est la sécurité. En compilant le système entier depuis le code source, il vous est permis d' |
**LFS seems to release new stable versions on a six-monthly basis, at the end of February and September. At the time of writing, the latest version is v8.0 released on 2017-02-25. | **LFS seems to release new stable versions on a six-monthly basis, at the end of February and September. At the time of writing, the latest version is v8.0 released on 2017-02-25. | ||
Ligne 27: | Ligne 27: | ||
Building an LFS system is not a simple task. In particular, as an absolute minimum, you should already have the ability to use the command-line (shell) to copy or move files and directories, | Building an LFS system is not a simple task. In particular, as an absolute minimum, you should already have the ability to use the command-line (shell) to copy or move files and directories, | ||
- | LFS semble publier de nouvelles versions stables tous les six mois, fin février et fin septembre. Au moment où j' | + | LFS semble publier de nouvelles versions stables tous les six mois, fin février et fin septembre. Au moment où j' |
- | Soyez juste au courant que, quand vous avez fini une construction de LFS, vous terminez | + | Soyez juste au courant que, quand vous avez fini une construction de LFS, vous vous retrouvez |
- | La construction d'un système LFS n'est pas une tâche simple. En particulier, | + | La construction d'un système LFS n'est pas une tâche simple. En particulier, |
======2====== | ======2====== | ||
Ligne 39: | Ligne 39: | ||
LFS is designed to be built in one session. That is, the instructions assume that the system will not be shut down during the process. That does not mean that the system has to be done in one sitting. You can continue to do other work on your host system whilst compiling is being done in another (terminal) window. The issue is that certain procedures have to be re-accomplished after a reboot if resuming LFS at different points. The book does explain how to do this if necessary.** | LFS is designed to be built in one session. That is, the instructions assume that the system will not be shut down during the process. That does not mean that the system has to be done in one sitting. You can continue to do other work on your host system whilst compiling is being done in another (terminal) window. The issue is that certain procedures have to be re-accomplished after a reboot if resuming LFS at different points. The book does explain how to do this if necessary.** | ||
- | J'ai quelques expériences de construction des 7.6, 7.8, 7.10 et maintenant 8.0. Ma première construction de LFS 7.6 m'a demandé 50 heures réparties sur 7 jours. C' | + | J'ai quelques expériences de construction des 7.6, 7.8, 7.10 et maintenant 8.0. Ma première construction de LFS 7.6 m'a demandé 50 heures réparties sur 7 jours. C' |
- | LFS est conçu pour être construit en une session. C' | + | LFS est conçu pour être construit en une session. C' |
**Architecture | **Architecture | ||
Ligne 50: | Ligne 50: | ||
The second decision determines which book you need to download from the website. Do you want to use systemd or sysVinit? I decided to go with systemd because most distros are using it now, including Debian, Ubuntu & Mint. It is also slightly less work to install.** | The second decision determines which book you need to download from the website. Do you want to use systemd or sysVinit? I decided to go with systemd because most distros are using it now, including Debian, Ubuntu & Mint. It is also slightly less work to install.** | ||
+ | |||
+ | Architecture | ||
+ | |||
+ | Avant de commencer, vous avez deux décisions à prendre. La première est de construire un système, soit 32-bit, soit 64-bit. Un système 32-bit va, bien sûr, ne faire fonctionner que des exécutables 32-bit. La construction 64-bit par défaut qui résulte de LFS est considérée comme un système 64-bit « pur ». C’est-à-dire qu'il ne supporte que des exécutables 64-bit. Vous devez recompiler de nombreux paquets si vous souhaitez lancer aussi des exécutables 32-bit. Les instructions pour les deux architectures sont données dans chaque livre (voir la prochaine section). Ma décision était 64-bit. | ||
+ | |||
+ | systemd vs sysVinit | ||
+ | |||
+ | La seconde décision détermine quel livre vous devez télécharger depuis le site Web. Voulez-vous systemd ou sysVinit ? J'ai décidé de prendre systemd parce que la plupart des distrib. l' | ||
**On my first build, using v7.6, I started using the pdf version of the book. However, this is a little confusing in places as it does not have any hyperlinks. You can download the complete book in one html file (LFS-BOOK-8.0-systemd-NOCHUNKS.html), | **On my first build, using v7.6, I started using the pdf version of the book. However, this is a little confusing in places as it does not have any hyperlinks. You can download the complete book in one html file (LFS-BOOK-8.0-systemd-NOCHUNKS.html), | ||
Ligne 56: | Ligne 64: | ||
Of the 79 packages on the wget-list, 65 tarballs and 6 patches are common. For systemd, 2 tarballs are unique (dbus, systemd). For sysVinit, 5 tarballs & 1 patch are unique (eudev, bootscripts, | Of the 79 packages on the wget-list, 65 tarballs and 6 patches are common. For systemd, 2 tarballs are unique (dbus, systemd). For sysVinit, 5 tarballs & 1 patch are unique (eudev, bootscripts, | ||
+ | |||
+ | Lors de ma première construction, | ||
+ | |||
+ | Les fichiers wget-list pour les versions systemd et sysVinit de LFS semblent identiques ; aussi, si vous utilisez wget pour télécharger vos paquets, vous obtenez tous les paquets pour construire les deux versions. Cependant, notez que les paquets requis pour systemd et sysVinit sont légèrement différents. | ||
+ | |||
+ | Sur les 79 paquets de wget-list, 65 tarball et 6 correctifs sont communs. Pour systemd, 2 tarball sont uniques (dbus, systemd). Pour sysVinit, 5 tarball et 1 correctif sont uniques (eudev, bootscripts, | ||
======3====== | ======3====== | ||
Ligne 64: | Ligne 78: | ||
Then, a preliminary toolchain must be compiled consisting of the tools used to compile LFS, like GCC, glibc, binutils and other necessary utilities. Next, the root directory must be changed (using chroot) to the toolchain' | Then, a preliminary toolchain must be compiled consisting of the tools used to compile LFS, like GCC, glibc, binutils and other necessary utilities. Next, the root directory must be changed (using chroot) to the toolchain' | ||
+ | |||
+ | Aperçu général de la construction de LFS | ||
+ | |||
+ | Le système LFS est construit en utilisant une distribution Linux déjà installée. Celle-ci sera considérée comme le système hôte. Après avoir préparé une partition sur laquelle construire LFS, vous téléchargez les différents paquets sources (environ 356 Mo). | ||
+ | |||
+ | Ensuite, une chaîne d' | ||
**Host System Requirements | **Host System Requirements | ||
My host system for v8.0 used an Intel Celeron 1.80GHz CPU with 2GB of RAM. I recycled an old Seagate 160 GB SATA drive just for this LFS build. I then installed, as the host system, a fresh install of Linux Mint 18.1 Serena. The majority of the host minimum requirements are met by installing the " | My host system for v8.0 used an Intel Celeron 1.80GHz CPU with 2GB of RAM. I recycled an old Seagate 160 GB SATA drive just for this LFS build. I then installed, as the host system, a fresh install of Linux Mint 18.1 Serena. The majority of the host minimum requirements are met by installing the " | ||
+ | |||
+ | Exigences pour le système hôte | ||
+ | |||
+ | Mon système hôte pour la v8.0 utilise un processeur Celeron 1,8 GHz d' | ||
**Partitioning | **Partitioning | ||
Ligne 78: | Ligne 102: | ||
Make a note of the UUIDs for each of the partitions. You may want to include them in your fstab file (see 8.2 Filesystem Table below). I had no need to create a separate partition for /home as I did not intend to keep personal files on this drive. After booting into the host system, the new partition(s) can be mounted. Then I installed my host system on / | Make a note of the UUIDs for each of the partitions. You may want to include them in your fstab file (see 8.2 Filesystem Table below). I had no need to create a separate partition for /home as I did not intend to keep personal files on this drive. After booting into the host system, the new partition(s) can be mounted. Then I installed my host system on / | ||
+ | |||
+ | Partitionnement | ||
+ | |||
+ | Je préfère utiliser Gparted en Live CD pour faire mon travail de partitionnement. J'ai déconnecté le disque dur de 1 To dans le boîtier hôte et installé un vieux disque de 160 Go juste pour cette construction de LFS. Avec KISS (Keep It Simple Stupid - Fais-le simplement et bêtement) en tête, en utilisant Gparted, j'ai créé trois partitions primaires. J'ai utilisé l' | ||
+ | |||
+ | / | ||
+ | / | ||
+ | / | ||
+ | |||
+ | Prenez note de l'UUID de chacune des partitions. Vous pouvez souhaiter les inclure dans votre fichier fstab (voir 8.2 Table du système de fichiers, ci-dessous). Je n'ai pas eu besoin de créer une partition séparée pour /home car je n'ai pas l' | ||
======4====== | ======4====== | ||
Ligne 86: | Ligne 120: | ||
Creating the $LFS/tools Directory | Creating the $LFS/tools Directory | ||
+ | |||
A /tools directory is created on the new partition to store the preliminary toolchain files. A new user is created with a clean environment before starting to compile the toolchain.** | A /tools directory is created on the new partition to store the preliminary toolchain files. A new user is created with a clean environment before starting to compile the toolchain.** | ||
+ | |||
+ | Télécharger les paquets | ||
+ | |||
+ | Les paquets de code source et les correctifs peuvent être téléchargés en utilisant le fichier wget-list inclus dans le livre tarball. N' | ||
+ | |||
+ | Créer le répertoire $LFS/tools | ||
+ | |||
+ | Un répertoire /tools est créé dans la nouvelle partition pour stocker les fichiers de la chaîne d' | ||
**Constructing a Temporary System | **Constructing a Temporary System | ||
Ligne 97: | Ligne 140: | ||
After completing section 5, I strongly recommend that you backup the /tools directory containing your preliminary toolchain. If you later make a mistake in section 6 it is then easy to recover the build without having to start from the beginning again.** | After completing section 5, I strongly recommend that you backup the /tools directory containing your preliminary toolchain. If you later make a mistake in section 6 it is then easy to recover the build without having to start from the beginning again.** | ||
+ | |||
+ | Construire un système temporaire | ||
+ | |||
+ | Ça se passe quand la chaîne d' | ||
+ | |||
+ | Décompresser les paquets | ||
+ | |||
+ | C'est un des endroits du livre LFS qui n'est pas complètement expliqué pour un constructeur débutant. Pour chaque paquet, utilisez simplement « tar xfv mon_du_fichier ». Ensuite, avec « cd », passez au répertoire décompressé avant de commencer à suivre les instructions correspondantes dans le livre. Quand vous avez fini cette section, assurez-vous de revenir (cd) aux répertoires sources et supprimez le répertoire décompressé avant de passer à un nouveau paquet. | ||
+ | |||
+ | Après avoir terminé la section 5, je recommande fortement que vous fassiez une sauvegarde du répertoire /tools qui contient votre chaîne d' | ||
**Installing Basic System Software | **Installing Basic System Software | ||
From this point on the new user login is no longer used. You continue as logged in as root, then create and mount some virtual filesystems using the host as a basis. You then chroot to the LFS system and create a new filesystem tree on the LFS partition and create some essential files and symlinks. Next you re-compile the toolchain, this time putting them in their final places. This is followed by compiling and installing all the remaining packages.** | From this point on the new user login is no longer used. You continue as logged in as root, then create and mount some virtual filesystems using the host as a basis. You then chroot to the LFS system and create a new filesystem tree on the LFS partition and create some essential files and symlinks. Next you re-compile the toolchain, this time putting them in their final places. This is followed by compiling and installing all the remaining packages.** | ||
+ | |||
+ | Installer le logiciel de base du système | ||
+ | |||
+ | À partir de ce point, le login du nouvel utilisateur n'est plus utilisé. Vous continuez en vous identifiant comme root, puis vous créez et montez certains systèmes de fichiers virtuels en utilisant l' | ||
======5====== | ======5====== | ||
Ligne 110: | Ligne 167: | ||
Making the LFS System Bootable | Making the LFS System Bootable | ||
+ | |||
In this section, the /etc/fstab file is created, followed by compiling and installing the Linux kernel and the GRUB bootloader.** | In this section, the /etc/fstab file is created, followed by compiling and installing the Linux kernel and the GRUB bootloader.** | ||
+ | |||
+ | Configuration du système | ||
+ | |||
+ | Dans cette section, vous créez les fichiers nécessaires à la configuration d'un système de base. Ceci comprend la configuration du réseau, le réglage du fuseau horaire et de l' | ||
+ | |||
+ | Rendre le système LFS bootable | ||
+ | |||
+ | Dans cette section, le fichier /etc/fstab est créé, suivi de la compilation et de l' | ||
**File System Table | **File System Table | ||
If, like me, you play around with multi-booting, | If, like me, you play around with multi-booting, | ||
+ | |||
+ | Table des fichiers du système | ||
+ | |||
+ | Si, comme moi, vous jouez avec le multi-boot, avec plusieurs systèmes d' | ||
**Compiling the Kernel (drivers) | **Compiling the Kernel (drivers) | ||
This is where I ran into problems on my second build. Everytime I tried to boot the system, it would freeze, usually, but not always, reaching a point of kernel panic. I went through a complete rebuild a second time with the same result. I had installed LFS with its own swap partition on a separate IDE hard-drive, so I moved the drive to a box with the same spec (Pentium 4 CPU with 512 MB of RAM) but about two years older. Although both boxes/ | This is where I ran into problems on my second build. Everytime I tried to boot the system, it would freeze, usually, but not always, reaching a point of kernel panic. I went through a complete rebuild a second time with the same result. I had installed LFS with its own swap partition on a separate IDE hard-drive, so I moved the drive to a box with the same spec (Pentium 4 CPU with 512 MB of RAM) but about two years older. Although both boxes/ | ||
+ | |||
+ | Compiler le noyau (pilotes) | ||
+ | |||
+ | C'est ici que j'ai rencontré des difficultés lors de ma deuxième construction. Chaque fois que j' | ||
======6====== | ======6====== | ||
Ligne 127: | Ligne 201: | ||
On building v8.0, I managed to get a bootable kernel first-time-around.** | On building v8.0, I managed to get a bootable kernel first-time-around.** | ||
+ | |||
+ | À ce moment, j'ai commencé à chercher plus d' | ||
+ | |||
+ | Il est apparu que la carte-mère la plus récente utilisait des pilotes SATA, même pour le disque IDE, mais la plus ancienne, non. Ces cartes dataient d'une époque où les disques SATA étaient relativement récents. Après avoir suivi les instructions de compilation de Greg, le succès vint enfin. | ||
+ | |||
+ | Lors de la construction de la v8.0, je me suis arrangé pour obtenir un noyau bootable du premier coup. | ||
**GRUB Installation | **GRUB Installation | ||
Ligne 133: | Ligne 213: | ||
For me, the only reason to install the LFS version of GRUB is if you have installed LFS on a separate drive from your host system, and you can use the BIOS/UEFI to select which drive you wish to boot from, or you want to move that drive to a new box. In either case, make sure you install GRUB on the LFS drive, and not on the host drive thus unintentionally overwriting the original (host) GRUB installation.** | For me, the only reason to install the LFS version of GRUB is if you have installed LFS on a separate drive from your host system, and you can use the BIOS/UEFI to select which drive you wish to boot from, or you want to move that drive to a new box. In either case, make sure you install GRUB on the LFS drive, and not on the host drive thus unintentionally overwriting the original (host) GRUB installation.** | ||
+ | |||
+ | Installation de GRUB | ||
+ | |||
+ | Si vous avez installé LFS sur le même disque dur/SSD que votre système hôte, il N'est PAS nécessaire d' | ||
+ | |||
+ | Pour moi, la seule raison d' | ||
**I have in the past used other boot managers where you can select not only the drive you want to boot from, but also the individual partition you want. In this case, you can install the LFS GRUB to the partition boot sector and not to the MBR for the whole drive. | **I have in the past used other boot managers where you can select not only the drive you want to boot from, but also the individual partition you want. In this case, you can install the LFS GRUB to the partition boot sector and not to the MBR for the whole drive. | ||
Ligne 141: | Ligne 227: | ||
Note that when you boot into your LFS system for the first time, and login as root, your prompt will show only as bash4.4#. To get a better prompt, you need to create at least a / | Note that when you boot into your LFS system for the first time, and login as root, your prompt will show only as bash4.4#. To get a better prompt, you need to create at least a / | ||
+ | |||
+ | Par le passé, j'ai utilisé d' | ||
+ | |||
+ | Redémarrer le système | ||
+ | |||
+ | Félicitations si vous êtes arrivés ici ! Beau travail. | ||
+ | |||
+ | Notez que la première fois que vous démarrez votre système LFS, et vous vous identifiez comme root, votre invite sera présentée seulement comme bash4.4#. Pour obtenir une meilleure invite, vous devez créer au moins un fichier / | ||
======7====== | ======7====== | ||
Ligne 147: | Ligne 241: | ||
Another way of building Linux is available on the Linux Academy website. This is called Build Your Own Linux (BYOL). I have not tried this yet, but I did do a quick overview. BYOL suggests using Fedora Core 24 as a host system and installing this in VirtualBox. The BYOL system is then created on a second block storage device, such as another HDD or a USB stick. It uses the same LFS wget-list of source packages and the build process is the same, except where changes are necessary because of the VirtualBox environment. The final result is a 64-bit system using sysVinit with a separate /boot partition that is compatible with both UEFI and BIOS hardware.** | Another way of building Linux is available on the Linux Academy website. This is called Build Your Own Linux (BYOL). I have not tried this yet, but I did do a quick overview. BYOL suggests using Fedora Core 24 as a host system and installing this in VirtualBox. The BYOL system is then created on a second block storage device, such as another HDD or a USB stick. It uses the same LFS wget-list of source packages and the build process is the same, except where changes are necessary because of the VirtualBox environment. The final result is a 64-bit system using sysVinit with a separate /boot partition that is compatible with both UEFI and BIOS hardware.** | ||
+ | |||
+ | L' | ||
+ | |||
+ | Une autre façon de construire Linux est disponible sur le site Web de Linux Academy (Académie Linux). C'est appelé Buld your Own Linux (BYOL - Construisez votre propre Linux). Je ne l'ai pas encore essayé, mais je l'ai parcouru rapidement. BYOL suggère d' | ||
**References: | **References: | ||
Ligne 157: | Ligne 255: | ||
BYOL: www.buildyourownlinux.com ** | BYOL: www.buildyourownlinux.com ** | ||
+ | |||
+ | Références : | ||
+ | |||
+ | Linux From Scratch : www.linuxfromscratch.org | ||
+ | |||
+ | Le poscast de MintCast : mintcast.org | ||
+ | |||
+ | Linux Academy : www.linuxacademy.com | ||
+ | |||
+ | BYOL : www.buildyourownlinux.com | ||
**Bio : Paul is a recently retired engineer who spent nearly all his working life with one vehicle manufacturer. Apart from cars and computers, his other main interest is aviation. Originally from London, he now lives in South Africa. He can be reached at paulromano@vodamail.co.za.** | **Bio : Paul is a recently retired engineer who spent nearly all his working life with one vehicle manufacturer. Apart from cars and computers, his other main interest is aviation. Originally from London, he now lives in South Africa. He can be reached at paulromano@vodamail.co.za.** | ||
+ | |||
+ | Bio : Paul est un ingénieur récemment retraité qui a passé presque toute sa vie active chez un constructeur automobile. À part les véhicules et les ordinateurs, |
issue120/labo_linux2.1494607123.txt.gz · Dernière modification : 2017/05/12 18:38 de d52fr