# 2019q1 Homework4 (smallsys)
contributed by < `njjack` >
clone 工具 [buildroot](https://github.com/buildroot/buildroot.git)
```
$ git clone https://github.com/buildroot/buildroot.git
```
依作業要求調整 kernel, gdb 相關的設定
```
$ make menuconfig
```
Target options ---> Target Architecture 選擇 AArch64 (little endian)
kernel ---> Kernel version 選擇 latest version 5.0
Toolchain ---> Kernel Headers 選擇 Linux 5.0.x kernel headers
Toolchain 選擇 Build cross gdb for the host
調整後編譯
```
$ make
```
參考 `buildroot/board/qemu/aarch64-virt` 中 `readme.txt` ,執行下列命令啟動 qemu-system-aarch64
```
$ qemu-system-aarch64 -M virt -cpu cortex-a53 -nographic -smp 1 -kernel output/images/Image -append "root=/dev/vda console=ttyAMA0" -netdev user,id=eth0 -device virtio-net-device,netdev=eth0 -drive file=output/images/rootfs.ext4,if=none,format=raw,id=hd0 -device virtio-blk-device,drive=hd0
```
執行前先安裝 `qemu-system-arm`
```
$ qemu-system-aarch64
程式 'qemu-system-aarch64' 目前尚未安裝。 您可以由輸入以下內容安裝:
sudo apt install qemu-system-arm
```
實際執行卻卡住如下圖,無法正常啟動

參考 [Running Linux in QEMU’s aarch64 system emulation mode](https://www.bennee.com/~alex/blog/2014/05/09/running-linux-in-qemus-aarch64-system-emulation-mode/) ,某些情況下需手動安裝 qemu 。不知道實際問題出在哪,決定先試試換個方法安裝 qemu
```
$ wget https://download.qemu.org/qemu-2.12.0.tar.xz
$ tar xvJf qemu-2.12.0.tar.xz
$ cd qemu-2.12.0
$ ./configure --target-list=aarch64-softmmu
```
```
$ ./aarch64-softmmu/qemu-system-aarch64 -M virt -cpu cortex-a53 -nographic -smp 1 -kernel ../buildroot/output/images/Image -append "root=/dev/vda console=ttyAMA0" -netdev user,id=eth0 -device virtio-net-device,netdev=eth0 -drive file=../buildroot/output/images/rootfs.ext4,if=none,format=raw,id=hd0 -device virtio-blk-device,drive=hd0
```
終於可以順利啟動
