Сховище ядра Ubuntu git
debian/
Метадані , який містить конфігу, і дерево ядра відслідковуються як в одному сховищі мерзотника на випуск: http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/
Потім репо має мітку для кожного пакета ядра, наприклад , в моїй Ubuntu 18.04, у мене є пакет linux-image-4.15.0-36-generic
, який я припускаю , що відповідає тегу: Ubuntu-4.15.0-36.39
.
https://help.ubuntu.com/community/Kernel/Compile пояснює, як компілювати ядро, а отже, як його налаштувати та як конфігурації об’єднати у остаточну конфігурацію.
Усі конфігурації, схоже, debian.master/config/ARCH
містять:
config.common.ubuntu
config.common.ports
amd64/config.common.amd64
amd64/config.flavour.generic
amd64/config.flavour.lowlatency
тому я здогадуюсь, що linux-image-4.15.0-36-generic
злиється config.common.ubuntu
, config.common.amd64
і config.flavour.generic
.
Сценарій, що робить об'єднання, здається, debian / script / misc / kernelconfig, і він містить коментар:
# Merge configs
# We merge config.common.ubuntu + config.common.<arch> +
# config.flavour.<flavour>
TODO: також є debian.master/config/annotations
файл, який, здається, містить значення для кожного конфігурації для кожної арки, як це використовується?
Хтось повинен це підтвердити, запустивши сценарії збирання сценаріїв у багатослівному режимі, але я лінивий, ви можете створити:
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
Тоді я підтвердив, що це створює точно таку ж конфігурацію, яку я мав локально:
diff debian/build/build-generic/.config /boot/config-4.15.0-36-generic
Зауважте, що ядро Ubuntu git repo також має тисячі патчів на верхній версії Linux, тому просто отримання потрібної конфігурації буде недостатньо для відтворення поведінки.
Ми також можемо потрійно перевірити, чи створене нами ядро відповідає пакуваному, переглянувши початок dmesg
завантаження, яке містить:
[ 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)
Налаштування в .deb
Як зазначають інші, остаточний повний конфігурація також присутній у розділі:
/boot/config-4.15.0-36-generic
які відповідають кожному образу ядра Linux:
/boot/vmlinuz-4.15.0-36-generic
Отже, для інших версій ми можемо знайти, з якого пакету вони беруться:
dpkg -S /boot/config-4.15.0-36-generic
що дає:
linux-modules-4.15.0-36-generic: /boot/config-4.15.0-36-generic
а потім ви можете просто завантажити .deb
з https://packages.ubuntu.com/bionic-updates/linux-modules-4.15.0-36-generic
і витягти його , щоб отримати конфігурації:
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
Тестовано в Ubuntu 18.04.
/boot-config-*
ніж намагатися наслідувати майстра, який вони використовують для автогенізації їх під час збирання. Прикро, що немає способу захопити один файл із пакету в Інтернеті (чи є?)