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

Dmitry Podgorny pasis.ua at gmail.com
Sun Sep 12 11:38:29 EDT 2010


В Sun, 12 Sep 2010 16:45:17 +0200
Alex Naumov <posix.ru at googlemail.com> пишет:

> Всем привет.
> 
> Есть идея написать простейший драйвер для сетевой карты. Если кого
> интересует, присоединяйтесь к обсуждению ;)
> 
> Пока оттолкнуться можно от
> http://linuxgazette.net/156/jangir.html,
> http://linuxportal.ru/entry.php/2622_0_3_0_C/
> и
> http://dmilvdv.narod.ru/Translate/index.html - Linux Device Drivers,
> Third Edition (LDD3) на русском языке
> 
> 
> 
> С уважением,
> Alex

Предлагаю начать с драйвера для сетевых карт AMD PCNet-PCI II и
PCNet-PCI III. Разобраться в работе этой карточки просто и она
эмулируется большинством эмуляторов/ВМ. Ведь учиться писать драйвер на
реальной машине проблематично, довольно часто работа нестабильного
драйвера приводит к kernel panic, из-за чего приходится перезапускать
машину. В письме оставлю ссылки на необходимую документацию. В атаче
находится рабочий прототип драйвера, написанный мной, но имеет ряд
недостатков:
 - написан только для x86 и не предусматривает ни x86_64, ни модели
   памяти big-endian.
 - работает в 2-3 раза медленнее, чем оригинальный драйвер ядра.
 - написан коряво =)

Но как будем писать драйвер? полностью с нуля или пытаться довести до
ума приложенный в атаче?

-- [Литература] --

pcnet.txt в атаче содержит мои наброски в то время, когда я писал этот
драйвер. Много важных моментов я не успел там помянуть, но все же он
будет полезен.

pcnet.c - сам драйвер

PCnet Family Software Design Considerations (основная документация):
http://www.nalanda.nitc.ac.in/industry/AppNotes/AMD/19669.pdf

PCNet-PCI II datasheet:
http://pdfdata.datasheetsite.com/web/24528/AM79C970A.pdf

Можно поискать документацию по продуктам AMD:
http://www.nalanda.nitc.ac.in/industry/AppNotes/AMD/Index.html#m4

А также незаменимая книжка "Linux. Сетевая архитектура. Структура и
реализация сетевых протоколов я ядре", которую в электронном виде найти
невозможно.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Makefile
Type: application/octet-stream
Size: 319 bytes
Desc: not available
Url : http://lists.kernelnewbies.org/pipermail/kernel-russian/attachments/20100912/4535bd88/attachment-0001.obj 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pcnet.c
Type: text/x-c++src
Size: 21878 bytes
Desc: not available
Url : http://lists.kernelnewbies.org/pipermail/kernel-russian/attachments/20100912/4535bd88/attachment-0001.bin 
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pcnet.txt
Url: http://lists.kernelnewbies.org/pipermail/kernel-russian/attachments/20100912/4535bd88/attachment-0001.txt 


More information about the Kernel-russian mailing list