这有点像 U-Boot 相关的问题。我不太确定应该发布到哪个网站,但是当我启动 Ubuntu 时,我将其发布到这里。
基本上,我买了一台便宜的 Nanopi Neo Air 和 Allwinner H3 SOC。我正在使用官方的 ubuntu 20.04 映像。我使用提供的 eflasher 工具将系统刷新到板载 emmc 中。
板载 emmc 对于我的用例来说太小,但它比 SD 卡更快。我希望我的系统从 emmc 启动,同时使用 SD 卡作为额外存储。所以我将我的 SD 卡格式化为一个大的 ext4 分区,然后重新启动我的系统。
启动时,我的 u-boot 对插入的 SD 卡不满意。它总是从 SD 卡启动,即使它是空的(所以它根本不会启动)。
我尝试了什么
我尝试通过向 SD 卡中写入零来清除 SD 卡中的所有数据。那没有帮助。
我想要什么
插入 SD 卡后从 emmc 启动
任何信息表示赞赏。
答案1
这当然是可能的,但不能笼统地回答,因为引导顺序和测试是在您的 U-Boot 环境中单独定义的。例如,可以有一些变量,例如bootdevs
包含一个列表,例如mmc emmc
首先尝试从 mmc 启动,如果失败,则从 emmc 启动。就您而言,我怀疑 mmc 启动执行了一个错误的测试。也许它只是检查 SD 卡是否存在。该测试必须扩展为首先测试卡是否存在,然后测试 ext4 文件系统,最后查找文件/boot/vmlinuz
或内核映像的路径。
如果您没有对 U-Boot 配置的解释,那么对其进行逆向工程就不是火箭科学了。printenv boot
在 U-Boot 提示符中执行此操作,看看它会做什么。它可能会运行其他命令,您也可以printenv
。也许某些命令不存在,因为它是在执行过程中生成的,因此请查看整个printenv
输出以了解它在何处以及如何生成。语法很容易学习。
如果您无法自己管理它,请将您的printenv
输出发布在这里,以便我们可以帮助您调试和扩展它。