LINUX.ORG.RU

Что почитать по ядру?

 ,


5

4

Осваиваюсь с gentoo, решил собрать ядро по нормальному(поначалу напихал все как попало и совершенно забыл про модули, в общем кошмар). Что посоветуете почитать по этой теме?

Интересует: Минимальный набор необходимого для работы, как определить что требуется для системы и что из этого стоит впихнуть в ядро, а что отдать под модули.

P.S. В сети довольно много информации, но она частично устаревшая, частично дублируется, частично вообще не о том, на свои вопросы четких ответов не могу найти.

P.P.S. Еще есть идея взять конфиг от debian и собрать ядро на его основе, но какой смысл тогда изучать gentoo?

Deleted

Последнее исправление: log4tmp (всего исправлений: 1)

Ответ на: комментарий от sunny1983

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

там мне совсем чуть-чуть производительности не хватало. Когда я вкомпиллил все модули прямо в ядро, и убрал поддержку всего ненужного, ядро стало компактным, и за счёт этого(вероятно) немножко быстрее. Загрузка CPU стала где-то 95%.

Но это мне было нефиг делать, jff.

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

Или ты == Патрег?

Я не ведущий разработчик дистрибутива - это факт. Но в разработке учавствую. Да, я не разрабатываю непосредственно ядро, но в кое-какие исходники вкуривался, поэтому автоматизировать процесс сборки ядра со своим конфигом и его последующего безболезнего обновления - могу. А мне больше и не надо.

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

ты точно уверен, что у тебя это получится лучше и быстрее, чем у Патрика?

Это сверх сложная задача?

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

В конфиге и есть разница.

вот diff на pastebin и покажи.

Результат настройки ядра ограничивается только скоростью загрузки и местом в оперативке?

ИМХО да.

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

Я не ведущий разработчик дистрибутива - это факт. Но в разработке учавствую

вот видишь? А я — не участвую. Как и 99.9999% остальных лоровцев. Т.е. это не просто «нинужно», а "(почти)никому не нужно".

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

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

Единственный недостаток - ядро страшно собирать самому первые раз 10-20.

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

Когда понял, что ядра, собираемые мэйнтэйнерами некоторых дистрибутивов работают мягко говоря хреновее тех, что собираю я.

с этим согласен. Однако не проще-ли найти грамотного мейнтейнера, который собирает ядра не хуже?

Единственный недостаток - ядро страшно собирать самому первые раз 10-20.

мне и в первый раз было не страшно. Только долго, муторно, и нудно. Но если тебе нравится...

emulek
()

Во насоветовали-то.

Человек совсем испугался.

Ничего сложного в сборке ядра (или других программ) нет!

«Не боги горшки обжигают»

Идешь на kernel.org скачиваешь, ну скажем linux-2.0.32 (эх, люблю я его..классное время было).

Можешь в виртуальной машине старый дистрибутив поставить. Можешь попробовать и так поиграться. Тебе же не важно его собрать, чтобы работало. Тебе важно посмотреть на опции и модули.

Т.к. опций там мало на все про все у тебя уйдет пара часов.

Открою тебе секрет, что в то время на всех форумах писали, что администратор UNIX должен уметь компилить ядро сам.

А дальше плавно переходишь к следующим версиям, читая что изменилось.

Всегда можешь собрать ядро да и всю систему LFS ( Linux From Scratch Линукс из ничего) в виртуальной машине.

Что же до того ядра, которое я тебе посоветовал, оно стояло в дистрибутиве RedHat 5.0 (первая любовь не забывается :-)

Удачи!

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

ядро страшно собирать самому первые раз 10-20

Ох уж эти разработчики генту.

anonymous
()

Что посоветуете почитать по этой теме?

1. help, который встроен в make menuconfig
2. wiki по темам, которые интересуют
3. выхлопы emerge

Поясняю.
1. Дефолтное ядро вполне рабочее. На этапе конфигурации просто пройдись по нему и по выключай/выключай что нужно из того что понял. Если ты не понял о чем пункт - просто не трогай. Да, и поначалу 1) ничего не выключай 2) ничего не оптимизируй, кроме установки модели процессора.
2. Когда будешь читать wiki по нужным вещам, там будет написано какие опции ядра нужны. Не пытайся самостоятельно разобраться в сложной структуре ядра и принципах его работы. Выхлопы emerge иногда тоже подсказывают.

