Skip to content

T001 - Rust嵌入式学习之树莓派安装记录(Headless)

前言

因为我的个人笔记本电脑主要面向app和web端的开发,为了省去来回切换rust环境的麻烦,接下来所有的嵌入式开发学习都是基于树莓派(Raspberry Pi)1平台上来完成的,所以这一节内容我们会优先将这个树莓派开发环境准备起来。

raspi4b

何为Headless2? 在计算机领域,特别是在树莓派这样的设备环境中有特定的含义,指一种没有连接显示器、键盘和鼠标等传统输入 / 输出设备的操作模式。在这种模式下,设备通过网络连接进行远程配置、管理和使用。

在空间和成本限制方面有其特定的优势:例如,当你想把树莓派用于构建一个小型的家庭服务器,用于文件存储、媒体流或者网页服务。如果连接显示器、键盘和鼠标,会占用额外的空间并且增加成本。使用 headless 模式,你可以将树莓派放置在一个不显眼的角落,通过网络连接进行操作,节省了物理空间并且减少了不必要的设备开支。在某些工业控制场景中,树莓派可能被安装在机器设备内部或者机房等环境。在这些情况下,减少外部物理设备连接可以降低因为物理接触导致的故障风险或者安全风险。

准备工作

  • 物理配件清单

    1. SD Card 128G+ 读卡器
      • 推荐使用Samsung 或者 Kingston
    2. 树莓派4B板子
    3. 一台笔记本电脑(Window,macOS,Linux都可)
  • 软件清单

    1. Raspberry Pi OS(基于Debian 12/bookworm) - 树莓派操作系统镜像包
      • https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit
    2. Raspberry Pi Imager 1.8.5 - 树莓派启动盘镜像烧录工具
      • https://downloads.raspberrypi.org/imager/imager_latest.dmg

安装树莓配操作系统

开始制作系统启动盘

说明:低版本的Raspberry Pi Imager可能需要人工创建树莓派 wifi入网的配置文件和开启ssh服务,因为我们使用最新版本的Imager,所有这些步骤只需要图形化界面配置即可。

首先我们需要将准备好的sd卡插入电脑端,然后运行Raspberry Pi Imager:

01 02 03 04 05 06 07 08 09

这步之后就是漫长的等待了,Pi imager 会将指定的操作系统刷入sd卡中。最后刷写完成后会弹窗提示卸载sd卡盘,点击“Continue”即可,到这里说明我们的sd卡刷写操作系统成功了,然后继续下一步操作。 10

插入 SD 卡并启动树莓派

  • 将配置好的 SD 卡插入树莓派的 SD 卡槽。
  • 接通树莓派的电源,等待一段时间(一般几分钟)让树莓派启动并连接到网络。

查找树莓派的 IP 地址

可以通过登录路由器的管理界面查找连接到路由器的设备列表,从中找到树莓派的 IP 地址。或者使用一些网络扫描工具(如 Advanced IP Scanner)来查找。

办法1:

client-list

办法2:

# 安装arp-scan命令,用于扫描确认已经在运行的树莓派ip地址
$ brew install arp-scan  // Install for macOS
$ sudo apt install arp-scan  // install for Linux

# 扫描局域网网段(这里根据自身情况设定)
$ sudo arp-scan 192.168.2.0/24  // scan local network hosts

下面是具体执行样例: arp-scan

使用 SSH 客户端连接

我这里使用的是macOS,所以就直接从命令行终端来ssh远程访问树莓派了。如果你使用其他的操作系统,比如window,这里推荐使用PuTTY,简单快捷,具体ssh登陆如何配置需自行上网查找了,这里不展开说明。

ssh

使用 VNC 远程图形桌面连接

1.vnc server端(树莓派)配置

# ssh登陆树莓配以后,执行:
$ sudo raspi-config

# 在配置界面中,选择 “Interfacing Options”,然后启用 “VNC” 选项,保存退出。
2. vnc客户端配置:

创建一个连接,默认只填写vnc server(树莓派)的ip地址即可远程连接。 vnc config

vnc

系统初始化后的常用配置(可选)

这部分内容可以跳过,主要是安装或配置一些常用的效率工具。

# 安装一些常用的命令行工具&基础依赖包
$ sudo apt update && \
        sudo apt install -y vim jq openssl git libssl-dev screen \
        lrzsz bash-completion ca-certificates \
        build-essential pkg-config pkgconf \
        python3-venv python-is-python3

# 修复默认树莓派操作系统初始化完成后`LC`环境变量报错的问题
$ sudo vim /etc/locale.gen
# 找到并确保en_US.UTF-8这行没有被注释
$ sudo locale-gen

$ sudo vim /etc/inputrc
# 取消注解,用于命令行支持`tab键`自动补全操作并忽略大小写
set completion-ignore-case On
set show-all-if-ambiguous On

截止目前为止,一台可用的树莓派操作系统就配置完成了,下一节我们正式进入rust on esp32课程的学习。


  1. https://www.raspberrypi.com/documentation/computers/getting-started.html#set-up-your-raspberry-pi 

  2. https://www.reddit.com/r/linuxadmin/comments/xvlke5/fully_headless_linux_install_like_raspberry_pi/