Пересборка ядра Linux без «чистого»

11

Я собираю собственное ядро ​​на основе 4.11 (для Mintx64, если это имеет значение). Я уже скомпилировал и установил его, чтобы доказать, что он работает. Теперь я сделал несколько небольших изменений в паре файлов (в подсистемах драйвера и сети, поэтому мне нужно сначала скомпилировать собственное ядро!)

Теперь я хочу собрать модифицированное ядро. Однако когда я бегу

fakeroot make -j5 deb-pkg LOCALVERSION=myname KDEB_PKGVERSION=1 

Похоже, что система сборки запускается с «чистой» загрузки, поэтому я быстро ее остановил. К сожалению, компьютер, который я использую, не наделен хорошим процессором, и его сборка занимает много часов с нуля. Поэтому я бы предпочел не делать это снова, если это возможно!

Можно ли сделать просто инкрементную сборку, чтобы все не было "чистым" или это требование системы сборки ядра?

Вывод, который я получил, был:

CHK      include/config/kernel.release
make clean
CLEAN .
CLEAN arch/x86/lib
...
Т Килни
источник
@jc__ смотрите вывод сборки выше, я не могу сразу найти, где находится make-файл для этой цели, но я все еще смотрю :)
T Kilney

Ответы:

12

Это make cleanтолько для deb-pkgцели. Посмотрите на scripts/package/Makefile:

deb-pkg: FORCE
        $(MAKE) clean
        $(call cmd,src_tar,$(KDEB_SOURCENAME))
        $(MAKE) KBUILD_SRC=
        +$(call cmd,builddeb)

bindeb-pkg: FORCE
        $(MAKE) KBUILD_SRC=
        +$(call cmd,builddeb)

Если вы построите bindeb-pkgвместо этого, он не будет чистым. Вам, вероятно, в любом случае не нужны исходные пакеты.

Я подозреваю, что он делает чистку, потому что не хочет собирать артефакты сборки в исходном архиве.

RawwrBag
источник
2

Вы можете попробовать создать эти пакеты deb с помощью другого инструмента, make-kpkgкоторый установлен apt-get install kernel-package. Тогда например

make-kpkg --rootcmd=fakeroot --initrd --uc --us -j2 kernel_image kernel_headers

Эта команда не должна делать make cleanкаждый раз.

Джей Джей Хакала
источник
1

Я исправил это, зайдя в make-файл для команды deb-pkg и удалив «make clean» из скрипта. Похоже, это не вызвало каких-либо негативных последствий при сборке, и я уже неделю или две запускаю собственное ядро ​​без проблем. YMMV!

Т Килни
источник