dm9000网卡驱动移植总结

      一开始是参照《TX2440A的内核移植手册》移植的,也是一步一步按照步骤做的,可是有问题,XP系统和虚拟机下的linux系统都能ping通开发板,但是板子就是ping不通XP系统和linux系统。后来在天嵌开发板论坛上看到说可能是移植过程出错了,论坛网址:

http://www.armbbs.net/forum.php?mod=forumdisplay&fid=126

      于是就按照这个思路重新做了移植,这次是参照天嵌的移植手册移植的。可是一开始没注意观察,乍一看天嵌的手册上移植一个dm9000网卡驱动要比天祥电子的手册多很多步骤,还傻乎乎地闷着头开始移植,移植到一半的时候纠结了,怎么已经修改过了一次dm9000.c文件,后面又要修改dm9000.c,后来仔细一查看才发现,原来天嵌的资料做了两个不同版本的linux系统的dm9000网卡移植,具体原因已经在手册上详述。我的linux系统时2.6.31版本的,因此我只要参考2.6.30.4版本linux的dm9000网卡驱动移植步骤就可以了,经过一步一步的修改,dm9000.c的修改我是直接用天嵌的出厂源代码里的dm9000.c文件替换掉我的文件的,配置、编辑、下载,终于OK了,开发板和XP系统、linux系统可以互ping了!

       在编译的过程中出现arm-linux-nm command not found的问题,这个问题我在暑假的时候就碰到过,解决方法很简单,我在/etc/profile把3.3.2版本交叉编译器也打开了,然后source /etc/profile就可以了,一开始我担心编译我内核的交叉编译器也被改成了3.3.2版本,于是我用#arm-linux-gcc –v查看了我交叉编译器的版本,发现还是arm920t-eabi,没变,哈哈!OK,编译正常通过,而且编译出来的内核能正常运行!这个问题的解决是参考了这个网站上的文章:

http://hi.baidu.com/qqyadf/item/29417460a6acc63668105b4d

接下来就可以挂载nfs服务器了。。。

    就是因为上述红色标注的那段字体,让我好不淡定,在我移植声卡驱动的时候,修改完配置,编译的时候总是出现:

drivers/net/dm9000.c: In function ‘dm9000_probe’:

drivers/net/dm9000.c:1356: error: ‘struct net_device’ has no member named ‘open’

drivers/net/dm9000.c:1357: error: ‘struct net_device’ has no member named ‘hard_start_xmit’

drivers/net/dm9000.c:1358: error: ‘struct net_device’ has no member named ‘tx_timeout’

drivers/net/dm9000.c:1360: error: ‘struct net_device’ has no member named ‘stop’

drivers/net/dm9000.c:1361: error: ‘struct net_device’ has no member named ‘set_multicast_list’

drivers/net/dm9000.c:1363: error: ‘struct net_device’ has no member named ‘do_ioctl’

make[2]: *** [drivers/net/dm9000.o] Error 1

make[1]: *** [drivers/net] Error 2

make: *** [drivers] Error 2

哪怕我改回去之后还是有这样的问题,也就是说神奇了!

      我被这个问题纠结了好几天,我把之前编译好的内核,重新make zImage是好的,编译通过,的,但是我make clean之后再make zImage就出现了上面一样的问题。只移植网卡驱动,不移植声卡驱动的时候又是好的,编译能通过的。我都不知道是什么原因。后来发现是dm9000.c驱动程序的问题,天嵌开发板资料上的移植步骤是针对linux-2.6.30.4版本内核的,而我的内核是linux-2.6.31版本的,我后来验证了一下,这两个版本的dm9000.c驱动源码是不一样的。我将天嵌自带的dm9000.c直接拷贝到我的driver/net目录下当然是有问题的,然后我果断将dm9000.c文件按照天祥电子的移植手册修改,其他的步骤还是按照天嵌手册的。OK,问题解决了!但是我还是有个疑惑,为什么在移植声卡之前编译移植网卡后的内核是没问题的呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值