![]() |
|
ForumSat Feb 18 19:01:06 2023 UTC Généralitées: NuTyXThierry ![]() Fri Jan 6 21:21:32 2023 UTC Aide: Matérielcotaky ![]() Wed Jan 4 10:30:25 2023 UTC Aide: MatérielThierry ![]() Thu Dec 29 20:48:48 2022 UTC Aide: Matérielcotaky ![]() Wed Dec 28 22:04:26 2022 UTC Aide: MatérielThierry ![]() Wed Dec 28 18:37:46 2022 UTC Aide: Matérielcotaky ![]() Tue Dec 27 16:54:19 2022 UTC Aide: MatérielThierry ![]() Thu Dec 22 18:49:52 2022 UTC Aide: Matérielcotaky ![]() Mon Nov 7 07:58:06 2022 UTC Généralitées: NuTyXThierry ![]() Sun Nov 6 20:57:23 2022 UTC Généralitées: NuTyXAmol ![]() |
Mon Jul 1 14:13:26 2019 UTC Compiler et installer son propre noyauSommaireIntroductionCet article peut s'appliquer à toute autre distribution. Si vous avez décidé de compiler vous-même votre noyau, cet article vous explique sommairement comment compiler et installer un noyau personnalisé. Il existe beaucoup de raisons de vouloir compiler son propre noyau. Avoir un noyau optimisé en taille et pour son propre matériel est sans doute la raison la plus fréquente. Si vous êtes sur NuTyX, assurez-vous d'avoir installé le jeu de paquets de développement: get cards.devel Vérifier la machine qui utilisera le futur kernelOn va commencer par prendre connaîssance de son matériel avec la commande: lspci 00:00.0 Host bridge: Intel Corporation Atom Processor D2xxx/N2xxx DRAM Controller (rev 03) 00:02.0 VGA compatible controller: Intel Corporation Atom Processor D2xxx/N2xxx Integrated Graphics Controller (rev 09) 00:1b.0 Audio device: Intel Corporation NM10/ICH7 Family High Definition Audio Controller (rev 02) 00:1c.0 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 1 (rev 02) 00:1c.1 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 2 (rev 02) 00:1c.2 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 3 (rev 02) 00:1d.0 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 (rev 02) 00:1d.1 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 (rev 02) 00:1d.2 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 (rev 02) 00:1d.3 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 (rev 02) 00:1d.7 USB controller: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller (rev 02) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2) 00:1f.0 ISA bridge: Intel Corporation NM10 Family LPC Controller (rev 02) 00:1f.2 SATA controller: Intel Corporation NM10/ICH7 Family SATA Controller [AHCI mode] (rev 02) 00:1f.3 SMBus: Intel Corporation NM10/ICH7 Family SMBus Controller (rev 02) 01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 05) 02:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01) 03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5209 PCI Express Card Reader (rev 01) On retiendra donc:
Voici un résumé de ce que l'on va faire. Il faut savoir que les étapes 4 et 5 peuvent être refaites à l'infini (dans le cas où le noyau ne booterai pas par exemple). Voici les différentes étapes à suivre: Télécharger les sources du noyauPour pouvoir compiler un noyau, il faut donc commencer par récupérer les sources d'une version de noyau. Au moment de l'écriture de l'article, la version 4.9 est disponible. Nous allons donc prendre le risque de le compiler... Ouvrez un terminal et tapez la commande: wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.tar.xz Les sources commencent à se télécharger dans votre dossier personnel --2012-09-01 17:49:53-- http://www.kernel.org/pub/linux/kernel/v4.0/linux-4.9.tar.xz Résolution de www.kernel.org... 149.20.4.69, 149.20.20.133 Connexion vers www.kernel.org|149.20.4.69|:80...connecté. requête HTTP transmise, en attente de la réponse...200 OK Longueur: 82259123 (78M) [application/x-bzip2] Sauvegarde en : «linux-4.9.tar.bz2» 100%[=============================>] 82.259.123 2,55M/s ds 37s 2012-09-01 17:50:31 (2,13 MB/s) - «linux-4.9.tar.xz» sauvegardé [82259123/82259123] Extraire les sources du noyauOn extrait les sources du noyau téléchargé: tar xf linux-4.9.tar.xz Après quelques minutes, le prompt sera à nouveau disponible et les sources du noyau seront en place. Se rendre dans le dossier du noyau et taper les commandes magiques pour configurer les options qui nous semblent utiles. Pour pouvoir compiler le noyau, il faut être dans le dossier source de celui-ci, tapez dans votre console: Se rendre dans le dossier des sourcescd linux-4.9 Nous sommes maintenant prêts à lancer quelques commandes magiques. Je vous conseille pour commencer, histoire de se faire une idée des possibilités du makefile d'utiliser la commande: make help|more Elle vous donnera TOUTES les options qui sont disponibles pour la compilation du noyau et de ses modules. Cleaning targets: clean - Remove most generated files but keep the config and enough build support to build external modules mrproper - Remove all generated files + config + various backup files distclean - mrproper + remove editor backup and patch files Configuration targets: config - Update current config utilising a line-oriented program nconfig - Update current config utilising a ncurses menu based program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base localmodconfig - Update current config disabling modules not loaded localyesconfig - Update current config converting local mods to core silentoldconfig - Same as oldconfig, but quietly, additionally update deps defconfig - New config with default from ARCH supplied defconfig savedefconfig - Save current config as ./defconfig (minimal config) allnoconfig - New config where all options are answered with no allyesconfig - New config where all options are accepted with yes allmodconfig - New config selecting modules when possible alldefconfig - New config with all symbols set to default randconfig - New config with random answer to all options listnewconfig - List new options oldnoconfig - Same as silentoldconfig but sets new symbols to their default value ...... ....
Je vous ai mis que le début ![]() make mrproper Aucun message ne doit apparaître. Nous allons maintenant lancer l'outil de configuration afin de choisir le minimum d'options nécessaires pour avoir un noyau fonctionnel. J'ai volontairement choisi l'interface non graphique en effet, vous pouvez la lancer dans une chroot, une console graphique ou non. Configurer les options de compilationL'équipe de Linuxfromscratch recommande de désactiver la variable LC_ALL: LC_ALL= make menuconfig Vous voici devant le menu principal de configuration du noyau:
Dans cet article, je ne vais que choisir les options indispensables au bon amorçage du noyau et donc obtenir un nombre de modules plus petit. Il faut savoir que le noyau disponible en binaire en contient plus de 5000. Naviguez à travers tous les menus et activez UNIQUEMENT les options mentionnées ci-dessous. Comme vous pouvez le voir nous déactivons tous les modules, puisqu'ils ne sont pas nécessaires dans une configuration minimaliste: General Setup
Enable loadable module support
Enable the block layer
Processor type and features
Power management and ACPI options
Bus options (PCI,etc)
Executable file formats / Emulations
Networking support
Device Drivers
Firmware Drivers
File systems
Kernel hacking
Security options
Cryptographic API
Virtualization
Library routines
Une fois la configuration terminée, vous chosissez l'option Exit jusqu'au retour au prompt de la console. Un nouveau message vous demande si vous souhaitez sauvergarder votre configuration, chosissez simplement l'option de défaut Yes.
Un joli message apparait dans votre terminal # # configuration written to .config # * End of the configuration. * Execute 'make' to start the build or try 'make help' Compiler le noyauLa compilation du noyau peut commencer. Tapez dans la console: make -j4 La compilation est démarrée, si vous avez plus ou moins de processeurs à disposition, adaptez la valeur -j4 à votre nombre de processeurs.
Quelques minutes (ou quelques heures plus tard, ... Vous voilà avec un noyau prêt à être utilisé). Kernel: arch/x86/boot/bzImage is ready (#1) Créer une nouvelle entrée dans le fichier /boot/grub/grub.cfgIl ne nous reste plus qu'à ajouter la bonne entrée dans le fichier de configuration /boot/grub/grub.cfg de grub 2.0. menuentry "NuTyX avec noyau experimental sur /dev/sda2" { set root=(hd0,2) linux /home/thierry/linux-3.17.4/arch/x86/boot/bzImage root=/dev/sda2 ro quiet } Et voilà de cette façon, vous pourrez toujours choisir au démarrage de votre NuTyX sur quel noyau celle-ci doit être lancée. Et surtout, pour expérimenter d'autres options de votre noyau fonctionnel (ou pas), c'est très simple. Vous taperez donc toujours les 4 mêmes commandes: cd linux-4.9 make menuconfig make -j4 sudo make modules_install
Et c'est tout |