首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

芯片编译公众号的开篇——RISC-V Tools编译安装三部曲之二

收到非常多朋友的改进意见,代表芯片编译团队表示感谢,我们会不断改进不断努力。后续文章我们尽量多码字,尽量不采用拷屏,以利于交流。

原创帖,如有转发,请注明出处或联系撰稿人

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

撰稿人:李浩

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

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

$ exportTOP=/opt/RISCV

$ exportRISCV=$TOP/riscv

$ exportPATH=$PATH:$RISCV/bin

二、Building the Linux Kernel

1.获取Kernel Sources

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

$ cd $TOP

$ gitclone https://github.com/riscv/riscv-linux.gitLinux4.15-rc7

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

$ makeARCH=riscv CROSS_COMPILE=riscv64-unknown-linux-gnu- defconfig

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

$ make ARCH=riscv menuconfig

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

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

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

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

下一期,我们将编译安装Busybox,到这才是完整的riscv-tools的安装,让我们下期见吧。

参考文献

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

[2]README of RISC-VGNU Compiler Toolchain:

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180114G06NQ700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券