找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2378

积分

1

好友

331

主题
发表于 2025-12-24 17:16:20 | 查看: 33| 回复: 0

上周,我成功申请到了一片树莓派CM0 Dev Kit (Compute Module 0 Development Kit),并决定进行一次完整的开箱、环境准备和基础配置流程的记录,希望能为CM0的初级使用者提供清晰的指引。

什么是树莓派CM0?

CM0全称为Compute Module Zero,其性能级别与树莓派早前发布的Raspberry Pi Zero 2W相当,但采用不同的形态设计。与外观固定的Zero 2W不同,CM0采用邮票孔设计,可以焊接在任意定制的载板(底板/扩展板)上。例如,将CM0模组焊接到一块搭载LCD屏幕的PCB板上,就相当于为这块屏幕赋予了“大脑”——一台四核微型计算机,使其能够进行视频采集、联网并展示网页信息。

CM0 Dev Kit开箱

到手的CM0开发套件包含一块电路板和一根IPX天线。请注意,天线包装内还有一个小小的跳线帽,后续步骤会用到。

天线安装非常简单:将IPX接口对准板卡上树莓派Logo附近的IPX底座,垂直按下直到听见“咔哒”声即可。天线摆放时可能与部分元器件稍有干涉,建议将其从40针GPIO引脚的中间缝隙引出。未来设计外壳时,可撕掉天线背面的保护贴纸,直接粘贴在外壳内侧。

硬件准备与系统选择

接下来,我们需要为CM0板载的eMMC存储器烧录操作系统。目前官方提供8GB和16GB两种eMMC版本,强烈推荐选择16GB版本。如果使用官方图形界面的系统,8GB空间会很快告急。

可供选择的系统镜像:

  1. 树莓派官方系统:首选推荐。对树莓派硬件的支持和优化最好。可通过 Raspberry Pi Imager 工具在线或离线烧录。
  2. DietPi系统:一个高度优化的轻量级系统,非常适合资源有限的设备。

关于32位与64位系统的选择建议:
CM0与Zero 2W采用相同的BCM2710A1 SoC(4核Cortex-A53),理论上支持64位。但由于CM0仅有512MB内存,运行64位系统时,其本身的内存开销(内核、库、页表等)比32位系统多出约80-120MB,可能导致系统频繁使用交换分区,实际体验反而更慢。因此,对于512MB内存的设备,官方更推荐使用32位系统。本次教程将使用官方的32位Lite(无桌面环境)版本。

使用树莓派主机为CM0烧录系统

我们将使用另一台树莓派(作为烧录主机)通过 rpiboot 工具,将CM0模拟成U盘设备,然后写入系统镜像。

烧录主机环境准备(以树莓派5为例):

  1. 所需硬件
    • 树莓派(任何带USB接口的型号均可,如2B/3B/4B/5B)
    • 5V@2.5A MicroUSB电源
    • MicroUSB数据线
    • MicroUSB转USB母口数据线
    • MicroUSB HUB(用于连接CM0)
  2. 系统更新与软件安装
    登录烧录主机,打开终端,执行以下命令:
    sudo apt update && sudo apt upgrade -y
    sudo apt -y install git libusb-1.0-0-dev pkg-config build-essential vim tree
  3. 编译并安装 rpiboot 工具
    git clone --depth=1 https://github.com/raspberrypi/usbboot
    cd usbboot
    make
    sudo make install
  4. 启动rpiboot服务
    在终端执行 sudo rpiboot,此时程序会等待CM0设备接入。

CM0烧录步骤:

  1. 将跳线帽插入CM0开发板的J8位置。
  2. 使用MicroUSB数据线将CM0连接到烧录主机(树莓派5)的USB接口。
  3. 等待十几秒,烧录主机会识别到CM0作为一个新的存储设备(如 /dev/sda)。
  4. 在烧录主机上下载系统镜像(以Raspberry Pi OS Lite 32位为例):
    mkdir iso && cd iso
    wget https://downloads.raspberrypi.com/raspios_lite_armhf/images/raspios_lite_armhf-最新版本/镜像文件名.img.xz
  5. 解压镜像并烧录:
    xz -d 镜像文件名.img.xz
    sudo umount /dev/sda1  # 卸载自动挂载的分区
    sudo dd if=iso/镜像文件名.img of=/dev/sda bs=4M status=progress

    烧录完成后,使用 lsblk 命令检查,应能看到 /dev/sda1 (boot) 和 /dev/sda2 (rootfs) 两个分区。

