写点什么

RISCV64

作者:贾献华
  • 2022 年 7 月 07 日
  • 本文字数:1119 字

    阅读完需:约 4 分钟

安装 Linux Lab

# 使用普通用户下载 Cloud Lab,然后再选择 linux-lab 仓库:git clone https://gitee.com/tinylab/cloud-lab.gitcd cloud-lab/# 启动 Linux Lab 并根据控制台上打印的用户名和密码登录实验环境tools/docker/run linux-lab
复制代码

安装 qemu-system-riscv64

export QEMU_VERSION=5.0.0wget https://download.qemu.org/qemu-${QEMU_VERSION}.tar.xztar xvJf qemu-${QEMU_VERSION}.tar.xzcd qemu-${QEMU_VERSION}./configure --target-list=riscv64-softmmu --prefix=/opt/qemumake -j $(nproc)sudo make install
复制代码

ERROR: glib-2.48 gthread-2.0 is required to compile QEMU

Please call configure before running make!

make: *** [Makefile:84: config-host.mak] Error 1

""

/bin/sh: 1: : Permission denied

make: *** [Makefile:916: install-datadir] Error 127

sudo apt-get install libglib2.0-dev
复制代码

ERROR: pixman >= 0.21.8 not present.

Please install the pixman devel package.

sudo apt-get install libpixman-1-dev
复制代码

下载最新的 Linux 源码

wget -c https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.18.9.tar.gztar xvf linux-5.18.9.tar.gzcd linux-5.18.9make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- defconfigmake ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- -j $(nproc)
复制代码

下载最新的 BusyBox

wget -c https://www.busybox.net/downloads/busybox-1.35.0.tar.bz2tar xvf busybox-1.35.0.tar.bz2cd busybox-1.35.0cd busyboxCROSS_COMPILE=riscv64-linux-gnu- make defconfigCROSS_COMPILE=riscv64-linux-gnu- make -j $(nproc)make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- install
复制代码

制作 rootfs

cd _installmkdir proc sys dev etc etc/init.dls# bin  dev  etc  linuxrc  proc  sbin  sys  usrsudo mknod dev/console c 5 1sudo mknod dev/ram b 1 0cat etc/init.d/rcS
复制代码

etc/init.d/rcS

#!bin/shmount -t proc none /procmount -t sysfs none /sys/sbin/mdev -s
复制代码

rootfs

chmod +x etc/init.d/rcSfind -print0 | cpio -0oH newc | gzip -9 > ../rootfs.img
复制代码

运行

/opt/qemu/bin/qemu-system-riscv64 \        -nographic -machine virt \        -kernel linux-5.18.9/arch/riscv/boot/Image \        -initrd busybox-1.35.0/rootfs.img  \        -bios fw_jump.elf \        -append "root=/dev/ram rdinit=/sbin/init"
复制代码

Kernel panic - not syncing: VFS: Unable to mount


正常启动后,查看 uname


参考

Running 64- and 32-bit RISC-V Linux on QEMU — RISC-V - Getting Started Guide (risc-v-getting-started-guide.readthedocs.io)

用户头像

贾献华

关注

及时当勉励 岁月不待人 2018.06.04 加入

https://2022.iosdevlog.com

评论

发布
暂无评论
RISCV64_7月月更_贾献华_InfoQ写作社区