前言
目前wifi模块使用过pcie接口和sdio接口两款。pcie接口的wifi模块使用较广,内核一般都有现成的驱动支持,至于sdio接口的wifi驱动,可以找芯片厂商拿。本人从事系统及驱动开发,看看内核代码移植一些驱动还是比较得心应手的,因此本文不记录wifi驱动的调试,而是记录wifi应用的开发。
年末将至,回望这三年工作经历,尽心尽力,自觉能力上从事一些系统及驱动开发游刃有余,只是做事严谨性稍有待提高。然一事无成!我是否还要将全部精力放在这份工作上?还是找一份轻松一点的工作,然后利用空余的时间创点副业?前路茫茫!
夜饮东坡醒复醉,归来仿佛三更。家童鼻息已雷鸣。敲门都不应,倚杖听江声。
长恨此身非我有,何时忘却营营。夜阑风静縠纹平。小舟从此逝,江海寄余生。
1、wifi模式
AP模式: Access Point,提供无线接入服务,允许其它无线设备接入,提供数据访问,一般的无线路由/网桥工作在该模式下。AP和AP之间允许相互连接
Sta模式: Station, 类似于无线终端,sta本身并不接受无线的接入,它可以连接到AP,一般无线网卡即工作在该模式。
2、station模式调试记录
2.1 用自己的手机设置一个热点
2.2 启用wifi接口
ifconfig wlan0 up
2.3 搜索所有AP网络
iwinfo wlan0 scan
2.4编辑/etc/wpa_supplicant.conf
连接到哪个热点,可以通过wpa_supplicant.conf文件配置,也可以通过wpa_cli命令行来设置。
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="jimmy5G"
psk="12345678"
#bssid=00:11:22:33:44:55(链接固定通道或频率,如5GHZ)
}
2.5 启动station模式的程序
wpa_supplicant -d -iwlan0 -c/etc/wpa_supplicant.conf &
2.6 使用dhclient获取ip地址
dhclient wlan0
3、AP模式调试记录
3.1启用wlan接口
ifconfig wlan0 192.168.200.1 netmask 255.255.255.0
3.2配置防火墙规则
iptables -A FORWARD -i wlan0 -o FE0 -s 192.168.200.0/24 -m state –state NEW -j ACCEPT
iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o FE0 -j MASQUERADE
3.3启用dhcp服务
dhcpd -cf /etc/dhcp3/dhcpd.conf -lf /etc/dhcp3/dhcpd.lease
dhcpd.conf文件内容
authoritative ;
subnet 192.168.1.0 netmask 255.255.255.0 {
default-lease-time 86400;
option domain-name-servers 114.114.114.114;
option routers 192.168.1.1;
range 192.168.1.100 192.168.1.199;
}
subnet 192.168.200.0 netmask 255.255.255.0 {
default-lease-time 86400;
option domain-name-servers 8.8.8.8,114.114.114.114;
option routers 192.168.200.1;
range 192.168.200.2 192.168.200.254;
}
subnet 192.168.23.0 netmask 255.255.255.0 {
}
dhcpd.lease文件内容
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.3.5
# authoring-byte-order entry is generated, DO NOT DELETE
authoring-byte-order little-endian;
server-duid "\000\001\000\001\"4\370\221$\341$\013dD";
3.4启动AP模式的程序
hostapd /etc/hostapd.conf &
hostapd.conf文件内容
interface=wlan0
ctrl_interface=/var/run/hostapd
driver=nl80211
hw_mode=a
ieee80211d=1
ieee80211n=1
logger_syslog=-1
logger_syslog_level=0
ssid=HelloJimmy
country_code=CN
max_num_sta=128
rts_threshold=2312
auth_algs=1
wpa=0
ignore_broadcast_ssid=0
ap_isolate=0
ht_capab=[SHORT-GI-40][DSSS_CCK-40]