基于码云(gitee)的riscv-gnu-toolchain下载——在ubuntu下

张翰音
2023-12-01

riscv-gnu-toolchain 码云安装

这是RISC-V GNU 编译工具链,是RISC-V C和C++交叉编译链。 以下安装过程全部基于码云。

1.安装所需依赖

系统启动之后首先输入命令 sudo apt-get updatesudo apt-get update 对其进行更新。
更新之后对编译所需依赖进行安装,终端中输入命令
sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev
安装完成之后继续安装依赖,输入命令
sudo apt-get install libnewlib-dev

2.ubuntu下git安装

首先需要确定系统是否已经安装git,可以通过git命令查看,如果没有安装,则打开终端输入命令
sudo apt-get install git
安装完成之后可以开始从gitee上下载工具链

3.基于gitee的toolchain安装

比如,进入 usr 目录下进行clone,则在终端进入 usr 之后输入下面命令从gitee克隆工具链
git clone https://github.com/riscv/riscv-gnu-toolchain
下载完成之后输入下面命令进入该文件夹中
cd riscv-gnu-toolchain
然后对其进行子模块的下载,输入命令
git submodule update --init --recursive
由于所有子模块都是从 github 上下载,因此速度会很慢,在终端中使用 ctrl+c 打断下载
依然在 riscv-gnu-toolchain 目录下,使用命令 ls -a 查看所有该文件夹下所有文件,
会在该文件夹下发现 .gitmodules 文件,该文件中存在子模块的链接,
首先使用命令修改其权限便于修改文件内容,命令如下
chmod 777 .gitmodules
替换内容可以使用我准备好的这个,下述链接来自gitee与国内大学镜像网站,我也修改了下述仓库的默认分支,
从而保证不会下载到只保留版本信息的分支。
输入命令 vi .gitmodules 或者 gedit .gitmodules 打开文件

[submodule "riscv-binutils"]
    path = riscv-binutils
    url = https://gitee.com/zhz37/riscv-binutils-gdb.git
[submodule "riscv-gcc"]
    path = riscv-gcc
    url = https://gitee.com/zhz37/riscv-gcc.git
[submodule "riscv-glibc"]
    path = riscv-glibc
    url = https://gitee.com/zhz37/riscv-glibc.git
[submodule "riscv-dejagnu"]
    path = riscv-dejagnu
    url = https://gitee.com/zhz37/riscv-dejagnu.git
[submodule "riscv-newlib"]
    path = riscv-newlib
    url = https://gitee.com/zhz37/riscv-newlib.git
[submodule "riscv-gdb"]
    path = riscv-gdb
    url = https://gitee.com/zhz37/riscv-binutils-gdb.git
[submodule "qemu"]
    path = qemu
    url = https://mirrors.bfsu.edu.cn/git/qemu.git

在子模块链接替换保存之后输入命令对其进行更新————更新一定要在修改的 .gitmodules 同目录下进行,命令如下。
sudo git submodule sync
更新完成之后回到 riscv-gnu-toolchain 目录下再次输入命令进行子模块下载,这里之前下载好的不会再次重新下载。
sudo git submodule update --init --recursive
如果后面一旦遇到速度很慢的,就立刻 crtl + c 终端下载,到提示目前下载的目录中查找 .gitmodules 然后修改权限对链接修改后保存
在与修改的 .gitmodules 同级目录中使用命令 sudo git submodule sync 进行同步,然后再回到目录 riscv-gnu-toolchain
使用命令 sudo git submodule update --init --recursive 进行下载。

下面是使用的所有的码云的链接。

[submodule "riscv-binutils"]
    path = riscv-binutils
    url = https://gitee.com/zhz37/riscv-binutils-gdb.git
[submodule "riscv-gcc"]
    path = riscv-gcc
    url = https://gitee.com/zhz37/riscv-gcc.git
