Где взять файл.config ядра 11.04?
Я использую Maverick с последними доступными ядрами на kernel.org и собираю их самостоятельно. До сих пор я основывал свою конфигурацию на стандартном ядре Maverick и принимал make oldconfig
по умолчанию. Я делаю это для 3 основных выпусков, так что я полагаю, что начинаю отставать от нынешнего "стандарта".
Я хотел бы повторно основать свои ядра от нового Natty .config
файл. Это доступно где-нибудь онлайн или мне нужно скачать весь пакет ядра и распаковать его?
Изменить: я вручную вытащил конфиг из последнего пакета ядра Natty, и я могу подтвердить, что я, вероятно, должен был сделать это раньше. Много различий между моим старым "развитым" конфигом и стандартным Natty. Теперь, если бы я мог сделать это без 20 минут охоты и загрузки пакета, чтобы я мог перезагружать базу в будущем.
4 ответа
Команда ядра выложила конфиги для Natty здесь:
Источники:
- Почта списка рассылки
- Вики-страница с подробным описанием изменений между 10.10 и 11.04
Каждый linux-image
пакет содержит точный файл конфигурации, с которым он был собран /boot/config-*
, Чтобы увидеть файл конфигурации для текущего запущенного ядра Linux, выполните:
less /boot/config-$(uname -r)
Я проверил с людьми ядра Ubuntu (на Freenode #ubuntu-kernel
) и они подтвердили мое убеждение, что на самом деле не существует "конфиг", но он фактически создается во время сборки / компиляции путем включения ряда Kconfig
файлы; они зависят от точной архитектуры и цели (рабочий стол / сервер / облако). Вы должны быть в состоянии прочитать этот (короткий) разговор по адресу:
Список этого разнообразия можно найти с помощью packages.ubuntu.com и следующим поиском:
Охота, вокруг, казалось бы, что .config
также включен в linux-headers-*
пакеты. Это .deb
файлы (которые просты .ar
архивы, которые откроются с file-roller
) и только около 800 кБ каждый. Если вы знаете конкретную цель, архитектуру и версию, к которой вы стремитесь, вы можете получить их прямо из Launchpad или из самого архива:
- http://archive.ubuntu.com/ubuntu/pool/main/l/linux/
- затем загляните в
/usr/src/linux-headers-2.6*/
.config
Если вы хотите автоматизировать весь процесс в одну команду, вы можете попробовать следующее; убедитесь, что вы держите все это на одной линии!
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'
Надеюсь, это поможет!
В моей системе Ubuntu 11.10 конфигурация ядра находится в файле /boot/config-3.0.0-12-generic.
Ubuntu git kernel repository
debian/
метаданные, которые содержат конфиги и дерево ядра, отслеживаются как в одном репозитории git для каждого выпуска: 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 / scripts / misc / kernelconfig и содержит комментарий:
# Merge configs
# We merge config.common.ubuntu + config.common.<arch> +
# config.flavour.<flavour>
ТОДО: есть также 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
Обратите внимание, что git-репозиторий с ядром Ubuntu также имеет тысячи патчей в верхней части 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.