Предлагаю патч для mkinitrd для возможности указания файла-списка модулей в качестве параметра --with. Я нашёл это полезным при автоматической генерации initrd.img для бездисковых терминалов при имеющемся файле-списке kernel-модулей наоболее распространённых Ethernet-адаптеров.
Created attachment 1888 [details] mkinitrd-3.0.3-lists.patch
Какой же это listfile, когда на самом деле происходит не чтение списка модулей из файла, а поиск всех модулей в указанном подкаталоге? Это примерно соответствует опции --type в modprobe. У меня есть подозрение, что опция в таком виде будет не слишком полезна, поскольку в ядрах 2.6.x, в отличие от 2.4.x, модули драйверов PCI-устройств успешно загружаются даже в том случае, если соответствующие устройства не обнаружены. С другой стороны, поскольку сейчас в initramfs запускается udev, возможна автоматическая загрузка модулей по modalias - для этого необходимо просто скопировать модули в initramfs, не добавляя их в список для загрузки; сейчас в mkinitrd нет опции для этого. Замечание по поводу реализации: конструкции вида ${1:0:1} требуют bash - в данном случае вполне можно обойтись без них.
(In reply to comment #2) > Какой же это listfile, когда на самом деле происходит не чтение списка модулей > из файла, а поиск всех модулей в указанном подкаталоге? Это примерно > соответствует опции --type в modprobe. Виноват, это я так невнимательно "почистил" патчик перед тем, как залить :( > > У меня есть подозрение, что опция в таком виде будет не слишком полезна, > поскольку в ядрах 2.6.x, в отличие от 2.4.x, модули драйверов PCI-устройств > успешно загружаются даже в том случае, если соответствующие устройства не > обнаружены. С другой стороны, поскольку сейчас в initramfs запускается udev, > возможна автоматическая загрузка модулей по modalias - для этого необходимо > просто скопировать модули в initramfs, не добавляя их в список для загрузки; > сейчас в mkinitrd нет опции для этого. ИМХО предложенное расширение вроде ничему не мешает, тем более, что опции "добавления без загрузки" сейчас нет? (Правильный патч я, конечно же, залью сегодня) > > Замечание по поводу реализации: конструкции вида ${1:0:1} требуют bash - в > данном случае вполне можно обойтись без них. Согласен: непризволный "башизм":) Могу заменить на grep -q '^@'
Created attachment 1899 [details] mkinitrd-3.0.3-lists.patch Теперь, вроде, правильный патч...
At this time, I'm reluctant to add any enhancements to this monolithic mkinitrd. Please have a look at another implementations that have modular architecture, e.g. make-initrd by Alexey Gladkov and Kirill Shutemov.
mkinitrd-1:3.0.12-alt1 -> sisyphus: * Sun Nov 04 2012 Led <led@altlinux> 1:3.0.12-alt1 - 3.0.12: + mkinitrd: find modules in modules.alias if modules.pcimap not exists + mkinitrd: added modules.builtin and modules.order to tree + mkinitrd: added kmod support + mkinitrd: copy /lib/udev/dm_export only if it exists + mkinitrd: added support xz and lzo compressing + mkinitrd: added --with-nbd + scripts/local: use fs type 'auto' if unknown + init: added support parameters for loading modules + init: added 'modules=' kernel parameter support + rewrote script 'dhcp' to 'ip' + added support 'netdev' kernel parameter + added scripts/nbd_* + mkinitrd: added --root and --rootfs options + added support boot from nbd (ALT#15466) + mkinitrd: added support list file for --preload|--with|--extra (ALT#11375) + mkinitrd: removed unsupported image types + mkinitrd: added support /etc/sysconfig/mkinitrd config + mkinitrd: added lzma, xz, lzo and bzip2 compression (ALT#21588) + applied patch from http://bugzilla.altlinux.org/show_bug.cgi?id=19388 for LVM2 support in initrd