RISC-V Tools编译安装三部曲之二

一、前言

撰稿人:李浩

 

在上一期中我们已经完成了RISC-VGCC/Newlib Toolchain、GNUtoolchain for RISC-V, ISA Simulator等工具的编译安装。在这一期中我们将尝试使用riscv64-unknown-linux-gnu-gcc来编译我们的linux内核。

不要忘了我们的环境变量:

$ export  TOP=/home/lh/RISCV

$ export  RISCV=$TOP/riscv

$ export  PATH=$PATH:$RISCV/bin

 

二、Building the Linux Kernel

1.获取Kernel Sources

我们终于准备好了引入Linux内核源代码了。从riscv-tools/riscv-gnu-toolchain目录中进行更改,并将riscv-linux git存储库克隆到以下目录:linux-4.15._xx_,其中xx表示当前修订的版本(截至2018年1月8日,它是“Linux 4.15-rc7”)。

$ cd  $TOP

$ git  clone https://github.com/riscv/riscv-linux.git Linux-4.15-rc7

2.Configuring the Linux Kernel

Linux内核虽然是无限可配置的。但是,对于目前的开发状态,没有太多的设备或选项可以进行调整。但是,从默认配置开始,该配置应该与ISA模拟器一起工作。这里需要使用ARCH= 来指定目标的体系架构,使用CROSS_COMPILE=来指定使用的交叉编译器的前缀(我们自然是使用前面装好的riscv64-unknown-linux-gnu-gcc)。

$ make  ARCH=riscv   CROSS_COMPILE=riscv64-unknown-linux-gnu-   defconfig

如果要编辑配置,可以使用基于文本的GUI(Ncurses)编辑配置:

$ make ARCH=riscv menuconfig

等你对配置感到满意的时候,就开始编译内核。注意在编译RISC-V内核时,必须在make的每次调用中指定ARCH=riscvCROSS_COMPILE=。这一行也不例外。如果你想加快进程,可以通过参数-j [number]来启用多线程编译。

$ make -j16 ARCH=riscv CROSS_COMPILE=riscv64-unknown-linux-gnu-

做到这一步,很恭喜了,你终于为RISC-V交叉编译了linux内核。然而,在我们启动它之前还有一些事情要处理。

下一期,我们将编译安装Busybox,到这才是完整的riscv-tools的安装,让我们下期见吧。这一期虽然短,但是做起来却很容易出错,如果你是一名新手的话,笔者希望你在读到这篇文章时能够去了解一下linux内核,make过程以及Makefile。这会对你很有帮助,如果你编译过程中出错,阅读这些资料会对你有所帮助。

 

参考文献

[1] RISC-Vofficial network:https://riscv.org/software-tools/

[2]README of RISC-VGNU Compiler Toolchain:

https://github.com/riscv/riscv-gnu-toolchain

 

你可能感兴趣的:(RISC-V)