Ubuntu 18.04搭建RISCV和QEMU环境

2023-12-30 11:20

本文主要是介绍Ubuntu 18.04搭建RISCV和QEMU环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

因为公司项目代码需要在RISCV环境下测试,因为没有硬件实体,所以在Ubuntu 18.04上搭建了riscv-gnu-toolchain + QEMU模拟器环境。

安装riscv-gnu-toolchain

riscv-gnu-toolchain可以从GitHub上下载源码编译,地址为:https://github.com/riscv-collab/riscv-gnu-toolchain
首先将项目克隆到本地:

git clone https://github.com/riscv/riscv-gnu-toolchain

在编译前需要实现安装些依赖项目:

$ sudo apt-get install autoconf automake autotools-dev curl python3 python3-pip libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev ninja-build git cmake libglib2.0-dev

创建riscv文件夹,存放编译后的toolchain,需要写入权限,例如:

sudo mkdir /opt/riscv
sudo chmod 777 /opt/riscv

然后可以在克隆下的riscv-gnu-toolchain文件夹里创建buid文件夹,进行编译,过程花很多时间,需要耐心等待:

cd riscv-gnu-toolchain
mkdir build
cd build
../configure --prefix=/opt/riscv --enable-multilib
make linux 

完成后就能在/opt/riscv/bin文件夹下看到如下内容:
在这里插入图片描述
然后配置bashrc,在bashrc中添加路径:

export PATH=$PATH:/opt/riscv/bin

接下来就能测试下riscv gcc的编译,创建一个hello.c文件,内容如下:

#include <stdio.h>void main() {printf("%s\n","hello RISCV");
}

然后编译:

riscv64-unknown-linux-gnu-gcc hello.c -o hello

编译无报错,生成可执行文件是无法直接运行的,加下来需要安装QEMU。

安装QEMU

riscv-gnu-toolchain文件夹里也有个qmeu的文件夹,根据.gitmodules里的内容:
在这里插入图片描述
我们也可以从GitLab上下载QEMU的源码进行编译,同样做些准备工作:

git clone https://gitlab.com/qemu-project/qemu.git
sudo mkdir /opt/qemu
sudo chmod 777 /opt/qemu

GitLab直接克隆下的master分支应该是最新版本8.2.0版本的,这里博主就遇到了一个坑,先在riscv-gnu-toolchain/qemu创建build目录,然后运行:

cd build
../configure --prefix=/opt/qemu
make
make install

结果在configure的时候有一些报错,例如下面的要使用python3.8,要安装python模块的等:

在这里插入图片描述

在这里插入图片描述
解决方法:

sudo apt install python3.8
pip install distlib
sudo ln -sf /usr/bin/pyhton3.8 /usr/bin/pyhton

费了好大劲解决了配置问题,结果编译没有通过。用git branch -a命令查看发现QEMU还有其他stable的分支:
在这里插入图片描述
然后果断用下面命令切换到了stable-7.2分支:

git checkout stable-7.2

然后重新configure和编译,编译成功,然后我们就能在/opt/qemu/bin下看到:

在这里插入图片描述
然后配置bashrc,在bashrc中添加:

export PATH=$PATH:/opt/qemu/bin
export QEMU_LD_PREFIX=/opt/riscv/sysroot # 否则qemu-riscv64会在/lib下搜索riscv64的动态链接

source bashrc之后我们就可以运行原来编译出的hello程序:

qemu-riscv64 hello

这篇关于Ubuntu 18.04搭建RISCV和QEMU环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/552670

相关文章

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

Centos环境下Tomcat虚拟主机配置详细教程

《Centos环境下Tomcat虚拟主机配置详细教程》这篇文章主要讲的是在CentOS系统上,如何一步步配置Tomcat的虚拟主机,内容很简单,从目录准备到配置文件修改,再到重启和测试,手把手带你搞定... 目录1. 准备虚拟主机的目录和内容创建目录添加测试文件2. 修改 Tomcat 的 server.X

VSCode配置Anaconda Python环境的实现

《VSCode配置AnacondaPython环境的实现》VisualStudioCode中可以使用Anaconda环境进行Python开发,本文主要介绍了VSCode配置AnacondaPytho... 目录前言一、安装 Visual Studio Code 和 Anaconda二、创建或激活 conda

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

pytorch+torchvision+python版本对应及环境安装

《pytorch+torchvision+python版本对应及环境安装》本文主要介绍了pytorch+torchvision+python版本对应及环境安装,安装过程中需要注意Numpy版本的降级,... 目录一、版本对应二、安装命令(pip)1. 版本2. 安装全过程3. 命令相关解释参考文章一、版本对

使用DeepSeek搭建个人知识库(在笔记本电脑上)

《使用DeepSeek搭建个人知识库(在笔记本电脑上)》本文介绍了如何在笔记本电脑上使用DeepSeek和开源工具搭建个人知识库,通过安装DeepSeek和RAGFlow,并使用CherryStudi... 目录部署环境软件清单安装DeepSeek安装Cherry Studio安装RAGFlow设置知识库总

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my