|
Пишем драйвер сетевого устройства для Linux
Оригинал: "Writing Network Device Drivers for Linux"
Автор: Мохан Лал Джангир (Mohan Lal Jangir)
Дата публикации: ноябрь 2008.
Перевод: Н.Ромоданов
Дата перевода: 19 октября 2009 г.
Введение
Настоящая статья была написана для тех, кто только начинает изучение ядра Linux и хочет знать
о драйверах сетевых устройств. Предполагается, что читатель в должной мере знаком с языком C и
средой Linux.
В настоящей статье описывается сетевой драйвер для сетевой платы RealTek 8139.
Я выбрал чипсет RealTek по следующим двум причинам: Во-первых, компания RealTek бесплатно
предоставляет технические спецификации на этот чипсет (спасибо, RealTek!). Во-вторых, он
сравнительно дешев. В Индии его можно приобрести менее, чем за 300 рупий (приблизительно
7 долларов США).
Драйвер, представленный в статье, имеет минимум функций; он просто
посылает и принимает пакеты и собирает некоторую статистику. Для
ознакомления с полноценным драйвером, написанном на профессиональном
уровне, пожалуйста, смотрите исходные тексты Linux.
Подготовка к разработке драйвера
Прежде, чем начать разработку драйвера, нам нужно для этого
подготовить систему. Настоящая статья была написана и проверена для
ядра Linux 2.4.18, в котором содержится исходный код драйвера чипсета
RealTek8139. Может быть в ядре, с которым Вы работаете, драйвер включен
в состав ядра, либо скомпилирован как модуль. Для того, чтобы
избавиться от каких-либо сюрпризов, желательно собрать ядро, в котором
не будет драйвера RealTek8139 ни в каком из вариантов. Если Вы не
знаете, как откомпилировать ядро, я рекомендую обратиться по следующей
ссылке http://www.linuxheadquarters.com/howto/tuning/kernelreasons.shtml.
С этого момента обсуждения предполагается, что у вас есть рабочее
ядро, в котором нет драйвера RealTek8139. Вам также нужны технические
спецификации на чипсет, которые Вы можете загрузить с http://www.realtek.com.tw/.
Последнее, что вам нужно сделать при подготовке, это – правильно
вставить сетевую плату в PCI разъем и теперь мы готовы идти дальше.
Настоятельно рекомендуется иметь книгу Rubini Linux Device Drivers
в качестве справочника по API. В настоящий момент это лучший известный
мне источник сведений для разработки драйверов устройств под Linux.
Читать дальше
|