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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27516841/article/details/87860361

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

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

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

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

用set machid 7CF 试试看

扫描二维码关注公众号,回复: 5705773 查看本文章

问: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

猜你喜欢

转载自blog.csdn.net/qq_27516841/article/details/87860361