尝试使用“fedora-arm-image-installer”在fedora 28上为来自FriendlyARM的nanopi a64创建可启动sd卡,但是安装最终失败,缺少两个文件“sunxi-spl.bin”和“u” -boot.itb”。
我需要哪些额外的 rpm 包,或者如何创建这些文件进行安装?
fedora-arm-image-installer \
--image=Fedora-Mate-armhfp-28-1.1-sda.raw.xz \
--target=nanopi_a64 \
--media=/dev/sdb \
--selinux=OFF \
--norootpass \
--resizefs \
-y
完整的执行日志。错误在最后10 行。
=====================================================
= Selected Image:
= Fedora-Mate-armhfp-28-1.1-sda.raw.xz
= Selected Media : /dev/sdb
= U-Boot Target : nanopi_a64
= SELINUX = OFF
= Root Password will be removed.
= Root partition will be resized
=====================================================
*****************************************************
*****************************************************
******** WARNING! ALL DATA WILL BE DESTROYED ********
*****************************************************
*****************************************************
= Writing:
= Fedora-Mate-armhfp-28-1.1-sda.raw.xz
= To: /dev/sdb ....
0+801784 records in
0+801784 records out
7396655104 bytes (7.4 GB, 6.9 GiB) copied, 281.967 s, 26.2 MB/s
= Writing image complete!
= Resizing /dev/sdb ....
Checking that no-one is using this disk right now ... OK
Disk /dev/sdb: 7.4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xad3c1ff1
Old situation:
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 61439 59392 29M c W95 FAT32 (LBA)
/dev/sdb2 * 61440 1060863 999424 488M 83 Linux
/dev/sdb3 1060864 2060287 999424 488M 82 Linux swap / Solaris
/dev/sdb4 2060288 13778943 11718656 5.6G 83 Linux
/dev/sdb4:
New situation:
Disklabel type: dos
Disk identifier: 0xad3c1ff1
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 61439 59392 29M c W95 FAT32 (LBA)
/dev/sdb2 * 61440 1060863 999424 488M 83 Linux
/dev/sdb3 1060864 2060287 999424 488M 82 Linux swap / Solaris
/dev/sdb4 2060288 15523839 13463552 6.4G 83 Linux
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy
The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
Syncing disks.
e2fsck 1.43.8 (1-Jan-2018)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
_/: 166928/366480 files (0.7% non-contiguous), 1228157/1464832 blocks
resize2fs 1.43.8 (1-Jan-2018)
Resizing the filesystem on /dev/sdb4 to 1682944 (4k) blocks.
The filesystem on /dev/sdb4 is now 1682944 (4k) blocks long.
= Turning SELinux off ...
= Removing the root password.
= Writing sunxi-spl.bin for nanopi_a64 ....
dd: failed to open '/tmp/root/usr/share/uboot/nanopi_a64/sunxi-spl.bin': No such file or directory
= Writing u-boot FIT image for nanopi_a64 ....
dd: failed to open '/tmp/root/usr/share/uboot/nanopi_a64/u-boot.itb': No such file or directory
= Installation Complete! Insert into the nanopi_a64 and boot.
答案1
一般来说,基于 ARMv8-A 的设备的sunxi-spl.bin
和u-boot.itb
文件,例如纳米派A64由提供uboot-images-armv8
包裹。
然而,在撰写本文时,该软件包似乎不包含专门针对 NanoPi A64 板的sunxi-spl.bin
和文件版本。u-boot.itb
sunxi 社区 wiki(围绕 Allwinner SoC 聚集的开源社区)表明,虽然从软件角度来看,NanoPi A64 与松64(基于相同的 Allwinner 四核 ARM Cortex A53 64 位处理器、类似的 DRAM、相同的以太网和电源管理 IC),不幸的是,Pine64 映像(包含在 中uboot-images-armv8
)无法在 NanoPi A64 上启动,可能是由于不同的PMIC 配置。
这就留下了自己构建合适的 u-boot 和 Linux 内核映像的选项,或者遵循sunxi 社区 wiki 上的手动构建指南使用nanopi_a64_defconfig
u-boot 的构建目标和sun50i-a64-nanopi-a64.dtb
Linux 内核的设备树二进制文件,或遵循FriendlyARM wiki 上的制造商说明使用他们的董事会支持包。