编译原生SDK
LinuxSDK的安装
第一步解压LinuxSDK
找到创龙官方给的TLT113的SDK包,目录在:\TLT113-EVM(Buildroot-2019.02)_V1.8\4-软件资料\Linux\LinuxSDK下面的LinuxSDK-v2.5.tar 直接拷贝到Samba共享文件里面,Samba共享文件的建立参考博文,点击直接跳转:(一)开发环境搭建以及配置
拷贝到share文件目录下如图:
执行解压命令:
tar -zxvf example.tar.gz -C /path/to/destination // 格式
tar -zxvf LinuxSDK-v2.5.tar.gz -C /home/zhua/SDK // 实际书写 -C C是大写的
进入解压的LinuxSDK可以看到如下:
内容说明:
第二步安装依赖软件
为什么要安装依赖软件:
即使 Linux SDK
包含了 U-Boot
、Linux Kernel
和 Buildroot
的源码,构建这些组件仍然需要一些宿主机上的工具和库,即所谓的“依赖软件工具”。这是因为:
-
编译工具链:
- 构建 Linux 内核、用户空间应用程序和其他组件需要一个交叉编译工具链。虽然有些 SDK 可能自带工具链,但其他情况下你可能需要安装如
gcc
、g++
等编译器以及相关的开发库。
- 构建 Linux 内核、用户空间应用程序和其他组件需要一个交叉编译工具链。虽然有些 SDK 可能自带工具链,但其他情况下你可能需要安装如
-
构建工具:
- 构建过程通常依赖于一系列的工具,例如
make
、cmake
、autotools
等,用于解析 Makefile 或 CMakeLists.txt 文件并执行编译命令。此外,patch
、diff
、sed
、grep
等工具也可能在应用补丁或进行文本处理时用到。
- 构建过程通常依赖于一系列的工具,例如
-
版本控制系统:
- 如果你需要从源代码仓库(如 Git)拉取最新的源代码或补丁,那么相应的版本控制工具也是必需的。
-
辅助工具:
- 某些特定的构建任务可能还需要额外的工具,比如
flex
、bison
用于生成解析器,dtc
(Device Tree Compiler)用于处理设备树源文件等。
- 某些特定的构建任务可能还需要额外的工具,比如
-
依赖库:
- 构建过程中可能会用到一些宿主机上的库,例如 OpenSSL 库用于加密功能,或者 Python 库用于运行某些脚本。这些库通常不会包含在嵌入式系统的镜像中,但在构建期间是必要的。
-
调试工具:
- 开发和调试过程中可能需要用到
gdb
、strace
等调试工具,这些工具同样需要预先安装在宿主机上。
- 开发和调试过程中可能需要用到
-
文件系统工具:
- 创建根文件系统镜像时,可能需要使用特定的工具来创建或修改文件系统格式,例如
mkfs.ext4
用于创建 ext4 文件系统。
- 创建根文件系统镜像时,可能需要使用特定的工具来创建或修改文件系统格式,例如
-
压缩和打包工具:
- 构建完成后,你可能需要用
tar
、gzip
、xz
等工具来打包生成的文件,或者使用genimage
工具根据配置文件生成启动所需的镜像文件。
- 构建完成后,你可能需要用
为了简化这个过程,许多 Linux SDK
提供了文档或脚本来指导用户安装这些依赖项。有时,SDK 会提供一个 setup.sh
或类似的脚本,它可以帮助自动检测并安装缺失的依赖项。如果你正在使用的 SDK 没有提供这样的帮助工具,你可以参考官方文档中的依赖列表,并按照说明安装必要的软件包。
总结,通俗来说说:只有源码没有工具怎么编译呢?所以必须安装各种编译时,所需要的依赖软件。
同样在官方资料里面也有如何安装工具包的脚本。
目录在:“\TLT113-EVM(Buildroot-2019.02)_V1.8\4-软件资料\Linux\Tools\”
在将目录下的工具包脚本文件 install_tools.sh 拷贝至 SDK工作目录下,执行脚本文件安装 LinuxSDK 开发包依赖软件。
同样也是借助Samba共享文件传入share文件目录
然后拷贝到刚才创建的SDK目录下面,再执行脚本进行安装依赖软件
./install_tools.sh
中间会弹出对话框,选择NO即可。
安装完成如图:
第三步解压Buildroot的dl文件
为什么要解压Buildroot的dl文件:
关于 Buildroot dl
文件夹:
当你使用 Buildroot
构建一个项目时,它会下载所需的源代码包(如工具链、内核、BusyBox 等)到一个叫做 dl
的目录中。这个 dl
目录通常位于 Buildroot
项目的根目录下。该目录用于存放所有从互联网上下载的软件包的原始压缩文件(例如 .tar.gz
, .tar.bz2
等格式)。这样做有以下几个好处:
- 避免重复下载:如果你需要重新构建或者在同一网络下的其他机器上进行构建,可以直接使用已经下载好的文件,而不需要再次从网上下载。
- 离线构建:一旦所有的依赖都下载完毕并存放在
dl
文件夹中,即使在没有网络连接的情况下也可以完成构建。
因此,Buildroot dl
文件夹是 Buildroot
用来缓存所下载的源代码包的地方,以方便后续的构建过程。如果你解压了一个 Buildroot
的归档文件,并且其中包含 dl
文件夹,那么意味着之前有人已经下载过这些文件,你可以利用它们来进行更快的构建。
说人话,就是提前将下载好的源代码包放在这个dl文件里面。
即便 SDK 包含了 U-Boot、Kernel 和 Buildroot 的源码,
但构建完整的根文件系统可能还需要其他库和工具。
这些额外的依赖项通常不在 SDK 中提供,仍然需要通过 Buildroot 下载并存储在 dl 文件夹中。有时资料包里面会提前下载好,节省编译时间。
dl文件目录在:“\TLT113-EVM(Buildroot-2019.02)_V1.8\4-软件资料\Linux\LinuxSDK\”目录下
再将目录下的 dl.tar.gz 压缩包拷贝至 SDK目录里面,同样是借助Samba共享文件
这里:dl.tar.gz 为 Buildroot dl 目录压缩包,用于存放从官网下载的开源软件包,LinuxSDK 编译时可从该目录获取开源包,以节约下载时间,提高编译效率,且能避免因网络环境差异导致编译 Buildroot 失败的问题。
也是拷贝到share文件目录如图:
解压到 /SDK/T113-i_v1.0/buildroot/buildroot-201902/ 下面去 这下面本来就有一个dl文件,此时正好覆盖了,dl此时里面已经下载好了很多依赖包