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

本文详细记录了在Ubuntu1404和1804环境下编译Rocket-Chips和Rocket-Tools的步骤,包括安装依赖、切换GCC版本、安装Samba和JDK等,特别强调了解决编译过程中遇到的常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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系统中了。
安装方法见我的另一篇博客:https://blog.youkuaiyun.com/qq153471503/article/details/79221047


安装JAVA JDK

安装方法见我的另一篇博客:https://blog.youkuaiyun.com/qq153471503/article/details/99673165


安装VCS

编译rocket-chips的vsim的时候需要用到vcs软件,该软件闭源,需另外安装。
安装方法见我的另一篇博客:https://blog.youkuaiyun.com/qq153471503/article/details/100134507


编译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 `snpsCheckCallocFromGroupFunc’,参考:https://www.cnblogs.com/sunic/p/9899013.html

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

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

在这里插入图片描述


其他小技巧

(一)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/


结束。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

觉皇嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值