CM4 物联网路由扩展板 Mini

Compute Model 4 IoT Router Broad Mini

树莓派计算模组4 物联网路由器扩展板 , 是基于树莓派计算模组 4 的网络扩展版。通过 PCIe 2.0 连接千兆网卡,使树莓派CM4拥有了两个全速千兆网口,并且保留了树莓派特色的 GPIO 排针。加上 BCM2711 4 核心 Cortex-A72 的强大性能和树莓派社区丰富的软件支持,使它可以成为网关、智能路由器、家庭物联网平台的坚实基础。也可以连接外设,作为小型 NAS、无线网桥、4G上网终端使用。

如需像常见品牌路由器一样的多 LAN 网口,建议使用千兆交换机扩展网口,不影响网络性能。

针对路由器使用场景,推荐搭配 CM4001000 模块

技术规格

系统框图

教程

准备

  1. 任意型号 Compute Module 4
  2. USB 电源适配器 5V 3A
  3. USB-C 连接线
  4. microSD 卡
    若使用集成 eMMC 的 CM4 则不需 microSD 卡,但需要再准备一根 USB-C 连接线用于刷写 eMMC
  5. 网线 x2

系统

CM4 路由器 可以兼容大部分支持树莓派 4 的系统,但大部分 Linux 发行版并未对网络应用场景优化,推荐使用 OpenWRT。

SD 卡安装

适用于无 eMMC 版 Compute Module 4 Lite

  1. 准备
  2. 使用 7-Zip 解压系统镜像压缩包,得到 img 镜像文件
  3. 使用 rufus 打开解压出的 img 文件,并选择读卡器对应盘符写入

eMMC 安装

适用于带 eMMC 版 Compute Module 4

  1. 准备
  2. 进入引导模式
    1. 将 CM4 路由器上的 RPiBOOT 拨到 1 侧,禁用 eMMC 启动
    2. 先使用 USB-C 数据线连接电脑与 CM4 路由器 USB 数据口,再连接 CM4 路由器电源
    3. 在电脑上安装并运行 rpiboot 工具,可以看到 eMMC 已经被显示为磁盘
  3. 使用 7-Zip 解压系统镜像压缩包,得到 img 镜像文件
  4. 使用 rufus 打开解压出的 img 文件,并选择 eMMC 对应盘符写入

OpenWRT 基本设置

  1. 安装 Compute Module 4 并将 microSD 卡插入 (eMMC 版无需 SD 卡)
  2. 连接网线
    • A. 连接单台电脑
    • B. 使用交换机连接多台电脑及其它设备
    • ETH0 连接访问互联网的光猫、调制解调器或上级路由器
    • ETH1 连接电脑或局域网交换机
    • ETH0与ETH1为默认设定,启动后可按需更改,甚至使用VLAN扩展更多接口
  3. 为 CM4 路由器通电,稍等片刻启动完成后,可以通过电脑访问192.168.1.1进入管理界面。
    • 默认账户 root
    • 默认密码 无
  4. 您可以在界面中管理网络设置,安装软件包,更多高级功能请参考OpenWRT 官方文档

其它设置

启用 USB 控制器

CM4 默认关闭 USB 控制器降低功耗,启用 USB 需要手动编辑 config 文件。

教程为在 OpenWRT 系统中使用 vi 编辑,如果您使用可插拔 SD 卡的 CM4 Lite,也可以将 SD 卡插到电脑上用记事本修改,修改内容相同。

  1. 编辑 config.txt 文件

    root@OpenWrt:~# vi /boot/config.txt
  2. a 进入编辑模式

  3. 在末尾加入dtoverlay=dwc2,dr_mode=host

     ################################################################################
     # Bootloader configuration - config.txt
     ################################################################################
    
     ################################################################################
     # For overclocking and various other settings, see:
     # https://www.raspberrypi.org/documentation/configuration/config-txt/README.md
     ################################################################################
    
     # OpenWrt config
     include distroconfig.txt
    
     [all]
     # Place your custom settings here.
     dtoverlay=dwc2,dr_mode=host
     ~
     ~
     ~
     ~
     ~
     ~
     ~
     ~
     ~
     ~
     ~
     ~
     ~
     ~
     I /boot/config.txt 15/15 100%
  4. 按 Esc 键退出编辑模式,左下角 I 变为 -

  5. 输入 :wq 回车,保存并退出

  6. 重启后,USB接口即可使用

