前两天不能工作的原因是我用的是v18j的内核,但是我的模块都不是v18j的,所以当我通过v18j的编译环境编译出来的模块加入到USB子系统是,不能正常工作,我怀疑是某些数据结构不一样。
这两天学会了,交叉编译环境的建立。学会分析内核的Oops.使用ksymoops,objdump等工具。
对USB驱动的了解也加深了。
编译时要对RT73的Makefile做修改。我用的是1.0.4的驱动,编译器是2.95.2,内核是2.4.20。
Makefile修改如下:
+ CC := arm-linux-gcc
+ LD :=arm-linux-ld
另外把编译内核模块的CFLAGS弄过来,替换Makefile里的。
由于使用的是2.95.2的编译器,不支持 anonymous union。所以修改了rtmp.h里的TX_BUFFER。改了之后内存占用会变多。
还有网上有的说要把rt73.bin拷贝到/etc/Wireless/RT73STA目录下,其实这个firmware是不需要的,因为已经作为字节数组放在C源程序里了。我没有这个文件一样正常工作。
这是前两天的努力:
没有评论:
发表评论