世界热推荐:教你在QEMU上运行RISC-VLinux
1、下载RISC-V工具链
自己下载工具链源码进行编译容易配错选项,我们使用编译好的工具链即可。
网址:https://toolchains.bootlin.com
这个网站提供了一些已经编译好的工具链,我们从中下载即可。
(资料图)
arch选择riscv64-lp64d,libc选择glibc,然后点击下载。
stable是稳定版,bleeding-edge是最新的,可根据需要选择,这里我们选择bleeding-edge。
下载后解压:
tar-jxvfriscv64-lp64d--glibc--bleeding-edge-2022.08-1.tar.bz2
将riscv64-lp64d--glibc--bleeding-edge-2022.08-1/bin路径添加到PATH环境变量中:
exportPATH=/home/yjx/workspace/toolchain/riscv64-lp64d--glibc--bleeding-edge-2022.08-1/bin:$PATH
2、安装QEMU
QEMU官网:https://www.qemu.org/
下载安装:
wgethttps://download.qemu.org/qemu-7.1.0.tar.xztarxvJfqemu-7.1.0.tar.xzcdqemu-7.1.0./configuremake
3、编译opensbi
下载opensbi:
gitclonehttps://github.com/riscv-software-src/opensbi.git
编译:
exportCROSS_COMPILE=riscv64-linux-makePLATFORM=generic
编译完后生成的固件在build/platform/generic/firmware/
目录下:
生成的固件有三种类型:dynamic、jump和payload
这里我们使用jump类型固件,OpenSBI运行后,可以直接跳转到kernel运行。
因为opensbi本身就是一个bootloader,因此可以不使用uboot引导kernel,通过opensbi的jump固件,可以直接跳转到kernel启动。
4、编译kernel
Linux内核官网:www.kernel.org
选择当前稳定版5.19.16下载
解压kernel:
tar-xflinux-5.19.16.tar.xzcdlinux-5.19.16
编译:
exportARCH=riscvexportCROSS_COMPILE=riscv64-linux-makedefconfigmake-j8
编译完成后,在arch/riscv/boot下生成Image:
5、制作rootfs
文件系统可以用busybox、buildroot等工具制作,busybox需要自己一步一步的做出来,过程比较麻烦。更便捷的做法是使用buildroot,它可以自动帮我们完成。
下载地址:https://buildroot.org/download.html
下载后解压:
tar-xvfbuildroot-2022.02.6.tar.gz
进入buildroot菜单配置界面:
cdbuildroot-2022.02.6makemenuconfig
选择RISC-V架构
Targetoptions--->TargetArchitecture(i386)--->(X)RISCV
选择ext文件系统类型:
Filesystemimages--->[*]ext2/3/4rootfilesystem
保存后编译:
make-j8
编译需要花一些时间,buildroot前期大部分时间去编译工具链了。编译完后,生成文件在output/images
目录下:
rootfs.ext2是我们需要用到的。
6、运行
将fw_jump.elf、Image、rootfs.ext2拷贝到当前目录下:
新建start-qemu.sh
脚本,输入以下内容:
#!/bin/shqemu-system-riscv64-Mvirt\-biosfw_jump.elf\-kernelImage\-append"rootwaitroot=/dev/vdaro"\-drivefile=rootfs.ext2,format=raw,id=hd0\-devicevirtio-blk-device,drive=hd0\-netdevuser,id=net0-devicevirtio-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配置进行编译:
cdbuildroot-2022.02.6makeqemu_riscv64_virt_defconfigmake-j
接下来就是漫长的等待,可能需要几个小时。编译完后,生成文件在output/images目录下:
可以看到opensbi、Image、rootfs都做好了,包括qemu的下载编译也会帮我们自动完成。可以直接运行start-qemu.sh:
使用buildroot搭建环境,几乎什么都不需要做,非常方便!要注意的就是确保网络畅通,网络不流畅buildroot可能会中断。
8、总结
学习RISC-V Linux搭建环境是第一步,有了环境才能更好的去跟踪源码调试,当然如果有开发板更好。以上是我在qemu上搭建RISC-V Linux的总结,希望能对大家有帮助。
关键词:
您可能也感兴趣:
为您推荐
天天亮点!方寸寰游因擅自出版网游被罚没72万元
宋小词《牙印儿》新书分享会在武汉举行
CINNO Research:部分面板价格或将在第三季度企稳
排行
最近更新
- 世界热推荐:教你在QEMU上运行RISC-VLinux
- 环球热议:杭州桐庐高新技术产业投资,怎么做到的?
- 安逸花逾期快4年了还会被起诉吗?信用报告上还有吗?
- 青岛到上海最快的方法_世界热资讯
- 实时焦点:2023年探地雷达行业发展趋势及市场现状分析
- 青岛到上海的高铁有几班车
- 999元 泰坦军团24.5寸显示器上架:FAST IPS面板-天天新资讯
- 青岛到上海新高铁途经哪些站-环球今日讯
- 全球今热点:LOL黑历史,没有玩过的人!根本就不知道这些装备...
- 青岛到上海高铁什么时候通车|每日热点
- 新资讯:长沙民政职院举办首届花艺大师殡葬花艺培训
- 天天热点评!玉树流光照后庭打三个数字(玉树流光照后庭)
- 当前速讯:高通宣布与索尼展开多年合作,打造下一代智能手机
- 环球微头条丨青岛到北京动车多少钱
- (经济)中国—东盟自贸区3.0版第三轮谈判在云南昆明举行_焦...
- 青岛到临沂的火车有吗
- 世界百事通!你好,我要购房,小孩子方9周岁,1.是否可以直接...
- 青岛到北京多少公里路程 世界今头条
- 环球热点评!有面无口有脚无手打一字(有面无口)
- 焦点滚动:南通双雄杀进足协杯16强!下轮海门VS重庆,深足VS成...
- 头版头条+九个整版!《江西日报》聚焦萍乡 环球快资讯
- 违反禁令标志行驶!海口交警曝光12辆车 全球速递
- 青岛到北京动车多少钱一张 环球观天下
- 全体考生 武汉音乐学院普通本科招生咨询公告出炉!_环球今日讯
- 【焦点热闻】高考后想上中外合办,坑别乱踩!不然本科白读四年!
- 密歇根大学被控伪造学生成绩,可能被取消大学资质?|全球要闻
- 百丽集团携多品牌正式入驻得物App
- 上海舞蹈中心招艺教助理
- 邓州市荣获“全省2022年教育宣传特优县(市、区)”称号
- 夏季高温,电价大改?阶梯电价会取消吗?农村用电有啥新变化...