## RISC-V64 QEMU VM Example - **ENV:** Ubuntu 1804 X86_64 ---- #### Install Base Package ``` apt-get install gcc libc6-dev pkg-config bridge-utils uml-utilities zlib1g-dev \ libglib2.0-dev autoconf automake libtool libsdl1.2-dev ``` #### Build riscv-gnu-toolchain ``` sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev \ libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev git clone https://gitee.com/mirrors/riscv-gnu-toolchain --depth=1 git rm --cached qemu git submodule update --init --recursive ./configure --prefix=/opt/riscv-gnu-toolchain_install && make linux -j $(nproc --all) echo 'export PATH=/opt/riscv-gnu-toolchain_install/bin:$PATH' >> ~/.bashrc source ~/.bashrc ``` #### Build Risc-V64 Qemu ``` git clone https://git.qemu.org/git/qemu.git --depth=1 cd qemu $ ./configure --target-list=riscv64-linux-user,riscv64-softmmu \ --prefix=/opt/qemu && make linux -j $(nproc --all) ``` #### Build Risc-V64 Kernel ``` git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git --depth=1 make ARCH=riscv defconfig make ARCH=riscv menuconfig make CROSS_COMPILE=riscv64-unknown-linux-gnu- ARCH=riscv -j $(nproc --all) ``` #### Buidl Risc-V64 Debian rootFS ``` apt-get install debootstrap mmdebstrap qemu-user-static binfmt-support \ debian-ports-archive-keyring -y mmdebstrap --architectures=riscv64 --include="debian-ports-archive-keyring" \ sid /home/linux/riscv64-chroot \ "deb http://ftp.debian.org/debian-ports/ sid main" \ "deb http://ftp.debian.org/debian-ports/ unreleased main" ``` ``` cat >>/etc/network/interfaces <>/etc/default/u-boot <>./u-boot/boot.cmd <