您的位置:首页 > 其它

华硕WL-167G USB 无线网卡ARM移植 (4:配置:版本RT.1104)

2010-12-06 13:04 676 查看
配置(前面的步骤见编译

1. 修改modules/ifcfg-rausb0

ifcfg-rausb0

root@zanget:network# cat ifcfg-rausb0
DEVICE=rausb0
ONBOOT=yes

## Confirm your AP supports dhcp or connects up the ethernet
## before set-up as a dynamic IP
BOOTPROTO=dhcp

## static for fixed ip
#BOOTPROTO=static
#IPADDR=192.168.0.31
#NETMASK=255.255.255.0
#GATEWAY=192.168.0.1
2. 安装模块

下面的步骤已经在编译里面修改过了,下面跳过

修改modules/Makefile NDDIR部分

## Revision History by mike
##Configuration files on ARM busybox
ifeq ($(PLATFORM),ARM)
BASE_DIR := /opt/s3c-2416/rootfs/custom
NDDIR = $(BASE_DIR)/etc/sysconfig/network
MOD_CONF = $(BASE_DIR)/etc/modprobe.d/module-renames
ND_CONF = $(BASE_DIR)/etc/sysconfig/network/ifcfg-rausb0
else
## Revision History end
ND_CONF=/etc/sysconfig/network-scripts/ifcfg-rausb0
Endif

然后是install部分
install:
make -C $(LINUX_SRC) /
下面的步骤已经在前版本(见博客前第2篇文章:配置)中修改过,下面跳过

注意:BASE_DIR 为你busybox的根目录

为了保证安装不会出错,先创建/验证目录:
root@zanget:~# cd /opt/s3c-2416/rootfs/custom/etc
root@zanget:etc# mkdir -p sysconfig/network
root@zanget:etc# mkdir -p modprobe.d
root@zanget:etc# ls
fstab init.d inittab modprobe.d sysconfig
root@zanget:etc#cd modprobe.d/
root@zanget:etc#touch module-renames
root@zanget:modules# make install
root@zanget:rt73# make install
make -C /opt/s3c-2416/linux-2.6.21 /
INSTALL_MOD_DIR=extra SUBDIRS=/opt/s3c-2416/wireless-usb/driver/RT.1104/Module /
modules_install
make[1]: 正在进入目录 `/opt/s3c-2416/linux-2.6.21'
INSTALL /opt/s3c-2416/wireless-usb/driver/RT.1104/Module/rt73.ko
DEPMOD 2.6.21.5-cfs-v19
make[1]:正在离开目录 `/opt/s3c-2416/linux-2.6.21'
Network device directory /opt/s3c-2416/rootfs/custom/etc/sysconfig/network
Module configuration file /opt/s3c-2416/rootfs/custom/etc/modprobe.d/module-renames
/sbin/depmod -a
等几秒后à成功

根据前面步骤的配置(见博客前第2篇文章:配置),下面的步骤跳过:

root@zanget:modprobe.d# cat module-renames

alias rausb0 rt73
root@zanget:network# ls
ifcfg-rausb0
root@zanget:network# cat ifcfg-rausb0
DEVICE=rausb0
ONBOOT=yes

## Confirm your AP supports dhcp or connects up the ethernet
## before set-up as a dynamic IP
BOOTPROTO=dhcp

## static for fixed ip
#BOOTPROTO=static
#IPADDR=192.168.0.31
#NETMASK=255.255.255.0
#GATEWAY=192.168.0.1
根据前面步骤的配置(见博客前第2篇文章:配置),下面的步骤跳过:

由于modules/rt_config.h

00038: #ifndef __RT_CONFIG_H__
00039: #define __RT_CONFIG_H__
00040:
00041: #define PROFILE_PATH "/etc/Wireless/RT73STA/rt73sta.dat"
00042: #define NIC_DEVICE_NAME "RT73STA"
00043: #define RT2573_IMAGE_FILE_NAME "/etc/Wireless/RT73STA/rt73.bin"

的定义,需要手动拷贝:

root@zanget:modprobe.d# cd /opt/s3c-2416/rootfs/custom/etc
root@zanget:modprobe.d# mkdir -p Wireless/RT73STA
拷贝
root@zanget:modules# cp rt73.bin /opt/s3c-2416/rootfs/custom/etc/Wireless/RT73STA
root@zanget:modules# cp rt73sta.dat /opt/s3c-2416/rootfs/custom/etc/Wireless/RT73STA/

安装dos2unix
root@zanget:modprobe.d# apt-get install tofrodos
块加载由于版本差异,导致配置文件差异,请手动拷贝:

[root@dding Module]# cp rt73sta.dat /opt/s3c-2416/rootfs/custom/etc/Wireless/RT73STA/

converting file rt73sta.dat to UNIX format

[root@zanget:modprobe.d]# dos2unix rt73sta.dat

动态加载模块,用相关命令确认模块加载成功

/ # insmod rt73.o

/ # dmesg
idVendor = 0xb05, idProduct = 0x1723
usbcore: registered new interface driver rt73
selected clock c0335ec4 (pclk) quot 35, calc 115740
=> usb_rtusb_open
iwconfig iwlist 的移植和安装,请参考博客前第2篇配置,这里不再复述。

3. 手动测试

/ # ifconfig rausb0 inet 192.168.1.2 netmask 255.255.255.0 up

=> usb_rtusb_open
/ # iwlist rausb0 scan | grep ESSID
ESSID:"ChinaNet"
ESSID:"ChinaUnicom"
ESSID:"asus-test"
可看到测试的网络"asus-test",下面就将其设置到网卡:

/ # iwpriv rausb0 set SSID="asus-test"

ping百度

/ #ping 119.75.218.45

不通

/ #route add default gw 192.168.1.1

/ #ping 119.75.218.45
等几秒,通过 也可ping 192.168.1.1

4. 使用DHCP

编译Busybox make menuconfig,添加以下选项:
Networking Utilities --->
udhcp Server/Client --->
[ ] udhcp Server (udhcpd) //在此不作服务端,故不选。生成udhcpd命令
udhcp Client (udhcpc) //生成udhcpc命令


/ # ifconfig rausb0 up

=> usb_rtusb_open
/ # iwlist rausb0 scan | grep ESSID
ESSID:"ChinaNet"
ESSID:"ChinaUnicom"
ESSID:"asus-test"
可看到测试的网络"asus-test",下面就将其设置到网卡:

/ # iwpriv rausb0 set SSID="asus-test"

/ # udhcpc rausb0
udhcpc (v1.17.3) started
udhcpc: socket: Address family not supported by protocol
问题1

udhcpc: socket: Address family not supported by protocol

解决:重新编译内核(参看博客):
Networking --->
Networking support
Networking options --->
需要选择下面红色部分:
+---------------------- Networking options ----------------------+
| Arrow keys navigate the menu. <Enter> selects submenus --->. |
| Highlighted letters are hotkeys. Pressing <Y> includes, <N> |
| excludes, <M> modularizes features. Press <Esc><Esc> to |
| exit, <?> for Help, </> for Search. Legend: [*] built-in |
| +------------------------------------------------------------+ |
| +------------------------------------------------------------+ |
| | [ ] Network packet debugging | |
| | <*> Packet socket (前一篇文章漏掉了,这里补充说明下) | |
| | <*> Unix domain sockets | |
| | < > Transformation user configuration interface | |
| | [ ] Transformation sub policy support (EXPERIMENTAL) | |
| | [ ] Transformation migrate database (EXPERIMENTAL) | |
| | < > PF_KEY sockets | |
| | [*] TCP/IP networking | |
| | [ ] IP: multicasting | |
| | [ ] IP: advanced router | |
| | [*] IP: kernel level autoconfiguration | |
| | [*] IP: DHCP support | |
| | [*] IP: BOOTP support | |
//…
| | [*] Network packet filtering framework (Netfilter) ---> | |

另外,需要udhcpc的配置文件,拷贝Busybox下的simple.script到/usr/share/udhcpc/下,并重命名为default.script:

root@zanget: busybox-1.17.3# cd examples/udhcp/

root@zanget:udhcp# mkdir /opt/s3c-2416/rootfs/custom/usr/share
root@zanget:udhcp# cp simple.script /opt/s3c-2416/rootfs/custom/usr/share/default.script
修改default.script中RESOLV_CONF="/etc/resolv.conf"为RESOLV_CONF="/tmp/resolv.conf":

#!/bin/sh

# udhcpc script edited by Tim Riker <Tim@Rikers.org>

#//Revision History by mike
#RESOLV_CONF="/etc/resolv.conf"
RESOLV_CONF="/tmp/resolv.conf"
#//Revision History end
5. 下载测试
下载完后重启板子:

/ # ifconfig rausb0 up

=> usb_rtusb_open
/ # iwlist rausb0 scan | grep ESSID
ESSID:"ChinaNet"
ESSID:"ChinaUnicom"
ESSID:"asus-test"
/ # iwpriv rausb0 set SSID="asus-test"
/ # udhcpc rausb0
udhcpc (v1.17.3) started
Sending discover...
Sending discover...
Sending discover...
发现不成功,google后发现:

/ # udhcpc -i rausb0

udhcpc (v1.17.3) started
Sending discover...
Sending select for 192.168.1.4...
Sending select for 192.168.1.4...
Lease of 192.168.1.4 obtained, lease time 86400
显示租借IP 成功!!!时间为86400,IP为192.168.1.4

看看用法:

/ # udhcpc -h

udhcpc: option requires an argument -- h
BusyBox v1.17.3 (2010-10-15 10:05:34 CST) multi-call binary.

Usage: udhcpc [-fbnqvoCR] [-i IFACE] [-r IP] [-s PROG] [-p PIDFILE]
[-H HOSTNAME] [-c CID] [-V VENDOR] [-O DHCP_OPT]... [-P N]

-i,--interface IFACE Interface to use (default eth0)
而:

/ # ping 192.168.1.1

PING 192.168.1.1 (192.168.1.1): 56 data bytes
ping: sendto: Network is unreachable
说明udhcpc获取成功,但设置失败了!!
6. 修正udhcpc
找了好久,终于在强大google的帮助下找大了一个讨论题
下面Gilles的回复让我恍然大悟:

I don't need the ifconfig step

Don't you need to indicate the script to run to set the ip
I do
udhcpc -q -n -T 3 -A 1 -t 3 -i eth%d -s /usr/bin/udhcpc.script

I find one problem in linux-2.6.27.21 kernel if the interface that udhcpc
run has no cable in.
This trigger a WARNING at net/sched/sched_generic.c 219 dev_watchdog
Seen that with ne2k-pci driver.
原来可能是我默认脚本的设置问题, 于是手动指定脚本测试:

/ # udhcpc -n -q -i rausb0 -s /usr/share/default.script

udhcpc (v1.17.3) started
Setting IP address 0.0.0.0 on rausb0
Sending discover...
Sending select for 192.168.1.4...
Sending select for 192.168.1.4...
Lease of 192.168.1.4 obtained, lease time 86400
Setting IP address 192.168.1.4 on rausb0
Deleting routers
route: SIOCDELRT: No such process
Adding router 192.168.1.1
Recreating /tmp/resolv.conf
Adding DNS server 192.168.1.1
果然!!!!
在前面的文章配置(第4步)中,我的配置经过参考文章所做的配置是:

root@zanget:udhcp# cp simple.script /opt/s3c-2416/rootfs/custom/usr/share/default.script

经过查阅文档,发现

25

-s, --script=file Run file at dhcp events (default:
26
/usr/share/udhcpc/default.script)
27
-v, --version Display version
于是做下面的改动: (这里(点我)有相关脚本)

/ # mkdir /usr/share/udhcpc

/ # mv /usr/share/
/usr/share/default.script /usr/share/udhcpc/
/ # mv /usr/share/default.script /usr/share/udhcpc/
/usr/share/udhcpc # ls
default.script
重启机器,再测试:

/ # ifconfig rausb0 up

=> usb_rtusb_open
/ # iwlist rausb0 scan | grep ESSID
ESSID:"ChinaNet"
ESSID:"ChinaUnicom"
ESSID:"asus-test"
/ # iwpriv rausb0 set SSID="asus-test"
/ # udhcpc -i rausb0
udhcpc (v1.17.3) started
Setting IP address 0.0.0.0 on rausb0
Sending discover...
Sending discover...
Sending discover...
Sending discover...
Sending discover...
Sending select for 192.168.1.4...
Lease of 192.168.1.4 obtained, lease time 86400
Setting IP address 192.168.1.4 on rausb0
Deleting routers
route: SIOCDELRT: No such process
Adding router 192.168.1.1
Recreating /tmp/resolv.conf
Adding DNS server 192.168.1.1

/ # ifconfig rausb0
rausb0 Link encap:Ethernet HWaddr 00:1B:FC:22:E2:1F
inet addr:192.168.1.4 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1056 errors:0 dropped:0 overruns:0 frame:0
TX packets:39 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:107241 (104.7 KiB) TX bytes:3462 (3.3 KiB)
ping百度

/ #ping 119.75.218.45

PING 119.75.218.45 (119.75.218.45): 56 data bytes
64 bytes from 119.75.218.45: seq=0 ttl=50 time=51.115 ms
终于成功了!

到此,所有驱动移植完毕,后续的任务就是移植wpa_supplicant,最新版0.7.3,官网是(点我),下载地址是(点我)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: