
Сборка ядра в Debian.
Перед тем как начать задумайтесь зачем Вам это надо и действительно ли Вам не хватает тех возможностей, что вложены в репозиторные ядра..
Для особо не понятливых обозначу моменты когда ручная сборка ядра действительно оправдана.
1. Померятся пиписьками с друзьями (мол у кого ядро свежее у того длиннее)
2. В вашем супер компьютере есть особо уникальное железо, поддержка которого появилась только в самом свежим ядре, а ждать пока оно появится в репозитории нету мочи.
3. У Вас особо пытливый ум и руки вечно чешутся в предвкушении чего нить поковырять. В общем есть неукротимое желание получше/ поближе познакомится с внутренним миром Linux.
4. Бесконечная тяга ко всякого рода оптимизациям. Хочется форсировать свое ядро до состояния мгновенной загрузки путем выкидывания из его состава всего на хрен ненужного.
5. Больная голова рукам покоя не дает.
6. Додумайте сами…..
Случаи когда ручная сборка блажь и потеря времени.
1. Система относительно статична, железо меняется редко и оно достаточно распространено дабы иметь поддержку в репозиторных ядрах.
2. Целевая система «боевой» сервер. В данном случае мнения могут расходится, я же считаю, что официальных фиксов вполне хватает, благо в Debian они выходят достаточно оперативно (В зависимости от степени критичности найденной уязвимости или бага). Но есть и исключения.
3. Случаи противоречащие мотивирующим фактором (см. Первые 6 пунктов).
Если же Вы все таки решились то данный гайд для вас. Впрочем таких (или подобных) гайдов тысячи. Каждый по своему полезен и содержит (хотя вполне возможно и нет)
какую то уникальную и особо значимую информацию.
Я же постараюсь изложить процесс сборки максимально просто и доходчиво, обходя частности и тонкости. Почему обходя? Да потому, что частности в данном случае сугубо индивидуальны и субъективны, спрогнозировать возможные накладки в процессе сборки довольно таки трудно. хотя особо часто возникающие проблемы и методы их устранения я опишу (вероятно в отдельной статье).
И так приступим.
1. Для начала качаем последний стабильный релиз ядра с kernel.org (Внимание для тех у кого лимитированный интернет! Размер архива с исходным кодом ядра, примерно 55-60 Mb ) и установим необходимые для сборки пакеты.
1
| apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential |
2. Создаем директорию где будем собирать наше «ванильное ядро». Рекомендуют делать это в /usr/local/src, я же советую сделать директорию home/${USER}/srс. В созданную директорию копируем скаченный архив с исходными кодами ядра.
3. Далее распаковываем его.
1
| tar -xvf ./linux-2.6.31.tar.bz2 |
4. Переходим в полученную директорию.
5. Если есть необходимость накатить патчи.
1 2
| bzip2 -dc ./patch.bz2 | patch -p1 --dry-run
bzip2 -dc ./patch.bz2 | patch -p1 |
6. Далее копируем текущий конфигурационный файл ядра.
1
| make clean && make mrpropercp /boot/config-2.6.30-2-686 ./config |
7. Конфигурируем ядро (если надо конечно).
Собственно самый ответственный момент во всем процессе. Сем занятием можно предаваться очень долго и в несколько подходов в зависимости от степени осознанности того, что Вы желаете получить на выходе. Настоятельно рекомендую подходить к этому процессу максимально серьезно, хотя бы ради экономии времени на повторную сборку в случае неудачи. Прежде чем что-то выключить или наоборот включить надо бы вопросить совета у всезнающего google.com или вызвать контекстную справку нажатием клавиши «?».
make menuconfig
По завершению конфигурации незабываем сохранить изменения.
Для пущего ускорения процесса рекомендую сделать следующее:
export CONCURRENCY_LEVEL=X – где «Х», это число ядер вашего процессора +1.
8. Далее надо собрать ядро.
1
| make-kpkg clean && fakeroot make-kpkg --initrd --append-to-version=-${user} kernel_image kernel_headers |
Процесс сборки займет Ваш компьютер на время от 1 часа до бесконечности
.
Если процесс не завершится ошибкой то в итоге мы получим два .deb фала
linux-image-2.6.31-${username}_2.6.31-${username}-10.00.Custom_i386.deb – собственно само ядро.
linux-headers-2.6.31-${username}_2.6.31-${username}-10.00.Custom_i386.deb – заголовочные фалы ядра.
Разумеется их нужно проинсталлировать.
1 2
| dpkg -i [ядро].deb
dpkg -i [заголовки].deb |
В процессе инсталляции в Grub будет добавлен новый пункт меню с версией Вашего ядра.
Делаем reboot и грузимся под новым ядром. Скорее всего у Вас отвалится модуль ядра драйвера видео карты его нужно будет пересобрать. И я кратко опишу это действо.
Ставить мы будем бинарные драйвера от NVidia. Владельцам карт от ATI большой сори.
Качаем свежие драйвера для вашей видео-карты с сайта nvidia.com, будет что-то вроде этого.
NVIDIA-Linux-x86-185.18.36-pkg1.run – сей драйвер для 7 серии видео-карт.
Ну а дальше все просто.
Жмем Ctrl+Alt+F1
/etc/init.d/gdm stop -Нужно это в случае если на системе стоял X сервер (графическая оболочка) который после перезагрузки заявит вам об ошибке в работе драйвера, предварительно несколько раз мигнув дисплеем в тщетной попытке запуститься.
Переходим в директорию с фалом драйвера и запускаем его..
1
| sh ./NVIDIA-Linux-x86-185.18.36-pkg1.run |
Дополнительные параметры запуска можно посмотреть запустив драйвер с ключом -h
Далее следуем инструкциям инсталлятора не забывая при этом отказаться от предложения поискать готовый модуль ядра на сайте производителя. один хрен ничего он там не найдет.
После того как все будет завершено запускаем gdm командой /etc/init.d/gdm start
Ну вот вроде и все.
С радостью отвечу на вопросы.