Сборка ядра в debian очень простое занятие.
Шаг1 - подготорка
Для начала нужно установить следующие пакеты:
kernel-package,libncurses5-dev, fakeroot, wget, bzip2, build-essential и сами исходники ядра.
Пакеты устанавливаем так: apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential.
Скачиваем исходники, распковываем в /usr/src. Делаем ссылку linux на исходники.
tar xjf linux-2.6.21.3.tar.bz2
ln -s linux-2.6.21.3 linux
cd /usr/src/linux
Если у нас есть патчи то устанавливаем так:
bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch.bz2 | patch -p1
Первая команда нужна для теста, 2-ая для установки. Никогда не вводите 2-ую если у вас успешно не выполнилась 1-ая.
Далее копируем наш теперешний конфиг в /usr/src/linux и пишем
make clean && make mrproper
cp /boot/config-`uname -r` /usr/src/linux/.config
Далее запускам конфигуратор:
make menuconfig
Шаг 2 - сборка и установка
После конфигурирования ядра - проинсталлируем его:
make-kpkg clean fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
Где вместо -custom поставим нужную нам версию(или префикс). Например, -my-build
После выполнения команды в каталоге с исходниками вы найдете 2 файла с раширением *.deb. Нужно всего лишь установить их, например так:
dpkg -i linux-image-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb
А Grub автоматом подхватит все необходимые настройки. Теперь можно перезагрузится с новым ядром, если при конфигурировании вы подключили все что надо ;)
14 комментариев:
спасибо тебе
Всегда пожалуйста. Если что обращайтесь ;)
собирал по инструкции. после установки "Waiting for root file system". к новому ядру модули автоматом прикуручиваются в пакет или оно старые использует? думаю в этом проблема, хотя вроде бы всё нужное сделал встроенным..
Спасибо огромное
Пасиб )))
Пишут, мля! Просто! xD
debian-dv:/usr/src/linux# cp /boot/config-2.6.18-6-686 /usr/src/linux/.config
debian-dv:/usr/src/linux# make menuconfig
scripts/Makefile.build:17: /usr/src/linux-headers-2.6.18-6-686/scripts/basic/Makefile: No such file or directory
make[1]: *** Нет правила для сборки цели `/usr/src/linux-headers-2.6.18-6-686/scripts/basic/Makefile'. Останов.
make: *** [scripts_basic] Ошибка 2
И нигде!!! Нигде не напишут как поправить!
Если выдает "Waiting..." то попробуйте в fstab поменять букву диска, но только в одном месте. У меня получилось так hdf3 -> hdb3. Это в строке с kernel.
dv, вы make menuconfig сделайте пожалуйста из каталога в который вы исходники ядра распаковали
спасибо за очень понятную инструкцию.
у меня вопрос , точнее 2
- если мы скопируем текущий конфиг в каталог c новым ядром /usr/src/linux , то каким образом будут учтены новые фичи, которые появились в НОВОМ ядре ? это для ситуации когда мы хотим установить новую версию ядра.
- а как установить пакет /usr/src/linux-kbuild-2.6.27 к примеру ?
у меня вот такая ошибка http://paste.org.ru/?fbdrrk
отсутствующий файл я так понимаю модно найти в /usr/src/linux-kbuild-2.6.27 а его меня нет для моего ядра.
и в репо дебиана этого пакета тоже еще нет
А вот кто объяснит для чего fakeroot нужен?
собираю по этой инструкции уже 3е ядро , вроде пока норм
---
поправьте
# make-kpkg clean
# fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
две разные комманды и вводятся отдельно
2PAVka
спасибо! А то у меня не работало, не мог понять почему :)
?
> 2PAVka
сидишь по root и запускаешь так опрометчиво комманды ? :(
в общем у меня не лучше - initrd не собирается... проблемы с .config
так что всем - будте аккуратнее при настройки
Не могу понять что делать с этими двумя строчками
Сделал все по инструкции а на эти строчки пишет какую то ошибку показать не могу иероглифы :)
dpkg -i linux-image-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb
Отправить комментарий