教你在QEMU上运行RISC-VLinux

嵌入式ARM 2023-06-25 14:22

今天教大家在QEMU模拟器上运行一个RISC-V Linux。

一个RISC-V Linux包括:

  • opensbi
  • linux
  • 根文件系统

1、下载RISC-V工具链

自己下载工具链源码进行编译容易配错选项,我们使用编译好的工具链即可。

网址:https://toolchains.bootlin.com

这个网站提供了一些已经编译好的工具链,我们从中下载即可。

arch选择riscv64-lp64d,libc选择glibc,然后点击下载。

stable是稳定版,bleeding-edge是最新的,可根据需要选择,这里我们选择bleeding-edge。

下载后解压:

tar -jxvf riscv64-lp64d--glibc--bleeding-edge-2022.08-1.tar.bz2 

将riscv64-lp64d--glibc--bleeding-edge-2022.08-1/bin路径添加到PATH环境变量中:

export PATH=/home/yjx/workspace/toolchain/riscv64-lp64d--glibc--bleeding-edge-2022.08-1/bin:$PATH

2、安装QEMU

QEMU官网:https://www.qemu.org/

下载安装:

wget https://download.qemu.org/qemu-7.1.0.tar.xz
tar xvJf qemu-7.1.0.tar.xz
cd qemu-7.1.0
./configure
make

3、编译opensbi

下载opensbi:

git clone https://github.com/riscv-software-src/opensbi.git

编译:

export CROSS_COMPILE=riscv64-linux-
make PLATFORM=generic

编译完后生成的固件在build/platform/generic/firmware/目录下:

生成的固件有三种类型:dynamic、jump和payload

  • dynamic:带有动态信息的固件
  • jump:指定下一级的boot地址跳转
  • payload:包含下一级boot的二进制内容,通常是uboot/linux

这里我们使用jump类型固件,OpenSBI运行后,可以直接跳转到kernel运行。

因为opensbi本身就是一个bootloader,因此可以不使用uboot引导kernel,通过opensbi的jump固件,可以直接跳转到kernel启动。

4、编译kernel

Linux内核官网:www.kernel.org

选择当前稳定版5.19.16下载

解压kernel:

tar -xf linux-5.19.16.tar.xz
cd linux-5.19.16

编译:

export ARCH=riscv
export CROSS_COMPILE=riscv64-linux-

make defconfig
make -j8

编译完成后,在arch/riscv/boot下生成Image:

5、制作rootfs

文件系统可以用busybox、buildroot等工具制作,busybox需要自己一步一步的做出来,过程比较麻烦。更便捷的做法是使用buildroot,它可以自动帮我们完成。

下载地址:https://buildroot.org/download.html下载后解压:

 tar -xvf buildroot-2022.02.6.tar.gz

进入buildroot菜单配置界面:

cd buildroot-2022.02.6
make menuconfig

选择RISC-V架构

Target options  --->
   Target Architecture (i386)  --->
      (X) RISCV

选择ext文件系统类型:

Filesystem images  --->
  [*] ext2/3/4 root filesystem 

保存后编译:

make -j8

编译需要花一些时间,buildroot前期大部分时间去编译工具链了。编译完后,生成文件在output/images目录下:

rootfs.ext2是我们需要用到的。

6、运行

将fw_jump.elf、Image、rootfs.ext2拷贝到当前目录下:

新建start-qemu.sh脚本,输入以下内容:

#!/bin/sh

qemu-system-riscv64 -M virt \
-bios fw_jump.elf \
-kernel Image \
-append "rootwait root=/dev/vda ro" \
-drive file=rootfs.ext2,format=raw,id=hd0 \
-device virtio-blk-device,drive=hd0 \
-netdev user,id=net0 -device virtio-net-device,netdev=net0 -nographic

修改权限:

chmod 777 start-qemu.sh

运行start-qemu.sh启动RISC-V Linux:

输入root回车登录:

成功进入Linux!

7、buildroot搭建环境

前面我们用buildroot制作了文件系统,但buildroot其实可以帮我们搭建一套完整环境,包括工具链、opensbi、linux、文件系统等等,只需要简单配置一下,即可自动帮我们完成,非常方便。下面教大家使用buildroot搭建一个qemu riscv64 linux系统。

使用默认的qemu_riscv64配置进行编译:

cd buildroot-2022.02.6
make qemu_riscv64_virt_defconfig
make -j

