本文主要介绍了为什么使用交叉编译环境以及Linaro 交叉编译环境搭建
kernel 版本,jetpack4.2 L4T 32.1
官方教程链接,写的不是很清楚,可以去看看:
https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fxavier_toolchain.html%23
- 为什么要用交叉编译
在上一篇博客中提到过两种编译方式,这里重申一下,在主机上用交叉编译的方式有两个优点:
- 节省jetson的内存资源,保证jetson运行环境的整洁
- x86 PC在编译上比jetson快很多,我用x86编译一次kernel 10分钟,jetson平台上需要一个多小时甚至两个小时。
- linaro交叉编译环境搭建
安装gcc编译环境
sudo apt install build-essential bc
下载编译工具
官方的下载链接有问题,我下载的时候发现是I686平台,不知道那是个什么平台。
正经的 x86 — aarch64平台连接如下
http://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
下载好了之后给编译工具建一个文件夹,我是在主目录下建的
/home/gaosiy/l4t-gcc
sudo mkdir l4t-gcc
建好之后吧下载的文件gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz拷贝过去,解压
tar xf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
解压之后编译环境就相当于搭好了,没错就是这么简单,但是下边你要记住,
/home/gaosiy/l4t-gcc/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
l4t-gcc之前目录可能不一样,看你在哪创建的文件夹。
这个路径在每次使用交叉编译之前,需要赋值给一个环境变量,然后再用,具体怎么用,后边到编译的时候会讲。