[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