Вопросы по сборке ядра..

Здравствуйте! :)
Сегодня первый раз поставил gentoo на свой компьютер. Войны было много. Ядро собрал с помощью genkernel так как не особо пока разбираюсь в сием вопросе. Мне сейчас нужно установить alsa, завести звуковуху и настроить iptables. На emerge alsa-driver дженту сказала, что мол нет поддержки в ядре, на iptables -L после emerge iptables дженту тоже сказала, что нет включенной поддержки в ядре. Я пока не особо осознаю как обмозговать, что в ядре, а что модулями. Вообще модули пока темный лес. Знаю только, что в ядре вида kernel-...-generic все это включено. Итак, получается, что мне нужно пересобрать ядро для включения соответствующих опций, благо маны есть. Отсюда вытекает размышление как пройдет этот процесс. Так как я собрал ядро genkernel'ом, то что будет когда я начну его пересобирать командой genkernel --menuconfig all, то есть в этом меню конфигурации останутся отмеченными те позиции, которые genkernel в прошлый раз уже выявил (ну то есть то, собственно для чего он и нужен - все найденное оборудование) и смогу ли я "добавить" так сказать нужные мне опции ядра? Или же когда я запущу эту команду, то автоопределение опций для моего оборудования скинется? Наверное объясняю слишком туманно, скажу по другому: если я буду делать genkernel --menuconfig all сейчас, то смогу ли "дособать" ядро на старой базе отмеченных опций? :)

genkernel --menuconfig all

genkernel --menuconfig all подхватит тот же конфиг, что использовал genkernel all

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Спасибо что ответили :) ,

Спасибо что ответили :) , воспользуюсь и задам еще вопрос. Ситуация 1: я сразу добавляю поддержку опций alsa и брандмауэра - все работает, я радуюсь. Ситуация 2 (может следовать после 1й): я сначала добавляю поддержку звука, собираю ядро, проверяю, если работает - берусь за iptables, выполняю опять --menuconfig, останутся ли там включенными опции для alsa? Или же лучшим решением будет не надеяться на авось, а сохранять каждый раз конфиг собранного ядра и потом подсовывать его genkernel'у? Это кажется возможно?

лучше первая ситуация

лучше первая ситуация :)
(быстрее по времени)

Возможно всё, только надо

Возможно всё, только надо покурить man genkernel на тему конфигов, которые он жаждет.
Не вижу, почему бы не собрать всё сразу

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Собрать все сразу можно :) и

Собрать все сразу можно :) и я это и хочу сделать попытаться, но боюсь, что возникнет ситуация и придется опять пересобирать. Например установка принтера, понятия не имею нужно ли в ядре что-то включать.. :) Спасибо, что помогаете! Вот еще вопрос: возможен ли аналог ядра generic? Что будет, если я включу абсолютно все в ядре? Это конечно абсурд :) .. но так как некоторые опции понятия не имею тчо значат, то почему бы не включить. Дело собственно в том, что нужно писать диплом и в течение 3-4 дней хоть как нужно получить рабочую систему: аудио, видео, шлюз для локалки, принтеры ну и всего по мелочи, что не особо уже важно. Дальше - будет время - буду разбираться, конечно лишние опции в ядре - это лишний груз.

По поводу принтера, его

По поводу принтера, его настройкой занимается пакет cups, а в ядре всего лишь надо включать интерфейс по которому он подключен (LPT,USB...)

Несколько устарело, но вдруг

Несколько устарело, но вдруг поможет http://wiki.kryukov.biz/wiki/Параметры_ядра_Linux

Я Gentoo & Funtoo

.

Еще вот, Ядерная физика для домохозяек v2.0 (link), хотя тоже многое устарело, но описано подробно и на русском

Скажу так, когда я первый раз

Скажу так, когда я первый раз ставил gentoo, прочитал много мануалов по настройке ядра, манов по genkernel. Но наткнулся на доку, которая называется примерно так "Ядерная физика для домохозяек".

Это боле-менее подробная информация по параметрам ядра. В итоге используя данный ман можно разобраться в организации ядра, включить необходимые опции для своей системы, как сделал я.

Теперь я просто добавляю нужные настройки в ядро, по мере надобности, используя сохраненный до этого конфиг, если есть необходимость. И перекомпилирую ядро.

cd /usr/src/linux
cp <путь_к_сохраненному_конфигу> ./
make menuconfig
make bzImage modules modules_install install

Компиляция ядра с настройками чисто под мою систему занимает не более 5-ти минут на моем Pentium 4 2,4GHz Prescott.

Ни разу не прибегал к утилите genkernel. Уже год как юзаю gentoo.

Ага, как я понял Вы создаете

Ага, как я понял Вы создаете сначала конфиг, а потом заставляете ядро скомпилироваться, используя его и не вводя уже никаких настроек? Ядерная физика для домохозяек уже смотрел - думаю нужно почитать. В общем - завтра сначала почитаю, подумаю и буду делать. Обязательно отпишусь как оно у меня. :)

Ну тогда и это посмотрите.

Ну тогда и это посмотрите.

Я Gentoo & Funtoo

Да, я создаю настройку ядра

Да, я создаю настройку ядра один раз, компилирую, затем юзаю. Потом при обновлении ядра использую старый конфиг следующим образом:

открываю две консоли: в первой выполняю

$ cd /usr/src/linux
$ cp <путь_к_сохраненному_конфигу> ./
$ make oldconfig

Во второй делаю:

$ cd /usr/src/linux
$ make menuconfig

И смотрю что изменилось в новом ядре, читаю инфу по изменившимся параметрам.
Выбираю то, что мне нужно и компилирую.

Вот и весь процесс.

Спасибо :) и за ссылки тоже,

