Ubuntu编译rocket-chips & rocket-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系统中了。
安装方法见我的另一篇博客:https://blog.csdn.net/qq153471503/article/details/79221047


安装JAVA JDK

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


安装VCS

编译rocket-chips的vsim的时候需要用到vcs软件,该软件闭源,需另外安装。
安装方法见我的另一篇博客:https://blog.csdn.net/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

Ubuntu编译rocket-chips & rocket-tools 步骤记录_第1张图片


其他小技巧

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


结束。。。

你可能感兴趣的:(Linux,rocket-chips,rocket-tools,riscv)