[d-kernel] viafb & vt1211 kernel modules
Grigory Batalov
bga на altlinux.ru
Пт Июл 8 17:35:22 MSD 2005
On Fri, Jul 08, 2005 at 03:50:10PM +0400, Sergey Vlasov wrote:
> > Я добавил в CVS поддержку фреймбуффера для VIA: feat/drivers-viafb.
> > Патч взял отсюда: http://patcher2k.012webpages.com/, лишь подогнал
> > Makefile для 2.6.12. На моей VIA EPIA-MII12000 теперь видно консоль
> > в телевизоре =).
>
> При беглом просмотре обнаружены как минимум следующие ошибки:
>
> 1) static char * mode __initdata = "720x576" и все последующие аналогичные
> переменные не должны быть помечены как __initdata - эти переменные должны
> оставаться доступными для чтения текущих значений параметров модуля через
> sysfs. Аналогичная ошибка была в драйвере intelfb в 2.6.11 (в
> kernel-fix-drivers-video по этому поводу был 2.6_01_intelfb-oops.patch;
> сейчас там его нет, поскольку в 2.6.12 эту ошибку исправили).
>
> 2) static struct fb_fix_screeninfo viafb_fix __initdata - тут должно быть
> __devinitdata.
>
> 3) Нет проверки успешного выполнения framebuffer_alloc() и
> fb_alloc_cmap().
>
> 4) В случае неудачного завершения setmode() или register_framebuffer() не
> освобождаются ресурсы.
Ну да, я уже один раз словил kernel oops =).
> > Правда, для этого пришлось вынести vesafb в модуль и не загружать
> > его, поскольку вместо него используется viafb.
>
> Должно быть достаточно убрать параметр vga=...
Спасибо, попробую.
> > Модуль vt1211 для std26-up устанавливается в странное место,
> > что-то вроде
> > /lib/modules/2.6.12-std26-up-alt1/lib/modules/2.6.12-std26-up-alt1/extra
> > Предлагаю для него более подходящее:
> > /lib/modules/2.6.12-std26-up-alt1/drivers/i2c/chips
>
> Вообще-то основная масса kernel-modules-* складывается как раз в отдельные
> каталоги (в частности, чтобы возникало меньше вопросов по поводу того,
> какие каталоги каким пакетам принадлежат). А для modprobe не имеет
> значения, в какой подкаталог засунут модуль.
Так а 2.6.12-std26-up-alt1 зачем два раза? Пусть бы хоть
extra/vt1211, а то очень похоже на ошибку упаковки.
> > Прилагаю патч для std26-up, добавляющий модуль viafb и выносящий
> > vesafb из ядра в модуль,
>
> vesafb выносу в модуль не поддаётся в принципе. Скорее всего, в
> результате такого редактирования файла конфигурации он просто отключился
> (нормальным способом CONFIG_FB_VESA=m поставить нельзя).
Наверное, так. Я поставил =m руками, а потом уже не проверял,
что там после пересборки в конфиге получилось =).
Да и Бог с ним, раз можно просто убрать vga.
--
Grigory Batalov
Подробная информация о списке рассылки devel-kernel