Я сейчас разрабатываю модули ядра, и время сборки начинает меня раздражать. В качестве побочного эффекта я делаю слишком много перерывов на кофе во время сборки.
Поэтому я искал способ создавать только то, что мне нужно для моей платформы. В главах 7 и 8 «Кратко о ядре Linux» подробно описано, как это сделать вручную. Это хорошее чтение:http://www.kroah.com/lkn/
Но хотя я разбираюсь в материалах, это все еще много настроек, чтобы заставить это работать.
2.6.32 и более поздние ядра добавили новую цель make localmodconfig
. который просматривает lsmod
и соответствующим образом изменяет.config. Вот я и подумал, что нашел свою «автоматизацию». Но у этого perl-скрипта тоже есть проблема.
В этой теме описаны проблемы:https://bbs.archlinux.org/viewtopic.php?pid=845113
Также было предложено решение, которое, по-видимому, сработало для других, - запустить скрипт напрямую, а не использовать цель make.
Хотя у меня make localmodconfig вообще не работает. это из-за следующего:
make clean
make mrproper
cp /boo/config-'uname -r'.config
make localmodconfig
и он останавливается на
vboxguest config not found!!
nf_defrag_ipv6 config not found!!
vboxsf config not found!!
vboxvideo config not found!!
Дело в том, что моя среда разработки ядра находится внутри виртуального бокса. Эти модули vbox были установлены, когда я решил установить «гостевое дополнение virtualbox».
И модуль netfilter может быть модулем, специфичным для дистрибутива. (Многие модули netfilter не являются частью основного ядра, так что меня это не шокирует ), поскольку они не включены в основное ядро.
Теперь обходной путь, очевидно, выгружает этот модуль и пытается снова. Но я думаю, есть ли патч для streamline_config.pl
, который позволит пользователю исключать определенные модули, если он/она хочет. Проблема в том, что у меня ноль знаний о Perl, и мне это нравится.
Итак, мои проблемы в двух словах
Исправление streamline_config.pl
, чтобы я мог указать список имен модулей в качестве аргумента, который он исключит из обработки файла конфигурации.
Скрипт находится по адресу kernel.org
. РЕДАКТИРОВАТЬ :Удалено сообщение о том, что perl-скрипт не запущен. Как заметил муген кеничи (, насколько я могу быть тупым? ). Но по-прежнему make localmodconfig
не работает из-за отсутствия кода некоторых модулей в исходном дереве. исправление streamline_config.pl
все еще актуальное требование.