这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 「上海晶珩」「EDATEC」在Raspberry Pi4 上USB启动系统

共4条 1/1 1 跳转至

「上海晶珩」「EDATEC」在Raspberry Pi4 上USB启动系统

菜鸟
2023-04-04 17:44:02     打赏

为什么树莓派爱好者在谈论 USB 启动时会感到兴奋?因为它使树莓派明显更快。或者,更准确地说,内存随闪存 (ROM) 传输。RPi 启动速度更快,尤其是在 64 位操作系统中,因为它是一个未压缩的内核。或者将页面从缓存加载到 Chromium 中。因此,任何使用闪存传输大量数据的东西都会更快。但是,例如,深度学习应用程序不会运行得更快,因为它们主要使用 RAM。你也不会更好地传输YouTube流;这与您的互联网带宽有关,与您的闪存卡无关。
USB启动如此受欢迎的另一个原因是,使用过的SSD卡比较小的SD卡磨损得更少。

硬件

USB 启动需要专用硬件。一个简单的USB 3.0盘可以完成这项工作,但传输速度与SD卡相同,约为80-100MB / s。网络,它会更糟一些,因为在初始化RPi板上的USB控制器时大约有0.5秒的开销。
只有使用快速 SSD 驱动器(400 MB/s 或更高),您才能从 USB 启动中充分受益。这些 SSD 驱动器不作为 USB 设备提供。需要一个额外的USB 3.0适配器将其连接到树莓。确保使用适合 UASP 传输的适配器。它是USB 3.0支持的新的,最快的协议。最后要考虑的一点是功耗。相对较小的SSD驱动器可以通过USB端口供电。这是首选,因为否则,您还需要额外的电源。一个相对便宜的组合是金士顿240GB A400 SATA 3(32欧元)和Inateck 2.5硬盘盒(15欧元)。
a3b4fedf0094f1f477f696c57fe16600_1680500411405-kingston-ssd_%E7%9C%8B%E5%9B%BE%E7%8E%8B.jpg

树莓派 4 USB 启动

树莓派巧妙地启动。启动后,位于EEPROM中的小程序立即仅加载I/O的驱动程序。这就是为什么,例如,即使没有插入SD卡,您仍然会看到诊断屏幕。然后,该程序尝试在树莓派中加载操作软件。完成后,它将控制权转移到树莓派,并在其余时间保持空闲状态。

到目前为止,启用USB启动的最简单方法是使用Raspberry Pi Imager。 从 1.6 版开始,您可以找到适用于 USB 启动的专用 EEPROM 设置。看看下面的幻灯片。
881bb6adde409931979dccfb8d62bf66_1680500444335-boot1.jpg
72d2af43728f309a0e849db8328e031a_1680500471362-boot2.jpg
ecfe4e45dbdd90f707eb5475c6a67c02_1680500486738-boot3.jpg
在PC中插入(小型)SD卡,然后烧录您选择的EEPROM镜像。可以使用启动顺序首先是SD卡,其次是USB,或者在幻灯片中选择的启动顺序,USB优先,SD卡其次。使用树莓派 4 和 EEPROM 更新中新闪存的 SD 卡启动。屏幕变为绿色后,您的EEPROM已准备就绪。您始终可以通过简单地使用不同的设置重复上述过程来更改启动顺序。

其余过程与第一段中所述的标准SD卡安装相同。使用imager在 USB 设备上烧录树莓派 64 操作系统,从树莓派 4 中取出 SD 卡,然后将 USB 设备插入(蓝色)USB 3.0 连接器。现在,按照通常的安装顺序进行操作。

密切关注 USB 设备的功耗。一个SSD卡没有问题,但更多的就需要一个单独的电源集线器。

故障 排除

最常见的故障原因是 USB 到 SATA(SSD 卡)适配器不支持 UASP 协议。UASP代表USB Attached SCSI Protocol,Raspberry Pi使用的一种极快的数据传输协议。一些适配器,如流行的JMicron,在某些UASP命令上会有问题。您会看到性能缓慢、频繁断开连接或错误报告。即使连接到USB 2.0也无法解决问题,因为Linux内核在看到USB 3.0设备时仍然使用UAS命令。

