Попытка найти все модули ядра, необходимые для моей машины, с помощью сценария оболочки

Я сейчас разрабатываю модули ядра, и время сборки начинает меня раздражать. В качестве побочного эффекта я делаю слишком много перерывов на кофе во время сборки.

Поэтому я искал способ создавать только то, что мне нужно для моей платформы. В главах 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, и мне это нравится.

Итак, мои проблемы в двух словах

  1. Исправление streamline_config.pl, чтобы я мог указать список имен модулей в качестве аргумента, который он исключит из обработки файла конфигурации.

    Скрипт находится по адресу kernel.org

  2. . РЕДАКТИРОВАТЬ :Удалено сообщение о том, что perl-скрипт не запущен. Как заметил муген кеничи (, насколько я могу быть тупым? ). Но по-прежнему make localmodconfigне работает из-за отсутствия кода некоторых модулей в исходном дереве. исправление streamline_config.plвсе еще актуальное требование.

10
задан sehe 13 July 2012 в 14:21
поделиться