как кодировать драйверы? - PullRequest
9 голосов
/ 10 июня 2009

Я хочу кодировать драйверы на C в Linux, хотя я думаю, что это очень сложно. Могу ли я получить некоторые советы о том, как начать или книги, чтобы следовать? Драйвера можно с моего USB-порта на видеокарту !!

Я знаю, где я могу искать книги, я хотел бы знать, с каких базовых знаний я должен начать. Нужно ли мне иметь знания аппаратного обеспечения и какие конкретные книги хороши для новичка, как я?

Ответы [ 8 ]

19 голосов
/ 10 июня 2009

Начните с Драйверы устройств Linux от Рубини и Корбета, опубликованные O'Reilly.

Он также доступен в виде бесплатного скачивания в формате PDF .

7 голосов
/ 10 июня 2009

«Драйверы устройств Linux» (книга О'Рейли) Рубини и Корбета - это исчерпывающая книга для драйверов устройств Linux.

Cool! см. бесплатную PDF-версию в ответе Родди и комментарии Кристины!

5 голосов
/ 10 июня 2009

Несколько текстов:

5 голосов
/ 10 июня 2009

попробуй амазонку !! там много книг для водителей. у некоторых есть образцы 2 !!

3 голосов
/ 13 марта 2011

Драйверы сильно различаются по сложности в зависимости от устройства. Драйверы USB находятся на простой стороне спектра; Драйверы GPU чрезвычайно сложны, и даже авторы этих драйверов обычно не знают всего, что они делают. Я бы порекомендовал сосредоточиться на драйверах для оборудования, которое вас лично волнует, а не пытаться быть мастером на все руки; в конечном итоге это будет легче.

Ответы всех остальных об источниках документации и различных материалах для чтения точны, и вам действительно следует принять один из них.

Многие из более сложных сообществ драйверов также имеют свою собственную информацию о домене. Если вы хотите написать драйвер для графического процессора, сообщества DRI / DRM и Mesa имеют свои собственные вики и списки рассылки, которые вам очень помогут, а также собственную документацию. http://dri.freedesktop.org/ является достойным стартовым местом, как и http://wiki.x.org/.

Надеюсь, это поможет!

3 голосов
/ 10 июня 2009

Прежде чем приступить к разработке драйверов, вы должны сначала получить исключительные навыки C и, возможно, некоторые ноу-хау Linux Kernel. Назначение драйверов не тривиально и может отпугнуть вас, если вы не привыкли программировать на низком уровне.

Я мог бы порекомендовать Язык программирования C , если вы не привыкли к C, так как он, на мой взгляд, учебник по C, если у вас есть опыт программирования.

1 голос
/ 28 августа 2009

у вас есть действительно хороший пример

http://www.linuxjournal.com/article/7353

0 голосов
/ 03 августа 2009

Просто посмотрите на исходные коды текущих драйверов. Я написал свой драйвер usb rndis, только прочитав комментарии, помещенные над кодами.

Получите исходный код ядра и посмотрите каталог / drivers. Драйверы USB находятся в каталоге USB, однако драйверы USB о сети находятся в /net/usb.

.

Вы можете многому научиться, читая комментарии.

...