Я хотел бы знать точную разницу между make-kpkg
и make deb-pkg
. Этот вопрос задает почти то же самое, но без удовлетворительных ответов. Ранее я использовал
make -j `getconf _NPROCESSORS_ONLN` deb-pkg
скомпилировать исходное дерево ядра и сгенерировать пакеты debian header + kernel-image. Я обнаружил, что это очень медленно, поскольку компиляция на моем процессоре Intel i3 второго поколения занимает более 1 часа. Затем я нашел другой метод, make-kpkg
который в 5-6 раз быстрее, чем deb-pkg
метод, который я использовал раньше. Код, который я запускаю
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers -j `getconf _NPROCESSORS_ONLN`
и это займет всего 10-15 минут для компиляции и генерации пакетов deb. В обоих процессах компиляции задания делятся на _NPROCESSORS_ONLN
то, что делает эту разницу? Заранее спасибо.
make-kpkg
поддерживается автором сценария (скорее всего, людьми из Debian) иmake deb-pkg
поддерживается ребятами из ядра. Люди Debian могут знать больше.-j $(getconf blah)
вместо-j `getconf blah`
.linux-image-*.deb
иlinux-headers-*.deb
т.д. в дистрибутив, тоmake-kpkg
инструмент гораздо более вероятно, будут обновлены , чтобы воспользоваться другими помощниками , связанные ядра в дистрибутиве (например ,dkms
иupdate-initramfs
и другие). Цель ядра,Makefile
deb-pkg
вероятно, будет работать только тогда, когда она сломается.bindeb-pkg
цель.Ответы:
make-kpkg
на пенсии, официальный путь Debian естьmake deb-pkg
.Официальный справочник ядра Debian использует
make deb-pkg
.make-kpkg
включен в wheezy и jessie, но stretch (текущий стабильный) содержит его только для powerpc .Powerpc больше не поддерживается в buster (тестирование), и неудивительно, что единственным попаданием для имен файлов, содержащихся,
make-kpkg
является информационный файл автозаполнения для zsh .Это ясно указывает на то, какой из них является предпочтительным вариантом Debian.
(Однако, если вы тестируете, что работает, а что нет, много перекомпилируя, вы можете удалить «make clean»
scripts/packages/Makefile
в качестве первого шага. В конце концов, даже make-kpkg нацелен на создание пакета Debian из рабочего исходный код и конфигурация ядра, а не программирование и отладка ядра.)источник
kernel-package
принадлежащиеmake-kpkg
компании были сняты с испытаний в июне 2017 года, но снова добавлены в нестабильные и тестируемые в том же месяце. Более подробная информация: tracker.debian.org/pkg/kernel-package . Но я согласен, что лучше использоватьmake deb-pkg
.