HN 日本語サマリー

← 一覧へ戻る
プログラミング

RISC-VエミュレータとLinuxシステムをゼロから構築

RISC-V Emulator and Linux System from Scratch (github.com)

40 pointsby Bluestein2 コメント

要約

このリポジトリは、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 にコンパイルできます。