Некоторое время назад у меня наконец-то появилась возможность перейти на Linux. Раньше я всегда использовал Slackware, но тут решил поставить Ubuntu из-за удобства менеджера пакетов. И столкнулся с необходимостью сборки нового ядра. Оказалось, что процесс немного отличается от привычного. Примечание: предполагается, что все манипуляции выполняются с привилегиями root. /bin/sh на Ubuntu 6.10 ("Edgy Eft")
В Ubuntu 6.10 /bin/sh по умолчанию является symlink'ом на /bin/dash. Это может вызвать проблемы при сборке ядра из исходных текстов, поэтому стоит сделать /bin/sh ссылкой на /bin/bash.
CODE: rm -f /bin/sh ln -s /bin/bash /bin/sh | Установка необходимых пакетов
Для начала обновляем базу даных пакетов:
Затем ставим необходимые пакеты:
CODE: apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 | Получение исходных текстов ядра
Переходим в /usr/src и скачиваем туда нужное ядро. На момент написания статьи самым новым было 2.6.20.4, поэтому комманды выглядели так:
CODE: cd /usr/src wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.4.tar.bz2 | Затем распаковываем архив и делаем нужны ссылки:
CODE: tar xjf linux-2.6.20.4.tar.bz2 ln -s linux-2.6.20.4 linux cd /usr/src/linux | В случае, если нужно установить какой-либо patch для ядра (предположим, это patch.bz2), выполняем примерно такие манипуляции находясь в папке /usr/src/linux:
CODE: bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run bzip2 -dc /usr/src/patch.bz2 | patch -p1 | Настройка ядра
Разумно будет в качестве основы использовать конфигурацию текущего (работающего) ядра:
CODE: cp /boot/config-`uname -r` ./.config | Теперь можно приступать к ручной настройке:
Перед тем, как менять параметры ядра нужно зайти в Load an Alternate Configuration File и выбрать .config, который мы получили до этого. По окончании настройки нужно не забыть сохранить изменения на выходе. Сборка ядра
Последовательно запускаем две команды:
CODE: make-kpkg clean fakeroot make-kpkg --initrd --append-to-version -someCustomText kernel_image kernel_headers | Примечание: вместо someCustomText можно вставить свой текст, который будет добавлен к версии ядра. Единственное, что этот текст не должен содержать пробелов.
Учтите, что сборка ядра - процесс долгий. Придется подождать. Установка нового ядра
По окончании сборки в папке /usr/src должны появится два .deb-файла. В моем случае это были linux-headers-2.6.20.4-ac97hacks_2.6.20.4-ubuntu-ac97-hacks-10.00.Custom_i386.deb и linux-image-2.6.20.4-ac97hacks_2.6.20.4-ubuntu-ac97-hacks-10.00.Custom_i386.deb. Собственно, их и надо установить:
CODE: dpkg -i linux-image-2.6.20.4-ac97hacks_2.6.20.4-ubuntu-ac97-hacks-10.00.Custom_i386.deb dpkg -i linux-headers-2.6.20.4-ac97hacks_2.6.20.4-ubuntu-ac97-hacks-10.00.Custom_i386.deb | Теперь проверяем настройки загрузки (/boot/grub/menu.lst). В моем случае там появились такие строки:
CODE: title Ubuntu, kernel 2.6.20.4-ac97hacks root (hd0,0) kernel /boot/vmlinuz-2.6.20.4-ac97hacks root=/dev/hda1 ro quiet splash initrd /boot/initrd.img-2.6.20.4-ac97hacks quiet savedefault boot title Ubuntu, kernel 2.6.20.4-ac97hacks (recovery mode) root (hd0,0) kernel /boot/vmlinuz-2.6.20.4-ac97hacks root=/dev/hda1 ro single initrd /boot/initrd.img-2.6.20.4-ac97hacks boot | Теперь можно перезагрузиться:
И после загрузки проверить версию ядра: Эта команда должна вывести что-то вроде 2.6.20.4-ac97hacks.
В случае, если система не загружается с новым ядром, зайдите в меню GRUB (нажав Esc в начале загрузки) и выберите более старое, стабильное ядро. |
Комментариев нет:
Отправить комментарий