On Tue, Jan 04, 2005 at 09:26:00PM +0300, Konstantin A. Lepikhov wrote: > Уже долгое время меня беспокоит один неприятный момент - начиная с ядра > 2.4.18, у меня перестал работать agpgart для i850. Как это проявляется - > если загрузить модуль, то все сначала выглядит пристойно - модуль > грузится, что-то находится. Далее при попытке загрузки Xserver'а с DRI, > получаем следующее - если используется AGPMode > 1, то получаем глухой > завис с отключением монитора (причем SysReq не отрабатывает), если > поставить AGPMode 1, загрузка (судя по XFree.log/Xorg.log) проходит > успешно, но экран остается черным, переключение в консоль не работает, но > машина все еще остается доступной (только по top видно, что X жрет 99% > CPU). Долгое время единственным решением этой проблемы было использование > agpgart от fglrx (поскольку он основан на agpgart от ядра 2.4.16 и более > ранних), но в связи с переходом на xorg и это возможность отпала. Путем > поиска и экспериментов с откатами изменений из bk, нашел причину проблемы > - перестал работать generic_agp_enable (после этого изменения 1.23 > agpgart_be.c в bk). Ой, как давно это было... там даже детальных changelog-ов нет - "Import patch patch-2.4.19-pre1-pre2" :( > Для 2.4 сделал хак - перенес agp_enable из 2.4.18 и > поставил его для i850, все стало работать как и прежде, но только с > AGPMode 1. Для 2.6 это прокатит - там слишком большой объем изменений, и > надо менять что-то более глубоко. Чтение архивов LKML особо не > просвятило, разве что стало ясно с agp в ядре не все так просто. Поэтому > прошу помощи знающей и умеющей общественности для убийства этого бага > раз и навсегда, заодно засветится в changelog'ах к новым ядрам ;) > > Информация для размышления: > > $ lspci Тогда уж lspci -vv -xxx (можно в багзиллу, чтобы не засорять рассылку кучами дампов). Причём лучше сразу два варианта: один - до загрузки всех модулей AGP (например, при init=/bin/bash), второй - после инициализации AGP с этим хаком. > Сообщения при инициализации неработающего модуля intel_agp: > Jan 3 00:52:29 lks kernel: agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0. > Jan 3 00:52:29 lks kernel: agpgart: Putting AGP V2 device at 0000:00:00.0 into 0x mode > Jan 3 00:52:29 lks kernel: agpgart: Putting AGP V2 device at 0000:01:00.0 into 0x mode > Jan 3 00:52:29 lks kernel: agpgart: Putting AGP V2 device at 0000:02:04.0 into 0x mode Мда, явная чушь. Хотя вот и странность: обычно в системе присутствуют только два AGP-устройства (host bridge и видеокарта), а тут их три...