首页 > 系统相关 >Ubuntu编译rocket-chips & rocket-tools 步骤记录

Ubuntu编译rocket-chips & rocket-tools 步骤记录

时间:2023-02-01 21:38:57浏览次数:64  
标签:bin gcc rocket -- 4.8 编译 Ubuntu tools


Ubuntu1404&1808 编译rocket-chips和rocket-tools步骤记录


已在ubuntu1404-x64、ubuntu1804-x64系统上测试通过。虚拟机使用vmware15版本。本教程编写日期2019年8月28日,大体步骤如下,随着时间推移rocket肯定会有更新和编译出错问题,可能就不完全适用于本教程,遇到编译错误就要见招拆招了!

快速说明


安装必要依赖项

sudo apt-get install vim git gcc g++ ssh lsb-core autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev libusb-1.0-0-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev device-tree-compiler pkg-config libexpat-dev

切换gcc和g++版本

ubuntu1404版本自带的gcc版本是4.8,正是我们所需要的,如果你使用的1401,本步骤可直接跳过。
ubuntu1804的gcc版本是7.4,而我们需要gcc4.8版本,安装和切换步骤如下:

安装gcc和g++ 4.8版本:

sudo apt-get install gcc-4.8 gcc-4.8-multilib g++-4.8 g++-4.8-multilib

先查看一下目前gcc有几个版本:

ls /usr/bin/gcc*

根据版本信息更新gcc:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40

执行下列命令输入编号进行切换:

sudo update-alternatives --config gcc

查看是否切换成功:

gcc -v

先查看一下目前g++有几个版本:

ls /usr/bin/g++*

g++更新:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/g++-7 50
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/g++-4.8 40

执行下列命令输入编号进行切换:

sudo update-alternatives --config g++

查看是否切换成功:

g++ -v

安装samba

samba相当于windows的网络共享,可将linux硬盘挂载到windows,这样就可以将windows的文件拷贝到linux系统中了。
安装方法见我的另一


安装JAVA JDK

安装方法见我的另一


安装VCS

编译rocket-chips的vsim的时候需要用到vcs软件,该软件闭源,需另外安装。
安装方法见我的另一


编译rocket-tools工具链

rocket-tools工具链很好编译,基本按照github上的步骤就能编译通过。

下载源代码:

git clone https://github.com/freechipsproject/rocket-tools
cd rocket-tools

下载子模块:

git submodule update --init --recursive

设置环境变量:

sudo gedit /etc/profile

加入以下内容(目录根据实际修改):

export RISCV=/home/hello/Install/rocket/rocket-tools/riscv-gnu-toolchain
export PATH=${RISCV}/bin:$PATH
export MAKEFLAGS="$MAKEFLAGS -jN"

-jN: N表示你电脑有几个CPU核心,可以通过命令 echo $(nproc) 获得

更新环境变量:

source /etc/profile

编译:

./build.sh
./build-rv32ima.sh (如果要编译32位工具链,请执行这个脚本).

编译rocket-chips

编译rocket-chips相比rocket-tools就麻烦多了,尤其编译vsim的时候,会出现很多错误,这时候就需要见招拆招了
前提条件:

  • gcc版本为4.8
  • 安装VCS(rocket-chips上未提及,该软件闭源,但是编译vsim需要用到)

下载源代码:

git clone https://github.com/ucb-bar/rocket-chip.git
cd rocket-tools

下载子模块:

git submodule update --init

编译C模拟器:

cd emulator
make

编译VCS模拟器:

cd vsim
make

编译vsim遇到的问题:

问题1:vcs命令找到不到。VCS是闭源软件需要另外安装,如果安装了还是找不到,应该是环境变量配置问题。
问题2:libferser.so找不到,参考:​​​https://github.com/chipsalliance/rocket-chip/pull/2055​​ 问题3:undefined reference to `snpsCheckCallocFromGroupFun

解决问题2和3的办法:修改vsim/Makefrag文件,修改成如下图所示

VCS = vcs -full64 -cpp g++-4.8 -cc gcc-4.8 -LDFLAGS -Wl,--no-as-needed
$(RISCV)/lib/libfesvr.a

Ubuntu编译rocket-chips & rocket-tools 步骤记录_rocket-tools


其他小技巧

(一)git下载慢

编辑hosts文件:

sudo vim /etc/hosts

加入以下两行:

151.101.185.194 github.global-ssl.fastly.net
192.30.253.112 github.com

重启网络:

Ubuntu:
sudo /etc/init.d/networking restart

CentOS:
service network restart
(二)apt-get install下载慢

解决办法:换源。各个版本linux发行版换源方式可查看:​​https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/​


结束。。。


标签:bin,gcc,rocket,--,4.8,编译,Ubuntu,tools
From: https://blog.51cto.com/u_15950551/6031853

相关文章

  • mtools mongo 日志分析的利器
    mtools是一个专门用来分析mongo日志的工具基于python编写,功能还是很强大的包含的工具集mlaunch 快速构建mongo环境的工具,比较方便进行功能测试mlogfilter 进行日......
  • Ubuntu错误:E: Could not open lock file /var/lib/dpkg/lock-frontend
    Ubuntu错误:E:Couldnotopenlockfile/var/lib/dpkg/lock-frontendubuntu使用apt下载和更新软件的时候,出现了以下错误:E:Couldnotopenlockfile/var/lib/dpkg/lock-f......
  • 远程ubuntu虚拟机(VirtualBox)
    环境实机win10,虚拟软件是OracleVMVirtualBox下载地址https://www.virtualbox.org/ubuntu虚拟机配置网络选桥接网卡,原因是桥接网卡下,根据实机ip生成虚拟机的ip,如实......
  • Ubuntu安装Docker
    sudoservicedockerstart显示[OK]但是*Dockerisnotrunning问题首先必须添加fstab文件,因为由于某种原因不存在或无法读取:touch/etc/fstab由于网络控制器错误,所......
  • pybedtools 安装和使用
    REFhttps://daler.github.io/pybedtools/search.html?q=cat 通过pip安装 pipinstallpybedtools 由文件创建BedTool对象test=pybedtools.BedTool('test.bed'......
  • linux 安装 RocketMQ
    参考: ​​https://blog.csdn.net/wsjzzcbq/article/details/125562966​​1、下载安装包后,将安装包上传到linux2、创建RocketMQ安装目录mkdir-p/usr/local/rocketmq3......
  • geotools和geoserver的关系
    基于geotools,你可以快速地开发出一个java应用。当然,众所周知,java主要是用来开发服务器程序。所以,不难理解,geoserver会选择geotools了。例如,geoserver中的wfs服务和wms服务......
  • Ubuntu18添加swap分区
    swap分区,是系统内存不够用时,就需要把物理内存一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有操作的程序,这些被释放的空间临时保存......
  • ubuntu20交叉编译x264
    一、概述交叉编译Android上可用的x264:x264是一个开源的H.264/MPEG-4AVC视频编码函数库,是最好的有损视频编码器之一编译环境:ubuntu20二、编译步骤1.下载nd......
  • VMware创建Ubuntu系统
    Ubuntu镜像可以去各个镜像网站下载官网:https://ubuntu.com/中文官网:https://cn.ubuntu.com/镜像下载使用Ubuntu在开发的时候下载LTS版本,也可以下载其他版本以及历史版......