LINUX.ORG.RU

Создать .config для сборки ядра


0

0

Решил обновить ядро. Довольно муторное это занятие. Как создать .config файл под свое железо? Я так понимаю Make oldconfig создает конфиг по результатам сканирования железа? Так почему тогда в сгенерированном им конфиге, так много драйверов под несуществующее железо в моей системе? Существует ли что либо (софт, команда, опция) чтобы автоматизировать процесс создания конфиг файла? Скажем выполнил команду, пошел тест железа, создался черновой конфиг. А уже остальное можно ручками поправить.

make allnoconfig . А дальше - конфигурируй в свое удовольствие . минимализм и ничего лишнего

ss85
()

>Скажем выполнил команду, пошел тест железа, создался черновой конфиг. А уже остальное можно ручками поправить.

Зачем это? Хочешь сэкономить сотню мегабайт в ущерб универсальности системы?

По умолчанию обычно ядро собирается со всеми поддерживаемыми драйверами в виде модулей ядра и это правильно. Если устройство есть, его модуль загружается, если нет -- не загружается.

Делаешь make menuconfig, правишь ручками то, что нужно, далее выходишь, сохранив конфиг. Запускаешь процесс сборки. При этом драйверы всех устройств будут собраны как модули.

Demon37 ★★★★
()

>>Я так понимаю Make oldconfig создает конфиг по результатам сканирования железа?

Неверно понимаешь.

>>Скажем выполнил команду, пошел тест железа, создался черновой конфиг.

Нет такого.

gotf
()

> Я так понимаю Make oldconfig создает конфиг по результатам сканирования железа?

Нет не так.
Оно всего лишь повторяет конфиг твоего нынешнего ядра (самая безопасная отправная точка для создания своего конфига).
А под своё железо его теперь корректировать _только_ ручками, взяв на вооружение lsmod и lspci. Отправными точками для этого можно взять ещё allnoconfig (и ставить только нужные галочки) или allmodconfig (ничего лишнего в самом ядре не будет в любом случае, но драйверы всех устройств соберутся модулями, которые загрузятся только при необходимости).

Самые общие рекомендации:
- отключай debug опции;
- пройдись по файловым системам, вкомпиль в ядро те, которые у тебя есть, остальные - модулями, если думаешь, что они тебе потом понадобятся;
- в Processor type and features выбери свой процессор, если собираешь для домашнего компа - ещё kernel preemption = desktop и timer frequency = 1000 Hz (потому что например в дебиане все дистрибутивные ядра собраны под сервер);
- самые большие возможности по отключению всего и вся открываются в секции Device drivers. Здесь я в первую очередь отключаю Telephony support, Accessibility и Watchdog timer, потом прохожусь по звуковым, сетевым и проч. устройствам, отключая то, чего в моей системе нет.

Ну и напоследок:
- почти по каждой опции есть подсказки (в menuconfig читать их можно нажатием h или ? на опции), в которых как правило в конце есть указание, какой вариант выбирать при сомнениях. Если же ты прочёл подсказку и не понял, о чём речь, - то лучше не трогай это.
- Не удаляй старое ядро до тех пор, пока не убедишься в том, что на новом всё работает. Или хотя бы в том, что оно загрузится (а оно в первый раз скорее всего не загрузится ;) )

kapsh
()
Ответ на: комментарий от kapsh

>>timer frequency = 1000 Hz

Во-первых, тогда уж лучше tickless. Во-вторых, мне так и не удалось ощутить разницы между 100, 1000 и tickless на 2.6.26 (64-bit).

gotf
()
Ответ на: комментарий от gotf

> не удалось ощутить разницы
> 64-bit


Поставь себе 486-ой и ты её почуствуешь :]

kapsh
()
Ответ на: комментарий от Demon37

> Зачем это? Хочешь сэкономить сотню мегабайт в ущерб универсальности системы?

Я ведь сказал цетирую "по результатам сканирования железа!" Зачем мне универсальность? Мне не нужен лишний хлам. Иначе бы вопросов не задавал.А как всё это собрать, я и так знаю.

Спасибо за интересные рекомендации. Извращения с ядром продолжаются. Так что будут интересные мысли дилитесь. С удовольствием почитаем.

Humaxoid
() автор топика
Ответ на: комментарий от Humaxoid

Как вариант make menuconfig

Там Load config (или как-то так) и выбираешь старый, далее вносишь изменения и сохраняешь

shamazmazum
()
Ответ на: комментарий от Humaxoid

>Я ведь сказал цетирую "по результатам сканирования железа!" Зачем мне универсальность? Мне не нужен лишний хлам. Иначе бы вопросов не задавал.А как всё это собрать, я и так знаю.

Зачем нужна универсальность? Странный вопрос. Я думал тебе нужна нормально работающая в любых условиях система, поэтому и предложил наиболее оптимальный вариант.

