Summary: | pnp.rc на некоторых машинах вызывает зависание | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Anton V. Boyarshinov <boyarsh> |
Component: | hotplug | Assignee: | Nobody's working on this, feel free to take it <nobody> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | blocker | ||
Priority: | P2 | CC: | evg, ldv, mike, rider, sbolshakov, shrek, vsu |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | |||
Bug Blocks: | 14168 |
Description
Anton V. Boyarshinov
2007-10-03 18:00:05 MSD
Сейчас при создании загрузочных образов приходится редактировать HOTPLUGRC. FYI: я недавно выкинул hotplug из того, что даю любимому заказчику. Что именно заставляет добавлять и включать этот сервис в дистрибутивы? Предлагаю грохнуть hotplug нафиг. (In reply to comment #2) > Что именно заставляет добавлять и включать этот сервис в дистрибутивы? acpi.rc с и изначально кривым /usr/share/hwdatabase/cpu (Антон, тут не твоя вина, просто идея сама по себе не поддается реализации) 2rider: если уж ты против его выкидывания, тогда уж поддерживай в рабочем состоянии Постараюсь.. на самом деле hotplug реально можно выкинуть, только нужно решить несколько проблем: - загрузка модулей ACPI - загрузка модулей cpu - выставление громкости звука (сохранение громкости) В общем то и всё. Делается это всё просто - загрузку модулей можно проводить методом перебора (грузить все подряд), а сохранение громкости в отдельном сервисе (sound-?), можно просто добавить в тот, который восстанавливает. > несколько проблем: > - загрузка модулей ACPI > - загрузка модулей cpu один раз в /etc/modules, процессор это не что то, что меняется при каждой загрузке > - выставление громкости звука (сохранение громкости) sound-scripts > > В общем то и всё. Делается это всё просто - загрузку модулей можно проводить > методом перебора (грузить все подряд), и получить никогда не загружающуюся систему (In reply to comment #6) > > несколько проблем: > > - загрузка модулей ACPI > > - загрузка модулей cpu > один раз в /etc/modules, процессор это не что то, что меняется при каждой > загрузке Гвозди. Для бука ещё куда ни шло, для десктопа плохо (ездят и процессоры, и винты, а уж биосы как...), для livecd -- вообще никак. Но мож это попробовать к powersaved прикрутить? (In reply to comment #6) > > несколько проблем: > > - загрузка модулей ACPI > > - загрузка модулей cpu > > один раз в /etc/modules, процессор это не что то, что меняется при каждой > загрузке > тут есть нюанс - модули сами имеют свойство меняться в зависимости от ядра. Недавно vsu предлагал грузить все подряд... > > - выставление громкости звука (сохранение громкости) > > sound-scripts Оно не умеет сохранять громкость, по моему только загружать. Но да, я говорил про этот пакет. > > > > > В общем то и всё. Делается это всё просто - загрузку модулей можно проводить > > методом перебора (грузить все подряд), > > и получить никогда не загружающуюся систему на ACPI ? нет, модуль ACPI не поднимется, если нет его устройства. (In reply to comment #7) > Гвозди. Для бука ещё куда ни шло, [рассматривает систему, ездившую по маршруту Athlon -> P-III Mobile -> Centrino -> CoreDuo. Оно бук или десктоп? Таки их поровну в том, на чём оно работало :) В любом случае - посмотреть в /proc/cpuinfo и разобраться, что за модуль нужен - невелика проблема. Я даже в табличках hwdatabase видел что-то похожее. > Гвозди. Для бука ещё куда ни шло, для десктопа плохо (ездят и процессоры, и > винты, а уж биосы как...), для livecd -- вообще никак. ac processor button battery thermal загрузятся на любом буке/десктопе (если только в биосе специально не выключено acpi). всякие speedstep нужны только на буке и то не всегда > Но мож это попробовать к powersaved прикрутить? а может к hibernate? мне powersawed как собаке пятая нога (In reply to comment #9) > (In reply to comment #7) > В любом случае - посмотреть в /proc/cpuinfo и разобраться, что за модуль нужен > - невелика проблема. Я даже в табличках hwdatabase видел что-то похожее. заглянуть в /proc/cpuinfo будет недостаточно. там нужно взять из cpuid дополнительные флаги, что бы понять на каком модуле это будет работать. И не факт что оно будет работать (например) на powernow-k8, а не на acpi > тут есть нюанс - модули сами имеют свойство меняться в зависимости от ядра. альясы остаются. ibm_acpi сейчас переименован в thinkpad_acpi, но ему ничто не мешает загружаться из /etc/modules как ibm-acpi > Недавно vsu предлагал грузить все подряд... > > > > > - выставление громкости звука (сохранение громкости) > > > > sound-scripts > > Оно не умеет сохранять громкость, по моему только загружать. sound-scripts занимается исключительно сохранением уровней миксера по service sound stop (In reply to comment #10) > > Гвозди. Для бука ещё куда ни шло, для десктопа плохо (ездят и процессоры, и > > винты, а уж биосы как...), для livecd -- вообще никак. > > ac > processor > button > battery > thermal > > загрузятся на любом буке/десктопе (если только в биосе специально не выключено > acpi). всякие speedstep нужны только на буке и то не всегда speedstep нужен в обязательном порядке на нормальном десктопе. Зачем жечь электричество, кипятить воздух и убивать кулера, если можно просто понизить частоту CPU ? У меня на медиацентре на этом всё основано - я хочу ночью спать при включенном компе и не слышать воя кулеров. > > > Но мож это попробовать к powersaved прикрутить? > > а может к hibernate? мне powersawed как собаке пятая нога А у hibernate уже есть графический интерфейс ? и он умеет спать в пямять/диск ? Я kpowersave/powersave пользуюсь на ноуте и серверах в первую очередь из-за грамотной политики управления скоростью процессора, hdd, видеокарты и очень удобного графического интерфейса. Не уверен что hibernate может отключать питание с сетевой платы, когда в неё ничего не воткнуто... или когда батарея разряжена до предела, а нужно ещё 10 минут поработать - отключать все неиспользуемые устройства (снимать питание). Т.е. - я к тому, что powersave и hibernate - это приложения из разных классов задач. Не надо их путать. (In reply to comment #12) > > тут есть нюанс - модули сами имеют свойство меняться в зависимости от ядра. > > альясы остаются. ibm_acpi сейчас переименован в thinkpad_acpi, но ему ничто не > мешает загружаться из /etc/modules как ibm-acpi > > > Недавно vsu предлагал грузить все подряд... > > > > > > > > - выставление громкости звука (сохранение громкости) > > > > > > sound-scripts > > > > Оно не умеет сохранять громкость, по моему только загружать. > > sound-scripts занимается исключительно сохранением уровней миксера по service > sound stop Правильно. А восстанавливать уровни некому.. соответственно имеем нормальный звук только в KDE и GNOME, ибо это они делают сами. (In reply to comment #14) > Правильно. А восстанавливать уровни некому.. соответственно имеем нормальный > звук только в KDE и GNOME, ибо это они делают сами. /lib/udev/sound.agent только для alsa, про oss не знаю (а вообще kernel-modules-oss еще кто то пользует?) (In reply to comment #10) > > Гвозди. > загрузятся на любом буке/десктопе (если только в биосе специально > не выключено acpi). ACPI бывает ещё и старым/кривым. С терминалами это совсем приходится помнить :) > всякие speedstep нужны только на буке и то не всегда Глупости какие, на кластерах они тоже нужны. > > Но мож это попробовать к powersaved прикрутить? > а может к hibernate? мне powersawed как собаке пятая нога Ну или отдельным сервисом... в своё время с Антоном думали сделать такой проксик для acpi/apm -- service power, но я откосил. (In reply to comment #14) > Правильно. А восстанавливать уровни некому.. соответственно имеем нормальный > звук только в KDE и GNOME, ибо это они делают сами. Ась? Для меня /lib/udev/sound.agent и без K/G восстанавливает. :) > speedstep нужен в обязательном порядке на нормальном десктопе. $ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Pentium(R) 4 CPU 2.80GHz stepping : 9 cpu MHz : 2813.589 cache size : 512 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 1 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pebs bts sync_rdtsc cid xtpr bogomips : 5631.78 clflush size : 64 processor : 1 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Pentium(R) 4 CPU 2.80GHz stepping : 9 cpu MHz : 2813.589 cache size : 512 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 1 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pebs bts sync_rdtsc cid xtpr bogomips : 5627.41 clflush size : 64 какой speedstep мне сюда прикрутить? а то тоже спать хотится > А у hibernate уже есть графический интерфейс ? и он умеет спать в пямять/диск ? да > > Я kpowersave/powersave пользуюсь на ноуте и серверах в первую очередь из-за > грамотной политики управления скоростью процессора, hdd, видеокарты и очень > удобного графического интерфейса. > > Не уверен что hibernate может отключать питание с сетевой платы, когда в неё > ничего не воткнуто... или когда батарея разряжена до предела, а нужно ещё 10 > минут поработать - отключать все неиспользуемые устройства (снимать питание). > > Т.е. - я к тому, что powersave и hibernate - это приложения из разных классов > задач. Не надо их путать. я их не путаю. сейчас всюду суется hotplug, потом будет powersave который хрен оторвешь (In reply to comment #17) > > speedstep нужен в обязательном порядке на нормальном десктопе. > model name : Intel(R) Pentium(R) 4 CPU 2.80GHz > какой speedstep мне сюда прикрутить? а то тоже спать хотится Сказано же -- на _нормальном_ :) Для Intel(R) это никак не Pentium(R) 4, а или PIII-m, или P-m, или Core2. > я их не путаю. сейчас всюду суется hotplug, потом будет powersave > который хрен оторвешь Хорошо, давайте придумаем отдельный сервис, даже если это будет просто кусочек hotplug, но без всего, что с ним ассоциированно. (In reply to comment #18) > (In reply to comment #17) > > > speedstep нужен в обязательном порядке на нормальном десктопе. > > model name : Intel(R) Pentium(R) 4 CPU 2.80GHz > > какой speedstep мне сюда прикрутить? а то тоже спать хотится > Сказано же -- на _нормальном_ :) Для Intel(R) это никак не Pentium(R) 4, а или > PIII-m, или P-m, или Core2. так у меня еще и десктоп не нормальный? "мама, он назвал меня дурой" > > > я их не путаю. сейчас всюду суется hotplug, потом будет powersave > > который хрен оторвешь > Хорошо, давайте придумаем отдельный сервис, даже если это будет просто кусочек > hotplug, но без всего, что с ним ассоциированно. давайте. только остается открытым вопрос как определять нормальные/ненормальные процессоры и кто будет эту базу поддерживать (In reply to comment #15) > (In reply to comment #14) > > Правильно. А восстанавливать уровни некому.. соответственно имеем нормальный > > звук только в KDE и GNOME, ибо это они делают сами. > > /lib/udev/sound.agent > только для alsa, про oss не знаю (а вообще kernel-modules-oss еще кто то > пользует?) sound.agent не рабочий. У меня есть претензии к sound.agent (#13704 и согласен с #13592), но чтоб совсем нерабочий -- не скажу. (In reply to comment #16) > (In reply to comment #10) > > > Гвозди. > > загрузятся на любом буке/десктопе (если только в биосе специально > > не выключено acpi). > ACPI бывает ещё и старым/кривым. С терминалами это совсем приходится помнить :) > > > всякие speedstep нужны только на буке и то не всегда > Глупости какие, на кластерах они тоже нужны. Естественно. При чём очень нужны - там даже экономия потребления на 10% может привести к снижению нагрузки на 45 киловатт ;) > > > > Но мож это попробовать к powersaved прикрутить? > > а может к hibernate? мне powersawed как собаке пятая нога > Ну или отдельным сервисом... в своё время с Антоном думали сделать такой проксик > для acpi/apm -- service power, но я откосил. Да, или просто собрать всё железо в один сервис, и не мучаться. > > (In reply to comment #14) > > Правильно. А восстанавливать уровни некому.. соответственно имеем нормальный > > звук только в KDE и GNOME, ибо это они делают сами. > Ась? Для меня /lib/udev/sound.agent и без K/G восстанавливает. :) У меня на машине он не работает - там вылезают race, модули инициализируются чуть дольше, чем сообщают о себе udev. > >
> > Т.е. - я к тому, что powersave и hibernate - это приложения из разных
> классов
> > задач. Не надо их путать.
>
> я их не путаю. сейчас всюду суется hotplug, потом будет powersave который хрен
> оторвешь
Хотплуг никто никуда не суёт уже год как. Как только появилась рабочая ему
альтернатива - я перестал рекомендовать ставить hotplug по умолчанию. Осталось
только перенести пока ещё нереализованный его функционал в другие места.
А powersave можешь и не ставить, но я тебе описал его функционал и аналогов ему
я не знаю.
(In reply to comment #19) > (In reply to comment #18) > > (In reply to comment #17) > > > > speedstep нужен в обязательном порядке на нормальном десктопе. > > > model name : Intel(R) Pentium(R) 4 CPU 2.80GHz > > > какой speedstep мне сюда прикрутить? а то тоже спать хотится > > Сказано же -- на _нормальном_ :) Для Intel(R) это никак не Pentium(R) 4, а > > > > > я их не путаю. сейчас всюду суется hotplug, потом будет powersave > > > который хрен оторвешь > > Хорошо, давайте придумаем отдельный сервис, даже если это будет просто > кусочек > > hotplug, но без всего, что с ним ассоциированно. > > давайте. только остается открытым вопрос как определять > нормальные/ненормальные процессоры и кто будет эту базу поддерживать С поддержкой базы основная проблема. Как определять - методика есть, она описана в исходниках libhw, там ничего сверхсложного (за исключением того, что реализовать это реально только на C). База тоже есть (значительно устарела, не обновлялась год), откуда брать данные - тоже не вопрос. (In reply to comment #24) > С поддержкой базы основная проблема. практически не реализуемая. или база всегда не актуальная > Как определять - методика есть, она описана > в исходниках libhw, там ничего сверхсложного (за исключением того, что > реализовать это реально только на C). да хоть на shell, только это не решит первую проблему > > База тоже есть (значительно устарела, не обновлялась год), откуда брать > данные - тоже не вопрос. однако же база не обновляется и брать данные их нее некому (In reply to comment #23) > Хотплуг никто никуда не суёт уже год как. Как только появилась рабочая ему > альтернатива - я перестал рекомендовать ставить hotplug по умолчанию. В Desktop 4.0.x до сих пор присутствует -- AFAIK "по инерции" скорее. Я из того, что поставляю -- выкинул. (In reply to comment #26) > (In reply to comment #23) > > Хотплуг никто никуда не суёт уже год как. Как только появилась рабочая ему > > альтернатива - я перестал рекомендовать ставить hotplug по умолчанию. > В Desktop 4.0.x до сих пор присутствует -- AFAIK "по инерции" скорее. > > Я из того, что поставляю -- выкинул. Не совсем по инерции - пока не решены описываемые здесь проблемы, он должен быть. (In reply to comment #25) > (In reply to comment #24) > > С поддержкой базы основная проблема. > > практически не реализуемая. или база всегда не актуальная Реализуемая, если кто-то непрерывно будет отслеживать выпуск новых CPU и находить на них спецификации.. соответсвенно добавлять в базу. > > > Как определять - методика есть, она описана > > в исходниках libhw, там ничего сверхсложного (за исключением того, что > > реализовать это реально только на C). > > да хоть на shell, только это не решит первую проблему > > > > > База тоже есть (значительно устарела, не обновлялась год), откуда брать > > данные - тоже не вопрос. > > однако же база не обновляется и брать данные их нее некому И это основная проблема, без решения которой мы так и будем топтаться на одном месте. (In reply to comment #28) > > однако же база не обновляется и брать данные их нее некому > И это основная проблема, без решения которой мы так и будем топтаться на одном > месте. Нашли проблему, блин. Ну давайте я буду её майнтайнить? Давай. Сейчас это в hwdatabase, посмотри пожалуйста. Это не баг, а какой-то дискуссионный клуб :) Проблема с загрузкой модулей ACPI (battery, fan, button) и некоторых специфических драйверов типа thinkpad_acpi устранится после переезда на ядро 2.6.24 - для этих модулей сделали поддержку modalias. Что делать с cpufreq - непонятно; я уже писал, что в udev делать поддержку этих модулей не имеет смысла, поскольку события для соответствующих устройств не выдаются. Логично было бы поместить логику их загрузки в тот же пакет, который будет выполнять настройку (выбор governor и настройка его параметров). По поводу выбора драйверов cpufreq - вероятно, для всех неизвестных процессоров Intel стоит пробовать сначала загрузить speedstep_centrino, а в случае ошибки при его загрузке пробовать acpi_cpufreq. Для AMD, похоже, ситуация будет аналогичной, только с заменой speedstep_centrino на powernow-k8. (In reply to comment #31) > Это не баг, а какой-то дискуссионный клуб :) > > Проблема с загрузкой модулей ACPI (battery, fan, button) и некоторых > специфических драйверов типа thinkpad_acpi устранится после переезда на ядро > 2.6.24 - для этих модулей сделали поддержку modalias. т.е. ты хочешь сказать что udev вот это может загрузить? alias: acpi*:PNP0C0A:* ac, button, thermal, fan, processor, battery действительно грузятся сами для TP X24 и TP T41 у меня вот что получилось: ---------------- # X24 alias dmi:bvnIBM:*:svnIBM:*:pvrNotAvailable:*:rvnIBM:* thinkpad_acpi alias dmi:bvnIBM:bvr1DET70WW*:svnIBM:*:pvrNotAvailable:*:rvnIBM:* speedstep_ich # T41 alias dmi:bvnIBM:*:svnIBM:*:pvrThinkPadT41:*:rvnIBM:* speedstep_centrino install speedstep_ich /sbin/modprobe --first-time --ignore-install speedstep_ich && { /sbin/modprobe cpufreq_conservative; /bin/true; } install speedstep_centrino /sbin/modprobe --first-time --ignore-install speedstep_centrino && { /sbin/modprobe cpufreq_conservative; /bin/tru e; } options thinkpad_acpi experimental=1 fan_control=1 --------------- (In reply to comment #33) > ---------------- > # X24 > alias dmi:bvnIBM:*:svnIBM:*:pvrNotAvailable:*:rvnIBM:* thinkpad_acpi А можно увидеть /sys/class/dmi/id/modalias полностью? Попробуйте ещё вот такой вариант: alias dmi:bvnIBM:bvr1[0,3,6,8,A-G,I,K,M-P,S,T]ET??WW* thinkpad_acpi (похоже, в модуле просто забыли "*" в конце). > alias dmi:bvnIBM:bvr1DET70WW*:svnIBM:*:pvrNotAvailable:*:rvnIBM:* > speedstep_ich > # T41 > alias dmi:bvnIBM:*:svnIBM:*:pvrThinkPadT41:*:rvnIBM:* speedstep_centrino Не уверен, что стоит грузить эти модули именно таким образом - придётся создавать слишком много записей. > install speedstep_ich /sbin/modprobe --first-time --ignore-install > speedstep_ich && { /sbin/modprobe cpufreq_conservative; /bin/true; } > install speedstep_centrino /sbin/modprobe --first-time --ignore-install > speedstep_centrino && { /sbin/modprobe cpufreq_conservative; /bin/tru > e; } Этого всё равно мало - просто загрузки cpufreq_conservative недостаточно, нужно ещё писать в sysfs. (In reply to comment #34) > Попробуйте ещё вот такой вариант: > > alias dmi:bvnIBM:bvr1[0,3,6,8,A-G,I,K,M-P,S,T]ET??WW* thinkpad_acpi Точнее, вот так: alias dmi:bvnIBM:bvr1[0,3,6,8,A-G,I,K,M-P,S,T]ET??WW:* thinkpad_acpi (In reply to comment #34) > (In reply to comment #33) > > ---------------- > > # X24 > > alias dmi:bvnIBM:*:svnIBM:*:pvrNotAvailable:*:rvnIBM:* thinkpad_acpi > > А можно увидеть /sys/class/dmi/id/modalias полностью? dmi:bvnIBM:bvr1DET70WW(1.32):bd06/10/2003:svnIBM:pn2660PU6:pvrNotAvailable:rvnIBM:rn2660PU6:rvrNotAvailable:cvnIBM:ct10:cvrNotAvailable: > > Попробуйте ещё вот такой вариант: > > alias dmi:bvnIBM:bvr1[0,3,6,8,A-G,I,K,M-P,S,T]ET??WW* thinkpad_acpi > > (похоже, в модуле просто забыли "*" в конце). > Не уверен, что стоит грузить эти модули именно таким образом - придётся > создавать слишком много записей. это ради примера. записей будет много, но зато не придется изобретать велосипеды > Этого всё равно мало - просто загрузки cpufreq_conservative недостаточно, > нужно ещё писать в sysfs. данного бага это не касается кстати, на моем Intel(R) Pentium(R) 4 CPU 2.80GHz работает p4_clockmod, с cpufreq_powersave получаю "cpu MHz : 350.000" ради примера ------------------- alias dmi:*:rn8IPE1000-G:* p4_clockmod install p4_clockmod /sbin/modprobe --first-time --ignore-install p4_clockmod && { /sbin/modprobe cpufreq_ondemand ; /bin/true; } ------------------- (In reply to comment #36) > dmi:bvnIBM:bvr1DET70WW(1.32):bd06/10/2003:svnIBM:pn2660PU6:pvrNotAvailable:rvnIBM:rn2660PU6:rvrNotAvailable:cvnIBM:ct10:cvrNotAvailable: Понятно, значит второй вариант (comment #35) не годится - вместо ":*" придётся написать просто "*". (In reply to comment #38) > alias dmi:*:rn8IPE1000-G:* p4_clockmod Это уже неправильно - просто используется процессор, который не поддерживает ничего, кроме p4_clockmod; в случае более нового процессора может работать speedstep_centrino. Т.е., выбор драйвера cpufreq по данным DMI если и возможен, то только для ноутбуков, где тип процессора однозначно определяется по модели ноутбука. Для десктопных машин нужно смотреть именно тип процессора. (In reply to comment #39) > > alias dmi:*:rn8IPE1000-G:* p4_clockmod > > Это уже неправильно - просто используется процессор, который не поддерживает > ничего, кроме p4_clockmod; в случае более нового процессора может работать > speedstep_centrino. боюсь что в эту материнку ничего более нового поставить нельзя (In reply to comment #40) > боюсь что в эту материнку ничего более нового поставить нельзя Конкретно в эту нельзя, но в LGA775 вполне могут вставать и старые P4, и поддерживающие EIST Core 2. Вообще с точки зрения снижения энергопотребления p4-clockmod почти бесполезен (одно время его вообще грозились выбросить из ядра). а откуда можно получить информацию о процессоре кроме как из /proc/cpuinfo? Из функции cpuid В системе по моему это нигде не доступно, кроме как /dev/cpu/0/cpuid (после загрузки модуля cpuid). /me опять потерял нить - таки нужна отдельная db для процессоров, или из ядра вся нужная информация будет выдана? Sisyphus/obsolete/hotplug-2004_09_23-alt17.src.rpm |