本文介绍如何给树莓派 4B 安装 Ubuntu Server 20.04.1.
顺便, 本文还介绍了在树莓派没办法连接显示器和键盘的情况下, 如何确定树莓派的 IP 地址并登陆进去等一些实用小技巧. 聪明的你还可以用这些学到的新技巧去扫描你的网络, 发现未知.
准备
- 树莓派 4B
- 树莓派的电源 (USB-C 接口的充电器即可)
- MicroSD 卡 (容量至少 4G, 因为这个 MicroSD 卡还会作为系统盘运行, 建议选择一个 32G, 并且速度快的 MicroSD 卡)
- 读卡器
- 可供接入的 Wifi 或有线网络
或许你还需要
- Micro HDMI 转 HDMI 线
- 有 HDMI 接口的显示器
- 键盘
- 一些硬币
首先
把硬币放树莓派 SoC 上, 免得它过热关机. 当然, 如果你有风扇更好.
![af2143ec77bda3d1a4bc044d9476cf4e.png](https://i-blog.csdnimg.cn/blog_migrate/c29ec22037e827d8221e280281328fc0.jpeg)
当然, 这里只是娱乐一下, 提醒各位树莓派4B由于性能很强因此发热量也巨大. 请注意散热问题. 按照树莓派的官方 Manual, 树莓派 4B 的工作温度是 0 - 50℃, 最高不超过 85℃. 经过测试11块5的硬币散热器可以让树莓派稳定在55℃度 (室温27℃). 足够进行完毕初始设置了 (手动滑稽).
烧录 Micro SD 卡
重要的事情: 记得把卡中的数据备份, 接下来的操作会清除 MicroSD 卡中的所有数据.
把你准备好的 MicroSD 卡插到电脑上.
根据你的系统类型, 下载 Raspberry Pi Imager 烧录器:
- Windows
- MacOS
- Deb Linux
然后建议直接手动下载 Ubuntu Server 镜像. 下载地址为:
ubuntu-20.04.1-preinstalled-server-arm64+raspi.img.xz
下载完毕后, 界面是这样的:
![6fc895bc83ce5279cff5f1a29382cbb6.png](https://i-blog.csdnimg.cn/blog_migrate/9ab12a6facc4dc1f31d2c8878fbbfd19.png)
最左面的是选择镜像, 我们点击之后拉到最下面, 选择 Use custom, 然后选择上面我们刚下载完毕的 ubuntu 镜像. (当然这里也可以选择下载器提供的选项, 让下载器去下载).
![bb4313446801c8b456e0161372a0524e.png](https://i-blog.csdnimg.cn/blog_migrate/bc84f87f37a12c4528a0d9f9a9e40c13.jpeg)
选择完毕后, 按中间的 CHOOSE SD... 来选择要写入的SD卡. 注意这里一定要看清楚目标SD卡, 尤其是你的机器上可能插了多个SD卡或U盘的情况. 另外一定记得备份数据.
最后点击右侧的 WRITE 就开始烧录了. (嗯, 很简单. 我觉得我在这里就是截了几个图然后把官网翻译了一下...)
![2a9554daa881c7d66adc8f54ddf6d80b.png](https://i-blog.csdnimg.cn/blog_migrate/891dcc7ca7d87d26359f373a19ead9b5.png)
烧录完毕.
![54d27b4ea0a156aa04b60afeb9f3e751.png](https://i-blog.csdnimg.cn/blog_migrate/03820c22543cc43ecda5666f21c6cf6c.jpeg)
配置网络
有线
有线很简单, 找根网线把树莓派连接到交换机上就行了.
无线
无线会复杂一些, 首先把 SD 卡仍然插回你的电脑, 然后在 SD 卡的 "system-boot" 分区有个配置文件叫 "network-config". 然后将下面的配置放到文件末尾:
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"你的无线SSID":
password: "你的无线密码"
将 "你的无线SSID" 和 "你的无线密码" 替换成你连接 WiFi 的 SSID 和密码. 注意, 这个配置文件是 yaml, 因此你需要注意缩进. 否则可能会配置不生效. 配置完毕后, 将 SD 卡插入树莓派, 第一次启动后配置还没有生效, 需要重启一遍, 第二次应该就能自动连接 WiFi 了. 如果还是不生效, 那么请看后面的 "无线配置 Debug" 部分, 可以进一步配置.
确定树莓派的 IP 地址
方法 1
如果你有屏幕和 Micro HDMI 线, 可以直接连接到树莓派上运行 ip a
命令来查看树莓派的 IP 地址.
root@ubuntu:/home/ubuntu# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether dc:a6:32:c5:f6:cc brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether dc:a6:32:c5:f6:cd brd ff:ff:ff:ff:ff:ff
inet 192.168.1.201/24 brd 192.168.1.255 scope global dynamic wlan0
valid_lft 2927sec preferred_lft 2927sec
inet6 2408:8207:7834:6f10:dea6:32ff:fec5:f6cd/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 259174sec preferred_lft 172774sec
inet6 fe80::dea6:32ff:fec5:f6cd/64 scope link
valid_lft forever preferred_lft forever
上面的 wlan0 里面的 192.168.1.201 就是了.
如果你没办法将树莓派连接到显示器, 那么可以登陆到你的路由器, 看看 DHCP 服务器新分配的地址, 或者 ARP 列表里新出现的IP地址. 如果这些都做不到, 你既没办法给树莓派接显示器, 也没办法登陆到路由器, 那么可以在你的电脑上运行 nmap, 然后用命令 nmap -sP 内网范围/子网掩码
扫描内网, 看看有没有新增的 IP 地址. 例如, 你的内网是 192.168.1.0 段, 子网掩码是 255.255.255.0 那么要扫描的地址范围就是 192.168.1.0/24:
root@ubuntu:/home/ubuntu# nmap -sP 192.168.1.0/24
Starting Nmap 7.80 ( https://nmap.org ) at 2020-10-15 03:25 UTC
Nmap scan report for bogon (192.168.1.1)
Host is up (0.0076s latency).
MAC Address: ??:??:??:??:??:?? (Huawei Technologies)
Nmap scan report for bogon (192.168.1.9)
Host is up (0.0044s latency).
MAC Address: ??:??:??:??:??:?? (Apple)
Nmap scan report for bogon (192.168.1.221)
Host is up (0.063s latency).
MAC Address: ??:??:??:??:??:?? (Nintendo)
Nmap scan report for bogon (192.168.1.226)
Host is up (0.019s latency).
MAC Address: ??:??:??:??:??:?? (Ubiquiti Networks)
Nmap scan report for bogon (192.168.1.201)
Host is up.
Nmap done: 256 IP addresses (12 hosts up) scanned in 1.66 seconds
这里的 192.168.1.201 是我不认识的新出现的 IP. 然后扫描下这个可能是树莓派的IP地址, 看看 22 端口开着没.
root@ubuntu:/home/ubuntu# nmap -sS 192.168.1.201
Starting Nmap 7.80 ( https://nmap.org ) at 2020-10-15 03:33 UTC
Nmap scan report for bogon (192.168.1.201)
Host is up (0.000022s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds
确认找到了就可以登陆了.
方法 2
官网介绍了利用 ARP 命令根据树莓派的网络适配器供应商的申请的 MAC 地址区间 (MAC 地址以 "b8:27:eb" 或 "dc:a6:32" 开头) 来识别哪个 IP 地址是树莓派, 同样奏效. 方法如下:
Windows 运行 arp -a | findstr b8-27-eb
或 arp -a | findstr dc-a6-32
MacOS, Linux 运行 arp -na | grep -i "b8:27:eb"
或 arp -na | grep -i "dc:a6:32"
返回大概是这样的:
C:Userskarminski>arp -a | findstr dc-a6-32
192.168.1.201 dc-a6-32-c5-f6-cd 动态
C:Userskarminski>
前面的 192.168.1.201
就是 IP 地址了.
如果你有多个树莓派同时在配置. 那么就要费一番功夫去插拔测试了, 或者还是准备好键盘和显示器, 连接到树莓派配置一下.
启动
把 SD 卡插入树莓派, 然后给树莓派插上USB-C供电, 确认红灯亮起 (供电正常), 然后绿灯开始闪烁 (机器运行). 树莓派就开始正常工作了.
用你的 SSH 客户端去连接刚才确定的树莓派的 IP 地址, 就可以连接上树莓派了.
默认的用户名和密码都是 "ubuntu", 第一次登陆后系统会要求你修改密码. 安全起见, 一定要修改密码.
无线配置 Debug
如果错过了在第一次启动前配置 WiFi, 或者配置的无线有问题, 那么可以按照如下方法 Debug:
首先看一下无线网卡的名称:
root@ubuntu:/home/ubuntu# ls /sys/class/net
eth0 lo wlan0
一般情况有线网卡都叫 "eth", 无线网卡都叫 "wlan" (不过也有很多特例...)
我们可以看到 无线网卡叫 "wlan0".
然后编辑 /etc/netplan/50-cloud-init.yaml 文件. 会退出 vi/vim 的同学可以用 vi 或 vim. (如果你真的无法退出vim了, 信我的, 肯定是你的树莓派坏掉了... 开玩笑, 还请搜索如何退出 vim)
不会 vim 的同学请用 GNU nano编辑, 方法如下:
sudo nano /etc/netplan/50-cloud-init.yaml
然后将之前的 WiFi 配置添加到配置文件最后:
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
eth0:
dhcp4: true
optional: true
version: 2
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"你的无线SSID":
password: "你的无线密码"
同样注意, 这个文件是 yaml 文件, 一定要注意缩进.
然后运行:
sudo netplan generate
sudo netplan apply
按道理这样就应该能让WiFi正常连接了. 仍然可以用 ip a
命令查看 wlan0 是不是自动获得了 IP 地址. 获得了 IP 地址即代表连接到了目标网络并且 DHCP 服务器工作正常, 给你自动分配了地址.
如果出现问题...
- 问题1, Failed to start netplan-wpa-wlan0.service: Unit netplan-wpa-wlan0.service not found.
情况大概如下:
Failed to start netplan-wpa-wlan0.service: Unit netplan-wpa-wlan0.service not found.
Traceback (most recent call last):
File "/usr/sbin/netplan", line 23, in <module>
netplan.main()
File "/usr/share/netplan/netplan/cli/core.py", line 50, in main
self.run_command()
File "/usr/share/netplan/netplan/cli/utils.py", line 179, in run_command
self.func()
File "/usr/share/netplan/netplan/cli/commands/apply.py", line 46, in run
self.run_command()
File "/usr/share/netplan/netplan/cli/utils.py", line 179, in run_command
self.func()
File "/usr/share/netplan/netplan/cli/commands/apply.py", line 173, in command_apply
utils.systemctl_networkd('start', sync=sync, extra_services=netplan_wpa)
File "/usr/share/netplan/netplan/cli/utils.py", line 86, in systemctl_networkd
subprocess.check_call(command)
File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['systemctl', 'start', '--no-block', 'systemd-networkd.service', 'netplan-wpa-wlan0.service']' returned non-zero exit status 5.
这个问题一般是 wpa_supplicant 没有启动, 运行如下命令即可:
sudo systemctl enable wpa_supplicant
sudo systemctl start wpa_supplicant
sudo netplan generate
sudo systemctl daemon-reload
sudo netplan apply
然后看看 wlan0. 如果不行, 运行 sudo netplan --debug apply
看看具体问题是什么, 或者重启试试.
安装桌面
首先需要更新和升级软件包, 运行:
sudo apt update
sudo apt upgrade
这里有两个轻量化桌面选项, xubuntu 和 lubuntu.
或者, 也可以直接安装 Gnome.
xubuntu:
sudo apt install xubuntu-desktop
lubuntu:
sudo apt install lubuntu-desktop
Gnome:
sudo apt install desktop
最后, 输入 reboot 重启. 本教程到这里就结束了.
To Be Continued
本篇是 "树莓派的 100 种玩法" 的第一篇, 未来 KCORES - 氪金核心 专栏会为大家带来最有趣的树莓派新玩法, 液冷树莓派! 树莓派集群! 树莓派原子钟! 你想不到的玩法应有尽有! 包教包会, 不满意报销网费! (手动滑稽)
Reference
- https://ubuntu.com/download/raspberry-pi
- https://linuxconfig.org/ubuntu-20-04-connect-to-wifi-from-command-line
- https://itsfoss.com/connect-wifi-terminal-ubuntu/
- https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711/rpi_DATA_2711_1p0_preliminary.pdf
想要阅读更多有趣内容, 请看 :
KCORES - 氪金核心kcores.com欢迎加入垃圾佬交流群:
![b6a4356e7617cd7108ec2b98467c84c7.png](https://i-blog.csdnimg.cn/blog_migrate/3ed836fa835d8d2d029c2e68e4294470.jpeg)