调整 OpenWRT root 分区大小

为兼容小容量设备,OpenWRT 一般只会为 root 分区划分有限空间。如果需要使用更大的空间安装软件或储存文件,需要手动调整 root 分区大小。

  1. 准备一台装有任意 Linux 发行版的电脑或虚拟机

    • CM4 Lite: 将 microSD 取出,通过读卡器连接电脑
    • CM4: 禁用 eMMC 启动,进入引导模式,并通过 rpiboot 驱动为硬盘
  2. 安装 fdisk 和 resize2fs

  3. 使用 fdisk 查看分区表

     DFRobot@Ubuntu:~$ sudo fdisk /dev/sdb
    
     Welcome to fdisk (util-linux 2.32).
    
     Changes will remain in memory only, until you decide to write them.
     Be careful before using the write command.
    
     Command (m for help): p
     Disk /dev/sdb: 7.2 GiB, 7751073792 bytes, 15138816 sectors
     Units: sectors of 1 * 512 = 512 bytes
     Sector size (logical/physical): 512 bytes / 512 bytes
     I/O size (minimum/optimal): 512 bytes / 512 bytes 
     Disklabel type: dos
     Disk identifier: 0xcbad8a62
    
     Device     Boot Start    End Sectors  Size Id Type
     /dev/sdb1  *      512  33279   32768   16M 83 Linux
     /dev/sdb2       33792 558079  524288  256M 83 Linux
  4. 记下 /dev/sdb2 (root 分区) 的起始扇区

  5. 使用 fdisk 删除分区2 (即sdb2),不要将更改写入磁盘

     Command (m for help): d
     Partition number (1,2, default 2): 
    
     Partition 2 has been deleted.
  6. 使用 fdisk 创建新分区2,选择/输入您先前写下的起始扇区地址 (默认情况下,它将尝试将其放置在其他位置),并保留默认的结束扇区地址(这意味着该分区现在将使用所有可用空间)

  7. 将分区表更改写入磁盘。它可能会提示已经存在分区签名,输入 n 不删除分区签名即可继续。

     Command (m for help): n
     Partition type
        p   primary (1 primary, 0 extended, 3 free)
        e   extended (container for logical partitions)
     Select (default p): p
     Partition number (2-4, default 2): 2
     First sector (33280-15138815, default 34816): 33792
     Last sector, +sectors or +size{K,M,G,T,P} (33792-15138815, default 15138815): 
    
     Created a new partition 2 of type 'Linux' and of size 7.2 GiB.
     Partition #2 contains a ext4 signature.
    
     Do you want to remove the signature? [Y]es/[N]o: n
    
     Command (m for help): w
    
     The partition table has been altered.
     Syncing disks.
  8. 写入以扩大实际文件系统以填充较大的分区大小。

    DFRobot@Ubuntu:~$ sudo resize2fs /dev/sdb2

使用串口终端调试 CM4 路由器

如果设置错误,已无法通过网络访问 CM4 路由器,可以使用串口终端对 CM4 路由器进行调试。

  1. 准备

  2. 将 SD 卡插入计算机并编辑 config.txt 使用记事本编辑,在末尾添加一行 enable_uart=1

  3. 连接 USB Serial 适配器与 CM4 路由扩展板

    • USB Serial TX - GPIO 10
    • USB Serial RX - GPIO 8
    • USB Serial GND - Ground
    • ⚠注意:不要连接5V,可能导致硬件损坏
      待修改
  4. 安装并打开 PuTTY 按下图进行设置并打开终端

  5. 为 CM4 路由器通电,稍等片刻串口终端上会开始滚动系统日志,启动完成后按一下回车进入 BasyBox 终端

     BusyBox v1.31.1 () built-in shell (ash)
    
       _______                     ________        __
      |       |.-----.-----.-----.|  |  |  |.----.|  |_
      |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
      |_______||   __|_____|__|__||________||__|  |____|
               |__| W I R E L E S S   F R E E D O M
      -----------------------------------------------------
      OpenWrt SNAPSHOT, r15224-afd4bf08bc
      -----------------------------------------------------
    
     root@OpenWrt:~#
  6. 若串口终端没有任何显示,请检查 config.txt 设置或系统镜像是否受损

FAQ

目前的设计可能无法兼容USB-C to USB-C的数据线,建议使用USB-A to USB-C的线连接

相关链接