我正在研究飞思卡尔 T2080 RDB。我从这里得到了PPC64架构的CentOS关联。
我使用以下命令使用 CentOS 最小 ISO 制作了可启动 SD 卡:
dd bs=4M if=CentOS-7-AltArch-ppc64-Minimal-1611.iso of=/dev/sdc
当我尝试使用此 SD 卡启动飞思卡尔开发板时,我收到以下消息和错误:
==> bootd
Device: FSL_SDHC
Manufacturer ID: 74
OEM: 4a60
Name: USDU1
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 15.1 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
** Invalid partition 2 **
Unknown command '/boot/uImage' - try 'help'
** Invalid partition 2 **
WARNING: adjusting available memory to 30000000
Wrong Image Format for bootm command
ERROR: can't get kernel image!
我哪里错了? freescale板似乎在/boot目录中寻找uImage文件,但SD卡中的CentOS结构不同。 Freescale T2080 RDB 支持 CentOS PPC64 吗?
编辑:我还尝试使用 Rufus 软件创建可启动 SD 卡,但我遇到了同样的问题。
答案1
sdc1
是错的。使用sdc
。否则,您只是使用 SD 卡上现有的分区表。
dd bs=4M if=CentOS-7-AltArch-ppc64-Minimal-1611.iso of=/dev/sdc
可以在 CentOS wiki 上看到相关示例,从 ISO 写入 USB。它是 x86 而不是 ppc64,它是 USB 而不是 SD,但概念保持不变。 https://wiki.centos.org/HowTos/InstallFromUSBkey
特别值得注意的是该行您必须写入整个设备而不是其上的分区(因此,/dev/sdb 而不是 /dev/sdb1)
答案2
根据您现在提供的输出,您的设备需要 U-Boot,但映像可能只有“正常”内核,而没有 uImage。
为了澄清,您可以参考:图像与 zimage-vs-uimage
所以,自然地,你最多有两种选择:
- 搜索U-Boot ISO;
- 将您的主板切换为不使用 U-Boot(因为您的主板完全可以使用 U-Boot)。
更新:
很可能您只需要使用的不是“最小”ISO,而是完整的 ISO。请参阅此处的建议:https://github.com/umiddelb/aarch64/wiki/Install-CentOS-7-on-your-favourite-ARMv8-ARM64-AArch64-board
大多数 ARM 单板计算机都附带供应商特定的引导加载程序(主要是 u-boot)和 Linux 内核映像。您可以使用现有的 Debian/Ubuntu/Archlinux 磁盘映像并清除根文件系统内容(但保留内核映像 (/boot)、内核模块 (/lib/modules) 和固件文件 (/lib/firmware)未触及)。
答案3
以下是我从 CentOS 邮件列表得到的回复:
CentOS 7 ppc64 和 ppc64le 变体应该安装在 IBM Power(或来自 OpenPower 联盟的兼容机器,如 Tyan 或其他机器)上
从 CentOS 端来说,“默认情况下”什么都不会工作,但是如果您构建一个由 ppc64/ppc64le 树组成的 RootFS,则可能可以完成某些操作。