[submodule "riscv-glibc"]
    path = riscv-glibc
    url = https://gitee.com/zhz37/riscv-glibc.git
[submodule "riscv-dejagnu"]
    path = riscv-dejagnu
    url = https://gitee.com/zhz37/riscv-dejagnu.git
[submodule "riscv-newlib"]
    path = riscv-newlib
    url = https://gitee.com/zhz37/riscv-newlib.git
[submodule "riscv-gdb"]
    path = riscv-gdb
    url = https://gitee.com/zhz37/riscv-binutils-gdb.git
[submodule "qemu"]
    path = qemu
    url = https://mirrors.bfsu.edu.cn/git/qemu.git

[submodule "roms/seabios"]
    path = roms/seabios
    url = https://gitee.com/hanliyang/seabios.git
[submodule "roms/SLOF"]
    path = roms/SLOF
    url = https://gitee.com/hanliyang/SLOF.git
[submodule "roms/ipxe"]
    path = roms/ipxe
    url = https://gitee.com/hanliyang/ipxe.git
[submodule "roms/openbios"]
    path = roms/openbios
    url = https://gitee.com/zhz37/openbios.git
[submodule "roms/openhackware"]
    path = roms/openhackware
    url = https://gitee.com/crosshairs/openhackware.git
[submodule "roms/qemu-palcode"]
    path = roms/qemu-palcode
    url = https://gitee.com/hanliyang/qemu-palcode.git
[submodule "roms/sgabios"]
    path = roms/sgabios
    url = https://gitee.com/hanliyang/sgabios.git
[submodule "dtc"]
    path = dtc
    url = https://gitee.com/piaopiaohun/dtc.git
[submodule "roms/u-boot"]
    path = roms/u-boot
    url = https://gitee.com/shixianqiang/u-boot.git
[submodule "roms/skiboot"]
    path = roms/skiboot
    url = https://gitee.com/eillon/skiboot.git
[submodule "roms/QemuMacDrivers"]
    path = roms/QemuMacDrivers
    url = https://gitee.com/eillon/QemuMacDrivers.git
[submodule "ui/keycodemapdb"]
    path = ui/keycodemapdb
    url = https://gitee.com/eillon/keycodemapdb.git
[submodule "capstone"]
    path = capstone
    url = https://gitee.com/shixianqiang/capstone.git
[submodule "roms/seabios-hppa"]
    path = roms/seabios-hppa
    url = https://gitee.com/resource-share/seabios-hppa.git
[submodule "roms/u-boot-sam460ex"]
    path = roms/u-boot-sam460ex
    url = https://gitee.com/shixianqiang/u-boot-sam460ex.git
[submodule "tests/fp/berkeley-testfloat-3"]
    path = tests/fp/berkeley-testfloat-3
    url = https://gitee.com/resource-share/berkeley-testfloat-3.git
[submodule "tests/fp/berkeley-softfloat-3"]
    path = tests/fp/berkeley-softfloat-3
    url = https://gitee.com/resource-share/berkeley-softfloat-3.git
[submodule "roms/edk2"]
    path = roms/edk2
    url = https://gitee.com/m1sstory/edk2.git
[submodule "slirp"]
    path = slirp
    url = https://gitee.com/zhz37/libslirp.git

[submodule "CryptoPkg/Library/OpensslLib/openssl"]
    path = CryptoPkg/Library/OpensslLib/openssl
    url = https://gitee.com/zhz37/openssl.git
[submodule "SoftFloat"]
    path = ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3
    url = https://gitee.com/ffgpu/berkeley-softfloat-3.git

[submodule "boringssl"]
    path = boringssl
    url = https://gitee.com/mirrors/boringssl.git

[submodule "pyca.cryptography"]
    path = pyca-cryptography
    url = https://gitee.com/mirrors/cryptography.git

[submodule "krb5"]
    path = krb5
    url = https://gitee.com/aleelim/krb5.git

 类似资料: