• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
yuzaipiaofei
博客园    首页    新随笔    联系   管理    订阅  订阅

wifi 移植

硬件 yl9200  usb无线网卡 wl 167g 
软件  arm-linux-gcc 3.3.2  开发板 linux 2.6.13  主机 2.6.24 
网卡驱动  rt73-cvs-daily.tar.gz 
busybox busybox-1.9.2.tar.bz2 
wirelss tool wireless_tools.29.tar.gz 
ps:除gcc,所有工具都在/srv目录下,内核为yl9200配套 
  
  
1,下载解压驱动 
# wget http://rt2x00.serialmonkey.com/rt73-cvs-daily.tar.gz 
解压:# tar zxvf rt73-cvs-daily.tar.gz(以下各公具的解压省略) 
  
2,在内核中创建新文件夹drivers/usb/net/rt73, 
# mkdir drivers/usb/net/rt73 
将解压出来的文件夹Module下的文件拷贝到刚才新建的rt73文件夹中: 
cp Module/* /srv/linux-2.6.13-hzh/drivers/usb/net/rt73 
  
3,修改内核源代码,加入RT73驱动配置信息 
修改drivers/usb/net/Kconfig文件,加入RT73的驱动模块的配置项: 
# gedit drivers/usb/net/Kconfig & 
加入以下内容: 
config RT73 
     tristate "support for rt73 wireless usb device" 
     depends on USB && NET && USB_USBNET 
  
修改drivers/usb/net/Makefile, 加入rt73的编译项: 
# gedit drivers/usb/net/Makefile & 
添加一下内容: 
obj-$(CONFIG_RT73)+= rt73/ 
  
4,根据arm4.patch更改驱动文件(具体参照arm4.patch) 
修改RT73的Makefile,设置内核位置和编译选项: 
  
删除以前的module选项,并将arm编译项改成modules,这样编译的时候才是for ARM版本的驱动模块,并更改为如下内容; 
modules: 
     @$(MAKE) $(KBUILD_PARAMS) $(EXTRA_CFLAGS) \ 
                     modules; \ 
     $(MODULE_CHECK) 
添加 
EXTRA_CFLAGS += -DRTMP_EMBEDDED(否则找不到搜索结果) 
  
修改KERNDIR为开发板内核位置: 
  
KERNDIR :=/srv/linux-2.6.13-hzh 
  
5, 
更改内核makefile 
ARCH        ?= arm 
CROSS_COMPILE    ?=/usr/local/arm/3.3.2/bin/arm-linux- 
  
配置内核: 
make menuconfig 
在USB devices à network à support for rt73 wireless usb device,按空格键选为M,将其编译成模块。( 进入usb network adapter后选中 Multi-purpose USB Networking Framework后,rt73才出现) 
selecting [Device Drivers] -> [Networking support] -> [Wireless LAN(non-hamradio)] -> Wireless LAN drivers (non-hamradio) & Wireless Extensions. 
去掉devfs的支持 
另外内核需要下面选项的支持 
- support for hot-pluggable devices CONFIG_HOTPLUG 
- userspace firmware loading support CONFIG_FW_LOADER 
- wireless LAN drivers (non-hamradio) & wireless extensions CONFIG_NET_RADIO 
- OHCI HCD support CONFIG_OHCI_HCD 
  
this includes are necessary for compiling the driver without errors 
  
6,编译内核模块: 
# make modules 
成功编译后,会在drivers/usb/net/rt73目录下生成rt73.ko驱动文件 
  
7,制作根文件系统,添加对mdev的支持 
按yl手册里的步骤制作根文件系统 
利用busybox对系统做一个基本的配置,选上mdev,udhcpc 
更改busybox的Makefile 

ARCH        ?= arm


CROSS_COMPILE    ?=/usr/local/arm/3.3.2/bin/arm-linux- 
配置静态库时把applets/applets.c的20到25行注释掉 
更改etc/init.d下rcS 
去除devfs部分 
添加 
mkdir /dev/pts 
mount -t devpts devpts /dev/pts 
mount -t sysfs sysfs /sys 
mount -t tmpfs mdev /dev 
echo "# starting mdev...." 
/bin/echo /sbin/mdev > /proc/sys/kernel/hotplug 
/sbin/mdev -s 
  
在dev目录下创建设备节点 
mknod console c 5 1 
mknod null c 1 3 
在etc目录下建立mdev.conf 
touch mdev.conf 
将rt73.bin移动到lib/firmware目录下 
  
8,移植wireless tool 
makefile 中更改BUILD_NOLIBM = y 
把生成的文件移动到guo目录下 
  
9,将rt73.ko复制到NFS目录 
mount -t nfs 192.168.0.7:/home/nfsboot /mnt/nfs -o nolock 
cp rt73.ko /home/nfsboot 
  
10,加载模块 
insmod rt73.ko 
  
11,ifconfig wlan0 up 
  
12,udhcpc -i wlan0 
get ip! 
 

posted @ 2012-02-28 19:58  yuzaipiaofei  阅读(191)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3