- 拷贝fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh到~/my-imx6/03_tools/目录下,然后执行:
- $ sh fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh
- 默认安装路径为/opt/fsl-imx-fb/4.1.15-2.1.0,所以我们一路回车即可输入root权限密码即可。
- 查看安装是否正确:
- $ source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-vfp-neon-poky-linux-gnueabi
- $ qmake -v
- 最后输出:
- QMake version 3.0
- Using Qt version 5.6.2 in /opt/fsl-imx-fb/4.1.15-2.1.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi/usr/lib
编译uboot
- 在02_source目录下解压uboot源码
- $ tar xvf u-boot-2016.03_svn129_20180307.tar.xz
- $ source ~/my-imx6/03_tools/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env
- $ cd u-boot-2016.03
- $ make distclean
- myimx6ek140p-6g_defconfig在configs目录下可以找到
- $ make myimx6ek140p-6g_defconfig
- $ make
- 编译完成最后一句为:
- MKIMAGE u-boot.imx
- 使用ls命令可以看到在uboot根目录下有一个u-boot.imx文件
- 把生成的u-boot.imx文件拷贝重命名到~/my-imx6/04_image/image-linux-4115目录下成为我们需要的固件
- $ cp u-boot.imx ~//my-imx6/04_image/image-linux-4115/uboot-myimx6ek140p-6g.imx
编译内核
- 在02_source目录下解压linux源码
- $ source ~/my-imx6/03_tools/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env
- 进入Linux源码目录,执行:
- $ make distclean
- myimx6a7_defconfig在arch/arm/configs目录下
- $ make myimx6a7_defconfig
- $ make zImage
- 编译完成后最后一句输出:
- Kernel : arch/arm/boot/ZImage is ready
- 拷贝重命名zImage到~/my-imx6/04_image/image-linux-4115目录成为我们需要的固件
- $cp arch/arm/boot/zImage ~/my-imx6/04_image/image-linux-4115/zImage-myimx6a7
编译设备树
- 设备树在arch/arm/boot/dts/myimx6ek140p-6g.dts
- $ source ~/my-imx6/03_tools/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env
- $ make myimx6ek140p-6g.dtb
- 在arch/arm/boot/dts/目录下会得到myimx6ek140p-6g.dtb文件
- 复制myimx6ek140p-6g.dtb到image目录
- $ cp arch/arm/boot/dts/myimx6ek140p-6g.dtb ~/my-imx6/04_image/image-linux-4115/
编译模块
- $ source ~/my-imx6/03_tools/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env
- 编译:
- $ make modules
- 安装:
- $ make modules_install INSTALL_MOD_PATH=./modules
- 打包模块文件:
- $ cd modules
- $ tar cjf ../modules.tar.bz2 *
- 复制模块包到image目录
- $ cp ../modules.tar.bz2 ~/my-imx6/04_image/image-linux-4115/kernel-modules-myimx6g.tar.bz2
应用程序编译
- $ source ~/my-imx6/03_tools/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env
- 编写代码
- 编译
- $ ${CROSS_COMPILE}gcc hello.c -o hello.out
- $ file hello.out
- 保存可执行文件到你想要的目录