声明
本博客所记录的关于正点原子i.MX6ULL开发板的学习笔记,(内容参照正点原子I.MX6U嵌入式linux驱动开发指南,可在正点原子官方获取正点原子Linux开发板 — 正点原子资料下载中心 1.0.0 文档),旨在如实记录我在学校学习该开发板过程中所遭遇的各类问题以及详细的解决办法。其初衷纯粹是为了个人知识梳理、学习总结以及日后回顾查阅方便,同时也期望能为同样在学习这款开发板的同学或爱好者提供一些解决问题的思路和参考。我尽力保证内容的准确性和可靠性,但由于个人知识水平和实践经验有限,若存在错误或不严谨之处,恳请各位读者批评指正。
责任声明:虽然我力求提供有效的问题解决办法,但由于开发板使用环境、硬件差异、软件版本等多种因素的影响,我的笔记内容不一定适用于所有情况。对于因参考本笔记而导致的任何直接或间接损失,我不承担任何法律责任。使用本笔记内容的读者应自行承担相关风险,并在必要时寻求专业技术支持。
1 交叉编译器安装
Ubuntu 自带的 gcc 编译器是针对 X86 架构的!要编译的 ARM 架构的代码,需要一个在 X86 架构的 PC 上运行,可以编译 ARM 架构代码的 GCC 编译器,这个编译器就叫做交叉编译器,总结一下交叉编译器就是:
1、它肯定是一个 GCC 编译器。
2、这个 GCC 编译器是运行在 X86 架构的 PC 上的。
3、这个 GCC 编译器是编译 ARM 架构代码的,也就是编译出来的可执行文件是在 ARM 芯片上运行的。
交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。
交叉编译器有很多种,本文所采用的编译器是参照正点原子官方教程的,使用 Linaro 出品的交叉编译器
Linaro GCC 编译器下载地址如下:
Linaro Releases
目前最新的版本是7.5.0,但是正点原子教程里面说明7.3.1 版本编译器的时候发现编译完成后的 uboot 无法运行。所以这里作为记录笔记与正点原子官方教程保持一致,采用4.9版本的编译器。感兴趣的可以试试最新版本。
下载链接:Linaro Releases
根据自己所使用的 Ubuntu 系统类型选择合适的版本
32位选择:
64位选择:
或者去正点原子官网下载i.MX6ULL Linux阿尔法开发板 — 正点原子资料下载中心 1.0.0 文档,在5、开发工具->1、交叉编译器中可以找到(推荐)
在当前用户根目录下创建了一个名为“linux”的文件夹,在这个 linux 文件夹里面再创建一个名为“tool”的文件夹,用来存放一些开发工具。使用前面已经安装好的 FileZilla (参照Ubuntu 和 Windows 文件互传(FTP)这篇文章)将交叉编译器拷贝到 Ubuntu 中刚刚新建的“tool”文件夹中
在 Ubuntu 中创建目录: /usr/local/arm,命令如下:
sudo mkdir /usr/local/arm
完成以后将刚刚拷贝的交叉编译器复制到/usr/local/arm 这个目录中,在终端使用命令“ cd” 进入 到 存放 有交叉编译器的目录, 比如 我 前面 将交 叉 编译 器拷 贝 到了 目录“/home/zuozhongkai/linux/tool”中,然后使用如下命令将交叉编译器复制到/usr/local/arm 中:
拷贝完成以后在/usr/local/arm 目录中对交叉编译工具进行解压,解压命令如下:
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
解压完成以后会生成一个名为“gcc-linaro-4.9.4-2017.01-x86_64_arm-linuxgnueabihf”的文件夹,这个文件夹里面就是我们的交叉编译工具链。
修改环境变量,使用 VI 打开/etc/profile 文件,命令如下:
sudo vi /etc/profile
打开/etc/profile 以后,在最后面输入如下所示内容:
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
修改好以后就保存退出,重启 Ubuntu 系统,交叉编译工具链(编译器)就安装成功了。
2. 安装相关库
在使用交叉编译器之前还需要安装一下其它的库,命令如下:
sudo apt-get install lsb-core lib32stdc++6
若Ubuntu 版本过高可能会出现报错,如下所示:
因为在较新的 Ubuntu 系统(如 20.04、22.04、24.04)中,lsb-core被拆分成更小的包,通常改用 lsb-release 或其他相关包。
解决方法:
1:直接安装lsb-release(推荐)
sudo apt update
sudo apt install lsb-release lib32stdc++6
2:启用 Universe 仓库后重试
sudo add-apt-repository universe
sudo apt update
sudo apt install lsb-core lib32stdc++6
3:安装完整的 LSB 组件(适用于旧版系统)
如果系统较旧(如 Ubuntu 18.04 或更早),可以尝试:
sudo apt install lsb-core lsb-release lib32stdc++6
3. 交叉编译器验证
查看一下交叉编译工具的版本号,输入如下命令:
arm-linux-gnueabihf-gcc -v
如果交叉编译器安装正确的话就会显示版本号
可以看出当前交叉编译器的版本号为 4.9.4,说明交叉编译工具链安装成功。