Repozytorium jądra Ubuntu git
debian/Metadanych, który zawiera pliki konfiguracyjne, a drzewo jądra są śledzone zarówno w jednym repozytorium git na wydaniu: http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/
Repo ma wówczas znacznik dla każdego pakietu jądra, np w moim Ubuntu 18.04, mam pakiet linux-image-4.15.0-36-generic, który Zgaduję odpowiada tagu: Ubuntu-4.15.0-36.39.
https://help.ubuntu.com/community/Kernel/Compile wyjaśnia, jak skompilować jądro, a tym samym, jak go skonfigurować i jak konfiguracje są scalane w ostateczną konfigurację.
Wydaje się, że wszystkie konfiguracje debian.master/config/ARCHzawierają:
config.common.ubuntu
config.common.ports
amd64/config.common.amd64
amd64/config.flavour.generic
amd64/config.flavour.lowlatency
więc zgaduję, że linux-image-4.15.0-36-genericto się połączy config.common.ubuntu, config.common.amd64i config.flavour.generic.
Skrypt, który dokonuje scalania, wygląda na debian / scripts / misc / kernelconfig i zawiera komentarz:
# Merge configs
# We merge config.common.ubuntu + config.common.<arch> +
# config.flavour.<flavour>
DO ZROBIENIA: istnieje również debian.master/config/annotationsplik, który wydaje się zawierać wartość dla każdej konfiguracji dla każdego łuku, jak to się stosuje?
Ktoś powinien to wszystko potwierdzić, uruchamiając skrypty budowania w trybie pełnym, ale jestem teraz leniwy, możesz budować za pomocą:
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
Następnie potwierdziłem, że daje to dokładnie taką samą konfigurację, jaką mam lokalnie:
diff debian/build/build-generic/.config /boot/config-4.15.0-36-generic
Zauważ, że repozytorium git repozytorium Ubuntu zawiera również tysiące łatek na górę Linuksa, więc uzyskanie właściwej konfiguracji nie wystarczy do odtworzenia zachowania.
Możemy również potrójnie sprawdzić, czy jądro, które zbudowaliśmy, odpowiada pakietowi, patrząc na początek dmesgbootowania, który zawiera:
[ 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)
Skonfiguruj w .deb
Jak wspomniano przez innych, ostateczna pełna konfiguracja jest również obecna w:
/boot/config-4.15.0-36-generic
które odpowiadają każdemu obrazowi jądra Linux:
/boot/vmlinuz-4.15.0-36-generic
W przypadku innych wersji możemy znaleźć, z którego pakietu pochodzą:
dpkg -S /boot/config-4.15.0-36-generic
co daje:
linux-modules-4.15.0-36-generic: /boot/config-4.15.0-36-generic
a następnie możesz po prostu pobrać plik .debz https://packages.ubuntu.com/bionic-updates/linux-modules-4.15.0-36-generic
i rozpakować go, aby uzyskać konfigurację:
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
Testowane w Ubuntu 18.04.
/boot-config-*niż próbować emulować magię, której używają do autogenizacji ich podczas kompilacji. Szkoda, że nie ma sposobu na pobranie jednego pliku z paczki online (czy jest tam?)