在Sigma8634上使用USB口的ZD1211b无线网卡

ZyDAS ZD1211的主页是 http://zd1211.wiki.sourceforge.net/
从这里下载驱动, http://dsd.object4.net/zd1211-vendor/
我使用的是最新的 ZD1211LnxDrv_2_18_0_0.tar.gz

1. 修改makefile:

CC=mipsel-linux-gcc
CPP=mipsel-linux-g++
LD=mipsel-linux-ld

#使用交叉编译工具

KERN_24=y
#kernel版本是2.4
KERNEL_SOURCE=/data/sigma8634/sdk/smp86xx_kernel_source_2.7.127.0/linuxmips-2.4.30
#指定kernel所在目录,编译module,总少不了这个

DEFINES = -D__KERNEL__ -DMODULE=1
# 必备的module编译参数
DEFINES += -DEM86XX_CHIP=EM86XX_CHIPID_TANGO2 -DEM86XX_REVISION=6 -mips32
#和sigma8634相关的module编译参数
DEFINES += -DZDCONF_BANDEDGE_ADJUST
#不加这个会有一个编译错误
DEFINES += -D_REENTRANT -DEXPORT_SYMTAB -D__linux__ -O -fomit-frame-pointer -fno-strict-aliasing -fno-common -G 0 -mno-abicalls -fno-pic -finline-limit=100000 -mabi=32 -Wa,-mips32r2 -Wa,-mfix7000 -Wa,--trap -fno-builtin -mlong-calls -pipe -O2
#这一串是从别处抄来,具体意义还没有针对性测试,不加的话编译无错,加载有错

#以上的DEFINES变量实际上是CFLAGS的一部分,本来是专门用来做宏定义的,不过我图省事,
#直接把各种编译参数都放这里了,其实挪到CFLAGS里也完全可以。

MODPATH := /data/share/third/wifi/atheros/ZD1211LnxDrv_2_18_0_0/modules
#编译好后module的安装位置
KDIR := /data/sigma8634/sdk/smp86xx_kernel_source_2.7.127.0/linuxmips-2.4.30
#同样指向kernel目录的参数


2. 编译

为了避免在加载module时出现以下错误:
Using zd1211b.o
insmod: unresolved symbol bad_unaligned_access_length
insmod: unresolved symbol _gp_disp

在zd1205.c中加入两个空函数:
void bad_unaligned_access_length(void){}
void _gp_disp(void){}


然后:
make ZD1211B=1

运气不太差的话,顺利编译出zd1211b.o

3. 加载驱动

insmod zd1211b.o

没报错的话,congratulations!

4. 测试

aber# ifconfig eth1 up
aber# iwconfig
aber# iwlist eth1 scan
aber# iwconfig eth1 essid "your wireless net"
aber# iwconfig eth1 key "your key"
aber# udhpc -i eth1 -n
aber# ping www.sina.com.cn
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值