среда, 8 апреля 2009 г.

Компиляция ядра

Скачиваем архив с исходниками последнего стабильного ядра с http://www.kernel.org/ (2.6.29.1 полную версия, размер архива 50Mb)

Установить пакеты:
sudo apt-get install build-essential kernel-package libncurses5-dev libc6-dev qt3-apps-dev
Даем права на папку /usr/src пользователю
sudo chown -R mike /usr/src
Копируем исходники ядра в /usr/src
cp ~/linux-2.6.29.1.tar.bz2 /usr/src
Разархивируем архив
cd /usr/src
tar -xjf linux-2.6.29.1.tar.bz2


Если нужно установить патчи то копируем разархивируем патчи в папку linux-2.6.29.1
Это можно сделать так:
gunzip *.gz
bzip2 -d *.bz2
И накладываем патчи
patch -p1 -i <имя файла заплатки>
Если заплатка идеально подходит к ядру, то в выводе должны быть только строчки patching file ... Если Вы видите строчку Hunk #1 succeeded at... это означает что заплатка наложена успешно, но место наложения сдвинуто на некоторое кол-во строк. Если же Вы увидите слово Failed - то значит заплатка не подходит, нужно искать более подходящую. В этом случае лучше удалить наш каталог /usr/src/linux-2.6.29.1 и начать все сначала уже без этой заплатки

Далее, из папки /boot копируем файл config-2.6.27-7-generic
т.е. конфиг последнего рабочего ядра, в нашу папку linux-2.6.29.1 и называем его .config
cp /boot/config-2.6.27-7-generic /usr/src/linux-2.6.29.1/.config
Внимание! если вы уже пытались выполнить make xconfig ранее, то нужно почистить временные файлы соданные при предыдущей сборки
make mrproper
Даем права на нашу папку, чтобы в последствии не возникло проблем с созданием deb пакетов
chmod g-s /usr/src/linux-2.6.29.1
Выполняем команду:
sudo make xconfig
и запускается программа для создания собственной конфигурации ядра

советы по конфигурации можно почитать сдесь - http://www.linuxnsk.ru/content/view/101/36/

Сохраняем конфигурацию, и выполняем
sudo -s -H
Почистим перед выполнением сборки
make-kpkg clean
Теперь можно приступать к компиляции
make-kpkg --initrd --revision=.1 kernel_image kernel_headers
Ждем окончания компиляции, в результате, в папке /usr/src появятся два файла linux-headers-2.6.29.1_.1_i386.deb и linux-image-2.6.29.1_.1_i386.deb

Устанавливаем их и перезагружаемся
dpkg -i *.deb
reboot
При загрузке выбираем новое установленное ядро и смотрим
uname -r
Ядро установленно =)

Комментариев нет: