С NEC подключил тяжёлую артилерию и пересобрал ядро самостоятельно. Ничего сложного в этой задаче нет, всё делается по инструкции . После сборки радостно побежал включать систему, тыкать в USB, и ничего не произошло. Каково же было моё удивление, когда lsmod не вывел ничего! Хотя собранные модули я переписал, в нужную папочку. Начал разбираться. За загрузку модулей отвечает скрипт
if [ ! -e /sbin/depmod ]; then [ -f /lib/modules/`uname -r`/modules.dep ] || LOAD_MODULE=insmod else [ "$VERBOSE" != no ] && echo "Calculating module dependencies ..." depmod -Ae fi
[ "$VERBOSE" != no ] && echo -n "Loading modules: " (cat /etc/modules; echo; ) | while read module args do case "$module" in \#*|"") continue ;; esac [ "$VERBOSE" != no ] && echo -n "$module " eval "$LOAD_MODULE $module $args >/dev/null 2>&1" done [ "$VERBOSE" != no ] && echo exit 0
Как я понимаю делается deprobe -a , которое уже modprobe указывает где брать модули, а потом в цикле осуществляется их загрузка. Отрабатывает скрипт тихо, вот так:
Т.е. файл есть, он прописан, и даже работает.Сейчас после шаманств: 1.переписал файл /lib/modules/2.6.34-mp900c/modules.dep в /etc/modules/ 2. Попробовал немного другой скрипт, взятый из rootfs Psiona
# Loop over every line in /etc/modules. echo -n 'Loading modules: ' (cat /etc/modules; echo) | # make sure there is a LF at the end while read module args do case "$module" in \#*|"") continue ;; esac echo -n "$module " modprobe $module $args done echo
# # Just in case a sysadmin prefers generic symbolic links in # /lib/modules/boot for boot time modules we will load these modules # if [ -n "`modprobe -l -t boot`" ] then modprobe -a -t boot \* fi
exit 0
начали грузится некоторые модули, и то я не понимаю как и почему загрузились именно эти модули?
Такая же хрень, кстати обнаружена в Джорнада. Внимание вопрос:
1. Как загрузить ВСЕ модули в системе? И может я что-то не понимаю, ведь есть обязательные модули, а есть всомогательные (как например usbmon). Как осуществляется их разделение? 2. Какие могут быт причины не загрузки модулей? В общем-то получается, что загруженны какие-то случайные модули, а не весь глобальный их список. 3. Может я чего-то не учитываю, и механизм автозагрузки модулей работает хитрее, чем скрипт /etc/init.d/modules.sh?
UPD. Спасибо коллеге с работы, скрипт загрузки все модулей выглядит вот так: modprobe -l | while read x; do m='basename "$x"'; m=${m%%.ko}; echo $m; modprobe $m; done