Забекапь рабочий конфиг.

После первой загрузки убедись, что все нужные фичи работают. Следующий шаг - сделать lsmod , а потом вкомпилить все модули, из тех, кторорые выдал lsmod в ядро (по-моему даже есть какая-то команда, которая это делает автоматом - не помню). Цель - как минимум избавиться от initrd.

Забекапь рабочий конфиг.

Далее оптимизируй, играйся сколько хочешь.

P. S. Иногда к нужному результату приводит не знания, а подход.

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 1)

Какой-нибудь англо-русский словарь для начала.

Актуальная информация на английском же.

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

Цель - как минимум избавиться от initrd.

Учись ходить на руках и ориентироваться по звуку. Цель — как минимум отпилить ноги и выколоть глаза.

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

Учись ходить на руках и ориентироваться по звуку. Цель — как минимум отпилить ноги и выколоть глаза.

Выдыхай

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

Назови хоть один плюс от отсутствия initrd.

initrd - лишняя сущность. Больше телодвижений.

А теперь ты назови хоть один плюс у initrd (кроме тех случаев, когда без него никак).

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 1)
Ответ на: комментарий от Kroz

initrd - лишняя сущность. Больше телодвижений.
Цель - как минимум избавиться от initrd

Чувак, ты предлагаешь _делать_ телодвижения, чтобы избавиться от initrd. При этом сам признаёшь, что в некоторых случаях он _необходим_. Дольше компилять? Это гента, тут только и делают, что компиляют. При этом только попробуй заявить об этом, как о недостатке генты, как налетают гентушники «не смотри на выхлоп, компиляй в фоне», «компиляй ночью», «компиляй на сервере», «файрфокс и либреофис можно и в бинарном виде поставить», «электричество нынче дешёвое», «нищеброд, восьмиядерники от АМД копейки стоят».

А теперь ты назови хоть один плюс у initrd (кроме тех случаев, когда без него никак).

Наличие самих этих случаев уже большой плюс. kernel+initrd+modules гораздо более гибкое и универсальное решение, чем static kernel, при мизерном увеличении накладных расходов.

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

Наличие самих этих случаев
более гибкое и универсальное решение
только попробуй заявить

Показатель сферических коней в вакууме и слюнявых брызг на единицу сообщения зашкаливает. Разговор бесполезен.

2 TC: Если есть дополнительные вопросы - задавай, буду рад помочь.

Kroz ★★★★★
()
cd /usr/src/linux
make help

смотришь на опцию: defconfig - New config with default from ARCH supplied defconfig

создаешь дефолтный конфиг для твоей архитектуры почти все готово по этой части (потом допилишь)

lspci -k подключаешь модули для своего железа

firmware к ним

make menuconfig

в каталоге исходников ядра есть Documentation

есть сайт ядро для новичков, тоже там есть много интересного.

по каждому специфичному оборудованию смотришь wiki и спрашиваешь на форуме генты и,или по IRC

make && make modules_install

для меня это работает вполне.

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

но какой смысл тогда изучать gentoo?

А как связаны сборка ядра и изучение генты?

Вообще никак, но в debian о таком не задумываешься т.к. система все делает за тебя...и делает правильно.

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

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

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

Правда есть genkernel - который соберет ядро по-максимуму.

Излишне по максимому, оно зачем-то мне busybox собирать стало.

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

И как успехи со сборкой?

Кстати такой вопрос: вот три вида систем можно выделить: сервер, десктоп и ноутбук. По идее для них три совершенно разные конфигурации ядра должны быть или можно одно на всех? В Debian ядро 3.2 представлено пакетами linux-image и linux-image-rt. В Slackware ядро 3.10 существует в виде kernel-generic и kernel-huge. В чём там разница: в поддежрке специфического серверного железа типа RAID10-контролеров или в чём?

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

Сейчас последовал совету и сравниваю дефолтный gentoo-конфиг и конфиг debian, разбираюсь в неизвестных обозначениях.

вот три вида систем можно выделить: сервер, десктоп и ноутбук. По идее для них три совершенно разные конфигурации ядра должны быть или можно одно на всех?

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

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

оно зачем-то мне busybox собирать стало

При genkernel all собирается также initramfs, куда кладётся минималистичный rescue-shell - busybox. Его сборку и установку можно отключить либо параметром либо в /etc/genkernel.conf

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