cm4不能在系统里通过 rpi-eeprom-update 指令进行升级,也不能通过 update 进行更新,只能通过recovery模式进行更新。

以下为Windows的升级方式。

Setp 1:下载recovery

git clone --depth=1 https://github.com/raspberrypi/usbboot

Setp 2:安装rpiboot

进入usbboot\win32,双击rpiboot_setup.exe安装

Setp 3:修改启动顺序(可选)

如果你不想修改启动顺序,那么请跳过此步

修改启动顺序需要在Linux或WSL下进行,因为需要用到shell环境。

默认的启动顺序:SD CARD/eMMC > USB-MSD > NVME > BCM-USB-MSD > NETWORK > RESTART

BOOT_ORDER=0xf25641

修改的启动顺序:NVME > USB-MSD > BCM-USB-MSD > SD CARD/eMMC > NETWORK > RESTART

BOOT_ORDER=0xf21564

[all]
BOOT_UART=1
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0 # Boot Order Codes, from https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#BOOT_ORDER
# Try SD first (1), followed by, USB PCIe, NVMe PCIe, USB SoC XHCI then network
BOOT_ORDER=0xf21564 # Set to 0 to prevent bootloader updates from USB/Network boot
# For remote units EEPROM hardware write protection should be used.
ENABLE_SELF_UPDATE=1

修改好执行脚本。脚本会从pieeprom.original.bin源文件生成pieeprom.bin和pieeprom.sig两个新的目标文件。

cd recovery
nano boot.conf
./update-pieeprom.sh

将pieeprom.bin和pieeprom.sig两个新的目标文件拷贝到C:\Program Files (x86)\Raspberry Pi\recovery,替换安装包里默认的文件。

Setp 4:从recovery更新

短接CM4的Boot到GND后上电,此时CM4就进入了Boot模式。

进入C:\Program Files (x86)\Raspberry Pi\recovery,并在此处打开powershell,执行以下指令:

./rpiboot -d recovery

执行结果如下:

PS C:\Program Files (x86)\Raspberry Pi> ./rpiboot -d recovery
RPIBOOT: build-date Dec 16 2022 version 20221215~105525 1afa26c5
Loading: recovery/bootcode4.bin
Waiting for BCM2835/6/7/2711...
Loading: recovery/bootcode4.bin
Sending bootcode.bin
Successful read 4 bytes
Waiting for BCM2835/6/7/2711...
Loading: recovery/bootcode4.bin
Second stage boot server
Loading: recovery/config.txt
File read: config.txt
Loading: recovery/pieeprom.bin
Loading: recovery/pieeprom.bin
Loading: recovery/pieeprom.sig
File read: pieeprom.sig
Loading: recovery/pieeprom.bin
File read: pieeprom.bin
Second stage boot server done

执行完毕后active灯将每隔0.5s闪烁,HDMI输出绿色为升级成功。短闪两下,长闪一下, HDMI输出红色为升级失败。升级失败需要重新来过。

参考:

https://www.raspberrypi.com/documentation/computers/compute-module.html#cm4bootloader

https://wiki.seeedstudio.com/Raspberry_pi_CM4_update_eeprom/

https://www.jeffgeerling.com/blog/2022/how-update-raspberry-pi-compute-module-4-bootloader-eeprom

