Порт сетевого драйвера Linux для ARM - PullRequest
0 голосов
/ 08 августа 2011

У меня есть сетевой драйвер Linux, который изначально был написан для ядра 2.4. Работает отлично.

Я хочу перенести его в ядро ​​2.6.31, а затем в ARM Linux с тем же ядром, т.е. 2.6.31. На самом деле я сделал некоторые небольшие изменения в драйвере, чтобы он мог компилироваться под ядром 2.6.31, а также загружаться и выгружаться без сбоев. Он также кросс-компиляции для ARM Linux. Но я пока не могу проверить его на ARM.

Как проверить, что драйвер полностью совместим с целевым ядром, и какие соображения необходимо учитывать, чтобы сделать его совместимым с ARM.

Драйвер является драйвером виртуального сетевого устройства.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 08 августа 2011

Вы не можете проверить драйвер таким образом - вы должны учитывать изменения API в ядре серии 2.6.x. Изменения довольно значительны и в целом API из серии 2.4, который в настоящее время не используется.

Я бы предложил вам пойти здесь в книжный магазин Amazon для этой книги, в частности. Книга называется «Основные драйверы устройств Linux» Срикришнана Венкатесварана. Очень подробное объяснение, которое будет вашим руководством в обеспечении правильной работы.

Поскольку вы упомянули, что драйвер устройства является сетевым, предположительно символьным устройством (вы не получаете к нему доступ в блоках), хорошо, что хорошие новости в том, что API ядра серии 2.6.x для символьных устройств значительно проще и более централизованный, чтобы сосредоточиться на том, что на самом деле уже существует множество рамок, в которых автор этой книги очень четко объясняет.

Кстати, книга посвящена последнему ряду 2.6.x после 2.6.19, так что это поможет вам понять, что нужно сделать, чтобы ваш драйвер работал.

Вы не указали целевой набор микросхем ARM?

Что касается тестирования ... ну ... возможно, лучший способ сделать это, это зависит от того, как вы ответите на вышеуказанный вопрос о чипсете ARM - если это ARMv6, то, возможно, дешевый телефон для Android, который вы можете легко разблокировать и получить root права, вставить туда ядро ​​и посмотреть, что произойдет - извините за надуманное звучание, но это лучшее, что я могу придумать, и это то, что приходит мне в голову, чтобы вы могли протестировать его для удобства тестирования :)

PS: на многих дешевых телефонах ARMv6 ядро ​​2.6.32 будет работать под управлением Froyo, если это поможет!

1 голос
/ 08 августа 2011

Возможно, вы могли бы использовать Qemu (http://wiki.qemu.org/Main_Page) для эмуляции платформы ARM, чтобы иметь возможность протестировать ваш драйвер.

...