Bug 7085 - [FR] platform support (device-specific hacks)
: [FR] platform support (device-specific hacks)
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/hotplug)
: unstable
: all Linux
: P2 enhancement
Assigned To:
:
:
:
: 6830
: 4910 5211 6804 7079 7371
  Show dependency tree
 
Reported: 2005-06-14 16:50 by
Modified: 2012-03-16 13:57 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2005-06-14 16:50:46
необходимо обеспечить возможность выполнять действия, которые зависят от
железки
и дополнительных факторов (первая загрузка после установки, наличие/отсутствие
конфига, etc).  

причина -- проблемы конкретных железок/драйверов, которые требуют специальной
инициализации для нормальной работы.

пример -- #4735.

осмысленно решать вместе с #6830 IMCO.
------- Comment #1 From 2005-06-14 16:52:15 -------
кстати о platform-detect. :)
------- Comment #2 From 2005-06-14 17:04:29 -------
На какой именно стадии нужно запускать скрипты ?

возможны варианты:
1) нашли железку
2) грузим модуль
3) загрузили модуль
4) когда-то потом

и т.д.
------- Comment #3 From 2005-06-14 17:10:33 -------
в случае #4735 -- после загрузки модулей, в округе восстановления микшера
(собсно это в одной инфраструктуре имеет смысл)

