为了省钱, 没有入手 mini hdmi 数据线. 手头也没有可用的双绞线/网线. 于是就想办法通过仅 WiFi 的方式在树莓派上安装 Ubuntu Server 20.04 系统.
硬件
- Raspberry Pi 4B 树莓派4B
- TF disk 32GB
- TF 读卡器
- Type C 电源 (我使用了小米手机随赠的适配器, 注意输出应达到 5V-3A, 也就是快充头)
主机 PC
笔记本电脑或台式机, PC 等,下文统一称为 主机
软件 & 环境
- Windows 10
- 烧制 TF disk 的软件: Raspberry Pi Imager for Windows
- Ubuntu Server 20.04 LTS (虽然可以通过 Raspberry Pi Imager 下载, 但是鉴于网络状态, 强烈建议另行下载系统镜像!)
- VS Code (比记事本好用的编辑器)
- 打开主机的热点, 记录 WiFi 名称和密码
树莓派 Raspberry Pi
安装好散热片
步骤
- TF disk 插入读卡器, 插入主机
- 双击下载好的 ubuntu-20.04.1-preinstalled-server-arm64+raspi.img.xz (它的图标是树莓), 唤起 Raspberry Pi Imager.
- 此时界面中的
operating system
栏已填好.SD Card
栏选择刚刚插入的 TF disk. 如果有多个选项, 而又难以确定. 可以弹出所有的USB, 再重新插入要烧制的 TF disk.
- 点击
Write
. 阅读提示, 并确认. - 去喝杯水. 等待写入(烧制)镜像, 这个过程要一段时间, 如果用的是 USB 3.0 的读卡器会快一些.
- 烧制好的 TF disk 会自动弹出. (如果是有显示器或网线的安装方式, 此时插进树莓派 Raspberry Pi 的卡槽, 接通电源即可)
- 拔下读卡器, 再次插入主机
- 再
此电脑
可以找到system-boot
的盘符. 右键, 选择在 VS Code 中打开
. 界面左侧是文件夹内的文件列表, 右面是打开的文件内容 - 修改网络配置. 打开
network-config
文件
# This file contains a netplan-compatible configuration which cloud-init
# will apply on first-boot. Please refer to the cloud-init documentation and
# the netplan reference for full details:
#
# https://cloudinit.readthedocs.io/
# https://netplan.io/reference
#
# Some additional examples are commented out below
version: 2
ethernets:
eth0:
dhcp4: true
dhcp6: true
optional: true
#wifis:
# wlan0:
# dhcp4: true
# optional: true
# access-points:
# myhomewifi:
# password: "S3kr1t"
# myworkwifi:
# password: "correct battery horse staple"
# workssid:
# auth:
# key-management: eap
# method: peap
# identity: "me@example.com"
# password: "passw0rd"
# ca-certificate: /etc/my_ca.pem
在文件末尾新行加入你的 WiFi 配置.
wifis:
wlan0:
dhcp4: true
dhcp6: true
optional: true
access-points:
"xxxxx":
password: "yyyyy"
其中, "xxxxx"
是 WiFi 名称, 引号要保留; "yyyyy"
是密码, 引号要保留.
这样就配置好了网络. 第一次通电的时候, 会通过这些信息连接网络
- 配置用户名. ubuntu 留有一组默认的用户名, 要求用户第一次登陆的时候改掉它. 但是第一次接通电源的时候是无法连接到 WiFi 的, 需要断电再上电. 此时通过 SSH 登陆会遇到问题
passwd: Authentication token manipulation error
. 因此, 我们需要使默认的用户名密码, 再坚持一会儿, 坚持到下一次登陆. 打开文件user-data
, 找到
chpasswd:
expire: true
list:
- ubuntu:ubuntu
把 expire: true
改为 expire: false
这样系统可以用这组默认用户名密码 ubuntu:ubuntu
登陆系统, 直到修改了密码.
- 保存文件, 弹出 TF disk.
- 把 TF disk 插入树莓派 RaspBerry Pi
- 接通电源.
- 通过主机的热点界面观察树莓派是否接入. (这次是不会接入的:P)
- 等待 2 分钟, 树莓派上的绿色指示灯不再闪烁, 断电
- 再次接通电源.
- 观察主机的热点界面, 这次可以看到树莓派接入了, 名称是 ubuntu (而非 raspberrypi)
- 这样, 树莓派的IP也获得了. SSH 登陆树莓派.
- 修改默认密码! 这很重要! 避免被恶意攻击!
sudo passwd ubuntu
结束, 至此可以愉快地在树莓派上使用 ubuntu server 了~
参考
Ubuntu Server Raspberry Pi 4 Image: Cannot login using default credentials “authentication token manipulation error”
How to Install Ubuntu Server on a Raspberry Pi
How to install Ubuntu on your Raspberry Pi | Ubuntu