iMX6q Linux 交叉编译环境搭建

在编译工作进行之前,先确保你的虚拟系统网络是可以用的,
下面先介绍一下apt-get

  1. 添加 apt-get update 国内源
sudo vim /etc/apt/sources.list

添加阿里服务器

deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
 
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
 
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
 
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe

添加163服务器

deb http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse 
deb-src http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse 
deb http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted 
deb-src http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted 
deb http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted 
deb http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted 
deb-src http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted 
deb http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted 
deb-src http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted 
deb-src http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted
  1. 准备交叉编译工具,这个工具一般芯片厂商会提供,或者从网上自己下载。
    工具参照官方文档,放在默认的/opt 路径下,然后解压。

  2. 解压后设置编译器的环境变量。

$ PATH=$PATH:/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi
  1. 验证一下编译工具是否能够使用了,正常的话会打印一长串,出问题会提示错误信息。
$ arm-poky-linux-gnueabi-gcc -v
  1. 配置必要的环境
sudo apt-get install lib32z1 lib32ncurses5
sudo apt-get install gcc-multilib g++-multilib
  1. 准备linux源码,网上下载或找供应商。
$ tar -zxvf linux-4.1.15.tar.bz2
  1. 进入到解压后的linux目录,执行
make ARCH=arm imx_v7_defconfig

在这里插入图片描述
当然也可以根据需求,自己配置编译选项。

make menuconfig

在这里插入图片描述
如果已星号的方式选择,执行下面语句的时候会一起编译进zImage,如果选择太多不常用的模块,这样就增大的zImage的容量。有些模块可以选择“M”的方式(make module),他们就需要独立编译,需要的时候再安装模块。

make -j4 zImage
  1. 提示出错

在这里插入图片描述
piggy.lzo ,错误点在这里,这个提示说明piggy是lzo压缩格式。
lzop is a file compressor which is very similar to gzip. lzop uses the LZO data compression library for compression services.
下载安装解压工具

sudo apt-get install lzop

再次执行make -j4 zImage
这次编译速度就快多了,因为刚才很多编译工作都已经完成。
编译后会提示
Kernel: arch/arm/boot/zImage is ready

表明zImage的路径在linux内核的arch/arm/boot 路径下

  1. 编译设备树dtb
make imx6q-sabresd.dtb
或者
make imx6dl-sabresd.dtb

生产的文件存放路径
arch/arm/boot/dts/
如果此步提示错误,可能是arch/arm/boot/dts 路径下的Makefile里没有定义imx6q-sabresd.dtb,添加此定义即可。

猜你喜欢

转载自blog.csdn.net/malcolm_110/article/details/109218753