技巧
类似 plasma-nm/networkmanager 的图形化网络配置工具:
复制 pkg install net-mgmt/networkmgr
或者:
复制 # cd /usr/ports/net-mgmt/networkmgr/
# make install clean
一般无线网卡驱动方式(基于 COMFAST CF-912AC 1200M 802.11AC)
检测无线网卡是否受支持
运行 sysctl net.wlan.devices
:他会告诉你,你的无线网卡驱动应该使用哪个。应类似如下内容:
复制 # sysctl net.wlan.devices
net.wlan.devices: rtwn0
如果输出中冒号 :
后边没有东西,那大概率就是识别不了。请你更换无线网卡。
创建 wlan0
接下来,创建 wlan0
:rtwn0
为上边冒号 :
后边的输出,本例中为 rtwn0
,请改成你自己的,照抄没用(除非你也使用 COMFAST CF-912AC 1200M 802.11AC )。
复制 # ifconfig wlan0 create wlandev rtwn0
观察 ifconfig
输出(已省略以太网卡和 lo0
):
复制 # ifconfig
……此处省略一部分……
wlan0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=200001<RXCSUM,RXCSUM_IPV6>
ether 20:0d:b0:c4:ab:59
groups: wlan
ssid "" channel 1 (2412 MHz 11b)
regdomain FCC country US authmode OPEN privacy OFF txpower 30 bmiss 7
scanvalid 60 wme bintval 0
parent interface: rtwn0
media: IEEE 802.11 Wireless Ethernet autoselect (autoselect)
status: no carrier
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
应该出现一个 wlan0
才对。
扫描 WiFi
复制 # ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
……此处省略一部分……
test_5G 50:d6:c5:93:d7:64 36 54M -78:-95 100 EP APCHANREP WPA RSN WPS BSSLOAD HTCAP VHTCAP VHTOPMODE WME
连接到未加密 WiFi
复制 # ifconfig wlan0 ssid test_5G #①
① test_5G
为我测试用的 WiFi 名字(SSID)
复制 # ifconfig wlan0 destroy # 先销毁,否则提示 ifconfig: SIOCS80211: Device busy
# ifconfig wlan0 create wlandev rtwn0 # 再创建
# ifconfig wlan0 country CN regdomain NONE # 设置区域为中国,使用 NONE
复制 # service netif restart
# dhclient wlan0
连接到加密网络
创建 /etc/wpa_supplicant.conf
:
复制 network={
ssid="test_5G"
psk="freebsdcn"
}
以上:
ssid
是 WiFi 名字,这里是 test_5G
psk
是 WiFi 密码,这里是 freebsdcn
复制 wlans_rtwn0="wlan0"
ifconfig_wlan0="WPA SYNCDHCP"
create_args_wlan0="country CN regdomain NONE"
查看连接情况,可以看到已经连接成功(IP 为 192.168.31.178
):
复制 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=200001<RXCSUM,RXCSUM_IPV6>
ether 11:7c:e8:c4:ab:58
inet 192.168.31.178 netmask 0xffffff00 broadcast 192.168.31.255
groups: wlan
ssid test_5G channel 36 (5180 MHz 11a ht/20) bssid 50:d6:c5:93:d7:64
regdomain NONE country CN authmode WPA2/802.11i privacy ON
deftxkey UNDEF TKIP 2:128-bit txpower 17 bmiss 7 mcastrate 6
mgmtrate 6 scanvalid 60 ht20 ampdulimit 64k ampdudensity 4 shortgi
-stbc -uapsd wme roaming MANUAL
parent interface: rtwn0
media: IEEE 802.11 Wireless Ethernet MCS mode 11na
status: associated
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
英特尔网卡驱动
复制 devmatch_blocklist="iwm" # 如果依然加载 iwm,换成 devmatch_blocklist="if_iwm" 试一下
wlans_iwlwifi0="wlan0"
ifconfig_wlan0="WPA SYNCDHCP"
创建 /etc/wpa_supplicant.conf
:
复制 network={
ssid="WIFI 名字(SSID)"
psk="WIFI 密码"
}
复制 # ifconfig wlan0 create wlandev iwlwifi0
# /etc/rc.d/netif start wlan0
FreeBSD 自身的博通网卡驱动一共有两种:bwn 和 bwi,其中 bwi 是用于较旧型号的,bwn 是用于较新型号的。两者的支持范围有所重叠,而 bwn 对硬件的支持要更好。
示例:BCM4301、BCM4303、BCM4306 rev 2
经判断,只能使用 bwi 驱动。
首先,在 /boot/loader.conf
中添加:
然后使用 ports 安装固件(未提供二进制包,下同):
复制 # cd /usr/ports/net/bwi-firmware-kmod/
# make install clean
可以先使用 USB 手机或者以太网先共享网络进行安装。也可以先把所需依赖下好放入目录。
重启即可。
示例:配置 bwn 驱动
复制 # cd /usr/ports/net/bwn-firmware-kmod/
# make install clean
注意
复制 # cd /usr/src/ # 此处是内核源码安装目录。
# cd sys/amd64/conf/ # 注意架构!
# cp GENERIC MYKERNEL #重命名便于识别
# echo "options BWN_GPL_PHY" >> MYKERNEL #添加内核参数
# cd /usr/src
# make -j4 buildkernel KERNCONF=MYKERNEL # -j 后边的参数为 CPU 核心数,下同
# make -j4 installkernel KERNCONF=MYKERNEL
在 /boot/loader.conf
中添加:
复制 hw.bwn_pci.preferred="1"
if_bwn_pci_load="YES"
bwn_v4_ucode_load="YES"
bwn_v4_n_ucode_load="YES"
bwn_v4_lp_ucode_load="YES"
然后重启。ifconfig
观察有无 wlan0
,然后按照第一部分教程配置即可。
参考文献
故障排除
如果连不上或者搜不到调试信道
尝试将 WiFi 区域码选 NONE
,然后选 China
复制 create_args_wlan0="country CN regdomain NONE"
然后重启系统。
断开 WiFi
WPA 验证
复制 # ifconfig_wlan0="WPA inet 192.168.1.100 netmask 255.255.255.0"
设置静态 ip
复制 # ifconfig wlan0 inet 192.168.0.100 netmask 255.255.255.0
开启无线热点
复制 root@ykla:~ # ifconfig wlan0 list caps
drivercaps=591c541<STA,FF,IBSS,HOSTAP,SHSLOT,SHPREAMBLE,MONITOR,WPA1,WPA2,WME>
cryptocaps=b<WEP,TKIP,AES_CCM>
htcaps=207002d<LDPC,SHORTGI20>
可以看到我这张卡是支持的。
复制 # ifconfig wlan0 destroy
复制 # ifconfig wlan0 create wlandev rtwn0 wlanmode hostap
# ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1