内核3.4.2--移植网卡驱动DM9000

本文详细记录了将dm9000网卡驱动移植到内核3.4.2的过程,包括识别平台设备、修改smdk2440代码支持dm9000,以及使用最新版dm9000驱动的方法。通过调整machid设置和注册平台设备,实现了dm9000驱动的正确加载。

新的内核3.4.2移植成功后,系统跑起来后,发现内核不支持网卡驱动DM9000

 

分析后发现之前uboot里面设置的machid 为0x16a

set machid 16a   // smdk2440  mach-smdk2440.c

set machid 7CF  // mini2440    mach-mini2440.c

用set machid 7CF 试试看

 

问:dm9000 driver 什么时候调用呢

答:内核里面识别到了有同名的dm9000 plat_device(平台设备),才会调用dm9000_driver

 

问 怎么移植呢?

内核代码里面搜索dm9000

mach-mini2440.c里面有这个平台设备

平台设备  dm9000被注册到内核里面了! 注意这里说的是设备不是驱动

 

 

怎样的调用过程呢?

----->>>被调用

----->被调用

这里添加进内核里面 ----->被掉用

 

 

 

 

 

再回头看看我们的smdk2440代码,发现支持的平台设备很少且没有dm9000

 

在smdk2440.c代码里面添加如下代码:

make uImage -----uImage_net烧录到开发板---->set machid 16a--->bootm 32000000

ifconfig eth0 192.168.2.5.可以启动dm9000

 

 

 

问:以上是使用内核自带的dm9000驱动,如何使用最新的dm9000驱动,就需要自己写dm9000的驱动程序

发现写错了

mount -t nfs -o nolock,vers=2 192.168.2.102:/work/nfs_root/fs_mini_mdev_new /mnt 成功了

将自己移植的最新的dm9k.c 放到内核自带的dm9000文件夹里面

然后make uImage 编译进内核

 

问:如何设置 网络文件系统启动呢

 

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>

set bootargs console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.2.102:/work/nfs_root/fs_mini_mdev_new ip=192.168.2.5:192.168.2.102:192.168.2.1:255.255.255.0:eth0:off

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值