唯一的解决方案是在启动后立即使用命令禁用 UASP 传输。在command.txt文件中,您需要提供 USB 驱动器的硬件 ID。您可以通过将SSD驱动器连接到仍在SD卡上工作的Raspberry Pi的USB来获得它。

# Get the verdor and product ID
$ lsusb

e5cbfec6ea5eebdedd7896491b0fc2e0_1680500557336-ssd_id.jpg
找到的数字在命令 usb-storage.quirks=xxxx:yyyy:u 中作为参数给出
此命令必须设置为 /boot/cmdline.txt 中找到的长行中的第一个参数。
在 USB 文件夹的启动部分找到该文件。请参阅下面的屏幕转储,从常规SD卡启动的RPi。启动后连接 USB 设备。
14fc968e628be96b48222b5827c69428_1680500596576-cmdlinetxt2.jpg
你也可以使用nano编辑器
d97683b2e837504e3ef7fdf9fe8cad7f_1680500642975-cmdlinetxt.jpg
Benchmark

经过所有的努力,大多数人只想知道一件事:值得吗?答案很简单是肯定的。
您不仅拥有更多的内存空间,而且具有分布式磨损的SSD卡的使用寿命也比SD卡长得多。
而且SSD卡要快得多。您可以在树莓菜单上找到Benchmark测试工具。 
执行后,您可以请求报告。

e142f17f33d722dc16f4769581450993_1680500702173-diagnose.jpg
我们研究了三种不同的选择。首先是标准的SD卡,当然是最慢的。
第二种选择是带有不支持 UASP 的 SATA 到 USB 转换器的 SSD 卡;进步很大。
第三个选项是相同的SSD卡,但现在具有支持UASP的转换器。显然是最快的。
不得不说,如果没有UASP,你仍然有很多速度增益。
10cc416533a203d47a4e6c2a2dca647a_1680500714705-benchmark_4icykf3p.jpg
最后两点意见
在树莓诊断报告中,您会看到 IOPS。它代表每秒的 I/O 操作数。如您所见,一次读取或写入传输为 4 KBYTE。您可以将这些数字相乘以获得以每秒(兆)字节为单位的传输速率。
这些令人印象深刻的传输速率仅反映从ROM读取或写入数据,而不是工作存储器(RAM)。最终,您的Raspberry Pi将运行得更快,但是,例如,使用SSD卡在RAM中具有模型的深度学习应用程序不会更快。

启动顺序

对于高级用户,有引导加载程序配置文件指示Raspberry Pi将如何启动。在 rpi-eeprom-config 文件中,您可以定义两个媒体(SD、USB、UART、网络)尝试引导 RPi。如果第一个(例如SD卡)出现故障,它将尝试从第二个(可以是您的USB)启动。这样,当SSD驱动器发生故障时,您的SD卡可以用作一种备份。

但是请注意,一旦启动,您将只能使用该设备。换句话说,如果由于功能不当,您从“旧”SD卡而不是“新”SSD驱动器启动,则由于加载了“旧”SD卡文件结构,您将丢失SSD驱动器上的所有工作。如果您的 SSD 驱动器仍在内部启动或其电源尚不可用,则可能会发生这种情况。您必须采取预防措施来解决此问题。一定次数的引导重试可能是解决方案。

在开始修改 rpi-eeprom-config 文件之前,请仔细阅读此页面上的说明。

$ sudo -E rpi-eeprom-config --edit
# modify BOOT_ORDER=0xf41 
# first SSD (USB), second SD card
$ BOOT_ORDER=0xf14
# save <Ctrl>+<X>, <Y>, <Enter>
$ sudo reboot

同样,这适用于高级用户。 大多数人只需从Pi中取出SD卡即可享受改进的性能。

文章转自:https://qengineering.eu/install-raspberry-64-os.html





关键词: 树莓派     嵌入式     物联网     工业计算机     工控机     OS         

助工
2023-04-04 18:10:33     打赏
2楼

感谢楼主的分享,很实用了。


高工
2023-04-05 09:29:40     打赏
3楼

感谢分享感谢分享


高工
2023-04-05 09:29:52     打赏
4楼

感谢分享


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]