Open3
x86_64 NuttX と QEMU
環境
VirtualBox を使用
- ホスト: Microsoft Windows 10
- ゲスト: Ubuntu 20.04 LTS
NuttX ビルド
インストールとコンパイルまで進める
アーキテクチャは ./tools/configure.sh -L で表示されたやつをつかった。
$ ./tools/configure.sh -l qemu-intel64:nsh
$ make
生成されたもの。
$ file nuttx.elf
nuttx.elf: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
iso を作る
作るらしい。
ディスクを作る。iso というディレクトリの下にファイルを設置するらしい。nuttx.elf は NuttX を make して生成されたもの。
rin@shiori:~/work/OS/nuttx$ mkdir -p iso/boot/grub
rin@shiori:~/work/OS/nuttx$ cp ./nuttx/nuttx.elf iso/boot/
rin@shiori:~/work/OS/nuttx$ vim iso/boot/grub/grub.cfg
rin@shiori:~/work/OS/nuttx$ grub-mkrescue -o boot.iso iso
QEMU
qemu をインストールする
$ sudo apt install qemu-kvm
qemu と NuttX で起動する
$ qemu-system-x86_64 -cpu host -enable-kvm -m 2G -cdrom boot.iso -nographic -serial mon:stdio
んだが、VirtualBox のゲストが死ぬ。
grub-mkrescue
grub-mkrescue を実行するときに xorriso というのが必要らしいのでインストールしておく。
rin@shiori:~/work/OS/nuttx$ grub-mkrescue -o boot.iso iso
grub-mkrescue: エラー: xorriso not found.
rin@shiori:~/work/OS/nuttx$ sudo apt install xorriso
QEMU KVM
よくあるエラー。
rin@shiori:~/work/OS/nuttx$ qemu-system-x86_64 -cpu host -enable-kvm -m 2G -cdrom boot.iso -nographic -serial mon:stdio
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
以下のようにした。正解なのか分からん。
- BIOS で VT-X を有効にする(Intel CPU の場合)
- VirtualBox ゲスト OS の設定で VT-x を有効にする。準仮想化インターフェースを KVM を設定する。