Но раз тебе нравятся извращения, а не нормальная работа системы, то могу порекоммендовать такой инструмент как genkernel. Не знаю, правда, возможно ли его заставить работать на системах отличных от gentoo. Вот ссылка на доку: http://www.gentoo.org/doc/ru/genkernel.xml

Demon37 ★★★★
()
Ответ на: комментарий от Demon37

> тебе нужна нормально работающая в любых условиях система

Ты везде носишь с собой свою домашнюю систему? Я вот нет, и потому у меня ядро собрано строго под мой компьютер. И ТС хочет того же самого.

kapsh
()
Ответ на: комментарий от kapsh

>Ты везде носишь с собой свою домашнюю систему?

Не везде, но иногда приходится загружать со своего винта другие компьютеры.

>И ТС хочет того же самого.

Да ваше дело, конечно. genkernel я ТС'у уже посоветовал ;)

Demon37 ★★★★
()

А зачем? Нет, правда: зачем?
Ядро действительно необходимо пересобирать только если нужно наложить какой-нибудь левый патч (вроде того же модного сейчас BFQ). Всё остальное решается тупым rmmod и блеклистингом ненужных модулей. А автодетект оборудования за вас сделает udev.

Deleted
()
Ответ на: комментарий от Demon37

Ну, по крайней мере на ноутах/нетбуках вполне может быть полезно. За ссылку спасибо - тоже стало интересно.

narayan
()
Ответ на: комментарий от kapsh

>Отправными точками для этого можно взять ещё allnoconfig

Заинтересовался allnoconfig. В конфигурялке нет ничего критичного для повседневной работы в качестве десктопа? Ну там модули, бинарники, initrd, свопы понятно. О чём ещё надо помнить, используя allnoconfig?

Semp
()
Ответ на: комментарий от narayan

Ну вот собрал новое ядро 2.6.30. Всё лишнее выбросил. Кучу ненужных мне драйверов, всякие там службы которыя я никогда не буду юзать и.т.д. Запустил некоторые вещи которые по умолчанию не работали. Такие как видеозахват. Ядро стало меньше почти в два раза!!! А машинка то действительно стала гораздо быстрей бегать! Но появилась парачка новых проблем (со старым таких проблем нет). Видать чтото нужное отключил. А именно:

1.В консоли не вижу русских букв, запускаю midhight commander, а вместо русских надписей пустые места.

2. Не запускается веб.камера. Хотя драйвер для нее вкомпилирован в ядро. Скорей всего какието сервисы под USB удалил. Как посмотреть зависимости USB устройств?

И еще, подскажите как подгружать модули прям в работе? Нужно точно выяснить в чем проблема, прежде чем сувать ту или иную поддержку в ядро. Как посмотреть все ли устройства загрузились?

Humaxoid
() автор топика
Ответ на: комментарий от Humaxoid

конфиг с нуля или правка старого?
1. мог оставить поддержку не тех локалей.
2. зачем удалял?
insmod,modprobe

S_Paul ★★★★★
()

Человек, спрашивающий
> Как создать .config файл под свое железо?

явно не созрел для того, чтобы последствие от
> Решил обновить ядро

не свелось к одному из этих вариантов:
http://www.linux.org.ru/view-message.jsp?msgid=3964924&lastmod=1250760037287 [ Помогите с GRUB!!! Я в отчаянии ]
http://www.linux.org.ru/view-message.jsp?msgid=3966448&lastmod=1251067358241 [ проблема с ppp при работе с мостами ]
http://www.linux.org.ru/view-message.jsp?msgid=3963451&lastmod=1250524379563 [ Slackware не видит диски (харды) ]

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

> конфиг с нуля или правка старого?

Конфиг не с нуля. Мое ядро было 2.26.21.5-smp. Взял старый конфиг config-huge-smp-2.6.29.6-smp, т.к он наиболее близкий к ядру 2.26.30 (которое устанавливаю). Потом make menuconfig система запросила недастоющии опции, указал ей, далее начал править под себя. По отключал всё лишнее, то что не используется в моей машине. Видать чтото лишнее отключил. Завтра будет время разберусь.

> 1. мог оставить поддержку не тех локалей.

Локаль в системе установлена правильная, проверял. При загрузке старого ядра всё пучком! В новом ядре удалил подержку всяких там шрифтов arabic, japan и.т.д. Cyrilic koi8-r,cp1251 и прочее для русского оставил. (мож что пропустил, думаю что какието зависимости).

> 2. зачем удалял?

Испаравлюс, кланусь Мамой исправлус! Всьё востанавлу!

> Человек, спрашивающий > Как создать .config файл под свое железо? явно не созрел для того, чтобы последствие от > Решил обновить ядро не свелось к одному из этих вариантов:

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

P.S Спасибо Kapsh, ваши рекомендации очень пригодились! Да и всем остальным спасибо. Выясню проблему, о результатах обязательно отпишусь.

Humaxoid
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.