Ubuntu, собираем ядро сами

12 Июн
2008

Как оказалось это довольно просто. Для начала нужны исходники, обычно рекомендуют использовать уже пропатченые, которые можно поставить из репозитария:

apt-get update

aptitude search linux-source

p linux-source — Linux kernel source with Ubuntu patches
v linux-source-2.6 —
p linux-source-2.6.24 — Linux kernel source for version 2.6.24 with Ubuntu patches

apt-get source linux-source-2.6.24

Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Нужно загрузить 64,0MB архивов с исходными текстами.
Получено:1 http://ua.archive.ubuntu.com hardy-updates/main linux 2.6.24-18.32 (dsc) [2143B]
Получено:2 http://ua.archive.ubuntu.com hardy-updates/main linux 2.6.24-18.32 (tar) [64,0MB]
Получено 64,0MB за 53s (1199kB/c)
gpg: Подпись создана Срд 28 Май 2008 21:27:41 EEST ключом DSA с ID 8BF9EFE6
gpg: Не могу проверить подпись: открытый ключ не найден
dpkg-source: извлечение linux в linux-2.6.24
dpkg-source: распаковка linux_2.6.24-18.32.tar.gz

После этого шага в /root/linux-2.6.24 и будут искомые исходники. Можно взять и с kernel.org, далее по процедуре сборки и установки отличий не будет.

cd /root/linux-2.6.24

make menuconfig

make-kpkg clean

fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

После компиляции в /root будут уже собранные пакеты linux-image-2.6.24*, linux-headers-2.6.24*, устанавливаем:

dpkg -i linux-image-2.6.24*
dpkg -i linux-headers-2.6.24*

Проверяем /boot/grub/menu.lst — наше ядро появилось в конфиге загрузчика и все готово к перезагрузке. Удачи 😉

P.S. В самом начале неплохо бы установить все, что понадобится для компиляции и установки, вроде-бы должно хватить:
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2

3 комментария to Ubuntu, собираем ядро сами

Avatar

blog

января 29, 2009 at 19:43

На последних ядрах часто на этапе

make-kpkg clean

возникает ошибка типа

...

====== making target real_stamp_clean [new prereqs: ]======

running clean

test ! -f scripts/package/builddeb.kpkg-dist || \

mv -f scripts/package/builddeb.kpkg-dist scripts/package/builddeb

test ! -f scripts/package/Makefile.kpkg-dist || \

mv -f scripts/package/Makefile.kpkg-dist scripts/package/Makefile

test ! -f .config || cp -pf .config config.precious

test ! -f Makefile || \

/usr/bin/make ARCH=xen distclean

make[2]: Entering directory /usr/src/linux-2.6.27.2' Makefile:518: /usr/src/linux-2.6.27.2/arch/xen/Makefile: No such file or directory make[2]: *** No rule to make target/usr/src/linux-2.6.27.2/arch/xen/Makefile'. Stop.

make[2]: Leaving directory /usr/src/linux-2.6.27.2' make[1]: *** [real_stamp_clean] Error 2 make[1]: Leaving directory/usr/src/linux-2.6.27.2'

make: *** [CLN-common] Error 2

Помогает отключение XEN-связанных опций в конфигурации ядра:

Processor Type and Features >> Paravirtualized Guest Support >> Xen ...

Avatar

blog

ноября 19, 2009 at 20:31

Ubuntu 9.10, пакет linux-source-2.6.31 просто установил /usr/src/linux-source-2.6.31.tar.bz2, после компиляции ядра в /usr/src видим два deb пакета linux-headers и linux-image.

Avatar

blog

октября 29, 2010 at 13:35

apt-get install build-essential

Comment Form

top
Яндекс.Метрика