............................................................................................................
PC机系统:ubuntu 11.10
Linux kerner : 2.6.39
............................................................................................................
RT3070驱动编译过程不在多说,如果觉得改的什么问题也没有,且内核也进行了相应的配置,在编译时还是出现很多错误。对于这种情况建议从网上从新找个驱动源代码进行编译。我试过个了,对两个不同版本的3070驱动进行编译,一样的改的,一个可以编译成功,另一个却不行。
驱动编译好了之后,下载到板子,
>[root@mcuzone /home]#insmod rt3070sta.ko
rt3070sta: Unknown symbol __bswapsi2 (err 0)
insmod: can't insert 'rt3070sta.ko': unknown symbol in module or invalid parameter
显示__bswapsi2没有定义。因为板子内核是自带的,考虑是不是内核没有加相应东西,于是在PC上编译内核,使用SAM-BA烧写的板子上,重新启动,出现:
NAND read: device 0 offset 0x200000, size 0x300000
atmel_nand : multiple errors detected. Unable to correct.
NAND read from offset 200000 failed -1
88064 bytes read: ERROR
Wrong Image Format for bootm command
ERROR: can't get kernel image!
U-Boot>
仔细阅读开发资料,发现厂家只建议采用所提供的bat烧写方式,于是连接上J-link,将文件中的内核替换成自己编译的,烧写完毕启动,发现终端只打印
roomboot
经过几次测试,发现个小细节,用bat烧写方式,完毕后要先关闭板子,拔出J-link,之后再才能重启。
期间为了烧写方便,自己弄了个NFS文件系统,挂载时出现
ending DHCP requests .....
eth0: link up (100/Full)
., OK
IP-Config: Got DHCP answer from 0.0.0.0, my address is 192.168.1.102
IP-Config: Complete:
device=eth0, addr=192.168.1.102, mask=255.255.255.0, gw=192.168.1.1,
host=192.168.1.102, domain=, nis-domain=(none),
bootserver=0.0.0.0, rootserver=0.0.0.0, rootpath=, mtu=576
VFS: Cannot open root device "nfs" or unknown-block(0,255)
Please append a correct "root=" boot option; here are the available partitions:
1f00 65536 mtdblock0 (driver?)
1f01 196608 mtdblock1 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,255)
[ [ [ +0x164/0x1b8) [ 0/0x13c) [ /0x8) 类似错误信息,查看后发现原来是没mount上,mout格式如下: >setenv bootargs mem=128M console=ttyS0,115200 root=/dev/nfs rw nfsroot=192.168.1.108:/mcuzone/nfsroot/my_rootfs ip=dhcp 当内核替换之后以为驱动可以加载上了,试了之后发现还是会打印—bswapsi2没定义。自此排除原因为内核导致。上网搜了相关资料,有说是GCC的bug,于是考虑替换gcc。 原来gcc版本为arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 解压,用版本arm-2007q1-10-arm-none-linux-gnueabi.tar.bz2 解压后,采用新的gcc对驱动进行编译,完了之后下载到板子,出现 >rt3070sta: version magic '2.6.39 mod_unload ARMv5 p2v8 ' should be '2.6.39 mod_unload ARMv5 ' >insmod: can't insert 'rt3070sta.ko': invalid module format 出现内核版本不匹配,突然想起编译uImage时是采用2011.03.-41版本的gcc,而驱动是采用2007q1-10版本的gcc。于是用2007-q1-10版本的gcc先对内核进行编译,并make install,在对驱动代码进行编译。注意这个前后顺序不能改变,不然内核虽然改过来了。驱动却还是用之前编译的内核,加载驱动就会出现 >rt3070sta: version magic'2.6.39 mod_unload ARMv5 ' should be'2.6.39 mod_unload ARMv5 p2v8 ' >insmod: can't insert 'rt3070sta.ko': invalid module format 到现在驱动能加载了 [root@mcuzone /home]#chmod 777 rt3070sta.ko [root@mcuzone /home]#insmod rt3070sta.ko rtusb init ---> usbcore: registered new interface driver rt2870
上一篇:对SAM9X5移植的总结
下一篇:SylixOS 共用中断号机制
推荐阅读最新更新时间:2024-10-30 23:18
设计资源 培训 开发板 精华推荐
- 使用 Diodes Incorporated 的 ZR78L085 的参考设计
- 使用 Cypress Semiconductor 的 CY7C9335 的参考设计
- LTC3615EUF 双通道 4MHz、3A 同步降压型 DC/DC 转换器的典型应用
- LT3799-1 演示板,具有 PFC 的离线隔离式反激式 LED 驱动器
- AD9287-100EBZ,用于评估 AD9287 四路、8 位、100 MSPS 串行 LVDS ADC 的评估板
- 使用 Endicott Research Group 的 SFD2CB3965F 的参考设计
- EVAL-ADPD1081Z-PPG,用于评估 ADPD1080/ADPD1081 光度前端的评估套件
- AM6TW-2418DZ ±18V 6 瓦单路输出 DC-DC 转换器的典型应用
- OP484FSZ-REEL7 高端负载电流监控器的典型应用
- NCV881930MW00-33GEVB:汽车低 Iq 410 kHz 同步降压控制器,3.3 V - 6A 评估板