Genkernel oldconfig
Casufi 22 марта, 2009 - 04:43
Подскажите, как genkernel_у подсунуть конфиг старого ядра, чтобы он запросил недостающие опции и собрал новое ?
Если я ставлю опцию oldconfigure, то genkernel не задает никаких вопросов.
»
- Для комментирования войдите или зарегистрируйтесь
.
а с чего бы ему что то спрашивать. вроде как генкернел никогда ничего и не спрашивал. тот конфиг что лежит в каталоге с сырцами, и есть конфиг который он скушает. если нет уверенности что это тот конфиг - можно вынуть конфиг работающего ядра zcat /proc/config.gz >> /usr/src/linux/новый_конфиг. и потом сравнить его с тем, что уже лежит в usr/src/linux/.config. а чего не пойму - так это для чего использовать генкернел если конфиг таки есть? почему просто не собрать ядро на этом имеющемся конфиге, без генкернела?
Конфиг я выдираю из каталога
Конфиг я выдираю из каталога proс, так что в папке с сырцами лежит конфиг, который мне нужен. А генкернел дожен спрашивать потому, что я хочу собрать ядро 2.6.27 а конфиг от ядра 2.6.24, oldconfig именно для такого случая и предназначен, а генкернелом пользуюсь, потому что он собирает initrd, а сам я это делать не умею.
-----------------------------------------»
если хочешь послать в MAN, лучше промолчи.
)
конфиг из каталога proc - самый правильный конфиг. то есть конфиг ядра, которое работает в данный момент.
во вторых фпечку initrd. для чего он вообще нужен. соберите ядро нормально просто zcat /proc/config.gz > .config&& make menuconfig (конфигурим ядро как надо)&& make && make modules_install && cp /usr/src/linux/arch/i386/boot/bzImage /boot/my_new_kernel&& правим grub.conf&& reboot. все. зачем генкернел и его заморочки?
Русский понимаешь ? Я не
Русский понимаешь ?
Я не спрашиваю как мне собрать ядро, что такое make oldconfig я знаю, не первое ядро собираю и генту не первая система. Если собирать ядро без genkernel с опцией oldconfig, то конфигуратор задает вопросы только на те пункты, на которые не нашел ответ в старом конфиге, я хочу чтобы при сборке genkernelом, мне конфигуратор задал теже вопросы.
-----------------------------------------»
если хочешь послать в MAN, лучше промолчи.
Упущенные возможности
а чего не пойму - так это для чего использовать генкернел если конфиг таки есть? почему просто не собрать ядро на этом имеющемся конфиге, без генкернела?
Если собирать ядро без генкернела, теряешь возможность грузиться по disklabel или по uuid. Да и просто банально лень вручную что-то куда-то перекидывать.
genkernel нисколько не ограничивает в конфигурации ядра. Я обычно делаю так:
- устанавливаю новые исходники
- eselect kernel list
- eselect kernel set что_нужно
cd /usr/src/linux
zcat /proc/config.gz > .config
genkernel --menuconfig --disklabel --no-clean --loglevel=3 splash=livecd-2007.0 --splash-res=1280x1024 all
emerge -av @module-rebuld
Читайте описание опций genkernel. --menuconfig рулит.
И остаётся только вручную поменять цифры в grub.conf.
У меня сейчас работает ядро
У меня сейчас работает ядро 2.6.24 собранное подобным образом, а вот 2.6.28 не хочет грузиться.
Если делать --menuconfig конфиг старого ядра подхватится ?
-----------------------------------------»
если хочешь послать в MAN, лучше промолчи.
genkernel
genkernel --kernel-config=/etc/kernels/foobar --bootloader=grub --menuconfig all
Плюс /etc/genkernel.conf - много чего интересного
Не грусти, товарищ! Всё хорошо, beautiful good!
Обычно при сборке
Обычно при сборке ядра
genkernel --menuconfig all --save-config
При этом конфиг сохраняется в /etc/kernels
При новом ядре сначала его выбираем утилитой
eselect
Потом идём в /etc/kernels
Копируем
cp kernel-config-x86_64-2.6.24-gentoo-r2 kernel-config-x86_64-2.6.28-gentoo-r3
скажем. Потом как раз запускаемgenkernel --menuconfig all
. При этом genkernel по умолчанию ищет конфиг сначала в /etc/kernels, а уже потом берёт свой дефолтный из /usr/share/genkernel/defaultsЕсть одномаленькое но. Кажется структура ядра 25 от 26 заметно отличается. То есть конфиги от 25-го ядра не подходят для 26. Так что использовать конфиг от 24 для 28 не удастся. Проще запустить genkernel --menuconfig all и использовать дефолтный конфиг из genkernel
Есть такая опция, oldconfig,
Есть такая опция, oldconfig, она задает вопросы по тем пунктам, на которые не находит ответ в старом конфиге. Но почему в genkernel она отрабатывает молча ?
-----------------------------------------»
если хочешь послать в MAN, лучше промолчи.
genkernel --oldconfig это
genkernel --oldconfig это вообще совершенно иное, нежели точто вы хотите :)
оно проделывает make oldconfig выставляя значения новым параметрам согласно своим типовым конфигам + по результатам сканирования железа.
Если не хотите самодеятельности генкернела в конфиге ядра, то сначала вручную проделелывайте make oldconfig, и потом скармливайте полученный конфиг генкернелу вышеописанными методами.
:)
Большое спасибо за ответ, это
Большое спасибо за ответ, это именно то, что я хотел узнать.
Попробую сначала дать немного самостоятельности genkerel, а если не получится, буду колдовать с make oldconfig
-----------------------------------------»
если хочешь послать в MAN, лучше промолчи.