树莓派cm4更新bootloader(eeprom)的更多相关文章

  1. 树莓派4B 更新wiringPi库到2.52的方法的wiringPi库2.5.2版本wiringpi-latest.deb下载

    树莓派4B 更新wiringPi库到2.52的方法 – 树莓派中文站 http://www.52pi.net/archives/1918 通过如上链接可知,需要通过如下命令下载wiringpi-lat ...

  2. [原创]树莓派CM4配置GPIO复用为i2c

    1.简介 项目中需要控制各种外设的电源,正常应该是通过GPIO进行控制,但是树莓派CM4的GPIO管脚有限,因此需要使用i2c扩展IO 查阅CM4-datesheet发现GPIO22和GPIO23可以 ...

  3. 树莓派3B更新软件

    因为软件是要不断更新的,所以半个月或者一个月要升级一下软件 升级软件非常简单 在终端或者SSH里输入 sudo apt-get update && apt-get upgrade -y ...

  4. 树莓派CM4 wifi频繁断开连接

    CM4核心板上自带的wifi模块连接上华为/小米的路由器5G热点以后,会频繁断开连接,断开连接前使用 iw dev 查看wifi信息如下: phy#0 Unnamed/non-netdev inter ...

  5. 树莓派4b通过外接ssd硬盘启动系统失败的排查和解决

    树莓派4b通过外接ssd硬盘启动系统失败,症状: 屏幕卡在黑屏或提示 mmc1:Controller never released inhibit bit(s).... 先说如何设置硬盘启动,后面是解 ...

  6. 在树莓派1B上编译安装lnmp服务器

    最近一周给部门内部搭建考试系统,选择使用PHPEMS.这是个开源的系统,唯一缺点是PHP的版本比较低,只能使用5.2或5.3.而我的树莓派系统更新后使用apt-get安装得到的PHP版本为5.4.由于 ...

  7. 在树莓派2代B型/3代 上安装Fedora23 - Installing Fedora 23 on Raspberry Pi 2 model B or Raspberry Pi 3

    本文主要用于记录安装过程,以便日后查阅回顾. 之前在自己的树莓派上运行的一直是通过NOOB安装的Raspbian,但是本人平时更喜欢用Fedora作为开发和使用环境,而且Raspbian上的软件包通常 ...

  8. windows下一根数据线玩转树莓派zero(w)

    买了个树莓派zero w,想着用一根普通micro数据线达成 供电+ssh+通过usb共享网络+远程桌面 的目标 通过用静态ip免去了用benjour的连接不稳定方法,下面开始细说 需要的硬件: 树莓 ...

  9. IoT固/软件更新及开源选项

    会出什么问题呢?大多数这些设备的设计都不像是被恶意攻击的目标. 嵌入式系统传统上被认为是稳定的产品, 但实施起来成本高昂, 因为投资回报率(ROI)在的周期比较长. 在过去一旦发货, 就很少需要更新这 ...

  10. 新树莓派系统安装ROS记录

    树莓派系统更新了,作为版本控的我怎么能忍住不更新系统,为了提高系统的速度,买了张170M的告诉sd卡,我要说的是,这个高速SD卡的钱花的最值得了,千万不要觉得树莓派都买了4,还要什么高速SD卡(自行车 ...

随机推荐

  1. CentOS7.4 安装 11204 ASM GI 组件时:ohasd failed to start

    前段时间某客户要求在CENTOS7上部署Oracle 11.2.0.4 single instance && ASM存储,遇到一个比较头疼的问题,好在已经处理完了. 在图形化执行安装程 ...

  2. 大疆消费级无人机调参软件 Assistant 2 与模拟器

    0 大疆消费级无人机调参 Assistant 2 无人机调参软件常用来为无人机的某些参数做校准.大疆的无人机调参软件分为行业级版和消费级版. 行业级版本基本为每个适配机型都添加了与之对应的模拟器功能. ...

  3. 低功耗4G模组:Air780EP之fskv开发示例

    ​ 今天我们学习合宙低功耗4G模组Air780EP的fskv开发示例. 一.简介 兼容fdb的函数 使用fdb的flash空间,启用时也会替代fdb库 功能上与EEPROM是类似的 fskv与fdb的 ...

  4. Golang的GMP调度模型与源码解析

    0.引言 我们知道,这当代操作系统中,多线程和多进程模型被广泛的使用以提高系统的并发效率.随着互联网不断的发展,面对如今的高并发场景,为每个任务都创建一个线程是不现实的,使用线程则需要系统不断的在用户 ...

  5. 从0搭建一个FIFO模块-02(系统架构)

    一.异步FIFO需要注意的问题 所谓异步FIFO,指的是写时钟与读时钟可以不同步,读时钟可以比写时钟快,反之亦然.思考一下,这样会直接地造成两个问题: 由于异步FIFO的基本存储单元是双端口RAM,因 ...

  6. Solr 学习(5) —- Solr查询语法和参数

    1.查询地址 建立好solr的索引后,可以通过管理界面进行查询.http://127.0.0.1:8983/solr/admin/form.jsp 要尝试多个查询方法的话,可以进入full inter ...

  7. golang之循环导包

    作为一个 Golang 开发,你可能在项目中遇到过包的循环依赖问题.Golang 不允许循环依赖,如果检测到代码中存在这种情况,在编译时就会抛出异常. 循环依赖 假设我们有两个包:p1和p2.当包p1 ...

  8. laravel之任务调度(定时任务)

    crontab指令线性增长.毕竟crontab是一项系统级的配置,在业务中我们为了节约机器,往往对于量不大的多个项目会放在同一台服务器上,crontab指令多了就容易管理混乱,并且功能也不够灵活强大( ...

  9. 本地环境搭建Virtualbox+Vagrant

    环境准备 virtualbox是免费,不必要费劲去找破解,下载就可以用. 使用virtualbox每次安装虚拟机,需要你去下载iso,然后设置虚拟机硬件配置,使用iso创建虚拟器.一系列的手工操作,如 ...

  10. 【题目全解】ACGO巅峰赛#15

    ACGO 巅峰赛#15 - 题目解析 间隔四个月再战 ACGO Rated,鉴于最近学业繁忙,比赛打地都不是很频繁.虽然这次没有 AK 排位赛(我可以说是因为周末太忙,没有充足的时间思考题目-(好吧, ...