工藝禮品東莞網(wǎng)站建設(shè)seoul national university
文章目錄
- 1、下載
- 2、配置與編譯
- 3、運(yùn)行
buildroot 是一個(gè)構(gòu)建嵌入式Linux系統(tǒng)的框架。整個(gè) buildroot 是由Makefile(*.mk) 腳本和 Kconfig(Config.in) 配置文件構(gòu)成的,因此可以像配置 Linux 內(nèi)核一樣執(zhí)行 make menuconfig 進(jìn)行配置,編譯出一個(gè)完整的、可以直接燒寫到機(jī)器上運(yùn)行的 Linux 系統(tǒng)文件(包含 bootloader、kernel、rootfs 以及 rootfs 中的各種庫和應(yīng)用程序)。
文件系統(tǒng)可以用 busybox、buildroot 等工具制作,busybox 需要自己一步一步的做出來,過程比較麻煩。更便捷的做法是使用 buildroot,它可以自動(dòng)幫我們完成。
1、下載
官網(wǎng):https://buildroot.org/download.html
歷史版本下載:https://buildroot.org/downloads
$ wget https://buildroot.org/downloads/buildroot-2023.02.1.tar.gz
$ tar -zxvf buildroot-2023.02.1.tar.gz
$ cd buildroot-2023.02.1
2、配置與編譯
- 安裝依賴
$ sudo apt-get -y install build-essential libncurses-dev cpio rsync file unzip bc
- 配置buildroot
$ make menuconfig
- 選擇RISC-V架構(gòu)
Target options --->Target Architecture (i386) --->(X) RISCVTarget Architecture Size (64-bit)
- 選擇ext文件系統(tǒng)類型:
Filesystem images --->[*] ext2/3/4 root filesystemext2/3/4 variant (ext4)
- 編譯
$ make -j10
buildroot 編譯過程需要聯(lián)網(wǎng),在線下載交叉編譯器和各種工具。
編譯完后,生成文件在 output/images 目錄下,rootfs.ext2 是我們需要用到的。
3、運(yùn)行
#!/bin/shqemu-system-riscv64 \
-M virt \
-bios opensbi/build/platform/generic/firmware/fw_jump.elf \
-kernel linux-5.10.181/arch/riscv/boot/Image \
-append "rootwait root=/dev/vda ro" \
-drive file=buildroot-2023.02.1/output/images/rootfs.ext2,format=raw,id=hd0 \
-device virtio-blk-device,drive=hd0 \
-netdev user,id=net0 -device virtio-net-device,netdev=net0 -nographic