Linux - Buildroot简介和生成工具链SDK
Buildroot简介
Buildroot - Making Embedded Linux Easy - Making Embedded Linux Easy
Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation.
Buildroot是一个简单有效的易于使用的嵌入式Linux系统的生成工具,使用芯片所对应的交叉编译工具链。
Buildroot功能强大, 可以使用交叉编译工具链,生成根文件系统(root filesystem),编译生成内核镜像(kernel image),编译生成bootloader。
得益于借鉴了Linux内核的工具套装,使用menuconfig,gconfig和xconfig配置接口,Buildroot构建一个基本系统操作简单,一般只需15-30分钟。
Buildroot还支持上千个package,包括X.org stack, Gtk3, Qt 5, GStreamer, Webkit, Kodi, 还支持数量庞大的网络和系统相关的工具(Utility)。
Buildroot是免费开源的,很多开发者都参与其中。其结构简单,易于理解和扩展。它唯一依赖是大家所熟知的Makefile语言。
如何生成交叉编译工具链的SDK
Buildroot编译时会生成toolchain,相关内容位于output/host/目录。
也可以将toolchain的内容都导出来,把开发中使用的packages一起打包成一个SDK,使用这个SDK就可以编译我们的应用程序,而不需要依赖当前的嵌入式Linux系统,使开发更加方便。
打包生成SDK,只需在buildroot目录下执行命令:make sdk
然后就把output/host/下的内容打包,生成一个<TARGET-TUPLE>_sdk-buildroot.tar.gz的tarball文件,位于output/images下面。
在解压SDK tarball文件时,用户需要运行脚本relocate-sdk.sh,这个文件在顶层目录。
如果运行命令:make prepare-sdk
不会生成SDK的tarball文件,但SDK的相关内容在output/host/路径下会准备好。
以Ingenic的x2000的builtroot为例,在顶层目录进入buildroot/buildroot,运行make sdk。
得到toolchain文件:buildroot/buildroot/output/images/mipsel-buildroot-linux-gnu_sdk-buildroot.tar.gz。
参考:
https://buildroot.org/downloads/manual/using-buildroot-toolchain.txt