接下来就是漫长的等待,可能需要几个小时。编译完后,生成文件在output/images目录下:

可以看到opensbi、Image、rootfs都做好了,包括qemu的下载编译也会帮我们自动完成。可以直接运行start-qemu.sh:

使用buildroot搭建环境,几乎什么都不需要做,非常方便!要注意的就是确保网络畅通,网络不流畅buildroot可能会中断。

8、总结

学习RISC-V Linux搭建环境是第一步,有了环境才能更好的去跟踪源码调试,当然如果有开发板更好。以上是我在qemu上搭建RISC-V Linux的总结,希望能对大家有帮助。

END

来源:漫谈嵌入式

版权归原作者所有,如有侵权,请联系删除。

推荐阅读
华为C/C++编码规范流出
RTOS实现双核MCU消息通信
入职Linux驱动工程师后,我才知道的真相…

→点关注,不迷路←

嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论
  • 随着汽车行业逐步迈向电气化和电池动力,位置传感器以及其他长期在车辆中被忽视但却至关重要的小型元器件正逐渐成为关注的焦点。某些电子元器件常常吸引大量关注,例如如今用于训练AI模型的强大GPU几乎每天都出现在新闻中。而其他元器件则默默地执行着重要但鲜为人知的功能。艾迈斯欧司朗一些历史悠久的产品线便隶属于后者,其中包括磁性和电感式位置传感器、电容式传感器和电池监控芯片。工业泵和风扇等产品的制造商利用位置传感器实现电动机高效平稳运行。在车辆的方向盘中安装电容传感器可以保障安全,它可以用于在辅助驾驶模式下
    艾迈斯欧司朗 2025-03-17 22:22 62浏览
  • 失效模式与影响分析(FMEA)失效模式与影响分析(FMEA)是一种系统方法,用于识别和分析系统或过程中的潜在失效,广泛应用于工程和制造领域,以提高产品可靠性和安全性。最新标准由 2019 年发布的 AIAG-VDA FMEA 手册(第一版) 定义,该手册结合了美国和欧洲汽车行业的最佳实践,并引入了 七步法,确保分析全面且结构化。图:优思学院六西格玛新版 FMEA 失效分析的七个步骤1. 规划与准备确定 FMEA 研究的 范围、边界和目标。组建跨职能团队(设
    优思学院 2025-03-17 14:43 99浏览
  • 新兴的个人健康监测技术为何在医疗场景和日常生活中越来越受到青睐?为了准确回答这个关键问题,我们首先需要理解三个全球性趋势:如今,几乎人手一部智能手机,这等于随身携带了一台高性能计算机、一个全天候运行的智能医疗传感器中心,还有一块显示屏。发达工业国家的人口正在迅速老龄化,而老年群体的疾病发病率较高。与此同时,年轻人也比过去更加关注如何延长健康寿命。这些人群以及服务他们的医务人员可以利用新技术来优化生活方式,合理调控运动、饮食、睡眠和压力等关键因素,帮助他们作出更健康的生活选择。如摩尔定律所预言,半
    艾迈斯欧司朗 2025-03-17 21:50 71浏览
  • 文/Leon编辑/cc孙聪颖‍蛇年春晚最有意思的节目,一定非机器人跳舞莫属。就算是遥控或预编程,机器人能够做出如此复杂的动作,在五年前都是不敢想象的事情,其制造商宇树科技也因此火爆全网。就在春节过后不到一个月,会骑自行车的人形机器人诞生了。这背后,是近年来“具身智能”概念的迅猛发展。“我们造了一个跟人一样灵动的机器人!”3月11日,智元机器人联合创始人兼首席技术官彭志辉在微博上说道。在视频中,灵犀X2会骑自行车、能跳《科目三》,还可以与人促膝长谈,甚至拿起葡萄“穿针引线”。在全球人形机器人领域,
    华尔街科技眼 2025-03-17 12:38 101浏览
  • 一、问题现象:语音播放异常的典型表现在使用WT588F(E)系列语音芯片的开发过程中,工程师常会遇到以下两类典型异常现象:播放不全:语音仅播放前段内容后突然中断,或特定段落无法触发播放断续:音频输出存在明显卡顿、爆音或波形畸变某智能门锁项目实测数据显示,在首批样机中有2%的设备出现语音提示突然中断的情况,经排查发现电源电压在播放瞬间跌落至2.0V(低于芯片工作阈值)。这类问题的根源往往隐藏于硬件设计与系统协同的细节之中。二、核心机理:电压稳定性对语音芯片的影响2.1 电源系统的动态响应特性WT5
    广州唯创电子 2025-03-17 09:18 121浏览
  • 万物互联时代,全屋智能正从概念走向现实,而蓝牙低功耗(BLE)技术凭借独特优势,已成为构建智慧家庭生态的核心驱动力之一。作为一项成熟且持续创新的无线通信协议,BLE技术不仅以“低功耗”定义行业标准,更凭借Mesh组网能力打破场景疆界,为智能家居设备提供了灵活、可靠、可扩展的解决方案,有力推动了全屋智能的落地应用。据中商产业研究院整理数据显示,2023年我国智能家居市场规模为7257亿元,预计到2024年将达7848亿元,到2025年将达到8526亿元,同比增长率约为10%。随着未来新房建设和老房
    华普微HOPERF 2025-03-14 17:08 77浏览
  • esp32s3使用platformio 点亮1.69寸TFT历程之LVGL移植 继上一篇我历经很久的时间点亮了1.69寸TFT之后。我开始进行LVGL的移植。开始LVGL的学习。用platformio 开发esp32s3真的好方便。按照上一节的环境。本次由于需要使用LVGL。打开platformio lib界面搜索LVGL。目前里面的版本是9.2.2。我使用的8.3.6。然后按照下图加载到自己的工程项目。待加载完毕后。我们会看到libdeps下面会出现LVGL库好了,这一步完成后。我们就开始移植
    zhusx123 2025-03-15 20:58 119浏览
  • 近日,2025年GTI国际产业大会成功举办,活动上GTI Awards 2025获奖名单正式揭晓,紫光展锐连续三年斩获国际权威机构GTI颁发的大奖。此次,T8300凭借在5G技术创新和娱乐体验方面的卓越表现,荣获GTI“移动技术创新突破奖”(Innovative Breakthrough in Mobile Technology Award)。GTI是由中国移动、软银、沃达丰等运营商于2011年发起成立的国际产业合作平台。GTI Awards作为全球通信行业最具影响力的奖项之一,旨在表彰为行业
    紫光展锐 2025-03-14 17:35 73浏览
  • 一、引言:语音芯片的智能化浪潮在万物互联的智能化时代,语音交互技术已成为人机交互的重要纽带。从智能家电的提示音到儿童玩具的趣味互动,从工业设备的语音告警到公共服务设施的自动播报,语音播放芯片IC作为核心硬件支撑,正在重塑各行各业的用户体验。在众多解决方案中,WTN6、WT588、WT2003H、WTV四大系列产品,凭借差异化的技术特性构建了完整的语音芯片产品矩阵。本文将深度解析这四大主流芯片的技术特点与应用场景,为开发者提供选型参考。二、主流语音芯片技术特性全解析2.1 WTN6系列:高性价比的
    广州唯创电子 2025-03-17 09:04 142浏览
  • 晨穹电子一家专业从事研发、生产、销售各类传感器为一体的高新科技企业。1 人赞同了该文章在工业4.0、智能家居、新能源汽车等场景中,传感器作为数据采集的核心器件,其抗电磁干扰(EMC)能力直接影响系统可靠性。尤其在5G通信、高功率电机、无线充电等复杂电磁环境下,传感器的信号失真问题愈发突出。本文结合MEMS传感器、物联网(IoT)设备、边缘计算等热度技术,解析提升传感器抗干扰能力的6大策略。 一、电磁干扰对传感器的威胁; 1、电磁干扰(EMI)会导致传感器出现 。2、信号跳变(
    传感器晨穹 2025-03-18 09:28 76浏览
  • 在求职路上,一直没能拿到理想的录用通知,真的要放低要求吗?对很多人来说,这个问题往往让人进退两难。期待中那个能够激发自我潜能又能带来丰厚回报的职位,似乎离自己遥不可及。可是眼看着账单越压越重,生活在缓缓拖累前行。在这种局面下,究竟该不该向现实妥协,先找一份工作再说?有些人会觉得,先就业意味着放弃理想,觉得一旦走上这条路,就难以回到最初的目标。但事实上,这种担忧常常让人陷入犹豫与停滞。路走不通时,不代表必须原地不动。有时选择一份尚可接受的工作,也能带来意想不到的机会。公司内部的人脉、行业的历练,乃
    优思学院 2025-03-14 17:12 75浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