Configuration de noyau ubuntu

ronaldoR9 -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
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 :
      • 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

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    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. Et
    make menuconfig
    ne permet que d'activer des choses qui ne seront pas contradictoire avec celles déjà activées.

    Le but de
    make 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 paquet
    linux-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 avec
    apt-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
    0
    1. ronaldoR9
       
      hello mamiemando,

      merci pour ce tuto. Je vais le suivre du coup. je te tiens au jus pour la suite.
      0
    2. ronaldoR9
       
      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
      0
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    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 de
    apt-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 de
    tar
    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
    0