将BB-Black+Wl18配置成AP模式
一:创建hostapd.conf文件并编辑
在SD卡/media/xs/Angstrom/etc目录下没有hostapd.conf文件,在该目录下创建。输入命令:sudo vi hostapd.conf
输入以下内容后,保存并退出。
关于hostapd基本配置请参考以下内容:http://www.cnblogs.com/zhuwenger/archive/2011/03/11/1980294.html
hostapd是一个带加密功能的无线接入点程序,是Linux操作系统上构件无线接入点的一个比较方便的工具,支持IEEE 802.11协议和IEEE802.1X/WPA/WPA2/EAP/RADIUS加密。一些基本的配置项:
上面列出的配置基本上是必须的,其中:
· ssid:别人所看到的我们这个无线接入点的名称;
· hw_mode:指定802.11协议,包括 a = IEEE 802.11a,b = IEEE 802.11b, g = IEEE 802.11g;
· channel:设定无线频道;
· interface:接入点设备名称,注意不要包含ap后缀,即如果该设备称为wlan0ap,填写wlan0即可;
· bridge:指定所处网桥,对于一个同时接入公网、提供内部网和无线接入的路由器来说,设定网桥很有必要;
· driver:设定无线驱动,我这里是nl80211;
· macaddr_acl:可选,指定MAC地址过滤规则,0表示除非在禁止列表否则允许,1表示除非在允许列表否则禁止,2表示使用外部RADIUS服务器;
· accept_mac_file:指定允许MAC列表文件所在;
· deny_mac_file:指定禁止MAC列表文件所在;
下面介绍关于认证方式的配置:
auth_algs=1
其中auth_algs指定采用哪种认证算法,采用位域(bit fields)方式来制定,其中第一位表示开放系统认证(Open System Authentication, OSA),第二位表示共享密钥认证(Shared Key Authentication, SKA)。我这里设置alth_algs的值为1,表示只采用OSA;如果为3则两种认证方式都支持。不过很奇怪的是,在我工作中如果配置了3,不管采用WEP/WPA/WP2加密的方式都从没连接成功过,配置为2也是如此。所以在我的配置当中,如果采用认证,则设置auth_algs为1;否则把这行代码注释掉(在前面加#)。
由于RADIUS认证需要提供外部RADIUS服务器,我们没有这个功能,因此我只研究了WEP、WPA和WPA2这三种加密方式。
#wep_default_key=0
#wep_key0=1234567890
#wep_key1="vwxyz"
#wep_key2=0102030405060708090a0b0c0d
#wep_key3=".2.4.6.8.0.23"
#wep_key_len_broadcast=13
#wep_key_len_unicast=13
#wep_rekey_period=300
如果要启用WEP加密,只需配置wep_default_key和其中一个wep_keyx,其中x的值只能在0~3之间,wep_default_key的值必须启用了。注意wep_keyx的值不是任意的,只能是5、13或16个字符(用双引号括住),或者是10、26或32个16进制数字。由于WEP加密算法已经被破解了,所以通常不启用它,全部注释掉。
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
#wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP
现在推荐的加密方式是WPA/WPA2,由于时间紧迫,我没有怎么去了解过这两者的差别。不过配置是很简单的:
· wpa:指定WPA类型,这是一个位域值(bit fields),第一位表示启用WPA,第二位表示启用WPA2。在我的配置中,无论设置成1、2或3,都可以正常连接;
· wpa_passphrase:WPA/WPA2加密需要指定密钥,这个选项就是配置WPA/WPA2的密钥。注意wpa_passphrase要求8~63个字符。另外还可以通过配置wpa_psk来制定密钥,不过要设置一个256位的16进制密钥,不适合我们的需求;
· wpa_pairwise/rsn_pairwise:如果启用了WPA,需要指定wpa_pairwise;如果启用了WPA2,需要指定rsn_pairwise,或者采用wpa_pairwise的设定。都可以设定成TKIP、CCMP或者两者都有,具体含义我也没仔细弄清楚。一篇比较老的文章说TKIP不兼容Windows Mobile,但我的Windows Mobile 6.5在这两种算法下都没有遇到任何问题。
经过这样一些配置,启动hostapd之后应该就可以按照自己的需求正常使用无线接入点功能了:
/usr/bin/hostapd-f /etc/hostapd.conf
二:编辑udhcpd.conf文件
打开/media/xs/Angstrom/etc目录下没有udhcpd.conf文件,将原文件内容修改成以下内容:
第四行注释时可能不会变蓝,没事退出后再进来自动变蓝。保存并退出
关于udhcpd.conf的配置,我也说不好,自己百度下吧。可以参考:
http://blog.csdn.net/x_nazgul/article/details/20209305
http://www.linuxidc.com/Linux/2012-12/75869.htm
http://www.sudu.cn/info/html/edu/20080424/298949.html
好,到这里就可以测试你的BB-Black+Wl18 看能不能当成AP。将SD卡弹出,并插入到BB-Black卡槽中,上电启动。启动后界面如下:
下面将板子配置成AP模式,输入以下命令:
Ifconfig eth0 down
Ifconfig wlan0 up192.168.200.1
udhcpd -S /etc/udhcpd.conf -fwlan0 &
hostapd -B /etc/hostapd.conf
如图:大家可以看到,BB-Black+Wl18已经成为AP模式了,他的热点名字为“test”,因为在hostapd.conf里设置的ssid名字是test,大家可以改成其他的。现在电脑可以检测到“test”这个无线网了,连接这个热点,你会看到它给电脑分配了ip地址,ip地址为:192.168.200.100。
因为在udhcpd.conf里设置的地址池为192.168.200.100——192.168.200.254,所以他会按顺序分配,当有其他设备连接时,应该会分配192.168.200.101,以此类推。BB-Black+Wl18xx配置成AP模式成功。
三:把上面那些命令写成脚本文件
下面我们把上面那些命令写成脚本文件,方便启动。在SD卡/home/root目录下创建rcS文件,输入命令:sudo vi rcS
输入内容:
保存并退出。(在配置wlan0 IP地址时,看你的地址池是什么,我的网段是200,所以我把wlan0配置成了192.168.200.1)
将SD卡插入BB-Black卡槽中,上电启动后直接运行rcS可执行文件,运行结果如下图:
当有设备连接,分配IP地址。脚本文件也做好了。