Краткое резюме:
Сценарий упаковки выглядит по неверному пути.
Подробное описание ошибки:
Для компиляции ядра я использовал инструкции по компиляции из здесь , которые включали в себя шаги:
Извлечение источников git из:
git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/xenial -b hwe
Измените конфиги, используя:
fakeroot debian/rules clean
fakeroot debian/rules editconfigs
, где я изменил только одну опцию, эквивалентную CONFIG_DMA_CMA=y
, перечисленных в разделе Драйверы устройств → CMA . Как предполагается, я добавил собственное имя для нового ядра, установив его в menuconfig, что в итоге приводит к CONFIG_LOCALVERSION="-cma"
в файле конфигурации.
Я изменил его для конфигов x64 и x64lowlatency (я также попытался изменить его для i386 и armhf, но это не имело никакого значения).
Постройте его с помощью:
CONCURRENCY_LEVEL=4 fakeroot debian/rules binary-headers binary-generic binary-perarch
Вывод ошибки:
...[a seemingly succesful compile and lots of INSTALL]...
#
# Build module blacklists:
# - blacklist all watchdog drivers (LP:1432837)
#
...[more output]...
ls: cannot access '/home/user/kernel/xenial/debian/linux-modules-4.15.0-65-generic/lib/modules/4.15.0-65-generic/kernel/drivers/watchdog/': No such file or directory
#
# Remove all modules not in the inclusion list.
#
...[more output]...
depmod: ERROR: could not open directory /home/user/kernel/xenial/debian/linux-modules-4.15.0-65-generic/lib/modules/4.15.0-65-generic: No such file or directory
depmod: FATAL: could not search modules: No such file or directory
mv: cannot stat '/home/user/kernel/xenial/debian/linux-modules-4.15.0-65-generic/lib/modules/4.15.0-65-generic/kernel': No such file or directory
debian/rules.d/2-binary-arch.mk:89: recipe for target 'install-generic' failed
make: *** [install-generic] Error 1
Сообщение от ls
действительно верное , поскольку этот заявленный каталог не существует:
/home/user/kernel/xenial/debian/linux-modules-4.15.0-65-generic/lib/modules/4.15.0-65-generic/kernel/drivers/watchdog/
Существует только этот каталог с добавлением -cma
:
/home/user/kernel/xenial/debian/linux-modules-4.15.0-65-generic/lib/modules/4.15.0-65-generic-cma/kernel/drivers/watchdog/
, но он не ищется.
Я локализовал вывод черного списка всех драйверов сторожевых таймеров :
./xenial/debian/rules.d/2-binary-arch.mk
Но мне не удалось определить части в Makefile, какая переменная пути неверна и как я бы исправить это. Это превосходит мои знания Linux.
Кто-нибудь может мне помочь?
Кажется, что я действительно частично решал проблему.
инструкции содержат примечание, которое я, должно быть, пропустил, и это противоречит инструкциям, которые описывают, чтобы сделать это иначе:
ПРИМЕЧАНИЕ: не пытайтесь использовать CONFIG_LOCALVERSION, поскольку это будет повреждать сборку.
Теперь, по крайней мере, вышеупомянутая проблема решена. Однако сборка еще не успешна и перестала работать на более позднем этапе. Я открою другой вопрос, как продолжить пользовательское создание ядра, не имея необходимость создавать/компилировать все с нуля много раз.
Однако в этот вопрос способ следовать инструкциям буквой (редактируют файл журнала изменений) не работал. Мне любопытно, что я найду...