下载地址在这里,

​Ubuntu 20.04.4 LTS (Focal Fossa)CD images for Ubuntu 20.04.4 LTS (Focal Fossa)Ubuntu Server 20.04.4 在树莓派上的体验之连接网络和WIFI(WLAN0)_ubuntu​https://cdimage.ubuntu.com/releases/20.04.4/release/​​​

我的树莓派4b,直接使用的官方的烧录工具,如下,

Ubuntu Server 20.04.4 在树莓派上的体验之连接网络和WIFI(WLAN0)_ubuntu_02

 这里选server是因为找不到desktop版本的。

烧录成功后启动,官方的工具都比较好用,一般都能一次性成功,默认的用户名和密码都是 ubuntu。

Username and password are both "ubuntu" according to this: ​​How to install Ubuntu Server on your Raspberry Pi | Ubuntu​

连接网络和WIFI(WLAN0)

系统装好后的第一件事是连接网络,先用一要网线连接到开发板,然后根据自己的需要安装一些网络管理常用的工具,其中有些工具可能系统已经默认安装过了,

sudo apt install net-tools
sudo apt install wireless-tools
sudo apt install network-manager
sudo apt install rfkill
sudo apt install wpasupplicant

安装好之后就可以用下面的指令来查询机器IP了,

ifconfig
iwconfig

找到IP后,就可以通过WINSCP或者putty登陆到树莓派了。

ubuntu@ubuntu:~$ iwconfig
wlan0 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on

eth0 no wireless extensions.

lo no wireless extensions.

可以看到,我们的wlan0没有连接网络,这个信息和下面的查询是一致的,

ubuntu@ubuntu:~$ ls /sys/class/net
eth0 lo wlan0
ubuntu@ubuntu:~$ nmcli d
DEVICE TYPE STATE CONNECTION
wlan0 wifi disconnected --
eth0 ethernet unmanaged --
lo loopback unmanaged --
p2p-dev-wlan0 wifi-p2p unmanaged --

然后,看一下自己能找到的WIFI信号,比如我的就是HUAWEI-HB

Ubuntu Server 20.04.4 在树莓派上的体验之连接网络和WIFI(WLAN0)_linux_03

 如果想得到更详细的信息,你可以使用下面的指令,

ubuntu@ubuntu:~$ sudo ifconfig wlan0 up
ubuntu@ubuntu:~$ iwlist wlan0 scan
wlan0 Scan completed :
Cell 01 - Address: 4C:77:66:1A:C6:31
Channel:1
Frequency:2.412 GHz (Channel 1)
Quality=62/70 Signal level=-48 dBm
Encryption key:on
ESSID:"606"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
18 Mb/s; 36 Mb/s; 54 Mb/s
Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s
Mode:Master
.............................................

上面的内容实在太多了,所以我省略掉了绝大部分;你可以通过下面的方式只简单地获取ESSID,

ubuntu@ubuntu:~$ sudo iwlist wlan0 scan | grep ESSID
ESSID:"HUAWEI-HB"
ESSID:"606"
ESSID:"608"
ESSID:""
ESSID:""

现在,你也可以使用rfkill来看一下你的WIFI,

ubuntu@ubuntu:~$ rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no

如果是soft blocked的话你可以通过下面的方式开启

ubuntu@ubuntu:~$ sudo rfkill unblock wifi

如果你使用wpa_supplicant的话,那么最好关闭ubuntu-desktop的Network-Manager以避免冲突,

sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager

然后用iwconfig检查一下当前状态,

Ubuntu Server 20.04.4 在树莓派上的体验之连接网络和WIFI(WLAN0)_服务器_04

这里可以看到,wifi还没有连接上,如果前面没有up,那就再次确认一下,

sudo ifconfig wlan0 up

如果你的路由是使用WEP加密的话,那么可以使用下面的命令,

iwconfig wlan0 essid "myhome" key 0123-4567-89

我的wifi使用的是WPA2PSK的加密方式,所以需要用wpa_cli来设置,

~$ wpa_passphrase "HUAWEI-HB" mypassword_is_here | sudo tee /etc/wpa_supplicant.conf
~$ sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlan0 -B

如果你前面没有禁用掉NetworkManager的话,你可能会碰到下面的问题,

ubuntu@ubuntu:~$ sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlan0
Successfully initialized wpa_supplicant
Failed to create interface p2p-dev-wlan0: -16 (Device or resource busy)
nl80211: Failed to create a P2P Device interface p2p-dev-wlan0
P2P: Failed to enable P2P Device interface
wlan0: Trying to associate with SSID 'HUAWEI-HB'
........

你可以先禁用掉NetworkManager,或者用下面的指令临时停用一下,

service network-manager stop

 注意,参数B表示在后台运行;否则的话你只能在前台运行,关闭命令窗口时你的WIFI也会同时关闭,

sudo wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlan0

现在,再用iwconfig检查一下,就发现你的WIFI已经连接上了,

ubuntu@ubuntu:~$ iwconfig
wlan0 IEEE 802.11 ESSID:"HUAWEI-HB"
Mode:Managed Frequency:2.412 GHz Access Point: C8:xx:xx:xx:xx:E4
Bit Rate=65 Mb/s Tx-Power=31 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=62/70 Signal level=-48 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

eth0 no wireless extensions.

lo no wireless extensions.

使用NetworkManager

不过,我发现最方便的还是NetworkManager,我自己比较少用wpa_supplicant,一般的办法是, 

$ sudo nmcli d wifi connect HUAWEI-HB password mypassword-here

命令比较简洁也比较好记忆,对于隐藏的网络,类似,

$ nmcli c add type wifi con-name <name> ifname wlan0 ssid <ssid>
$ nmcli c modify <name> wifi-sec.key-mgmt wpa-psk wifi-sec.psk <password>

需要注意的是,使用networkmanager最好把那些不用的功能全关闭掉,比如

sudo systemctl disable dhclient.service
sudo systemctl disable wpa_supplicant.service

附录:iwconfig和iwlist的通用用法

1.打开无线网卡电源

iwconfig wlan0 txpower no #iwconfig在树莓也没有这个

2.列出区域内的无线网络

iwlist wlan0 scan

3.假设要连接到网络myhome(即essid为myhome的网络),那么输入命令

iwconfig wlan0 essid "myhome"

如果网络是加密的,密码是0123456789,那么就输入命令

iwconfig wlan0 essid "myhome" key 0123-4567-89

4 如果正常的话,输入

iwconfig wlan0

就可以看到连接正常的各项参数了。

5.启动无线网卡

ifconfig wlan0 up

6.如果是用DHCP获取IP的,那么用dhclient或dhcpcd获取ip

dhclient wlan0 或dhcpcd wlan0

参考:

​Using WPA_Supplicant to Connect to WPA2 Wi-fi from Terminal on Ubuntu 16.04 Server​

​Configure WiFi Connections | Ubuntu​