プログラミング
RISC-VエミュレータとLinuxシステムをゼロから構築
RISC-V Emulator and Linux System from Scratch (github.com)
要約
このリポジトリは、RISC-Vアーキテクチャ上でLinuxシステムをゼロから構築するプロセスを解説したブログ記事に付随するソースコードを提供します。rv32ima命令セットエミュレータ、最小限のエミュレートデバイス、Linuxビルドに必要な設定ファイル、カーネル設定、デバイスツリー、初期化プログラムなどが含まれています。
全文翻訳
RISC-VエミュレータとLinuxシステムをゼロから構築
このリポジトリには、https://werwolv.net/posts/linux_bringup/ のブログ記事をフォローするために必要なすべてのソースコードが含まれています。
ソースコード
/libには、完全なrv32ima命令セットエミュレータコードと、最小限のエミュレートされたデバイスセットが含まれています。/mainには、マシンの設定と、WebAssemblyで使用するために公開される関数が含まれています。
設定
Linuxをビルドするために必要なすべての設定ファイルは /boot にあります。メインの実行可能ファイルは、ビルドされたすべてのバイナリが boot フォルダ内にあることを期待します。
riscv32-unknown-linux-gnu.configはcrosstool-ngツールチェインの設定ファイルです。riscv_emulator_defconfigは Linux Kernel の設定ファイルです。device_tree.dtsは最小限のデバイスツリーです。dtc -I dts -O dtb device_tree.dts -o device_tree.dtbを使用してdtbにコンパイルできます。
init.cは初期化プログラムです。riscv32-unknown-linux-gnu-gcc -static init.c -o initを使用してコンパイルできます。
initramfs.txtはgen_init_cpioの設定ファイルで、initramfs を生成するために使用します。usr/gen_init_cpio initramfs.txt -o initramfs.cpioを使用してcpioにコンパイルできます。