我安装了x86的openwrt虚拟机,由于想学习wireless。所以买了rt73无线网卡(在openwrt中支持的类型,很多都不支持比如博通的wifi适配器)。
安装usb-core 、mac80211等等。
这样插上rt73后,系统会打印下面的信息
此时wifi还没启动。所以ifconfig -a没有wlan0
修改/lib/wifi/mac80211.sh,里面可以修改
config wifi-device radio$devidx
option type mac80211
option channel ${channel}
option macaddr $(cat /sys/class/ieee80211/${dev}/macaddress)
option hwmode 11${mode_11n}${mode_band}
$ht_capab
# REMOVE THIS LINE TO ENABLE WIFI:
#option disabled 1
config wifi-iface
option device radio$devidx
option network lan
option mode ap
option ssid OpenWrt
option encryption none
当你调用wifi detect > /etc/config/wireless,就会调用mac80211.sh,将上面的信息拷贝到wirless中
wifi up就会显示
Configuration file: /var/run/hostapd-phy0.conf
Using interface wlan0 with hwaddr 00:a1:b0:c0:4a:ea and ssid 'OpenWrt'
此时我们就可以ifconfig -a看到我们的wlan0接口了。
由此我们可以看到radio0相当于phy,而wlan0就是网络接口
补充:
在x86下可能上面根本不行,我试过很多遍,大概10几遍中有一次是可以连上的。
纠结了好半天,我后来就在ubuntu下用我的无线网卡建立ap,发现偶尔也会加入不了网络,但是次数没openwrt多。
仔细对比了一下,hostapd使用的配置文件不同。
在ubuntu下是在/etc/hostapd/hostapd.conf
hostapd -B /etc/hostapd/hostapd.conf
而在openwrt下运行wifi up后生成/var/run/hostapd-phy0.conf文件
hostapd -P ... -B /var/run/hostapd-phy0.conf
然后他们的配置文件中有几个字段是不同的
比如auth_algs 和 wpa等。
我个人觉得可能是这个原因导致的。
可以通过hostapd -P ... -d /var/run/hostapd-phy0.conf 先对wifi进行调试。
参考文件:使用 hostapd 轻松实现强 WiFi 加密
http://blog.csdn.net/machiner1/article/details/18547927