Давно я уже сюда ничего не писал. Да просто особенно-то и нечего было. Ну, подумаешь, Mageia 3 Beta -- сраный глюкодром. Подумаешь, перешёл на openSUSE, подумаешь, вернул Slackware на свой старый ноутбук и потребовалось пересобрать ядро...
Эта статья для тех пользователей Slackware, кому это может пригодиться, т.е. если Вы хотите "опакетить" свежесобранное ядро.
Я покажу как собрать пакет с ядром на примере самого свежего на данный момент LTS-ядра -- 3.4.27
Переходим в директорию /usr/src, затем скачиваем исходники ядра и распаковываем их.
Обычно скачивается архив tar.bz2, а не tar.xz, но я скачал tar.xz просто потому, что оно весит на 12 МиБ меньше, просто экономия времени и трафика :-)
Теперь удаляем симлинк на текущее ядро и создаём симлинк для того, которое мы сейчас соберём
Теперь нужно сконфигурировать исходники ядра. Надеюсь, объяснять что это и зачем не нужно. Вот несколько способов:
1) Использовать готовый конфиг от сами-знаете-кого
Я покажу как собрать пакет с ядром на примере самого свежего на данный момент LTS-ядра -- 3.4.27
Переходим в директорию /usr/src, затем скачиваем исходники ядра и распаковываем их.
# cd /usr/src
# wget http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.27.tar.xz
# tar -xvf linux-3.4.27.tar.xz
# wget http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.27.tar.xz
# tar -xvf linux-3.4.27.tar.xz
Обычно скачивается архив tar.bz2, а не tar.xz, но я скачал tar.xz просто потому, что оно весит на 12 МиБ меньше, просто экономия времени и трафика :-)
Теперь удаляем симлинк на текущее ядро и создаём симлинк для того, которое мы сейчас соберём
# rm linux
# ln -s linux-3.4.27 linux
# cd linux
# ln -s linux-3.4.27 linux
# cd linux
Теперь нужно сконфигурировать исходники ядра. Надеюсь, объяснять что это и зачем не нужно. Вот несколько способов:
1) Использовать готовый конфиг от сами-знаете-кого
# wget http://slackware.rol.ru/slackware/slackware-14.0/source/k/config-x86/config-huge-smp-3.2.29-smp
# cp config-huge-smp-3.2.29-smp /usr/src/linux/.config
# cp config-huge-smp-3.2.29-smp /usr/src/linux/.config
2) Использовать текущий (может не работать)
# zcat /proc/config.gz > /usr/src/linux/.config
3) И самый любимый всеми:
# make menuconfig
Теперь собираем ядро (это может быть очень долго, особенно на старом железе):
# make bzImage -j3
Это сборка самого "бинарника" ядра, который будет загружать всю систему и модули. -j3 -- это количество потоков компиляции, обычно используется значение "(количество ядер процессора) +1"
Теперь пора "опакетить" это дело! :-)
АХТУНГ! Перед тем, как запустить слакбилд, отредактируйте его, исправив указанную в нём версию ядра на ту, которую Вы собираете.
# wget http://slackware.rol.ru/slackware/slackware-current/source/k/packaging-x86/kernel-huge-smp/kernel-huge-smp.SlackBuild
# chmod +x ./kernel-huge-smp.SlackBuild
# ./kernel-huge-smp.SlackBuild
# chmod +x ./kernel-huge-smp.SlackBuild
# ./kernel-huge-smp.SlackBuild
Настала пора собирать модули:
# make modules -j3 && make modules_install
Понятно, да? Теперь запаковываем их в пакет:
АХТУНГ! Перед тем, как запустить слакбилд, отредактируйте его, исправив указанную в нём версию ядра на ту, которую Вы собираете. [2]
# wget http://slackware.rol.ru/slackware/slackware-current/source/k/packaging-x86/kernel-modules-smp/kernel-modules-smp.SlackBuild
# wget http://slackware.rol.ru/slackware/slackware-current/source/k/packaging-x86/kernel-modules-smp/rc.modules.new
# chmod +x ./kernel-modules-smp.SlackBuild
# ./kernel-modules-smp.SlackBuild
# wget http://slackware.rol.ru/slackware/slackware-current/source/k/packaging-x86/kernel-modules-smp/rc.modules.new
# chmod +x ./kernel-modules-smp.SlackBuild
# ./kernel-modules-smp.SlackBuild
Файл rc.modules.new скачать необходимо, т.к. он будет отвечать за подключение модулей ядра при включении компьютера и без него пакет может не собраться.
В принципе, это всё. Если вы уверены на 146%, что Ваше ядро окажется полностью рабочим, то его можно установить:
Если всё понравится, то старое ядро можно удалить. Только не забудьте сначала подправить загрузчик:
Всё. Можно загружаться в новое ядро. Удачи! ;-)
# installpkg /tmp/kernel-modules-smp-3.4.27_smp-i686-1.txz /tmp/kernel-huge-smp-3.4.27_smp-i686-1.txz
Если всё понравится, то старое ядро можно удалить. Только не забудьте сначала подправить загрузчик:
# nano /etc/lilo.conf && lilo
Всё. Можно загружаться в новое ядро. Удачи! ;-)