Драйвер сетевой карты

Dmitry Podgorny pasis.ua at gmail.com
Mon Sep 13 10:56:28 EDT 2010


В Sun, 12 Sep 2010 19:47:33 +0300
Dmitry Podgorny <pasis.ua at gmail.com> пишет:

> В Sun, 12 Sep 2010 16:45:17 +0200
> Alex Naumov <posix.ru at googlemail.com> пишет:
> 
> > Всем привет.
> > 
> > Есть идея написать простейший драйвер для сетевой карты. Если кого
> > интересует, присоединяйтесь к обсуждению ;)

Какие грабли сразу ждут во время написании драйвера:
1. В ядре часто меняются структуры. Я писал драйвер на 2.6.29, а
проверял в qemu с ядром 2.6.27. При чем в этих двух ядрах уже были
несоответствия. Приходилось через #ifdef для разных версий использовать
разные поля структур. Все это можно посмотреть в исходнике (pcnet.c).
Так что нужно быть готовому к тому, что литература может не
соответствовать действительности и нужно будет разбираться в
заголовочных файлах, что же там изменилось.
2. Долгое время у меня ушло на то, чтобы разобраться с чтением/записью
регистров BCR. То ли в литературе смутно описан процесс, то ли я что-то
путаю =). Как бы там ни было, функции чтения/записи уже есть в
исходнике.
3. Нужно не забывать о порядке битов и использовать функции
преобразования hton[sl]() и ntoh[sl]().
4. Были еще проблемы, но о них, когда вспомню.



More information about the Kernel-russian mailing list