J'utilise Maverick avec les derniers noyaux disponibles sur kernel.org et je les construis moi-même. Jusqu'à présent, je basais ma configuration sur le noyau Maverick et acceptais les valeurs par défaut make oldconfig
. Je fais cela depuis 3 versions majeures maintenant donc je suppose que je commence à glisser derrière le "standard" actuel.
Je voudrais re-baser mes noyaux à partir du nouveau fichier Natty .config
. Est-ce disponible quelque part en ligne ou dois-je télécharger l'intégralité du package du noyau et l'extraire?
Edit: J'ai manuellement tiré dans la configuration du dernier paquet de noyau Natty et je peux confirmer que j'aurais probablement dû le faire plus tôt. Beaucoup de différences entre mon ancienne configuration "évoluée" et le défaut Natty. Maintenant, si je pouvais simplement faire cela sans 20 minutes de recherche et de téléchargement du package afin que je puisse me re-baser à l'avenir.
L’équipe du noyau a posté les configurations pour Natty ici:
Sources:
Chaque paquetage linux-image
contient le fichier de configuration exact avec lequel il a été construit dans /boot/config-*
. Pour voir le fichier de configuration du noyau Linux en cours d'exécution, procédez comme suit:
less /boot/config-$(uname -r)
J'ai vérifié auprès des utilisateurs du noyau Ubuntu (sur Freenode #ubuntu-kernel
) et ils ont confirmé ma conviction qu'il n'y a pas vraiment de "le config ", mais il est en fait construit au moment de la compilation en incluant un certain nombre de fichiers Kconfig
; ceux-ci dépendent de l’architecture exacte et de la cible (bureau/serveur/cloud). Vous devriez pouvoir lire cette conversation (courte) à:
Une liste de cette variété peut être trouvée en utilisant packages.ubuntu.com et la recherche suivante:
En chasse, il semblerait que le .config
soit également inclus dans les packages linux-headers-*
. Ce sont des fichiers .deb
(qui sont de simples archives .ar
qui s'ouvriront avec file-roller
) et seulement environ 800 ko chacun. Si vous connaissez la cible, l'architecture et la version recherchées, vous pouvez les récupérer directement dans Launchpad ou dans l'archive elle-même:
/usr/src/linux-headers-2.6*/
.config
Si vous souhaitez automatiser l'ensemble du processus en une seule commande, vous pouvez essayer les solutions suivantes: assurez-vous de tout garder sur une seule ligne!
wget -qO- http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-headers-2.6.38-6-generic_2.6.38-6.34_i386.deb | dpkg-deb --fsys-tarfile /dev/stdin | tar Ox --wildcards './usr/src/*/.config'
J'espère que cela pourra aider!
Sur mon système Ubuntu 11.10, la configuration du noyau se trouve dans le fichier '/boot/config-3.0.0-12-generic'.
Référentiel de noyau Ubuntu git
Les métadonnées debian/
qui contiennent les configurations et l'arborescence du noyau sont suivies dans un seul référentiel git par version: http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/
Le référentiel a ensuite une balise pour chaque package de noyau, par exemple. dans mon Ubuntu 18.04, j'ai le paquetage linux-image-4.15.0-36-generic
, qui, je suppose, correspond au tag: Ubuntu-4.15.0-36.39
.
https://help.ubuntu.com/community/Kernel/Compile explique comment compiler le noyau, et donc comment le configurer, et comment les configs sont fusionnés dans la configuration finale.
Les configs semblent tous être sous debian.master/config/Arch
qui contient:
config.common.ubuntu
config.common.ports
AMD64/config.common.AMD64
AMD64/config.flavour.generic
AMD64/config.flavour.lowlatency
je suppose donc que linux-image-4.15.0-36-generic
va fusionner config.common.ubuntu
, config.common.AMD64
et config.flavour.generic
.
Le script qui fusionne semble être debian/scripts/misc/kernelconfig et contient le commentaire:
# Merge configs
# We merge config.common.ubuntu + config.common.<Arch> +
# config.flavour.<flavour>
TODO: il y a aussi un fichier debian.master/config/annotations
qui semble contenir la valeur de chaque config pour chaque Arch, comment est-il utilisé?
Quelqu'un devrait confirmer tout cela en exécutant des scripts de compilation en mode commenté d'une manière ou d'une autre, mais je suis paresseux maintenant, vous pouvez construire avec:
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-bionic.git linux
cd linux
git checkout Ubuntu-4.15.0-36.39
fakeroot debian/rules clean
debian/rules updateconfigs
fakeroot debian/rules build-generic
J'ai ensuite confirmé que cela produit exactement la même configuration que j'ai localement:
diff debian/build/build-generic/.config /boot/config-4.15.0-36-generic
Notez que le référentiel git du noyau Ubuntu contient également des milliers de correctifs au-dessus de Linux en amont. Il ne suffit donc pas de choisir la bonne configuration pour reproduire le comportement.
Nous pouvons également vérifier à trois reprises que le noyau que nous avons construit correspond à celui empaqueté en regardant le début de dmesg
du démarrage, qui contient:
[ 0.000000] Linux version 4.15.0-36-generic (buildd@lgw01-AMD64-031) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 (Ubuntu 4.15.0-36.39-generic 4.15.18)
Config dans le .deb
Comme mentionné par d'autres, la configuration complète finale est également présente sous:
/boot/config-4.15.0-36-generic
qui correspondent à chaque image du noyau Linux:
/boot/vmlinuz-4.15.0-36-generic
Donc, pour les autres versions, on peut trouver de quel paquet ils proviennent:
dpkg -S /boot/config-4.15.0-36-generic
qui donne:
linux-modules-4.15.0-36-generic: /boot/config-4.15.0-36-generic
et ensuite vous pouvez simplement télécharger le .deb
depuis https://packages.ubuntu.com/bionic-updates/linux-modules-4.15.0-generic et l'extraire pour obtenir la configuration:
mkdir config
cd config
wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux/linux-modules-4.15.0-36-generic_4.15.0-36.39_AMD64.deb
ar x linux-modules-4.15.0-36-generic_4.15.0-36.39_AMD64.deb
tar -xvf data.tar.xz
cat ./boot/config-4.15.0-36-generic
Testé dans Ubuntu 18.04.