Де я можу отримати файл .config ядра 11.04?


15

Я використовую Maverick з останніми доступними ядрами на kernel.org і будую їх сам. До сих пір я базував свою конфігурацію на складі ядра Maverick і приймав make oldconfigзначення за замовчуванням. Я роблю це вже 3 основні випуски, тому я думаю, що я починаю ковзати за поточним "стандартом".

Я хотів би відновити свої ядра з нового .configфайлу Natty . Чи доступне це десь в Інтернеті чи мені доведеться завантажити весь пакет ядра та витягнути його?

Редагувати: Я вручну перетягнув конфігурацію з останнього пакету ядер Natty і можу підтвердити, що я мав би зробити це раніше. Дуже багато відмінностей між моїм старим "еволюціонувалим" конфігурацією та Natty за замовчуванням. Тепер, якщо я міг би зробити це без 20 хвилин полювання та завантаження пакунка, щоб я міг знову базуватися.

Відповіді:



30

Кожен linux-imageпакет містить точний файл конфігурації, в який він був вбудований /boot/config-*. Щоб побачити файл конфігурації для поточно запущеного ядра Linux, виконайте:

  • less /boot/config-$(uname -r)

Я перевірив з ядром Ubuntu людьми (на Freenode #ubuntu-kernel) , і вони підтвердили мою впевненість в тому , що є на насправді не « конфігурація», але насправді побудований в збірках / час компіляції шляху включення декількох файлів; вони залежать від точної архітектури та цілі (робочий стіл / сервер / хмара). Ви повинні мати можливість прочитати цю (коротку) розмову за адресою:Kconfig

Список цього сорту можна знайти за допомогою пакунків.ubuntu.com та наступного пошуку:

Полюючи навколо, здається, що пакет .configтакож входить в linux-headers-*пакети. Це .debфайли (це прості .arархіви, які відкриватимуться file-roller), і лише близько 800 кБ. Якщо ви знаєте конкретну ціль, архітектуру та версію, яку ви шукаєте, ви можете взяти їх безпосередньо з Launchpad або з самого архіву:

  1. archive.ubuntu.com/ubuntu/pool/main/l/linux/ linux-header-2.6 * .deb
  2. потім загляньте /usr/src/linux-headers-2.6*/.config

Якщо ви хочете автоматизувати весь процес в одну команду, ви можете спробувати наступне; переконайтеся, що ви тримаєте все це в одному рядку!

Сподіваюся, що це допомагає!


Дякуємо, що розслідували це. Прочитавши irclog, схоже, я не отримаю те, що хочу, без значного завантаження. Автоматично, все-таки простіше захопити пакунок і витягнути його, /boot-config-*ніж намагатися наслідувати майстра, який вони використовують для автогенізації їх під час збирання. Прикро, що немає способу захопити один файл із пакету в Інтернеті (чи є?)
Oli

Думаю, я запитаю це окремим запитанням.
Олі


1

Сховище ядра 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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.