Спасибо :) и за ссылки тоже, может стоит испытать xconfig :)

.

dbeketov написал(а):
Да, я создаю настройку ядра один раз, компилирую, затем юзаю. Потом при обновлении ядра использую старый конфиг следующим образом:

открываю две консоли: в первой выполняю

$ cd /usr/src/linux
$ cp <путь_к_сохраненному_конфигу> ./
$ make oldconfig

Во второй делаю:

$ cd /usr/src/linux
$ make menuconfig

И смотрю что изменилось в новом ядре, читаю инфу по изменившимся параметрам.
Выбираю то, что мне нужно и компилирую.

Вот и весь процесс.

в этом нет необходимости, если ядро устанавливал через "make install" (а не ручным копированием), то в /boot также копируется текущий конфиг ядра и далее когда в новом ядре запустишь "make menuconfig" он автоматом подхватится за основу

Задам абсолютно абсурдный

Задам абсолютно абсурдный вопрос, но пришло в голову. Что если взять конфиг от ядра скажем убунты такой же версии и подсунуть его сборщику? Соберется ли, по сути синтаксис .conf должен быть одинаков. если конечно удастся найти этот .conf.

Соберётся, за исключением

Соберётся, за исключением некоторых оций, определяемых специфичными для каждого дистрибутива патчами.
Найти .config Ubunt'ы легко: загрузитесь в Ubunt'у, затем zcat /proc/config.gz > config_UBUNTA

Я Gentoo & Funtoo

в убунте файла /proc/config.gz нету

Lupo Alberto написал(а):
Соберётся, за исключением некоторых оций, определяемых специфичными для каждого дистрибутива патчами.
Найти .config Ubunt'ы легко: загрузитесь в Ubunt'у, затем zcat /proc/config.gz > config_UBUNTA

Только вопрос заключается в том, что в убунте (по крайней мере в ливсиди) файла /proc/config.gz нетути.

Значит, не судьба :( Я с

Значит, не судьба :( Я с Ubunt'ой не сталкивался, но, думаю, можно посмотреть в /boot, возможно конфиги ядра окажутся там.
Если и в установленой Ubunt'е нет этого файла, можно перекомпилировать её ядро, включив поддержку /proc/config.gz - хотя на мой взгляд это попахивает мазохизмом :)

Я Gentoo & Funtoo

Откуда взять конфиг для

Откуда взять конфиг для перекомпиляции ядра? ;)

загружаться не нужно ;)

загружаться не нужно ;) скачиваем нужное ядро, например http://packages.ubuntu.com/intrepid/amd64/base/linux-image-2.6.27-9-generic

расжимаем и подсовываем настройки, я так сравнивал свой /usr/src/linux/.config с убунтушным :)

Вроде при старте с LiveCD он

Вроде при старте с LiveCD он пишет место нахождение конфига ядра по умолчанию, сделать что то типа cat /путь_к_файлу_конфига_ядра > /...file, ну и подсунуть этот файл для сборки. Думаю система стартанет, если fstab & загрузчик настроишь.

Спасибо за понятные

Спасибо за понятные объяснения. :)

В /boot лежит конфиг ядра у

В /boot лежит конфиг ядра у Убунты,и в лайв-си-ди тоже.Я такое пробывал делать-генкернелу пытался подсунуть конфиг Убунты-но он не стал его использовать а включил стандартный.И это понятно-в чужом конфиге включены опции которых просто нет в Гентушном ядре,они за счёт патчей вставлены-например целый большой блок про lirc в Убунте есть-соответственно конфиг этот обработаться не может.Ну и наоборот-в Убунте Гентушных патчей нет.А обшие "generic" опции нафиг не нужны,точно так же включено всё подряд-от кластерных ф.с. до всяких экзотических устройств...Конфиги посмотреть-сравнить полезно,а использовать стандарт никакого смысла нет...

:) сам не понял как, но звук

:) сам не понял как, но звук завелся. Вчера (еще не читавши про сборку ядер) наобум чего-то собрал, выставив alsa дрова модулем. имя ядра - старое, то есть само на себя собралось в старое место, alsa сделал модулем драйвера. Видно они вчера и подхватились. Сегодня собрался попробовать собрать второе ядро, просто так набрал emerge alsa-driver а оно взяло да собралось! Я непонимающе набрал alsaconf, который тут же нашел мою карточку. И заработало!

"я что-то сделал и что-то

"я что-то сделал и что-то случилось"

читай документацию http://www.gentoo.org/doc/en/alsa-guide.xml

Вот по ней и делал настройку

Вот по ней и делал настройку ядра =) а не понял, потому, что как прочел потом, ядро нужно было хоть обозвать по иному и ссылку в grub.conf указать.. а у меня старое заработало.

похоже ты не совсем

похоже ты не совсем разобрался с пересборкой ядра, попробуй мой скрипт:

#!/bin/bash
# kernel-recompile-menu
log="/var/log/linux_k-recompile"
function tm () {
        (echo;date +%F-%T) >>"$log"
}

ls -lha /usr/src/
cd /usr/src/linux
make menuconfig

echo "Удалить старое ядро и собрать новое? (д)"
read ANSWER
if [ "$ANSWER" = "l" ]; then
        echo "Начинаю:"
        mount -o remount,rw /boot && \
        make clean && tm && make && tm && (rm -r /lib/modules/*; make modules_install install) && \
        mount -o remount,ro /boot && \
        make clean && make prepare && cat /boot/System.map >/usr/src/linux/System.map && \
        module-rebuild populate && module-rebuild rebuild && \
        (du -L /boot/vmlinuz;ls -l /boot/vmlinuz|awk -F'vmlinuz-' '{print $2}') >>"$log"
fi

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".