直接奔赴威盛官网下载了最新版本的Linux驱动,是V1.20版本的,看了看说明,写着最高兼容2.6.31,心中窃喜,直接在我的Fedora9.0(内核版本2.6.25)上make install,插入网卡,竟然就可以使用了,无比顺利。
为了移植到ARM上面去,修改makefile,重新make,竟然报错!
打印出如下消息:
home/xiebiwei/dev/code/Ldd/snull/snull.c:647: error: ‘struct net_device’ has no member named ‘open’
/home/xiebiwei/dev/code/Ldd/snull/snull.c:648: error: ‘struct net_device’ has no member named ‘stop’
/home/xiebiwei/dev/code/Ldd/snull/snull.c:649: error: ‘struct net_device’ has no member named ‘set_config’
/home/xiebiwei/dev/code/Ldd/snull/snull.c:650: error: ‘struct net_device’ has no member named ‘hard_start_xmit’
/home/xiebiwei/dev/code/Ldd/snull/snull.c:651: error: ‘struct net_device’ has no member named ‘do_ioctl’
/home/xiebiwei/dev/code/Ldd/snull/snull.c:652: error: ‘struct net_device’ has no member named ‘get_stats’
细想一下,是由于2.6.30内核的struct net_device结构发生了改变,重新进行了封装,所以这个驱动应该是不支持2.6.30及以上的新版内核了(坑爹啊!说明文件中竟然说兼容2.6.31)。当然这个不是什么大问题了,重新修改main_usb.c可以解决,但是工作量稍大,突然想到,在2.6.32及以上版本的内核中已经集成了VT6656的驱动,虽然是未经LINUX“合法化”的,但是至少可用。在/driver/staging目录中可以看到一个vt6656的文件夹的存在。这个就是集成的驱动。所以想想,直接将这个目录拷贝到2.6.30版本中,修改一下kconfig和makefile 就可以编译通过了。选择2.6.32是为了尽量的接近2.6.30内核,以避免内核发生了新的变化。
阅读(2746) | 评论(0) | 转发(0) |