Сборка ядра

Сидеть на штатном ядре, на мой взгляд просто оригинальное извращение. Если есть желание доверить оптимизацию и настройку своей систему разрабам - велком в Mac OSX где все сделано за вас и для вас. Не говоря уже о том, что часто так жить просто не удастся. К примеру попытка установить дебиан stable через net install на какой-нибудь свежий ноут часто просто закончится неудачей, так как штатное ядро не поддерживает многие из современных сетевых карт. И пр. пр.

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

Касаемо сборки, самый простой способ на мой взгляд, делать это в арче через ABS. Это удобный инструмент, отказываться от которого просто грех. Что же касается того, что где-то, у кого-то, и что-то не собралось (тут писали про AWN) то это просто вопрос того, насколько вы освоили сей инструмент. Небольшая правка PKGBUILD и все работает. Кстати, что касается багов, то mkinitcpio - действительно глючная штука, которая иногда совсем не хочет правильно создавать образ и делает систему незагрузочной. Ради эксперимента просто тупо обновил ядро из реп и получил в итоге черный экран. Но не суть, mkinitcpio при сборке ядра в целом просто балласт, от которого легко и просто избавится, не плодя сущностей без нужды. Лотерея, которая к тому же не дает ничего, кроме лишнего гемороя.

сборка без initrd.

Совсем не обязательно пытатся ваять монолитное ядро, пытаясь вкомпилить в него все нужное, от и до. Для отказа от initrd нам понадобится всего лишь несколько пунктов. В качестве первого шага заходим в раздел Device drivers из главного меню. Там нам понадобятся Block devices и Misc devices. Выбрасываем все лишнее, ставим модулями нужное (Loopback device support к примеру) и грохаем Ram block device support -оно нам больше не понадобится. Не пригодится нам больше и Initial RAM filesystem из главного раздела. ATA/ATAPI/MFM/RLL support вместе со всем многообразием подпунктов тоже отключаем вглухую. И заходим в SCSI device support. Это один из самых важных шагов.Практически все пункты этого меню можно безболезненно отключить, кроме основных, которые мы вкомпилим в ядро. НЕ МОДУЛЯМИ, а именно вобъем их в ядро поставив звездочки - иначе система не будет грузиться. Нам понадобятся SCSI disk support, SCSI CDROM support и SCSI generic. Впрочем последнюю можно вбить и модулем, как показала практика, система эта переживет ;)
Второй шаг - Serial ATA (prod) and Parallel ATA (experimental) drivers.
Там звездочками вбиваем ATA ACPI Support, SATA Port Multiplier support, ATA SFF support и то, что относится именно к вашему чипсету - лишнее само собой грохаем. Третий и завершаюший этап - меню File system. Все нужные нам файловые системы которые вы используете вбиваем звездами. Все, ядро без initrd собрано. Makepkg -f, правка граба и можно загружаться. Если делаем через штатный PKGBUILD без правки, то в итоге соберутся и kernel26.img + fallback, но их можно со спокойной совестью удалить - они нам боле не понадобятся. (но проще конечно взять PKGBUILD из инструкции которую приводили выше в треде, или наваять свое)

зы: Кстати, в ABS в разделе testing можно уже спокойно собрать новое 2.6.30, но предварительно придется поставить kernel-frimware и в качестве подводных камней следует учесть то, что установка дров nvidia из реп в этом случае, станет большой проблемой. Просто pacman -S nvidia уже не покатит. Как решение - просто качаем свежие дрова с оф. сайта. И при сборке не забываем отключать nvidia фрамбуфер! Иначе про дрова можно забыть.

зыы: консоль. Поскольку жить в консоли с резолюцией 640 на 480 в наше время уже просто брутально, вбиваем в ядре Vesa VGA support - НЕ модулем. И кстати, совсем не обязательно как вы писали возвращать назад настройки, или перекидывать все в другие директории - после окончания сборки делаем sudo abs и все вернется на круги своя после обычной синхронизации, все лишнее будет удалено автоматически. АВS умный инструмент.

будут вопросы - пишите.
shade dot list.ru
По поводу первого поста в топике этом. Обычно, если собираешь ядро не “умным” способом, а в лоб, заходя в /usr/src/linux, то все пересборки ядра идут без повторной персборки каждого модуля, который уже собирался в первый раз. Так к примеру, если я в первый раз соберу ядро и во второй раз захочу его пересобрать, добавив лишь поддержку какой-нибудь аудиокарточки, то компилироваться будет фактически лишь модуль этой железки, а не все и вся заново.

В случае же с тем подходом, который был описан автором первого поста, система тупо пересобирает все и вся заново. То есть, нужно удалять “src” каталог. Система заново распаковывает архив, заново патчит его и заново компилирует. Вот, патчинг в PKGBUILD закомментить мона, а вот распаковку архива заново - запутался, где это в PKGBUILD.
Как-то не красиво все заново собирать, если нуно подправить лишь одну какую-то козюльку и заново все пересобрать..

:) Есть у кого идеи, что нужно закомментировать в PKGBUILD? :)
cat /usr/bin/makepkg
Разберемся, голубчик!
Амиго, проще же можно :)

просто LANG=C makepkg –help

да, опять с переводом намутили, в русском варианте две опции –source с разным описанием.
systemd должен умереть.
Собрал ядро без initrd, думал будет побыстрее грузиться, но система тупит 5-7 секунд на “Loading UDev uevents”, на родном ядре это проскакивает за секунду :-[ Как можно это ускорить?
Павел,значит что то собрал не так, никогда подобного небыло. Возможно проблема в udev.Что то меня терзают смутные сомнения.вобщем дело было так. Решил собрать 2.6.31 собираю со старым конфигом, виснет на моменте монтирования корня. Выводилось waiting for device /dev/sda6 и все потом надпись что типа данное устройство не найдено и баста.сразу дошло что из за initrd создал новый все загрузилось. Так вот сейчас иногда виснет на инициализации usb, и если ядро одной и той же версии пересобрать с немного другим конфигом то грузиться отказывается по той же причине. Пересоздав инитрд все норм. Никто не помнит всегда надо было пересоздавать ,а то мне кажется что то тут не то и раньше так небыло?
Разобрался, сам виноват - почемуто оказался включенным пункт CONFIG_SYSFS_DEPRECATED_V2 на что и оюнаружилась ругань в dmecg.
Такой вопрос, zen-kernel кто-нибудь пробовал? дает ли это какой-нибудь видимый эффект на десктопе?
PS ядро раньше не разу не собирал, побудило меня к этому просто реактивная скорость системы,хочется выжать из моего старого компа все по максимуму =)
Да, собирайте “под себя”. Тем более, что компьютер у вас старенький-слабенький. Эта операция даст прирост 2% к производительность и минус сколько-то к объему, и минус время затраченное на пересборку и поддержание в актуальном состоянии системы в целом.

Кроме скилла и геморроя ничего не получите. Поэтому лучше всего взяться сразу за gentoo, т.к. arch прежде всего бинарный дистрибутив. :)
Разберемся, голубчик!
Я может быть скажу очевидность на уровне капитана, но в исходных текстах ванильного ядра есть файл README в котором описана сборка и установка этого самого ядра. А еще там есть директория Documentation….
 
Зарегистрироваться или войдите чтобы оставить сообщение.