buildroot编译交叉工具链

Comake Online


作者| koda.xu


本期技术专题主要讲解如何使用buildroot编译指定gcc和glibc版本的交叉工具链,适用于SSD平台。



以使用下面的环境编译交叉工具链为例,完整编译步骤如下。


目标环境


SSD222D:
Arm A7 支持硬浮点运算和NEON
linux-headers:4.9.84
gcc:12.3.0
glibc:2.32
binutils:2.40
gdb/gdb-server:12.1


编译步骤


1. 下载buildroot


git clone 


https://github.com/buildroot/buildroot.git


2. 生成默认的配置文件.config


make defconfig


3. menuconfig菜单中修改配置并保存 make menuconfig


Target options设置:



Build options设置:



Toolchain设置:



4. 资源配置的指定或修改


Linux header配置:



注意,这里指定的linux-header 配置名称不能为 BR2_KERNEL_HEADERS_4_9 ,因为 BR2_KERNEL_HEADERS_4_9 在 Config.in.legacy 中已有定义,这个表示不再支持这个linux-header版本。原则上保证定义的配置名称不重名又能说明当前使用的版本即可。



gcc配置:



glibc配置:



在 package/glibc/glibc.mk 中可以看到 glibc 的下载地址是:


GLIBC_SITE = $(call github,bminor,glibc,$(GLIBC_VERSION))


github 是 Buildroot 中定义的一个辅助函数,用于生成 GitHub 仓库的下载地址。它的定义如下:



所以 默认的设置,glibc 的实际下载地址形式如下:





测试下载发现,提交笔数不是必须指定的,commit信息也不用指定完整的commit id,满足唯一标志就好,一般指定为7位。


我们使用下面这笔commit作为当前编译toolchain的glibc版本,指定 GLIBC_VERSION 如下:


GLIBC_VERSION = 2.32-g4c56bcb



binutils配置:



gdb配置:



若有手动修改配置,重新只需make menuconfig 命令,设置好后将.config文件备份。


5. 编译


make clean -j16;make sdk -j16


编译过程中若出现 “No hash found for xxx” 这样的错误提示,可以在dl目录下对应软件包名称的目录,使用 “sha256sum” 或 “sha512sum” 指令先生成SHA码,再将生成的SHA码信息写入package目录对应软件包名称的目录下的hash文件中,如下:



6. 编译完成后在output/host目录下会生成toolchain,并在output/images目录下生成toolchain的tar.gz文件。查看toolchain版本信息




》》原文地址


End.



推荐阅读


微信刷掌支付发布,搭载SSC9351Q


好学多听力熊,搭载SSD222D


SigmaStar智能门锁方案介绍


SSD222Q在工业HMI中的新应用


SigmaStar智能网关方案介绍


SigmaStar智能家居全家桶





扫码进入论坛

原厂答疑|产品选型|官方资源



扫码咨询客服

SDK下载|芯片、开发板购买


X 提交 下一题

查看更多