Совет по написанию драйвера

Взгляд изнутри

Модератор: Модераторы разделов

chuk
Сообщения: 27

Совет по написанию драйвера

Сообщение chuk »

Мне необходимо написать драйвер дисплея, который подключается по последовательному порту.
Есть у меня модуль ядра, реализующий функционал консоли, из него изображение должно писаться в дисплей. Драйвер последовательного порта тоже есть.
Получается необходимо из одного драйвера обмениваться данными с другим драйвером.
Здесь могут помочь функции sys_open, sys_read, sys_close.
Однако открыть файл устройства во время загрузки системы - не представляется возможным. Следовательно мой дисплей заработает только после загрузки ОС. Что не очень радует.
Также думаю, что возникнут проблемы, если потребуется вывести, что-либо на экран из контекста прерывания.
Может быть кто-то подскажет как элегантнее реализовать мою задачу?
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Совет по написанию драйвера

Сообщение Stauffenberg »

chuk писал(а):
07.05.2009 13:09
Однако открыть файл устройства во время загрузки системы - не представляется возможным. Следовательно мой дисплей заработает только после загрузки ОС. Что не очень радует

Так а зачем Вам открывать файл устройства? Вы можете передавать данные через подсистемы ядра. В этом случае, если я не ошибаюсь, input- или serio-subsystem (надо глянуть исходник).

Вот карта ядра, откуда можно узнать, через какие подсистемы взаимодействуют драйвера.

Посмотрите еще вот тут и тут... ну и тут тоже.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
chuk
Сообщения: 27

Re: Совет по написанию драйвера

Сообщение chuk »

Спасибо уважаемый Stauffenberg,
смотрю...
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Совет по написанию драйвера

Сообщение Stauffenberg »

Немного неточно...

graphic card --> vga_con --> console --> tty

HI Subsystem

Все внимание на структуру struct consw vga_con; , та что вот тут

(linux/drivers/video/console/vgacon.c)
(linux/include/linux/console.h)
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
chuk
Сообщения: 27

Re: Совет по написанию драйвера

Сообщение chuk »

Еще вопрос.
В файле tty_driver.h обьявляется структура struct list_head tty_drivers (вот тут)
Корректно ли будет найти в списке tty_drivers нужный драйвер и писать туда данные через методы tty_driver->ttys->ops?
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Совет по написанию драйвера

Сообщение Stauffenberg »

chuk писал(а):
07.05.2009 14:49
Еще вопрос.
В файле tty_driver.h обьявляется структура struct list_head tty_drivers (вот тут)
Корректно ли будет найти в списке tty_drivers нужный драйвер и писать туда данные через методы tty_driver->ttys->ops?

ох... так с ходу не ответишь. Надо досконально смотреть код. Попробуй и обязатально отпишись (:
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
amaora
Сообщения: 95
ОС: Slackware

Re: Совет по написанию драйвера

Сообщение amaora »

Дисплей графический? если да, то почему бы не написать framebuffer драйвер?
кто здесь?
Спасибо сказали: