Summary: | [FR] platform support (device-specific hacks) | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Michael Shigorin <mike> |
Component: | hotplug | Assignee: | Anton Farygin <rider> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | enhancement | ||
Priority: | P2 | CC: | ab, abulava, eostapets, sbolshakov, sr, vsu |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | 6830 | ||
Bug Blocks: | 4910, 5211, 6804, 7079, 7371 |
Description
Michael Shigorin
2005-06-14 16:50:46 MSD
кстати о platform-detect. :) На какой именно стадии нужно запускать скрипты ? возможны варианты: 1) нашли железку 2) грузим модуль 3) загрузили модуль 4) когда-то потом и т.д. в случае #4735 -- после загрузки модулей, в округе восстановления микшера (собсно это в одной инфраструктуре имеет смысл) вообще -- подозреваю, что осмысленно хуки по всем точкам расставить (вспоминая %post и компанию ;) Каким образом эти хуки определять ? предлагайте идеи. в смысле определять? сейчас sound.dev -- то, что цепляется на такой вот хук так тебе же не только по классу устройств, но и по ID'шникам нужно о чём и спич. поскольку сдаётся, что это проблема более общая, чем snd-emu10k1. ну так надо подумать как сделать настройку в зависимость от id устройства. Но проблема то глубже (vsu@ поправь если я не прав): для многих звуковых плат сдетектить что же это за зверь можно уже только после загрузки драйвера. ну так не противоречит. (In reply to comment #8) > Но проблема то глубже (vsu@ поправь если я не прав): для многих звуковых плат > сдетектить что же это за зверь можно уже только после загрузки драйвера. Ну так в момент вызова sound.dev драйвер уже загружен; копание глубже, чем PCI ID, можно засунуть уже в обработчик для этого PCI ID. хорошо, а давайте попробуем расширить обработчик, добавив обработку по модулю ? Или как ? или сделать что-то, что будет работать по pciid ? Я могу добавить такое как и в hwdatabase, так и в файловую систему (например /etc/devices.d/<скрипт с именем, равным pciid устройства> Да, а что делать с не PCI устройствами (ISA PNP, USB и т.д.) ? О.. и тут же еще всплывает одна интересная тема, место которой в отдельной баге: тестирование серийных портов. 2vsu: там ничего не планируют предпринять в ядре, что бы /dev/ttyS* стали работать аля /dev/psaux в 2.6 ? Заморочка тут с тем, что при появлении /dev/ttyS* устройства нужно по хорошему посмотреть что на нем висит (модем, мышь... и т.д.) и выполнить соответствующие действия (сделать симлинк нужного вида, запустить serialattach для мышей с опцией - нужный протокол, и т.д. и т.п.) (In reply to comment #11) > Да, а что делать с не PCI устройствами (ISA PNP, USB и т.д.) ? Если делать в общем виде, то это скорее переползает уже куда-то в сторону HAL... > при появлении /dev/ttyS* устройства нужно по хорошему > посмотреть что на нем висит (модем, мышь... и т.д.) Т.е., предлагается затащить в ядро обработку Serial-PnP? (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'а. (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) Это генерится событие о появлении ttyS*, а нужно еще сгенерить событие о появлении на этих ttyS* других устройств. (In reply to comment #15) > Это генерится событие о появлении ttyS*, а нужно еще сгенерить событие о > появлении на этих ttyS* других устройств. Ну так вот и запускай по этому событию Serial-PnP в userspace - лучше этого там ничего не сделаешь. Только глюков не оберёшься от этого PnP... О, точно... хорошая идея. Хей, ппл, кому там нужно было по устройствам чего запускать ? давайте это через udev делать ? погодь, sr@ на той неделе вернётся, продолжим. PS: Security group сними, чего людей пугать. :) так снята уже давно новый udev предлагает прекрасные возможности для таких хаков смотрите /usr/share/doc/udev-*/RELEASE-NOTES замечательно :-) Женя, посмотришь? closing closing |