вообще -- подозреваю, что осмысленно хуки по всем точкам расставить (вспоминая
%post и компанию ;)
------- Comment #4 From 2005-06-14 17:15:06 -------
Каким образом эти хуки определять ? предлагайте идеи.
------- Comment #5 From 2005-06-14 17:43:59 -------
в смысле определять?  сейчас sound.dev -- то, что цепляется на такой вот хук
------- Comment #6 From 2005-06-14 18:28:30 -------
так тебе же не только по классу устройств, но и по ID'шникам нужно
------- Comment #7 From 2005-06-14 18:34:19 -------
о чём и спич.  поскольку сдаётся, что это проблема более общая, чем
snd-emu10k1.
------- Comment #8 From 2005-06-14 18:38:01 -------
ну так надо подумать как сделать настройку в зависимость от id устройства.
Но проблема то глубже (vsu@ поправь если я не прав): для многих звуковых плат
сдетектить что же это за зверь можно уже только после загрузки драйвера.
------- Comment #9 From 2005-06-14 18:38:50 -------
ну так не противоречит.
------- Comment #10 From 2005-06-14 18:50:10 -------
(In reply to comment #8)
> Но проблема то глубже (vsu@ поправь если я не прав): для многих звуковых плат
> сдетектить что же это за зверь можно уже только после загрузки драйвера.

Ну так в момент вызова sound.dev драйвер уже загружен; копание глубже, чем PCI
ID, можно засунуть уже в обработчик для этого PCI ID.

------- Comment #11 From 2005-06-14 18:58:33 -------
хорошо, а давайте попробуем расширить обработчик, добавив обработку по модулю ?

Или как ?

или сделать что-то, что будет работать по pciid ?

Я могу добавить такое как и в hwdatabase, так и в файловую систему (например
/etc/devices.d/<скрипт с именем, равным pciid устройства>

Да, а что делать с не PCI устройствами (ISA PNP, USB и т.д.) ?

О.. и тут же еще всплывает одна интересная тема, место которой в отдельной
баге:
тестирование серийных портов. 2vsu: там ничего не планируют предпринять в ядре,
что бы /dev/ttyS* стали работать аля /dev/psaux в 2.6 ?

Заморочка тут с тем, что при появлении /dev/ttyS* устройства нужно по хорошему
посмотреть что на нем висит (модем, мышь... и т.д.) и выполнить соответствующие
действия (сделать симлинк нужного вида, запустить serialattach для мышей с
опцией - нужный протокол, и т.д. и т.п.)
------- Comment #12 From 2005-06-14 19:07:59 -------
(In reply to comment #11)
> Да, а что делать с не PCI устройствами (ISA PNP, USB и т.д.) ?

Если делать в общем виде, то это скорее переползает уже куда-то в сторону HAL...

> при появлении /dev/ttyS* устройства нужно по хорошему
> посмотреть что на нем висит (модем, мышь... и т.д.)

Т.е., предлагается затащить в ядро обработку Serial-PnP?
------- Comment #13 From 2005-06-14 19:14:08 -------
(In reply to comment #12)
> (In reply to comment #11)
> > Да, а что делать с не PCI устройствами (ISA PNP, USB и т.д.) ?
> 
> Если делать в общем виде, то это скорее переползает уже куда-то в сторону HAL...

А в hal ли ?

Давайте составим список действий, которые нужно предпринять при появлении нового
устройства:
1) звук: выставить уровни микшера в зависимости от предыдущего состояния и
устройства
2) модем: сделать симлинк /dev/modem на устройство
3) серийная мышь: запустить serialattach

> 
> > при появлении /dev/ttyS* устройства нужно по хорошему
> > посмотреть что на нем висит (модем, мышь... и т.д.)
> 
> Т.е., предлагается затащить в ядро обработку Serial-PnP?

Нет, зачем ? я могу это прекрасно делать и в userspace. Останется только
сгенерить соответствующее событие для hotplug'а.
------- Comment #14 From 2005-06-14 19:28:01 -------
(In reply to comment #13)
> Нет, зачем ? я могу это прекрасно делать и в userspace. Останется только
> сгенерить соответствующее событие для hotplug'а.

Так оно и сейчас неплохо генерируется:

Jun 14 19:21:43 center4 default.hotplug[8337]: arguments (tty) env
(PHYSDEVPATH=/devices/platform/serial8250 SUBSYSTEM=tty OLDPWD=/
DEVPATH=/class/tty/ttyS0 PATH=/bin:/sbin:/usr/sbin:/usr/bin ACTION=remove
PWD=/etc/hotplug HOME=/ SHLVL=2 PHYSDEVDRIVER=serial8250 DEBUG=yes
PHYSDEVBUS=platform SEQNUM=1424 _=/usr/bin/env)
Jun 14 19:21:44 center4 default.hotplug[8350]: arguments (tty) env
(PHYSDEVPATH=/devices/pnp0/00:07 SUBSYSTEM=tty OLDPWD=/ DEVPATH=/class/tty/ttyS0
PATH=/bin:/sbin:/usr/sbin:/usr/bin ACTION=add PWD=/etc/hotplug HOME=/ SHLVL=2
PHYSDEVDRIVER=serial DEBUG=yes PHYSDEVBUS=pnp SEQNUM=1425 _=/usr/bin/env)

Jun 14 19:21:44 center4 default.hotplug[8357]: arguments (tty) env
(PHYSDEVPATH=/devices/platform/serial8250 SUBSYSTEM=tty OLDPWD=/
DEVPATH=/class/tty/ttyS1 PATH=/bin:/sbin:/usr/sbin:/usr/bin ACTION=remove
PWD=/etc/hotplug HOME=/ SHLVL=2 PHYSDEVDRIVER=serial8250 DEBUG=yes
PHYSDEVBUS=platform SEQNUM=1426 _=/usr/bin/env)
Jun 14 19:21:43 center4 default.hotplug[8364]: arguments (tty) env
(PHYSDEVPATH=/devices/pnp0/00:08 SUBSYSTEM=tty OLDPWD=/ DEVPATH=/class/tty/ttyS1
PATH=/bin:/sbin:/usr/sbin:/usr/bin ACTION=add PWD=/etc/hotplug HOME=/ SHLVL=2
PHYSDEVDRIVER=serial DEBUG=yes PHYSDEVBUS=pnp SEQNUM=1427 _=/usr/bin/env)

------- Comment #15 From 2005-06-20 18:29:45 -------
Это генерится событие о появлении ttyS*, а нужно еще сгенерить событие о
появлении на этих ttyS* других устройств.
------- Comment #16 From 2005-06-20 18:34:29 -------
(In reply to comment #15)
> Это генерится событие о появлении ttyS*, а нужно еще сгенерить событие о
> появлении на этих ttyS* других устройств.

Ну так вот и запускай по этому событию Serial-PnP в userspace - лучше этого там
ничего не сделаешь.  Только глюков не оберёшься от этого PnP...
------- Comment #17 From 2005-06-20 18:56:58 -------
О, точно... хорошая идея.
Хей, ппл, кому там нужно было по устройствам чего запускать ? давайте это через
udev делать ?
------- Comment #18 From 2005-06-23 15:19:11 -------
погодь, sr@ на той неделе вернётся, продолжим.

PS: Security group сними, чего людей пугать. :)
------- Comment #19 From 2005-06-24 10:46:45 -------
так снята уже давно
------- Comment #20 From 2005-07-19 12:36:56 -------
новый udev предлагает прекрасные возможности для таких хаков

смотрите /usr/share/doc/udev-*/RELEASE-NOTES
------- Comment #21 From 2005-07-19 15:25:57 -------
замечательно :-)

Женя, посмотришь?
------- Comment #22 From 2005-08-30 02:22:33 -------
closing
------- Comment #23 From 2005-08-30 02:32:34 -------
closing