[SOLVED] initramfs и параметры загружаемых модулей

Доброго времени суток, форумчане!
Необходимо в initramfs загрузить модуль megaraid_sys со значением параметра msix_disable=1 (по умолчанию этот параметр равен 0).
Что делал:
1. Изменял в функции modules_scan() файла initrd.scripts вызов modprobe ${x} -n для этого модуля на modprobe ${x} msix_disable=1 -n.
2. Создавал в папке в initramfs файлики /etc/modules.conf и /etc/modprobe.conf с содержимым: options megaraid_sas msix_disable=1.
3. В grub в строки с kernel и initrd добавлял megaraid_sas.msix_disable=1.
Во всех трех случаях после загрузки системы команда cat /sys/module/megaraid_sas/parameters/msix_disable выдает 0.
Вопрос: как изменить параметр при таком варианте загрузки?

хех, с -n так и должно себя

хех, с -n так и должно себя вести

        -n, --dry-run               Do not execute operations, just print out
        -n, --show                  Same as --dry-run

Попробуйте так:

modprobe -v megaraid_sys msix_disable=1
echo /sys/module/megaraid_sas/parameters/msix_disable

или добавьте запуск шелла.

в запущенной системе все нормально прокатывает?

_SerEga_

_SerEga_ написал(а):

modprobe в busybox "странный". Первым после команды должно быть имя модуля, а не параметр.
У меня появилось подозрение, что остальные операнды игнорируются, т.к. на строку вида modprobe megaraid_sas sdfsdfsdfsdf -v, говорит "megaraid_sas loaded."

Итак, найденное мной

Итак, найденное мной решение:
modprobe в busybox действительно оказался "странным". Это скрипт, а не бинарный файл.
Распаковал initramfs (как-то так: gunzip -c -9 initramfs-genkernel-x86_64-gentoo | cpio -i -d -H newc --no-absolute-filenames ).
В /sbin/modprobe нашел процедуру modprobe2() в ней строку ${INSMOD} ${real_path} > /dev/null 2>&1 и заменил ее на строчки

if [ "/lib/modules/'версия ядра'/kernel/drivers/scsi/megaraid/megaraid_sas.ko" = "${real_path}" ]
then
   ${INSMOD} ${real_path} msix_disable=1 > /dev/null 2>&1
else
   ${INSMOD} ${real_path} > /dev/null 2>&1
fi

Запаковал образ (как-то так: find . | cpio -o -H newc | gzip -9 > initramfs-genkernel-x86_64-gentoo).

После перегрузки проверяем:
cat /sys/module/megaraid_sas/parameters/msix_disable
Выводит "1".

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".