В /etc/rc.d/rc.sysinit USEMODULES выставляется в "y" только при наличии /proc/ksyms или /proc/kallsyms: f [ -z "$USEMODULES" ]; then if [ -f /proc/ksyms -o -f /proc/kallsyms ] && ! grep -iwqs nomodules /proc/cmdline; then USEMODULES=y else USEMODULES=n fi fi что, как мне кажется, неверным. Предлагаю заменить строку if [ -f /proc/ksyms -o -f /proc/kallsyms ] && ! grep -iwqs nomodules /proc/cmdline; then на if [ -f /proc/modules ] && ! grep -iwqs nomodules /proc/cmdline; then Тогда не придётся собирать ядро с обязательным включением CONFIG_KALLSYMS=y или выставлением других костылей.
http://git.altlinux.org/people/led/packages/startup.git?p=startup.git;a=commitdiff;h=a80295598c0ec9a991e049cbcb5b36033c077645
Ах так вот кто меня заставил влепить лишних пару сотен килобайт в терминальное ядро! :)
А давно старый код сломался? Я бы хотел указать в commit message версию ядра, начиная с которой он мог работать неправильно.
(В ответ на комментарий №3) > А давно старый код сломался? Я бы хотел указать в commit message версию ядра, > начиная с которой он мог работать неправильно. USEMODULES указывает на то, собрано ли ядро с CONFIG_MODULES=y или нет. /proc/ksyms и /proc/kallsyms никогда не являлось показателем того,что ядро модульное. /proc/modules же присутствует всегда, когда ядро собрано с CONFIG_MODULES=y (по крайней мере, начиная с 2.6.12 - точно) В текущем же состоянии для того, чтобы нормально работала автозагрузка модулей, приходится собирать ядро с CONFIG_KALLSYMS=y, который (по определению) нужен только для отладки
Я посмотрел по истории пакета startup: проверка модульности по /proc/ksyms была принесена из mandrake, после появления ядра 2.6 была сделана калька для него (/proc/kallsyms), но эта рповерка абсолютно не является проверкой ядра на "модульность"
startup-0.9.8.25-alt1 -> sisyphus: * Wed Sep 30 2009 Dmitry V. Levin <ldv@altlinux> 0.9.8.25-alt1 - rc.sysinit: Detect USEMODULES by /proc/modules only (Led; closes: #21738).
(In reply to comment #3) > Я бы хотел указать в commit message версию ядра, > начиная с которой он мог работать неправильно. Наблюдал на kernel-image-tmc-tc с 2.6.27-alt1 по 2.6.27-alt3, в alt4 по подсказке led@ (случайно наступившего на те же грабли у себя) сделал CONFIG_KALLSYMS=y. (In reply to comment #6) > startup-0.9.8.25-alt1 -> sisyphus: > * Wed Sep 30 2009 Dmitry V. Levin <ldv@altlinux> 0.9.8.25-alt1 > - rc.sysinit: Detect USEMODULES by /proc/modules only (Led; closes: #21738). Спасибо!
Странно, но поймал те же грабли на p5/branch со startup-0.9.8.26-alt1 и kernel-image-tmc-tc-2.6.27-alt6.
Вставил отладку после if..fi, который правился коммитом по ссылке в #c1 -- USEMODULES=y. Сейчас попробую подсунуть ядро с CONFIG_KALLSYMS=y.
Не, без разницы -- извиняюсь за шум.