场景
首先当然是要从 Arch Linux 官网上面下载镜像了,找一个国内的镜像网站下载,然后制作 live USB,引导启动之后选择第一项即可。
下面按照 官方文档 来进行安装。
步骤 1:连接WiFi
启用无线接口
运行 iw dev
获取无线设备信息:
root@archiso ~ # iw dev
phy#0
Interface wlan0
(...)
使用 ip link
查看网络接口,检查是否创建了无线接口:
root@archiso ~ # ip link
1: lo: (...)
2: (...)
3. wlan0: <BROADCAST,MULTICAST> (...)
可以看到,这里的 wlan0
就是无线接口。
然后运行 ip link set wlan0 up
,启用无线接口:
root@archiso ~ # ip link set wlan0 up
(...)
#上面这些信息一点儿也看不懂
root@archiso ~ # ip link show wlan0
3. wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> (...)
看到 wlan0
后面尖括号<>里的 UP
,说明该接口已经启用了。
还算比较幸运,没有遇到驱动之类的问题。
扫描 WiFi
使用 iw wlan0 link
命令可以看到,当前无线尚未连接:
root@archiso ~ # iw wlan0 link
Not connected.
运行以下命令扫描 WiFi:
root@archiso ~ # iw dev wlan0 scan | grep SSID
SSID: xxxx
SSID: yyyy
(...)
平时在图形化界面中见到的 WiFi 列表居然变成了这样…
或者运行 iw dev wlan0 scan | less
仔细查看。在我的例子中可以看到:
SSID: xxxx
(...)
WPA: * Version: 1
(...)
说明是用的 WPA 验证。
连接 WiFi
下面使用 wpa_passphrase
命令生成 WPA 验证的配置文件,其中 wifi_name
就是要连接的 WiFi 名称,即上面的 SSID
一项:
root@archiso ~ # wpa_passphrase wifi_name > /etc/wpa.conf
#按回车之后会要求输入密码,输入之后再按回车即可
********
可以看到,上面的命令已经自动生成了配置文件:
root@archiso ~ # cat /etc/wpa.conf
# reading passphrase from stdin
network={
ssid="xxxx"
#psk="xxxxxxxx"
psk=*************************
}
下面使用 wpa_supplicant
命令连接 WiFi。其中,-D
后面接驱动,常用的是 wext
,我还没试过其他的;-i
后面接的是接口名称,本例中是 wlan0
;-c
后面接配置文件,即刚刚创建的那个。注意,这些选项和参数之间都没有空格。最后,-B
是选择在后台运行,不占用终端。
root@archiso ~ # wpa_supplicant -Dwext -iwlan0 -c/etc/wpa.conf -B
(...)
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
(...)
奇怪的是,虽然输出中出现了 Invalid argument
字样,但连接还是成功了。使用 iw wlan0 link
命令查看连接:
root@archiso ~ # iw wlan0 link
Connected to xx:xx:xx:xx:xx:xx (on wlan0)
SSID: xxxx
freq: 2417
(...)
通过 DHCP 获得配置
虽然连上了 WiFi,但目前还没有相应配置,上不了网,而且路由器的管理页面中也没有显示此设备。 ping
一下试试:
root@archiso ~ # ping archlinux.org
ping: archlinux.org: Temporary failure in name resolution
下面使用 dhcpcd
命令启动 DHCP:
root@archiso ~ # dhcpcd wlan0
wlan0: connected to Access Point `xxxx`
DUID (...)
wlan0: IAID (...)
wlan0: soliciting an IPv6 router
wlan0: soliciting a DHCP lease
wlan0: offered 192.168.31.76 from 192.168.31.1
wlan0: probing address 192.168.31.76/24
wlan0: leased 192.168.31.76 for 43200 seconds
wlan0: adding route to 192.168.31.0/24
wlan0: adding default route via 192.168.31.1
forked to background, child pid 897kk
可以看到,从 192.168.31.1
(小米路由器)分配到了 192.168.31.76
这个 ip 地址,租约期限为 12 小时(43200 秒)。
大功告成,现在 ping
一下发现通了:
root@archiso ~ # ping archlinux.org
PING: archlinux.org (138.201.81.99) 56(84) bytes of data.
(...)
附:本节参考资料
- 命令行 WPA 验证连接:How do I connect to a WPA wifi network using the command line?
- dhcpd ArchWiki 页面:dhcpd
步骤 2:
(未完待续)