+ -
当前位置:首页 → 问答吧 → 【求助】无线网卡驱动移植的交叉编译问题! 急啊

【求助】无线网卡驱动移植的交叉编译问题! 急啊

时间:2006-07-27

来源:互联网

我的无线网卡为asus wl-167g 驱动是官方网站下的,已在PC机的linux系统上能正常工作.
现在想把它修改,使它能在ARM板上使用.我修改了Makefile,把编译器修改成了arm-linux-gcc,
make时出现问题

[root@localhost RT25USB-SRC-V2.0.7.0]# ls
assoc.c                   rt2570sw.h      rtusb_info.c
auth.c                    rt_config.h     rtusb_init.c
auth_rsp.c               md5.c        rtmp_ckipmic.h  rtusb_io.c
config.mk                md5.h        rtmp_def.h      rtusb_main.c
config.new               mlme.c       rtmp_tkip.c     sanity.c
Configure                mlme.h       rtmp_type.h     sha1.h
connect.c                oid.h        rtmp_wep.c      Stdincl.h
iwpriv_usage.txt         readme       rtusb_bulk.c    sync.c
LINUX_RACONFIG_V2.0.0.7  ReleaseNote  rtusb_data.c    wpa.c
Makefile                 rt2570.h     rtusb.h         wpa.h
[root@localhost RT25USB-SRC-V2.0.7.0]# make
arm-linux-gcc -DRT2500_DBG -D__KERNEL__ -I/usr/src/linux-2.4.20-8/include -O2 -f
omit-frame-pointer -fno-strict-aliasing -fno-common -pipe -DMODULE -DMODVERSIONS
-include /usr/src/linux-2.4.20-8/include/linux/modversions.h -Wall -Wstrict-pro
totypes -Wno-trigraphs   -c -o rtusb_main.o rtusb_main.c
rtusb_main.c: In function `CMDHandler':
rtusb_main.c:1072: warning: unused variable `i'
rtusb_main.c:1073: warning: unused variable `pkey'
/usr/src/linux-2.4.20-8/include/asm/semaphore.h:201: inconsistent operand constr
aints in an `asm'
/usr/src/linux-2.4.20-8/include/asm/semaphore.h:201: inconsistent operand constr
aints in an `asm'
/usr/src/linux-2.4.20-8/include/asm/semaphore.h:201: inconsistent operand constr
aints in an `asm'
/usr/src/linux-2.4.20-8/include/asm/semaphore.h:201: inconsistent operand constr
aints in an `asm'
/usr/src/linux-2.4.20-8/include/asm/processor.h: In function `cpuid_eax':
/usr/src/linux-2.4.20-8/include/asm/processor.h:151: unknown register name `dx'
in `asm'
/usr/src/linux-2.4.20-8/include/asm/processor.h:151: unknown register name `cx'
in `asm'
/usr/src/linux-2.4.20-8/include/asm/processor.h:151: unknown register name `bx'
in `asm'
/usr/src/linux-2.4.20-8/include/asm/processor.h: In function `cpuid_ebx':
/usr/src/linux-2.4.20-8/include/asm/processor.h:161: unknown register name `dx'
in `asm'
/usr/src/linux-2.4.20-8/include/asm/processor.h:161: unknown register name `cx'
in `asm'
/usr/src/linux-2.4.20-8/include/asm/processor.h: In function `cpuid_ecx':
/usr/src/linux-2.4.20-8/include/asm/processor.h:171: unknown register name `dx'
in `asm'
/usr/src/linux-2.4.20-8/include/asm/processor.h:171: unknown register name `bx'
in `asm'
/usr/src/linux-2.4.20-8/include/asm/processor.h: In function `cpuid_edx':
/usr/src/linux-2.4.20-8/include/asm/processor.h:181: unknown register name `cx'
in `asm'
/usr/src/linux-2.4.20-8/include/asm/processor.h:181: unknown register name `bx'
in `asm'
/usr/src/linux-2.4.20-8/include/asm/processor.h: In function `set_in_cr4':
/usr/src/linux-2.4.20-8/include/asm/processor.h:217: unknown register name `ax'
in `asm'
/usr/src/linux-2.4.20-8/include/asm/processor.h: In function `clear_in_cr4':
/usr/src/linux-2.4.20-8/include/asm/processor.h:227: unknown register name `ax'
in `asm'
/usr/src/linux-2.4.20-8/include/asm/system.h: In function `__set_64bit':
/usr/src/linux-2.4.20-8/include/asm/system.h:163: unknown register name `dx' in
`asm'
/usr/src/linux-2.4.20-8/include/asm/system.h:163: unknown register name `ax' in
`asm'
/usr/src/linux-2.4.20-8/include/asm/system.h: In function `__set_64bit_constant'
:
/usr/src/linux-2.4.20-8/include/asm/system.h:163: unknown register name `dx' in
`asm'
/usr/src/linux-2.4.20-8/include/asm/system.h:163: unknown register name `ax' in
`asm'
/usr/src/linux-2.4.20-8/include/asm/system.h: In function `__set_64bit_var':
/usr/src/linux-2.4.20-8/include/asm/system.h:163: unknown register name `dx' in
`asm'
/usr/src/linux-2.4.20-8/include/asm/system.h:163: unknown register name `ax' in
`asm'
/usr/src/linux-2.4.20-8/include/asm/rwsem.h: In function `__up_write_R70ec8bc6':
/usr/src/linux-2.4.20-8/include/asm/rwsem.h:216: unknown register name `edx' in
`asm'
/usr/src/linux-2.4.20-8/include/asm/rwsem.h: In function `up_write':
/usr/src/linux-2.4.20-8/include/asm/rwsem.h:216: unknown register name `edx' in
`asm'
{standard input}: Assembler messages:
{standard input}:382: Error: bad instruction `pushfl'
{standard input}:382: Error: bad instruction `popl [r3,#0]'
{standard input}:383: Error: bad instruction `cli'
{standard input}:395: Error: bad instruction `pushl [r3,#0]'
{standard input}:395: Error: bad instruction `popfl'
make: *** [rtusb_main.o] Error 1
[root@localhost RT25USB-SRC-V2.0.7.0]#

好象是汇编的错误,问题可能在那里啊?请高手指点!

Makefile  内容如下:
# Comment/uncomment the following line to enable/disable debugging
                                                                                                               
CC := arm-linux-gcc
                                                                                                               
include ./config.mk
                                                                                                               
WFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs
CFLAGS := -DRT2500_DBG -D__KERNEL__ -I$(LINUX_SRC)/include -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -DMODULE -DMODVERSIONS -include $(LINUX_SRC)/include/linux/modversions.h $(WFLAGS)
                                                                                                               
OBJ = rt2570.o
                                                                                                               
all: $(OBJ)
        @touch config.mk
                                                                                                               
rt2570.o: rtusb_main.o mlme.o connect.o rtusb_bulk.o rtusb_io.o sync.o assoc.o auth.o auth_rsp.o rtusb_data.o rtusb_init.o sanity.o rtmp_wep.o rtusb_info.o rtmp_tkip.o wpa.o md5.o
        $(LD) -r $^ -o $@
                                                                                                               
clean:
        rm -f *.o *~ core
                                                                                                               
install:
        @touch config.mk
        #mkdir -p $(TARGET_MODDIR)
        echo $(TARGET_MODDIR)
        install $(OBJ) $(TARGET_MODDIR)
                                                                                                               
config:
        @touch config.mk
        @./Configure
[url="http://www.linuxeden.com/forum/"][/url]      

作者: chenjx123   发布时间: 2006-07-27

我LINUX系统是装在WINDOWS的VMWARE 虚拟机上的redhat 9.0 版本为2.4.20-8,交叉编译器是 arm-linux-gcc-3.2.3 交叉编译不过去了啊,大侠们,救急啊!!      

作者: chenjx123   发布时间: 2006-07-27

像是编译器工具不完整?      

作者: flag   发布时间: 2006-07-28

是说 arm-linux-gcc 没装好吗,
好象是要将 指向asm-i386的asm改为指向arm 具体不清楚如何操作 555555555      

作者: chenjx123   发布时间: 2006-07-28

这个……,重新配置一下内核?      

作者: flag   发布时间: 2006-07-28

flag老大,重新配置内核,是为了做什么噢      

作者: chenjx123   发布时间: 2006-07-28

你和我用的一样的网卡 我以前也是那样编译的 编译不过去 你应该是用的linux2.4.18的内核 那个内核对于rt2570的芯片的无线网卡支持的不是特别好 而且gcc也有些问题 用2.95.3的gcc编译不过去 我现在正在构建linux2.4.26的内核 现在我用gcc3.3.6和2.4.26的内核编译驱动没有出问题 以前也试着改过内核 需要将2.4.23以上内核里的include/arm/wireless.h做些修改 里面少了一个结构 还需要改一个net.h 但是改好后还存在wireless tools版本太低 无法ping通的问题 麻烦 还不如把内核升了来的保险
呵呵~~~      

作者: juranjun   发布时间: 2006-07-28

juranjun ,这么巧啊,你意思是说 你用linux2.4.26的内核和arm-linux-gcc3.3.6编译通过了,对吗
在板子上能加载,识别网卡吗,你板子内核是多少的,我目前的板子内核是2.4.18的,即使我升级了PC机
的2.4.20的内核,板子的内核版本太低的话,也加载,不进去啊      

作者: chenjx123   发布时间: 2006-07-28

[QUOTE=chenjx123]是说 arm-linux-gcc 没装好吗,
好象是要将 指向asm-i386的asm改为指向arm 具体不清楚如何操作 555555555[/QUOTE]
你这个动作就是要配置内核之后会做的动作阿。      

作者: flag   发布时间: 2006-07-28

我先去了解了解如何配置
flag 老大,能否告诉我你QQ啊,这样沟通好慢闹      

作者: chenjx123   发布时间: 2006-07-28

配置内核是不是就是升级内核哦,有点混了呵      

作者: chenjx123   发布时间: 2006-07-28

重新交叉编译搞版本的内核 然后烧到板子上 但是文件系统还有bootload也要重新编译 用gcc3.x编译 不要用2。95。3 那个编译驱动会有问题 我全都编译通过了 现在在做bootloader 还没有上板子试 不过应该没有问题 我问了那个rt2570开源驱动的维护者 他说最低的要求内核是2.4.23 还是升内核吧 虽然麻烦 但是就痛苦一次      

作者: juranjun   发布时间: 2006-07-28

juranjun老兄,先恭喜了,能不能把你的驱动程序和交叉编译生成的文件 发一份给浇头烂额的我啊,
谢谢了啊,
email:[email protected]
QQ:28417895

决定升级内核,再确定一下,你用linux2.4.26的内核和arm-linux-gcc3.3.6编译器?      

作者: chenjx123   发布时间: 2006-07-28

热门下载

更多