[devel] Re: UQ: hotplugs vs two sound cards

Anton Farygin =?iso-8859-1?q?rider_=CE=C1_altlinux=2Ecom?=
Чт Июн 10 22:46:13 MSD 2004


Michael Shigorin пишет:
> PreScriptum:
> 
> - hotplug/pci предлагается отложить на Master 3.0;

hotplug/pci работает только на ядре 2.6. Для ядра 2.4 он не выполняется.

> - для Master 2.4 предлагается использовать замороженный по
>   состоянию на Compact 2.3 или Sisyphus-current kudzu.

не получится.. kudzu придется править в любом случае.

> 
> Соображения -- ниже.
> 
> On Thu, Jun 10, 2004 at 11:08:32AM +0400, Anton Farygin wrote:
> 
>>>Тут сконфигурирована смесь (snd-emu10k1 + nvaudio) -- мне так
>>>sound-scripts интереснее было крутить; правда, hotplug все
>>>равно грузит snd-intel8x0 -- что вполне понятно, но: sudo grep
>>>-r snd-intel8x0 /etc/mod* находит совпадения в только в
>>>/etc/modprobe.conf-out, и этот искуственный интеллект
>>>напрягает.
>>
>>Это не искусственный интелект..
> 
> 
> Нет.  Это неестественный интеллект в худшем смысле этого слова, и
> смотри почему.
> 
> У нас в итоге смешиваются:
> 
> - желательно интерактивная настройка оборудования и
> - желательно неинтерактивная настройка оборудования.
> 
> Первое -- это сетевые интерфейсы, принтеры, прочая периферия, где
> надо спросить пользователя (и которые _наиболее_ типично, хотя
> необязательно, подключены более стационарно, чем пять раз на
> ребут), а второе -- это целевая "аудитория" покойного сервиса usb
> в первую очередь.
> 
> Которая местами пересекается с первой, но не в весьма
> распространенной категории usb-storage.
> 
> Так вот.
> 
> Что происходит, когда на систему без сетевых карт добавляется
> обычная поддерживаемая PCI-карта?  Раньше kudzu при загрузке или
> с пинка писал modules.conf и дергал настраивалку.  Что теперь?

Тоже самое в ядре 2.4

> 
> Что происходит, когда меняется видеокарта?

Аналогично.

> 
> Что происходит, когда добавляется вторая звуковая карта
> (классический пример -- к первой набортной)?

На ядре 2.4 - аналогично. На ядре 2.6 - все по другому.

> 
> Что происходит, когда два PCI-устройства одного класса меняются
> слотами?

Ничего.

> 
> Что происходит, когда к PCI ethernet добавляем USB- и
> PCMCIA-ethernet? (в смысле неслетания связи через уже имеющийся)

Зпускается hotplug или cardbus
> 
> И это мы еще не думаем, а что происходит, если добавляются
> не-PCI/PCMCIA/USB, но _уже_ поддерживаемые устройства вроде
> ISA PnP звука/модема. (между прочим, такие SB16 в Master 2.2
> собраны и у меня было минимум две жалобы на это -- т.е. это не то
> железо, про которое _уже_ можно забыть)
> 
> Про умеренно тонкие настройки вроде параметров модулей тоже пока
> молчим.
> 
> 
>>посмотри внимательно на код pci.rc и pci.agent.
> 
> 
> Смотрел по диагонали, пока думал, где ж ошибка.  Потом понял, что
> не в коде дело, а в подходе.

Неверно.

> 
> 
>>Там загружаются модули, которые находятся через pciscan, если
>>pciscan ничего не нашел, то идет загрузка модулей согласно
>>/lib/modules/<kernel>/modules.pcimap.
>>Ну и в такой схеме естественно все то, что ты прописал в
>>modules.conf - игнорируется.
> 
> 
> Ты думаешь, такой дистрибутив выживет на рынке, даже если успеем
> отлизать хотя бы половину вылезших багов?

Выживет. Ядро 2.6 - экспериментальное.

> 
> Автоматика, которая хотя бы уже проверена -- это Microsoft(R)
> Windows(TM), и тут ты с ними за полгода не потягаешься ну никак.
> 
> И то -- (гипер)интерактивна, а не наоборот -- все молча.
> 
> kudzu, который мы с тобой дружно не любим -- автоматика, которая
> может и не так, но проверена и работает на более широком ареале
> _критичных_ ситуаций, включая пресловутые последовательные мышки.

