[SOLVED] initramfs и параметры загружаемых модулей
AJNik 11 сентября, 2012 - 09:45
Доброго времени суток, форумчане!
Необходимо в 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 так и должно себя вести
Попробуйте так:
или добавьте запуск шелла.
в запущенной системе все нормально прокатывает?
_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
и заменил ее на строчкиЗапаковал образ (как-то так:
find . | cpio -o -H newc | gzip -9 > initramfs-genkernel-x86_64-gentoo
).После перегрузки проверяем:
cat /sys/module/megaraid_sas/parameters/msix_disable
Выводит "1".