树莓派 CM(计算模块) 上有一个 eMMC 设备连接在主 SD 卡接口上(Lite 版除外),下面将介绍几种方法,通过计算模块的 IO 底板将系统烧录到 eMMC 上。
你还可以在计算模块的 Datasheet 中查看到本文所介绍的方法。
首先需要准备一块树莓派 CM,和一块底板。CMIO 或者其他底板(如 ED-IOTGATEWAY)均可。
烧录步骤
你需要准备一个 Linux 系统(推荐使用树莓派或装了 Ubuntu 的 PC)或 Windows 7、Mac。
注意 对于 BCM2835 (CM1) 的 bootloader 有一个 BUG,它会给主机返回错误的 USB 数据包,但是大多数的 USB 主机会忽略这个无害的错误并能正常工作。这个错误在 BCM2837 中做了修正。
Windows 下的操作
在 Windows 下有一个安装工具来自动安装所需驱动和引导工具。或者你也可以使用 Cygwin 编译并手动安装驱动。
Windows 安装工具
1、下载并运行 安装程序 完成驱动和引导工具的安装。
2、将树莓派 CM 底板的 USB SLAVE 接口连上 PC 的 USB 接口。对于 CM1、CM2、CM3、CM3+ 来说,需确认 J4 跳线(USB SLAVE BOOT ENABLE)设定在 EN 的位置。对于 CM4 来说,需要确认 J2 跳线设定在 EN 的位置。
3、给树莓派 CM 底板上电,Windows 将自动发现新硬件并安装驱动。
4、驱动安装完成之后,运行 RPiBoot.exe。
5、等待几秒钟之后,计算模块的 eMMC 将作为 USB 大容量启动器出现在系统的磁盘列表中。
6、这时候就可以像 给 SD 卡烧录系统镜像 一样来给计算模块烧录系统了。在写入系统镜像时请将 J4 跳线设置到 disabled 的位置(或者不要使用 USB Slave 接口)。随后给底板上电,系统会从 eMMC 来启动。
Cygwin 手动安装驱动的方法
Cygwin 是一个在 Windows 平台上运行的类 UNIX 模拟环境,首先你需要在 Windows 上安装好 Cygwin。
下载和安装参考 http://www.cygwin.com
接下来,和上面介绍的工具安装方法一样,设置好底板上 J4 跳线到 EN 的位置。用 micro USB 线把底板接到 PC 上,请不要给底板上电。
使用 Git 获取 rpiboot 的源码并编译安装。
sudo apt-get install git #如果系统时间没有设置的话, Git 会报错,使用下面的命令设置系统时间即可,此处 MM、DD、hh、mm 分别为月、日、小时、分钟。 sudo date MMDDhhmm git clone --depth=1 https://github.com/raspberrypi/usbboot cd usbboot #如果 libusb 没有安装的话,可以用下面的命令安装,若已安装则可忽略。 sudo apt-get install libusb-1.0-0-dev #编译源码 make #运行 rpiboot sudo ./rpiboot
现在将计算模块底板的 USB Slave 接口(J15)连上 PC,并给底板上电。rpiboot 程序会检测到计算模块并发送启动代码来运行连接 eMMC。
Linux 下的操作
这部分和 Windows 下 Cygwin 的手动安装驱动方法类似。获取 usbboot 的源码并运行 rpiboot,所用到的命令和上面一样故不再赘述。下面说一下烧录这个步骤所用到的命令。
rpiboot
完成之后,你可以在 /dev/
目录或者运行 lsblk
命令对比看到 rpiboot
运行前后的一些改变。会出现一个新的设备,就是计算模块的 eMMC。
使用 dd
命令将 Raspbian 镜像刷入到该设备即可。下面假设新的设备名为 sdX 则使用下面的命令。
sudo dd if=raw_os_image_of_your_choice.img of=/dev/sdX bs=4MiB
运行结果
/dev/sdX <- Device /dev/sdX1 <- First partition (FAT) /dev/sdX2 <- Second partition (Linux filesystem)
现在 /dev/sdX1 和 /dev/sdX2 可以被正常挂载到系统了。
在写入系统镜像时请将 J4 跳线(CM4IO 对应 J2)设置到 disabled 的位置(或者不要使用 USB Slave 接口)。随后给底板上电,系统会从 eMMC 来启动。
更多树莓派 CM 相关资料:
../../../raspberry-pi-compute-module-information
via
我记得这个发过了诶(`Δ´)
之前有一份 Windows 的,这次的比较系统一点 :)