Configuration de noyau ubuntu
Bonjour à tous,
Je débute dans la partie configuration et compilation de noyau linux. Pour cela j'ai téléchargé un iso sur le site de ubuntu que j'ai installé en vm via virtualbox.
Du coup je suis un tuto pour effectuer les configs mais je rencontre pas mal de difficulté.
Lorsque je lance un make menuconfig, je ne trouve pas certaines options. Je voualis savoir si c'est normal, ou si ces options sont situées ailleurs.
ci-dessous les sous options introuvables :
General setup --->
[*] Prompt for development and/or incomplete code/drivers
Processor type and features --->
Subarchitecture Type --->
Ensuite pour la partie processeur, je n'ai pas mon processeur dans la liste des processeurs :
Processor type and features --->
Processor family --->
() Opteron/Athlon64/Hammer/K8
( ) Intel P4 / older Netburst based Xeon
( ) Core 2/newer Xeon
( ) Intel Atom
(X) Generic-x86-64
alors que lorsque je fais 1 cat /proc/cpuinfo | grep "model name" j'ai cela :
model name : Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
qui est bien sûr mon processeur physique.
Ma question est donc comment je fais pour l'ajouter dans la liste.
Dernier point, je voulais effectuer une config propre avec "make defconfig" mais j'ai cette erreur :
scripts/kconfig/Makefile:108 : la recette pour la cible « x86_64_defconfig » a échouée
Au niveau de ma config actuelle de ma vm j'ai ceci :
2016 x86_64 x86_64 x86_64 GNU/Linux
drwxr-xr-x 27 root root 4096 oct. 2 21:21 /usr/src/linux-headers-4.4.0-21
Ubuntu 16.04 LTS \n \l
model name : Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
Je débute dans la partie configuration et compilation de noyau linux. Pour cela j'ai téléchargé un iso sur le site de ubuntu que j'ai installé en vm via virtualbox.
Du coup je suis un tuto pour effectuer les configs mais je rencontre pas mal de difficulté.
Lorsque je lance un make menuconfig, je ne trouve pas certaines options. Je voualis savoir si c'est normal, ou si ces options sont situées ailleurs.
ci-dessous les sous options introuvables :
General setup --->
[*] Prompt for development and/or incomplete code/drivers
Processor type and features --->
Subarchitecture Type --->
Ensuite pour la partie processeur, je n'ai pas mon processeur dans la liste des processeurs :
Processor type and features --->
Processor family --->
() Opteron/Athlon64/Hammer/K8
( ) Intel P4 / older Netburst based Xeon
( ) Core 2/newer Xeon
( ) Intel Atom
(X) Generic-x86-64
alors que lorsque je fais 1 cat /proc/cpuinfo | grep "model name" j'ai cela :
model name : Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
qui est bien sûr mon processeur physique.
Ma question est donc comment je fais pour l'ajouter dans la liste.
Dernier point, je voulais effectuer une config propre avec "make defconfig" mais j'ai cette erreur :
- Default configuration is based on target 'x86_64_defconfig'
- Can't find default configuration "arch/x86/configs/x86_64_defconfig"!
scripts/kconfig/Makefile:108 : la recette pour la cible « x86_64_defconfig » a échouée
Au niveau de ma config actuelle de ma vm j'ai ceci :
2016 x86_64 x86_64 x86_64 GNU/Linux
drwxr-xr-x 27 root root 4096 oct. 2 21:21 /usr/src/linux-headers-4.4.0-21
Ubuntu 16.04 LTS \n \l
model name : Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
2 réponses
-
Bonjour,
Du coup je suis un tuto pour effectuer les configs mais je rencontre pas mal de difficulté. Lorsque je lance un make menuconfig, je ne trouve pas certaines options. Je voualis savoir si c'est normal, ou si ces options sont situées ailleurs.
Certaines options ont des pré-requis, ou sont contradictoires entre elle. Etmake menuconfig
ne permet que d'activer des choses qui ne seront pas contradictoire avec celles déjà activées.
Le but demake menuconfig
est de générer un fichier.config
qui sera ensuite utilisé pour compiler le noyau.
Tu peux t'inspirer de ce tutoriel pour compiler ton noyau (voir section "compiler un noyau") :
https://www.mistra.fr/tutoriel-linux-compiler.html
Comme expliqué dans ce tutoriel, le.config
utilisé dans un noyau empaqueté par debian/ubuntu/... est fourni dans le paquetlinux-headers
correspondant, et fournit donc un bon point de départ que tu peux ensuite écrémer pour correspondre à tes besoins (voir tutoriel).
Tu peux vérifier avecapt-file
:
sudo apt-get update
sudo apt-get install apt-file
sudo apt-file update
apt-file search linux-headers | grep "/^.config$"
Exemple :
(mando@velvet) (~) $ apt-file search linux-headers | grep "/^.config$"
linux-headers-4.6.0-1-amd64: /usr/src/linux-headers-4.6.0-1-amd64/.config
linux-headers-4.6.0-1-rt-amd64: /usr/src/linux-headers-4.6.0-1-rt-amd64/.config
Bonne chance-
-
Hello,
c'est encore moi,
Je crois que j'ai sauté une étape, la décompression du fichier en tar.bz2, et en faisait un ls -l du /usr/src, il n'est pas présent par défaut.
voici le résultat d'un ls -l du repertoire :[/contents/646-linux-gestion-des-utilisateurs root]@ronald-[/download/telecharger-3673479-virtualbox VirtualBox]:/usr/src# ll total 24 drwxr-xr-x 6 root root 4096 oct. 4 19:50 ./ drwxr-xr-x 11 root root 4096 avril 21 00:13 ../ lrwxrwxrwx 1 root root 30 oct. 2 18:16 linux -> linux-headers-4.4.0-21-generic/ drwxr-xr-x 27 root root 4096 oct. 3 01:06 linux-headers-4.4.0-21/ drwxr-xr-x 7 root root 4096 oct. 2 22:10 linux-headers-4.4.0-21-generic/ drwxr-xr-x 27 root root 4096 oct. 4 19:50 linux-headers-4.4.0-38/ drwxr-xr-x 7 root root 4096 oct. 4 19:50 linux-headers-4.4.0-38-generic/ lrwxrwxrwx 1 root root 51 oct. 2 20:58 vboxguest-4.3.22 -> /opt/VBoxGuestAdditions-4.3.22/src/vboxguest-4.3.22/
la version du kernel avec uname -r me donne
#uname -r
4.4.0-21-generic
donc lorsque je fais un locate je n'ai rien:root@ronald-VirtualBox:/usr/src# locate -i "*4.4.0-21-generic*.tar*" root@ronald-VirtualBox:/usr/src# updatedb root@ronald-VirtualBox:/usr/src# locate -i "*4.4.0-21-generic*.tar*"
ou même find :
root@ronald-VirtualBox:/usr/src# find /usr/ -iname "*4.4.0-21-generic.tar*"
root@ronald-VirtualBox:/usr/src#
Y-a-t'il moyen de récupérer ce tar.bz2 quelque part ?
Merci d'avance
-
-
Je te conseille plutôt de récupérer des sources de noyaux via les paquets : le plus simple c'est avec
apt-get install linux-source-x.x.xx-amd64
ou x.x.xx est la version du noyau (voir résultats deapt-cache search linux-sources | grep linux-sources
), ce qui les installera dans/usr/src
.
Ensuite si tu tiens à partir de sources de noyau standard, il suffit d'aller sur :
https://www.kernel.org/
Il faudra juste adapter la syntaxe detar
car il s'agit à présent de fichiers ".xz" :
https://askubuntu.com/questions/92328/how-do-i-uncompress-a-tarball-that-uses-xz
Quelque soit la manière dont est récupéré le noyau, assure toi que /usr/src/linux pointe bien sur les bonnes sources (celles du noyaux que tu veux compiler). Si ce lien existe supprime ce fichier et recrée le bon lien symbolique :
rm /usr/src/linux
ln -s /usr/src/linux-sources-x.x.xx /usr/src/linux
Bonne chance