Bug 2784

Summary: PLIP handling is broken
Product: Sisyphus Reporter: Denis Ovsienko <pilot>
Component: modutilsAssignee: Dmitry V. Levin <ldv>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P4 CC: ldv, vsu
Version: unstable   
Hardware: all   
OS: Linux   

Description Denis Ovsienko 2003-07-27 20:26:41 MSD
В файле /lib/modutils/macros написано следующее:
pre-install plip modprobe parport_pc; echo 7 &gt;/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
---

---

Comment 1 Dmitry V. Levin 2003-07-28 01:26:20 MSD
Ok, я уберу эту строку, посмотрим, что получится.
Я не буду трогать строку про pcmcia, ибо это совсем другая история.
Comment 2 Dmitry V. Levin 2003-07-28 01:26:20 MSD
Ok, я уберу эту строку, посмотрим, что получится.
Я не буду трогать строку про pcmcia, ибо это совсем другая история.
Comment 3 Denis Ovsienko 2003-07-28 03:18:31 MSD
Чтобы сохранить задуманный в /lib/modutils/macros эффект, можно нарисовать в /etc/modules.conf следующее:

below plip parport_pc
below parport_pc parport
options parport_pc irq=7
Параметры io &amp; 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
Выходит, зря старается?
Comment 4 Denis Ovsienko 2003-07-28 03:18:31 MSD
Чтобы сохранить задуманный в /lib/modutils/macros эффект, можно нарисовать в /etc/modules.conf следующее:

below plip parport_pc
below parport_pc parport
options parport_pc irq=7
Параметры io &amp; 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
Выходит, зря старается?
Comment 5 Dmitry V. Levin 2003-08-16 00:12:28 MSD
Implemented in modutils &gt;= 2.4.25-alt2
Comment 6 Dmitry V. Levin 2003-08-16 00:12:28 MSD
Implemented in modutils &gt;= 2.4.25-alt2
Comment 7 Denis Ovsienko 2003-08-19 14:05:17 MSD
вот и отлично
Comment 8 Denis Ovsienko 2003-08-19 14:05:17 MSD
вот и отлично
Comment 9 Sergey Vlasov 2003-12-07 15:54:43 MSK
В результате этих исправлений теперь при загрузке модуля 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).
Comment 10 Denis Ovsienko 2003-12-09 16:31:41 MSK
От меня что-нибудь требуется?
Comment 11 Dmitry V. Levin 2004-01-11 02:57:40 MSK
А от меня? 
Comment 12 Denis Ovsienko 2004-01-27 08:32:15 MSK
Да, вот эта строка в /etc/sysconfig/network-scripts/ifup-plip вредная:
route add -net ${NETWORK} netmask ${NETMASK} ${DEVICE}
PLIP --- интерфейсы точка-точка.
Вот ещё только что обратил внимание:
/etc/sysconfig/network-scripts/ifup-post $1
Или у меня в трёх местах ошибка (но работает же), или здесь.
Постараюсь выяснить в ближайшее время.
Comment 13 Denis Ovsienko 2004-02-09 11:39:50 MSK
Правильно вот так:
exec /etc/sysconfig/network-scripts/ifup-post "$CONFIG" "$2"
И без прямого вызова route.
Comment 14 Sergey Vlasov 2004-02-21 20:36:37 MSK
В modutils-2.4.26-alt1 файл /etc/modutils.d/parport убран; загрузка parport_pc
срабатывает автоматически, но прерывание нужно настраивать через modules.conf
(поскольку это уже зависит от конфигурации аппаратуры).

Проблема с network-scripts уже не имеет отношения к modutils - повесьте её
отдельно на соответствующий пакет.