nixp.ru v3.0

29 мая 2017,
понедельник,
08:57:36 MSK

DevOps с компанией «Флант»
Аватар пользователя REDkiy
REDkiy написал 30 октября 2005 года в 23:04 (305 просмотров) Ведет себя как мужчина; открыл 89 тем в форуме, оставил 593 комментария на сайте.

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

У меня Debian «Sarge», компилил ядро для этой системы в первый раз.

Дал такие команды.

make menuconfig
make bzImage
make modules
make modules_install
make install

Компиляция прошла без проблем. Но! Ни в каталоге /boot, ни в каталоге /usr/src/linux-2.6.12 нет файла initrd.img-2.6.12. Все остальные есть. Вроде бы при конфигурировании включил все опции относящиеся к поддержке RAM-диска. В чём может быть дело? Ядро версии 2.6.12. Спасибо.

З.Ы. Пакет oprofile не установлен.

Sasha2

Ну лучше пользоваться так:

make clean (все чистим)

make all (все компиилируем в том числе и intrd)

make modules_install (устанавливаем модули)

make install (устнавливаем ядро)

А в твоей последовательности просто нет цели для initrd.

REDkiy

Для версии 2.6.10, прокатило хм.

REDkiy

Но я попробую твой вариант.

REDkiy

Не прошла сия задумка 8-)))!!!

Нет этого долбаного образа нигде.

cyb3rpunk

Попробуй наложить какой-нить патч — авось поможет, желательно поновей

Sasha2

Еще что касается initrd то на этом же форуме есть статья по файловой системе ext3, там тоже говорится, как в Debian отрабатывать initrd

REDkiy

Достал исходники 2.6.14. Сегодня компилить небуду. Надоело ложиться спать в 2-4 утра.

Sasha2

Ну что касается исходников, то они уже есть в unstable ветке Debian. Можно, при желании (а они наверно наилущим образом подходят для Debian, так как все же какое то отношение к ним команда разработчиков имеет), взять исходники оттуда. Но вот только снова может возникнуть проблема с драйверами для ATI. Если ты запустишь инсталлер от ATI с опцией --get-supported, то увидишь список того, что этими драйверами поддерживается (имеется ввиду список дистрибутивов с указанием версий). Не думаю, что эти драйвера уже готовы «отдаться» ядру 2.16.14.

Вообще, а стоит ли лезть вперед батьки.

Особых прелестей от третиьх чисел в версии не так уж и много.

Зато, таких ситуаций, когда что-то работало, а потом перестает работать (при увеличении номера) хватает вполне.

REDkiy

Мой вариант nVidia, они меня пока не подводили.

Зато, таких ситуаций, когда что-то работало, а потом перестает работать (при увеличении номера) хватает вполне.

Хм????

REDkiy

Скомпилировал я 2.6.14. Такая же ерунда. Что делать, и в чём может быть дело?

REDkiy

Скомпилировал ядро 2.6.14.

Установил.

initrd нет.

Так, я ему команду

mkinitrd -o /boot/initrd.img-2.6.14red

И в grub:

title            Debian GNU/Linux, kernel 2.6.14red
root            (hd0,1)
kernel            /boot/vmlinuz-2.6.14red root=/dev/hdc2 ro
initrd            /boot/initrd.img-2.6.14red
savedefault
boot

Так он мне при загрузке пишет:

modprobe: FATAL: Could not load: /lib/modules/2.6.14red/modules.dep: No sush file or directory

Сейчас то в чём дело?

daemonBSD_PowerPC

такая же хрень у меня была в SuSE 10 часа два назад ядро встала линк на vmlinuz прописал образок в /boot лежит все ок, а initrd нету

после перезагрузки хана орет где initrd восстанавливайся

в ядре особо много не удалял даже

REDkiy

Я собрал ядро без поддержки модулей, прилично повыбрасывал. Получилось размером около 3,2 мб. Но ребята у меня видяха от nVidia, да и вообще, десктоп, а не сервер. Модули нужны.

Genie

ох… initrd необходим только для ядер, которые не содержат внутри себя статично драйверов устройств, которые предоставляют доступ к корневой fs.

поэтому эти (и другие) модулю кладутся в initrd.

всё остальное можно собрать и модулями и не заморачиваться сборкой этого initrd.

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

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

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

Это понятно, но! какие именно включить? Я не прошу ответа типа, если у тебя такая-то карточка, то такой-то драйвер.

А структурно:

1. драйвер материнской платы.

2. драйвер жёсткого диска,

3. поддержку ext2, ext3, reiserfs,

4. поддержку cramfs,

5. драйвер VESA для видео,

и т.п.

Не сочтите за труд.

Genie

берёшь дистрибутивное ядро.

грузишься. для надёжности — в init 1.

то, что у тебя оказывается подгруженным в lsmod — то можно почти всё компилировать статически. но — это может быть много бОльшим, так как часть может быть подгружена by hotplug.

и именно так, как и написал — драйвер материнской платы, драйвера контроллера ide/sata/scsi, драйвера корневой и пр. fs, …

в общем, всё то, что необходимо для начальной загрузки до запуска init. то есть лучше даже не в init 1 грузиться, а в init=/bin/sh.

и смотреть, что загружено.

вот это и нужно для загрузки. минимально.

REDkiy

Всё решилось когда я включил в ядро модули матери, контроллера дисков и ext2, ext3, reiserfs.

Как и было сказано выше, не понадобился даже initrd. Дрова на мой GeForce 2 MX 400, встали без проблем и так же без проблем заработали. Всем огромное спасибо. Думаю тему можно прикрыть. Пожалуй стоит написать обзорную статью. Чтобы потом не мучали. 8-))).

REDkiy

Первое сообщение было добавлено — 30.10.2005 в 23:04:53

Сообщение о решении проблемы — 8.11.2005 в 22:24:49

Девять дней. Мдя.

Sasha2

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

А потом я действовал так: Одно ядро у меня заведомо рабочее (со всеми initrd). В качестве такового я использовал точно такое же ядро, но для однопроцессорной архитектуры.

Далее скопировал куда-либо .config, само ядро, его map и initrd, и дплее по одной двум опциям компилил (если, что-то не так), загруз на однопроцессорном ядре и откат обратно (рабочие .config, само ядро, его map на прежние места) и заново.

ПОнятно времени ущло очень много (в день то 10-15 компиляций всего успеваешь проделать). Зато потом все настройки (которые работают на моей тачке) уже сами зазубрились.

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

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

REDkiy

У меня была статья по которой я удачно скомпилил ядро в ASPLinux 9. 2.6.10 ещё.

Путающим фактором пожалуй было отсутствие initrd. Узнав что initrd не особо нужен. Я просто прикинул что нужно для работы ядра включил это в него и всё.