В файле /lib/modutils/macros написано следующее: pre-install plip modprobe parport_pc; echo 7 >/proc/parport/0/irq 1. Я не видел машины, на которой /proc/parport бы существовал. Из-за этого modprobe plip не может быть выполнен, так как pre-install script failed. 2. Зачем прятать явное IRQ7? Если человеку нужно, он напишет options parport_pc irq=7 в /etc/modules.conf. Одним словом, давайте выносить эту строку (и pre-install pcmcia_core service pcmcia start тоже) из /lib/modutils/macros --- ---
Ok, я уберу эту строку, посмотрим, что получится. Я не буду трогать строку про pcmcia, ибо это совсем другая история.
Чтобы сохранить задуманный в /lib/modutils/macros эффект, можно нарисовать в /etc/modules.conf следующее: below plip parport_pc below parport_pc parport options parport_pc irq=7 Параметры io & dma заранее угадать нельзя, у меня, например, io=0x378 dma=3, но прерывание, как правило, 7, если порт не отключен в BIOS setup. Строку для pcmcia_core, кстати, кто-то (инсталлятор? kudzu?) вешает в /etc/modules.conf в виде pre-install pcmcia_core CARDMGR_OPTS=-f /etc/rc.d/init.d/pcmcia start Выходит, зря старается?
Implemented in modutils >= 2.4.25-alt2
вот и отлично
В результате этих исправлений теперь при загрузке модуля lp имеем ругань: parport_pc: irq specified without base address. Use 'io=' to specify one Безвредно, но неприятно. Кроме того, строка "below parport_pc parport" не нужна - у модуля parport_pc и так в любом случае будет зависимость на parport. На самом деле это даже вредно - в конфигурации ядра может быть CONFIG_PARPORT=y, CONFIG_PARPORT_PC=m, при этом модуля parport не будет. Правильнее было бы сделать так: below plip parport_lowlevel alias parport_lowlevel parport_pc (хотя на самом деле последний alias, оказывается, встроен в modprobe - так что можно даже ограничиться одной строкой below plip parport_lowlevel). На самом деле нужные модули загрузятся даже без всех этих строк - модуль parport при регистрации драйвера верхнего уровня (lp, plip, ...), если в этот момент не зарегистрирован ни один драйвер нижнего уровня (parport_pc и т.п.), автоматически вызывает request_module("parport_lowlevel"). Хотя от явного below plip parport_lowlevel хуже не будет - убирается лишний вызов modprobe ядром. Прерывание же автоматом включить не удастся - помимо того, что при этом нужно задавать ещё как минимум базовый адрес, бывают случаи, когда оно не работает (в основном на древнем железе, оно может быть занято звуковой картой на ISA).
От меня что-нибудь требуется?
А от меня?
Да, вот эта строка в /etc/sysconfig/network-scripts/ifup-plip вредная: route add -net ${NETWORK} netmask ${NETMASK} ${DEVICE} PLIP --- интерфейсы точка-точка. Вот ещё только что обратил внимание: /etc/sysconfig/network-scripts/ifup-post $1 Или у меня в трёх местах ошибка (но работает же), или здесь. Постараюсь выяснить в ближайшее время.
Правильно вот так: exec /etc/sysconfig/network-scripts/ifup-post "$CONFIG" "$2" И без прямого вызова route.
В modutils-2.4.26-alt1 файл /etc/modutils.d/parport убран; загрузка parport_pc срабатывает автоматически, но прерывание нужно настраивать через modules.conf (поскольку это уже зависит от конфигурации аппаратуры). Проблема с network-scripts уже не имеет отношения к modutils - повесьте её отдельно на соответствующий пакет.