yoctoでubootをビルドしてqemuで起動する

/ linux

u-boot: Universal Bootloader ビルドしてqemu上で起動するところまで覚え書き

  1. 適当なyoctolinux/poky/bitbakeワークスペースをダウンロード
  2. ビルド環境設定 source oe-init-build-env
  3. マシン設定 echo 'MACHINE="qemuarm64"' >>conf/local.conf
  4. ubootのビルド bitbake -c compile -f u-boot
  5. qemu-system-aarch64 -machine virt -cpu cortex-a57 -nographic -kernel tmp/work/qemuarm64-poky-linux/u-boot/1_2021.07-r0/build/u-boot
qemu-system-aarch64 -machine virt -cpu cortex-a57 -nographic -kernel tmp/work/qemuarm64-poky-linux/u-boot/1_2021.07-r0/build/u-boot

U-Boot 2021.07 (Jul 05 2021 - 15:11:28 +0000)

DRAM:  128 MiB
Flash: 64 MiB
Loading Environment from Flash... *** Warning - bad CRC, using default environment

In:    pl011@9000000
Out:   pl011@9000000
Err:   pl011@9000000
Net:   eth0: virtio-net#32
Hit any key to stop autoboot:  0
starting USB...
No working controllers found
USB is stopped. Please issue 'usb start' first.
scanning bus for devices...

Device 0: unknown device

Device 0: unknown device
starting USB...
No working controllers found
BOOTP broadcast 1
DHCP client bound to address 10.0.2.15 (1 ms)
Using virtio-net#32 device
TFTP from server 10.0.2.2; our IP address is 10.0.2.15
Filename 'boot.scr.uimg'.
Load address: 0x40200000
Loading: *
TFTP error: 'Access violation' (2)
Not retrying...
BOOTP broadcast 1
DHCP client bound to address 10.0.2.15 (1 ms)
Using virtio-net#32 device
TFTP from server 10.0.2.2; our IP address is 10.0.2.15
Filename 'boot.scr.uimg'.
Load address: 0x40400000
Loading: *
TFTP error: 'Access violation' (2)
Not retrying...
=> poweroff
poweroff ...

成功!