树莓派4相比前代,加入了一块 512KB SPI EEPROM,用来存放启动代码和原先在启动分区的bootcode.bin。需要注意,哪怕SD卡里面有bootcode.bin,会加载EEPROM里的文件而不是卡里的。
Q:为什么树莓派4使用EEPROM?
A:新一代树莓派启动流程复杂;USB和网卡与前代不同,SPI EEPROM可以升级,使得修补漏洞和增加特性成为可能。取代OTP来选择启动模式。
比如在某次EEPROM更新中,更新了USB固件,使USB控制器发热大大降低了。
USB免SD卡启动也是后来加入的特性,只需要更新EEPROM而不用编程OTP。
EEPROM也加入了更多可调参数。
最近想尝试外接USB盘启动和Win10ARM版。树莓派4运行Win10建议更新到最新EEPROM版本,后面还会写一篇关于如何制作Win10启动盘,现有精品帖只是把制作好的系统从SD卡DUMP出来,并没有介绍如何从官方ISO制作启动盘,如果想制作自己的系统和后续更新,只能等作者释出,Win10ARM版跟桌面版同步,桌面版有新版本ARM也同步更新(只是现在微软还没有官方支持的ARM设备,只是发布一个底包一样的东西)。WoR工具的引入使得制作Win10启动盘不再需要面对复杂的命令行,微软的周期性更新也在不断完善系统。
而外接USB启动是5月的某个beta更新引入的特性,现在官方主线的EEPROM版本仍然是4月的版本,包括用apt full-upgrade和rpi-eeprom-update都只能更新到2020-04-16版本,包括恢复映像(Recovery Image)和Raspberry Pi Imager制作的启动盘。想更新到最新的版本,现在是2020-09-03,只能手动更新。而USB MSD启动则要最新的Raspberry Pi OS 2020-08-20 版本才支持。
更新办法也简单,在树莓派EEPROM的GitHub releases页面下载
rpi-boot-eeprom-recovery-2020-09-03-vl805-000138a1-STABLE.zip。

解压里面的文件放到一张空白FAT32格式的microSD卡,放到树莓派里,通电等一会即可。

更新的时候我没有接屏幕,官方说法是等到绿灯快速闪烁,HDMI屏幕变绿。但观察下来,一开始灯闪的很快,后来慢下来了,之后没变过,我等了一会才拔。
更新后启动系统,命令行输入
sudo rpi-eeprom-update
命令可查看当前版本。如果最近更新过系统,版本应该是2020-04-16,并且会说已经最新,但如果想体验新特性,就要按上面的步骤更新了。
注意:系统是向前兼容的,既新系统兼容旧的EEPROM版本,但旧版本系统不一定完全兼容新EEPROM,不更新EEPROM完全可以正常使用,官方也会在更新系统的时候更新EEPROM(如有必要)。所以更新了EEPROM之后强烈建议搭配最新系统。

上面的up-to-date是相对官方的生产固件,而不是测试固件。
更新完成后,像正常烧写SD卡一样,烧写外接移动硬盘。不接SD卡,硬盘接到USB口就可以USB启动了。相比旧方法,把boot分区放在SD卡里然后通过修改系统挂载分区达成的外接硬盘启动,这个办法更简单。不用修改文件,移动分区等操作,能节省一张SD卡。
Q:为什么树莓派4使用EEPROM?
A:新一代树莓派启动流程复杂;USB和网卡与前代不同,SPI EEPROM可以升级,使得修补漏洞和增加特性成为可能。取代OTP来选择启动模式。
比如在某次EEPROM更新中,更新了USB固件,使USB控制器发热大大降低了。
USB免SD卡启动也是后来加入的特性,只需要更新EEPROM而不用编程OTP。
EEPROM也加入了更多可调参数。
最近想尝试外接USB盘启动和Win10ARM版。树莓派4运行Win10建议更新到最新EEPROM版本,后面还会写一篇关于如何制作Win10启动盘,现有精品帖只是把制作好的系统从SD卡DUMP出来,并没有介绍如何从官方ISO制作启动盘,如果想制作自己的系统和后续更新,只能等作者释出,Win10ARM版跟桌面版同步,桌面版有新版本ARM也同步更新(只是现在微软还没有官方支持的ARM设备,只是发布一个底包一样的东西)。WoR工具的引入使得制作Win10启动盘不再需要面对复杂的命令行,微软的周期性更新也在不断完善系统。
而外接USB启动是5月的某个beta更新引入的特性,现在官方主线的EEPROM版本仍然是4月的版本,包括用apt full-upgrade和rpi-eeprom-update都只能更新到2020-04-16版本,包括恢复映像(Recovery Image)和Raspberry Pi Imager制作的启动盘。想更新到最新的版本,现在是2020-09-03,只能手动更新。而USB MSD启动则要最新的Raspberry Pi OS 2020-08-20 版本才支持。
更新办法也简单,在树莓派EEPROM的GitHub releases页面下载
rpi-boot-eeprom-recovery-2020-09-03-vl805-000138a1-STABLE.zip。

解压里面的文件放到一张空白FAT32格式的microSD卡,放到树莓派里,通电等一会即可。

更新的时候我没有接屏幕,官方说法是等到绿灯快速闪烁,HDMI屏幕变绿。但观察下来,一开始灯闪的很快,后来慢下来了,之后没变过,我等了一会才拔。
更新后启动系统,命令行输入
sudo rpi-eeprom-update
命令可查看当前版本。如果最近更新过系统,版本应该是2020-04-16,并且会说已经最新,但如果想体验新特性,就要按上面的步骤更新了。
注意:系统是向前兼容的,既新系统兼容旧的EEPROM版本,但旧版本系统不一定完全兼容新EEPROM,不更新EEPROM完全可以正常使用,官方也会在更新系统的时候更新EEPROM(如有必要)。所以更新了EEPROM之后强烈建议搭配最新系统。

上面的up-to-date是相对官方的生产固件,而不是测试固件。
更新完成后,像正常烧写SD卡一样,烧写外接移动硬盘。不接SD卡,硬盘接到USB口就可以USB启动了。相比旧方法,把boot分区放在SD卡里然后通过修改系统挂载分区达成的外接硬盘启动,这个办法更简单。不用修改文件,移动分区等操作,能节省一张SD卡。





