首页 > 系统相关 >Ubuntu 18.04搭建RISCV和QEMU环境

Ubuntu 18.04搭建RISCV和QEMU环境

时间:2024-09-15 21:35:02浏览次数:10  
标签:opt toolchain 18.04 gnu RISCV riscv 编译 Ubuntu qemu

Ubuntu 18.04搭建RISCV和QEMU环境

   原文:https://blog.csdn.net/Eng_ingLi/article/details/135285200

 

前言

因为公司项目代码需要在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
 
  • 1

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

$ 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
 
  • 1

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

sudo mkdir /opt/riscv
sudo chmod 777 /opt/riscv
 
  • 1
  • 2

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

cd riscv-gnu-toolchain
mkdir build
cd build
../configure --prefix=/opt/riscv --enable-multilib
make linux
 
  • 1
  • 2
  • 3
  • 4
  • 5

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

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

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

#include <stdio.h>

void main() {
  printf("%s\n","hello RISCV");
}
 
  • 1
  • 2
  • 3
  • 4
  • 5

然后编译:

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

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

安装QEMU

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

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

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

cd build
../configure --prefix=/opt/qemu
make
make install
 
  • 1
  • 2
  • 3
  • 4

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

在这里插入图片描述

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

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

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

git checkout stable-7.2
 
  • 1

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

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

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

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

qemu-riscv64 hello
 
  • 1
 

标签:opt,toolchain,18.04,gnu,RISCV,riscv,编译,Ubuntu,qemu
From: https://www.cnblogs.com/zxdplay/p/18415688

相关文章

  • ubuntu莫名的 系统出现文件系统只读
    运维记录日期:2024年9月15日问题描述:在安装多个LNMP服务后,系统重启出现了问题。当尝试运行aptupdate命令时,系统出现了如下错误信息:忽略:1http://security.ubuntu.com/ubuntujammy-securityInRelease忽略:2http://archive.ubuntu.com/ubuntujammyInRelease忽略:3h......
  • Ubuntu搭建vscode服务器
    在自己的阿里服务器上安装vscode-server,需要注意的要开启服务器的端口.在GitHub官网下载最新版本的code-server#下载地址#https://github.com/coder/code-server/releaseswgethttps://github.com/coder/code-server/releases/download/v4.92.2/code-server-4.92.2-lin......
  • Ubuntu Server 24.04 LTS 安装记事
    UbuntuServer24.04LTS,代号NobleNumbat,于2024年4月25日正式发布,该发布版可以支持长达12年。曾经接触Ubuntu的时候,还是它的第一个版本,但是那个时候网络太局限了,关于这个系统的书籍也很少,所以就一直没有使用起来。有时候好像什么事情都得有个名头,就像我这几年一直改用国......
  • Ubuntu 20.04 的镜像源列表
    本节均为Ubuntu20.04的镜像源列表。若为其他版本,将所有focal更改为其他版本代号即可。常用的Ubuntu版本代号如下:Ubuntu22.04:jammyUbuntu20.04:focalUbuntu18.04:bionicUbuntu16.04:xenialUbuntu通常采用“形容词+小动物”作为版本代号(默认的壁纸),在镜像源列表中只有第一个词......
  • VPS Ubuntu22.04 安装WordPress 搭建网站 详细全流程(基于Apache+MySQL+PHP)(二)
    VPSUbuntu22.04安装WordPress搭建网站详细全流程(基于Apache+MySQL+PHP)(二)简介在网站处理和网络管理方面,WordPress是用户可以采取的最明智的选择。由于WordPress的巨大优势,它在网页设计师中广受欢迎。统计数据显示,访问量最大的1000个网站中约有35%是WordPress。......
  • 在Ubuntu中编译含有JSON的文件出现报错
          在ubuntu中进行JSON相关学习的时候,我发现了一些小问题,决定与大家进行分享,减少踩坑时候出现不必要的时间耗费截取部分含有JSON部分的代码进行展示char*str=" { \"title\":\"JSONExample\", \"author\":{ \"name\":\"JohnDoe\&quo......
  • Ubuntu 22.04.5 LTS 发布下载 - 现代化的企业与开源 Linux
    Ubuntu22.04.5LTS(JammyJellyfish)-现代化的企业与开源LinuxUbuntu22.04.5发布,配备Linux内核6.8请访问原文链接:https://sysin.org/blog/ubuntu-2204/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCanonical发布了Ubuntu22.04.5LTS,作为Ubuntu22.0......
  • 蓝易云服务器 - ubuntu docker日志docker ubuntu desktop
    在Ubuntu桌面上使用Docker时,可以通过以下步骤查看Docker容器的日志:打开终端:在Ubuntu桌面上按下 Ctrl+Alt+T组合键可以打开终端。查看容器ID:运行以下命令查看正在运行的Docker容器的ID。dockerps查看容器日志:使用以下命令查看指定容器的日志,将 CONTAINER_ID替换为你想查看日......
  • 蓝易云服务器 - Ubuntu16.04安装VSCode教程
    安装VSCode的教程如下:打开终端,运行以下命令更新软件包列表:sudoaptupdate安装依赖库:sudoaptinstallsoftware-properties-commonapt-transport-httpswget导入MicrosoftGPG密钥:wget-qhttps://packages.microsoft.com/keys/microsoft.asc-O-|sudoapt-keyadd-添加Visual......
  • 蓝易云服务器 - ubuntu安装开发javascript ubuntu script教程
    在Ubuntu上安装开发JavaScript的教程如下:打开终端。安装Node.js:运行以下命令安装Node.js。sudoaptupdatesudoaptinstallnodejs安装npm:npm是Node.js的包管理器,运行以下命令安装npm。sudoaptinstallnpm验证安装:通过运行以下命令验证Node.js和npm是否安装成功。node-vnpm-......