## RISC-V QEMU VM Example - ENV: Ubuntu 1804 X86 ---- #### 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 --recursive https://github.com/riscv/riscv-gnu-toolchain --depth=1 ./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 qemu-user-static binfmt-support debian-ports-archive-keyring debootstrap --arch=riscv64 unstable /home/linux/riscv64-chroot \ http://mirrors.perfxlab.cn/debian-ports/ ``` ``` cat >>/etc/network/interfaces <>/etc/default/u-boot <>./u-boot/boot.cmd <