На ядре 2.4 - да. На ядре 2.6 kudzu не работает _совсем_.

Если тебе реально интересно что такое kudzu - посмотри на федору - там 
его уже переписали _исключительно_ для ядра 2.6. Т.е. - обновлять нам 
его нельзя.

> 
> 
>>Как это исправить ? Вопрос хороший, я пока что этого не знаю.
> 
> 
> Так может перед тем как ломать -- обдумать, что именно строить, и
> не брать на себя исключительное бремя ответственности?

Думай. Я уже все обдумал.

> 
> 
>>В принципе можно сделать /etc/pciscan.d/, куда класть
>>дополнительные конфиги для таких случаев, как у тебя
>>(самосборные модули).
> 
> 
> Брр.
> 
> trickster:~> sudo rpm -qf /lib/modules/2.4.26-std-up-alt2/nvidia-nforce/nvaudio.o
> kernel-modules-nvidia-nforce-std-up-1.0.0261-alt12.2

Это ядро 2.4. Как ты умудрился запустить hotplug pci на ядре 2.4 ?

> 
> Другое дело, что могут же быть и самосборные... или "обратитесь к
> производителю"? ;-)
> 
> 
>>В общем - если есть идеи, то я готов их выслушать в bugzilla.
> 
> 
> Идея есть одна -- сказать, что hotplug::pci -- это ALM3 timeline
> и не пытаться родить гибрид ужа с ежом -- дистрибутив на 2.4 с
> инсталятором на 2.4, в котором из инсталятора выкинуты его
> основные ценности -- хоть как-то делающие рабочий
> /etc/modules.conf куски, потому как на modules.conf мы в рантайме
> все равно забиваем.

Ты код смотрел ?

Дальше я не читаю.


> 
> Подумай сам, сколько горя будет из-за:
> 
> - неработающих последовательных мышей;
> - неподъемных без sndconfig isapnp-звуковушек;
> - "неотключаемого kudzu" или "неработающего usb" (без вариантов);
> - прочих ляпов, которые всегда остаются при изменениях в
>   последний момент.
> 
> Я понимаю, что поддерживать kudzu/ldetect-lst -- боль и что ляпов
> там остается все равно NNN, но что мешает хотя бы заморозить их
> на уровне ALC2.3 с минимальными изменениями (ведь переворотов не
> было)?
> 
> При этом параллельно спокойно развивать hotplug, в т.ч.
> PCI-часть (включив ее локально в явном виде) и к 3.0 получить
> более взвешенный баланс этой экосистемы, которая, как видим на
> примере *-scripts, на hotplug не заканчивается.
> 
> 
>>>В общем, что делать и кто виноват? (спрашиваю в т.ч. как
>>>майнтейнер sound-scripts, которого первым будут бить за
>>>неподобство с двумя звуковыми, да и не только с двумя)
>>
>>На 2.6 ядре sound-scripts надо отправлять в /dev/null, перенося
>>всю функциональность в sound.agent hotplug'а. Это более
>>правильное решение.
> 
> 
> Не спорю и обдумываю это минимум полгода, начитавшись Takashi
> Iwai (собственно, как сел пилить sound-scripts, так и).
> 
> 
>>Однако оно не работает на 2.4 ядре и это можно будет делать
>>только тогда, когда мы забудем про существование ядра 2.4.
> 
> 
> И ISA PnP (в смысле, официально скажем "а ну марш в магазин, неча
> свое барахло под наш линукс подставлять").
> 
> Беда в том, что это, с позволения сказать, anti-hotplugged
> hardware (которое долго и/или рискованно детектится или вообще
> конфигурируется вручную) будет жить даже дольше, чем нужно
> поддерживать ядро 2.4.
> 
> И "мы", как уже не раз отмечалось -- это еще не вся аудитория
> дистрибутива, или в нем нет смысла.  А есть люди, которые 2.2 еще
> пользуют или с 2.0 не так давно слезли...
> 
> PS: pilot@ пока пришел к выводу, что на сейчас возможно только
> игнорировать запуски ifup из hotplug.  Я тоже могу сделать
> аналогичный объезд -- в sound::start() молча выгружать звуковые
> модули и при этом все будет работать, как ожидается -- но это же
> не дело.
> 



Подробная информация о списке рассылки Devel