如何在 qemu 下的 u-boot 中从 fat 分区加载内核(arm versatile pb)
How to load kernel from fat partition in u-boot under qemu ( arm versatile pb )
我已经添加到位于 include/configs/versatile.h 的 u-boot 通用 pb 配置文件中这一行:
#define CONFIG_CMD_FAT
#define CONFIG_DOS_PARTITION 1
将 fatload 命令添加到 u-boot。所以我支持 fatload 命令。
我以这种方式启动 u-boot:
qemu-system-arm -M versatilepb -m 128M -nographic -kernel u-boot
现在的问题是如何传递给包含带内核的胖文件系统的 qemu 文件(我对引导 FreeBSD 内核很感兴趣,但我认为加载 Linux 的示例也可以帮助我)然后加载内核并引导它在 u-boot 下。
所以,这里的问题是 versatilepb 在 U-Boot 中不支持 SD/MMC 卡,所以你真的不能。但是,如果你想在另一个支持 SD/MMC 的设备上执行此操作(比如 vexpress-a9),你可以这样做:
$ dd if=/dev/zero of=sd.bin bs=1k count=$((64 * 1024))
$ fdisk ./sd.bin
... create a partition
然后阅读 loopback mounting individual partitions from within a file that contains a partition table on linux 以了解如何使用 losetup 使该分区可用,格式化它,然后像真正的 SD 卡一样装载和复制数据。那么:
$ qemu-system-arm -M vexpress-a9 -kernel vexpress_ca9x4/u-boot -nographic -sd sd.bin
现在 'mmc' 命令将与那个 sd.bin 文件一起工作。
我已经添加到位于 include/configs/versatile.h 的 u-boot 通用 pb 配置文件中这一行:
#define CONFIG_CMD_FAT
#define CONFIG_DOS_PARTITION 1
将 fatload 命令添加到 u-boot。所以我支持 fatload 命令。 我以这种方式启动 u-boot:
qemu-system-arm -M versatilepb -m 128M -nographic -kernel u-boot
现在的问题是如何传递给包含带内核的胖文件系统的 qemu 文件(我对引导 FreeBSD 内核很感兴趣,但我认为加载 Linux 的示例也可以帮助我)然后加载内核并引导它在 u-boot 下。
所以,这里的问题是 versatilepb 在 U-Boot 中不支持 SD/MMC 卡,所以你真的不能。但是,如果你想在另一个支持 SD/MMC 的设备上执行此操作(比如 vexpress-a9),你可以这样做:
$ dd if=/dev/zero of=sd.bin bs=1k count=$((64 * 1024))
$ fdisk ./sd.bin
... create a partition
然后阅读 loopback mounting individual partitions from within a file that contains a partition table on linux 以了解如何使用 losetup 使该分区可用,格式化它,然后像真正的 SD 卡一样装载和复制数据。那么:
$ qemu-system-arm -M vexpress-a9 -kernel vexpress_ca9x4/u-boot -nographic -sd sd.bin
现在 'mmc' 命令将与那个 sd.bin 文件一起工作。