初识Linux 驱动移植 -- dm921
概述
将kernel移植到开发板并能正常加载和启动内核后,发现网卡并没有工作,因此将网卡作为第一个移植的实践。这篇文章用于记录移植dm9621网卡过程中遇到的问题以及如何定位问题并尝试解决。
配置内核
在找到dm9621网卡驱动的源码后,需要将其添加到内核,并编译到内核去不采用动态加载模块,需要做哪些修改呢?这需要通过内核配置菜单来配置,将dm9620.c(dm9621 网卡驱动源码)拷贝到 driver/net/usb 目录下,通过配置该目录下Kconfig 和 Makefile 来决定。
//Kconfig 添加(添加dm9620 编译选项):
+config USB_NET_DM9620
+ tristate "Davicom DM9620/21 based USB 2.0 10/100 ethernet devices"
+ depends on USB_USBNET
+ select CRC32
+ help
+ This option adds support for Davicom DM9620 based USB 2.0
+ 10/100 Ethernet adapters.
+
+ This driver creates an interface named "ethX",where X depends on
+ what other networking devices you have in use.
+
+ To compile this driver as a module.choose M here.
//Makefile 添加(CONFIG_USB_NET_DM9620 为 y时编译进内核,为 M 时编译成模块):
+ obj-$(CONFIG_USB_NET_DM9620) += dm9620.o
添加好之后就可以通过 make menuconfig来配置了,由于dm9621是usb类型网卡,因此需要依赖于usb 网络框架:<