CM0首次启动与基础配置

  1. 断开CM0与烧录主机的连接,并移除J8位置的跳线帽(非常重要!)
  2. 为CM0连接HDMI显示器、USB键盘鼠标,并通过MicroUSB口供电。
  3. 上电后,系统将启动并进入首次设置向导。按照提示设置用户名(如pi)、密码、时区、键盘布局等。
  4. 登录系统后,首先配置Wi-Fi地区以启用无线网络:
    sudo raspi-config

    导航至 Localisation Options -> WLAN Country,选择 CN China

  5. 解除蓝牙软锁定并启用Wi-Fi:
    sudo rfkill unblock 0
    sudo rfkill unblock wifi
  6. 连接Wi-Fi网络。可以使用 nmtui 命令行图形工具进行配置,非常简单直观:
    sudo nmtui

    在界面中选择“Activate a connection”,找到你的Wi-Fi并输入密码连接。

  7. 连接成功后,更新系统并安装常用软件:
    sudo apt update && sudo apt upgrade -y
    sudo apt install -y vim git curl wget htop

部署Docker及Home Assistant与MQTT服务

在配置好的CM0上,我们可以利用Docker容器快速部署智能家居平台。

1. 安装Docker

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
# 退出并重新登录使权限生效

2. 部署Mosquitto MQTT Broker
创建MQTT服务的配置和数据目录:

sudo mkdir -pv /opt/mosquitto/{config,data,log}

创建配置文件 /opt/mosquitto/config/mosquitto.conf

listener 1883 0.0.0.0
persistence true
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log
allow_anonymous false
password_file /mosquitto/config/password

运行Mosquitto容器:

sudo docker run -d --name=mosquitto --restart=always \
  -p 1883:1883 -p 9001:9001 \
  -v /opt/mosquitto/config:/mosquitto/config \
  -v /opt/mosquitto/data:/mosquitto/data \
  -v /opt/mosquitto/log:/mosquitto/log \
  eclipse-mosquitto

设置MQTT用户密码:

sudo docker exec -it mosquitto sh
# 在容器内执行:
mosquitto_passwd -b /mosquitto/config/password 用户名 密码
exit
sudo docker restart mosquitto

3. 部署Home Assistant
Home Assistant是一个强大的开源家庭自动化平台。通过Docker容器化部署,可以快速搭建:

sudo docker run -d --name=homeassistant --restart=always \
  -v /opt/homeassistant:/config \
  --network=host \
  ghcr.io/home-assistant/home-assistant:stable

部署完成后,在浏览器访问 http://[你的CM0 IP地址]:8123 即可完成Home Assistant的初始化设置。

4. 集成测试:在Home Assistant中添加MQTT并接收数据

  • 在Home Assistant网页界面,“配置” -> “设备与服务”中添加“MQTT”集成,填入CM0的IP地址及刚才设置的用户名密码。
  • 你可以在另一台设备(如另一台树莓派)上,使用Python脚本向 rpi5/cputemp 主题发布模拟的传感器数据。
  • 在Home Assistant的 configuration.yaml 文件中添加MQTT传感器配置,即可在前端仪表盘看到实时更新的数据。

至此,你已经完成了树莓派CM0从开箱、系统烧录、基础配置到部署智能家居核心服务(Home Assistant + MQTT)的全过程。CM0以其小巧的形态和灵活的定制能力,非常适合作为智能家居网关、轻量级服务器或各种嵌入式项目的核心。




上一篇:深度解析单点登录(SSO)实现方案:从Session共享到OAuth2.0实战指南
下一篇:李群与李代数:机器人位姿估计与优化的数学基础
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-11 11:55 , Processed in 0.317216 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表