所需工具
-
树莓派4b
-
SD卡(32G以上)
-
读卡器
系统安装
格式化SD卡
选择要格式化的SD卡并点击格式化
烧录Ubuntu镜像
利用官方烧录工具 Raspberry Pi Imager
烧录Ubuntu 22.04,树莓派设备选择 Raspberry Pi 4
,操作系统选择 Ubuntu Server 22.04.5 LTS(64-BIT)
,这里系统我选择的是Server版本的,这个是无图形化页面的,所有操作只能在命令窗口中进行。如果不是很熟悉Ubuntu操作或者想要可视化界面的小伙伴可以安装Desktop版本,这里自行选择。存储设备选择SD卡。
点击下一步后会弹出一个窗口选择 编辑设置
,这里需要关注的是用户名和密码这两项必须设置(其他选项随意),配置WLAN选项不确定是否必须配置,我这边设置了WiFi的账号密码,进入系统后即使插上网线也只使用了无线网络。不清楚是否因为这个设置导致系统内WiFi的优先级高于有线网络。然后是服务页面需要开启SSH,使用密码登录,后续我们需要使用SSH连接树莓派,设置完成后点击保存并开始烧录系统。
注意:这里设置用户名需遵守标准的POSIX用户名规范,即必须以字母开头,可以包含小写字母、数字、下划线、减号。我这里就不符合命名规范,在烧录过程中系统未能成功创建用户(而且当时没有收到任何警告)。这导致即使我将SD卡插入树莓派并尝试使用正确的账号密码建立SSH连接时也提示认证失败,因为系统根本就没有创建那个不合规的用户名 --sora--
。最后,我把用户名改为 sora
之后重新进行了烧录,终于能够顺利连接上了┭┮﹏┭┮
请耐心等待系统烧录到内存卡中,完成后会自动进行镜像校验,并弹出烧录成功的提示。看到提示后,就可以安全地将内存卡从电脑上取下,然后插入到树莓派中啦!
SSH远程连接树莓派
让我们一起通过FinalShell这个便捷的SSH远程连接工具来连接你的树莓派吧!
首先,请打开FinalShell软件。在软件界面左上角,你会看到“连接管理器”按钮,点击它进入。接着,在连接管理器的左上角找到并点击“新建SSH连接”。现在,我们需要填写一些关于您的树莓派的信息。
-
名称:你可以根据喜好任意命名。
-
主机:这里需要填入的是树莓派的IP地址。之前我们已经设置了WiFi账号密码,因此树莓派开机后能够自动连接到网络。你只需登录到路由器后台查看在线设备列表,就能轻松找到树莓派对应的IP地址了。
-
端口:保持默认设置不变。
-
认证方式:选择“密码”选项。
-
用户名和密码:使用之前烧录系统时设定的用户名和密码即可。
完成上述信息的填写后,点击确定保存设置。这时,在连接管理器中就会出现刚刚添加的树莓派了。双击该项尝试建立连接,首次连接时,可能会弹出一个安全警告窗口,选择接受并保存就可以了。
如果一切设置都正确无误的话,恭喜你!现在已经成功连接到了您的树莓派啦!
配置DHCP静态IP分配
为了防止树莓派“走丢”还是有必要在路由器中配置DHCP静态IP的。路由器对于长期不在线的设备是会释放IP的,下一次设备上线时重新为其分配新的IP,这样我们下次想要连接树莓派时可能IP已经发生了变化,又得到路由器管理面板中查看新的IP地址。我们可以通过设置 DHCP静态IP来告知路由器始终为这个设备预留此IP,这样树莓派的IP地址就永远不会变了。
这里以小米路由器为例,连接上路由器网络后输入 http://192.168.31.1/
进入路由器管理面板,登录密码如果没有额外设置就是WiFi密码。进入管理面板后依次选择 常用设置→局域网设置→DHCP静态IP分配
,在页面中找到树莓派的名称(烧录时设置的主机名),为其分配一个没有被使用的IP地址,然后移除其他不需要绑定的设备,只留下树莓派,最后点击一键绑定即可。
无法使用有线网络
通过命令 ip addr
查看得知有线网络状态为down,即为物理上关闭(查看网线是否插好)或未连接状态。
sora@sora:~$ ip addr
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: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 2c:cf:67:5f:ce:18 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 2c:cf:67:5f:ce:19 brd ff:ff:ff:ff:ff:ff
inet 192.168.31.93/24 metric 600 brd 192.168.31.255 scope global dynamic wlan0
valid_lft 42500sec preferred_lft 42500sec
inet6 fe80::2ecf:67ff:fe5f:ce19/64 scope link
valid_lft forever preferred_lft forever
cloud-init 是一个在云服务器(像树莓派这样的设备)首次启动时用来初始化系统的工具。Raspberry Pi Imager中设置的信息(主机名、用户、Wi-Fi等)就是通过cloud-init来配置的。cloud-init在每次开机时会自动创建 /etc/netplan/50-cloud-init.yaml
这里面的内容就是我们在烧录时配置的WLAN信息,系统每次启动cloud-init都会检查并可能覆盖这个网络配置文件。所以我们需要在 /etc/netplan
目录下创建一个新的且优先级高于 50-cloud-init.yaml
的网络配置文件。
创建并编辑 99-custom-network.yaml
文件
cd /etc/netplan/
sudo vim 99-custom-network.yaml
修改并粘贴以下配置文件内容到 99-custom-network.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: true
optional: true
修改完成后保存并退出,然后重新应用Netplan,如果执行是出现黄色的警告可以不用管
sudo netplan apply
重启应用后我们再来查看一下IP信息,会发现有线网络和无线网络均分配了IPv4地址
sora@sora:/etc/netplan$ ip addr
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: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 2c:cf:67:5f:ce:18 brd ff:ff:ff:ff:ff:ff
inet 192.168.31.90/24 metric 100 brd 192.168.31.255 scope global dynamic eth0
valid_lft 43103sec preferred_lft 43103sec
inet6 fe80::2ecf:67ff:fe5f:ce18/64 scope link
valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 2c:cf:67:5f:ce:19 brd ff:ff:ff:ff:ff:ff
inet 192.168.31.93/24 metric 600 brd 192.168.31.255 scope global dynamic wlan0
valid_lft 43105sec preferred_lft 43105sec
inet6 fe80::2ecf:67ff:fe5f:ce19/64 scope link
valid_lft forever preferred_lft forever