【BCM】博通 linux-4.19 gcc-9.2 toolchain 环境搭建

0.env

ubuntu-1804
ESDK-6.5.04ea2、linux-4.19、gcc-9.2
SOC:BCM47623EAP

1.前言

博通的toolchain需要单独安装,不像高通的toolchain已经包含在SDK中。

2.下载安装

1.确定所需要的toolchain

1.从顶层Makefile查找,
Makefile-> build/Makefile -> make.common
得到相关toolchain的log:

 164 # for ARM, Linux 4.19
 165 ifeq ($(strip $(BRCM_USE_ALT_TOOLCHAIN)),y)
 166 DEFAULT_TOOLCHAIN_LINUX_4_19_0_ARM        := $(ALT_ARM_TOOLCHAIN_TOP)
 171 else
 172 DEFAULT_TOOLCHAIN_LINUX_4_19_0_ARM        := $(TOOLCHAIN_BASE)/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32
 173 ...

1.从log可以分析出,默认使用的else后固定路径的toolchain,以下操作均从该默认路径为基础
2.log中明确多出了判断kernel内核版本的程序,将linux4.19前后的toolchain进行划分,而sdk最早支持linux4.19的就是这个esdk6.5版本,后续Makefile相关文件可能还会变更,注意后续变更是的影响。

该SDK使用如下toolchain:

crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32

2.下载

1.从其他team中直接copy一份
2.从博通官网下载。(没账号应该不能下载吧,反正我一直是用账号访问博通的。)在官网直接搜toolchain全名就行,会有一个类似如下选项:
博通官网toolchain的截图
3.从arm下载相关toolchain,地址参考如下:
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads/9-2-2019-12
4. 使用ct-ng自己定义一个toolchain,不建议这么干,自定义的toolchain缺少usr、lib32的link,自定义以后很多地方的命名和SDK中不符合,需要修改自动的toolchain、新建相关link等,可以用来编译单独的程序,不推荐用做SDK中toolchain。

PS:
推荐从博通官网下载toolchain,其次是从其他team的环境中直接copy。不推荐自定义生成toolchain。

3.安装

前言:
1.SDK中若不配置BRCM_USE_ALT_TOOLCHAIN的宏定义,则使用默认的toolchain路径,默认路径如下:
/opt/toolchains/crosstools-aarch64-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32
1.2 按默认toolchain路径配置,加压toolchain压缩包到上述路径中:

sudo mkdir /opt/toolchains/
sudo tar -jxvf crosstools-aarch64-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32.Rel1.12.tar.bz2 -C /opt/toolchains/

PS:
这里默认使用的64bit toolchain,压缩包里还有32bit toolchain。

3.使用

1.ESDK.README/README.47623文件中出了toolchain的配置和使用方法。

1.使用默认路径toolchain编译SDK

1.确定下默认路径/opt/toolchains/下确实有这个toolchain目录,然后就是直接编译就好:

make PROFILE=947623EAP

2.使用自定义路径toolchain编译SDK

1.定义部分变量,包括:

TOOLCHAIN_BASE
LD_LIBRARY_PATH
PATH

2.编译时需要在当前shell中定义如上变量。
参考如下:
2.1 新建PATH文件,存储如下内容:

TC_BASE_ROOT=/projects/hnd/tools/linux
GCC=crosstools-aarch64-gcc-5.5
KERNEL=linux-4.1
GLIBC=glibc-2.26
BINUTILS=binutils-2.28.1

export TOOLCHAIN_BASE=${TC_BASE_ROOT}/BCG
export LD_LIBRARY_PATH=${TOOLCHAIN_BASE}/${GCC}-${KERNEL}-${GLIBC}-${BINUTILS}/usr/lib:$LD_LIBRARY_PATH
export PATH=${TC_BASE_ROOT}/hndtools-armeabi-2013.11/bin:$PATH

2.2 导入,

source PATH
  1. 编译
make PROFILE=947623EAP
  1. 还可以只在编译时加入参数即可,博通给出的文档中给出的参考命令如下:
make PROFILE=96328GW TOOLCHAIN_TOP=/usr/local/toolchain
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

过得精彩

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

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

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

打赏作者

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

抵扣说明:

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

余额充值