利用工具:hostapd
板子自带,也可以用sudo apt-get install hostapd 最新的版本是2.7.
第一步:设置etc/default/hostapd
sudo vi /etc/default/hostapd
设置一个绝对路径
DAEMON_CONF="/etc/hostapd.conf" #具体路径因情况而异
第二步:设置etc/hostapd.conf #你刚才设置的路径文件
interface=wlan0 #网口名称
bridge=br0 #用有线网线+无线网卡的方式建立的需要 否则注释掉
driver=nl80211 #驱动基本都是这个 我的驱动这里有问题
country_code=CN #注释掉也没关系 测试无错误
ssid=sakura_test #热点名称
hw-_mode=g #a=IEEE 802.11a b=IEEE 802.11b g=IEEE 802.11g
channel=6 #一般值为0,6,11,13
wpa=2 #wpa2
wpa_passphrase=MyWifiPassword #密码
wpa_key_mgmt=WPA-PSK #算法 一目了然
wpa_pairwise=TKIP CCMP #加密算法
rsn_pairwise=CCMP
auth_algs=3 #3包括了1,2 有的环境只能用1 自己试
macaddr_acl=0 #接受所有MAC地址 注释掉也能用
第三步:启动hostapd
sudo /etc/init.d/hostapd start
其他指令 {start|stop|restart|status} #用status查看服务是否开启
接下来应该就可以看到名字叫sakura_test的热点了,不过还不能上网。
然后运用isc-dhcp-server或者其他的开源软件来实现。
我的开发板驱动有坑,在Ubuntu上测试同样的东西可以上网,在板子上就不行,之后有进展再写解决方案,先写一点记录一下。
第四步:配置/etc/network/interfaces
sudo vi /etc/network/interfaces
auto wlan0 #重启或者重置网络自动配置
allow-hotplug wlan0
iface wlan0 inet static #dhcp为动态获取 static为静态
address 192.168.43.71
netmask 255.255.255.0
第五步:配置isc-dhcp-server 根据需求在etc/dhcp/dhcpd.conf中写
接着启动isc-dhcp-server
sudo /etc/init.d/isc-dhcp-server start
第六步:iptables开启路由转发(略)
注意:
在同时使用AP和STA的WIFI模式时,启动AP服务时查看有没有已经启动的wpa_supplicant进程,保证sta模式的通道和ap通道一致。可以先杀掉相关进程测试。
killall wpa_supplicant
killall udhcpd
killall hostapd
2023-02-20补充:
查看WiFi信号方法如下:
root@fl-imx6ull:~# cat /proc/net/wireless | grep wlan0 | awk '{print $3}' //获取信号强度
78.
root@fl-imx6ull:~# cat /proc/net/wireless | grep wlan0 | awk '{print $4}' //获取信号质量,单位dBm
-68.
root@fl-imx6ull:~# cat /proc/net/wireless | grep wlan0 | awk '{print $5}' //网口背景噪声,单位dBm
-256.
AP模式
说明:
l 本模块支持AP模式,理论最大连接用户为8个。
l 本例为以太网eth0连接路由器说明,配置完以太网后,需要测试eth0是否可以连接外网,如果可以连接外网(方法参考 “有线网卡”章节),请继续按照操作步骤执行,如果不可以请检查以太网或者路由器连接是否正常。
工作在AP模式下,手机等设备可以直接连接模块。
设置以太网IP,配置网络防火墙:
root@fl-imx6ull:~# udhcpc -i eth0 //自动分配IP,若以测试eth0网络正常,可不操作此步
root@fl-imx6ull:~# echo 1 > /proc/sys/net/ipv4/ip_forward //打开 IP 转发
root@fl-imx6ull:~# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE//设置转发规则
设置WiFi的模式与IP
确保模块8723bu已经加载。
root@fl-imx6ull:~# ifconfig wlan0 up //打开WiFi
root@fl-imx6ull:~# ifconfig wlan0 192.168.0.10 netmask 255.255.255.0 //设置IP与子网掩码
root@fl-imx6ull:~# ifconfig wlan0 promisc //设置 wlan0 为混杂模式
开启AP
root@fl-imx6ull:~# udhcpd /etc/udhcpd/udhcpd.conf & //WiFi 地址、网关等配置信息
root@fl-imx6ull:~# hostapd -d /etc/hostapd/hostapd.conf & //加密方式、用户名、密码等设置
hostapd.conf文件中:ssid为用户名,/为密码
手机等移动终端可以通过WiFi连接到开发板的AP热点,iMX6ULL开发板默认使用以下用户名和密码:
热点名:forlinxtest密码:1234567890
步骤4:卸载已经加入内核的模块:
root@fl-imx6ull:~# rmmod 8723du
usbcore: deregistering interface driver rtl8723du
wlan0: CTRL-EVENT-DISCONNECTED bssid=04:d7:a5:f9:26:1d reason=0