[其它] 【MY-iMX6UL套件试用】+3. Linux编译

[复制链接]
560|4
 楼主 | 2018-4-8 16:18 | 显示全部楼层 |阅读模式
准备:
交叉编译工具:
gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz

交叉编译工具配置文件:
gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env

QT5程序交叉编译工具:
fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh

U-boot源码:
u-boot-2016.03_svn129_20180307.tar.xz

Linux源码:
linux-4.1.15_svn196_20180124.tar.xz

imx-4.1-krogoth_201712261750.tar.xz

创建工作目录:和官方保持一致可以少改很多东西
  1. 源码目录:
  2. $ mkdir ~/my-imx6/02_source –p
  3. 工具目录:
  4. $ mkdir ~/my-imx6/03_tools –p
  5. 镜像目录:
  6. $mkdir ~/my-imx6/04_image –p
  7. $mkdir ~/my-imx6/04_image/image-linux-4115 –p
  8. 应用程序目录:
  9. $ mkdir ~/my-demo
复制代码


安装linux交叉编译工具链
  1. $ cd ~/my-imx6/03_tools/
  2. 把交叉编译工具链和配置文件复制到此目录,并解压交叉编译工具链
  3. $ tar xvf gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz
  4. source配置文件
  5. $source gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env
  6. 检查环境变量
  7. $ ${CROSS_COMPILE}gcc –v
  8. 最后会输出:
  9. gcc version 5.3.1 20160113 (Linaro GCC 5.3-2016.02)
复制代码


安装QT5交叉编译工具链
  1. 拷贝fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh到~/my-imx6/03_tools/目录下,然后执行:
  2. $ sh fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh
  3. 默认安装路径为/opt/fsl-imx-fb/4.1.15-2.1.0,所以我们一路回车即可输入root权限密码即可。
  4. 查看安装是否正确:
  5. $ source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-vfp-neon-poky-linux-gnueabi
  6. $ qmake -v
  7. 最后输出:
  8. QMake version 3.0
  9. 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
  1. 在02_source目录下解压uboot源码
  2. $ tar xvf u-boot-2016.03_svn129_20180307.tar.xz
  3. $ source ~/my-imx6/03_tools/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env
  4. $ cd u-boot-2016.03
  5. $ make distclean
  6. myimx6ek140p-6g_defconfig在configs目录下可以找到
  7. $ make myimx6ek140p-6g_defconfig
  8. $ make
  9. 编译完成最后一句为:
  10. MKIMAGE u-boot.imx
  11. 使用ls命令可以看到在uboot根目录下有一个u-boot.imx文件
  12. 把生成的u-boot.imx文件拷贝重命名到~/my-imx6/04_image/image-linux-4115目录下成为我们需要的固件
  13. $ cp u-boot.imx ~//my-imx6/04_image/image-linux-4115/uboot-myimx6ek140p-6g.imx
复制代码


编译内核
  1. 在02_source目录下解压linux源码
  2. $ source ~/my-imx6/03_tools/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env
  3. 进入Linux源码目录,执行:
  4. $ make distclean
  5. myimx6a7_defconfig在arch/arm/configs目录下
  6. $ make myimx6a7_defconfig
  7. $ make zImage
  8. 编译完成后最后一句输出:
  9. Kernel : arch/arm/boot/ZImage is ready
  10. 拷贝重命名zImage到~/my-imx6/04_image/image-linux-4115目录成为我们需要的固件
  11. $cp arch/arm/boot/zImage ~/my-imx6/04_image/image-linux-4115/zImage-myimx6a7
复制代码


编译设备树
  1. 设备树在arch/arm/boot/dts/myimx6ek140p-6g.dts
  2. $ source ~/my-imx6/03_tools/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env
  3. $ make myimx6ek140p-6g.dtb
  4. 在arch/arm/boot/dts/目录下会得到myimx6ek140p-6g.dtb文件
  5. 复制myimx6ek140p-6g.dtb到image目录
  6. $ cp arch/arm/boot/dts/myimx6ek140p-6g.dtb ~/my-imx6/04_image/image-linux-4115/
复制代码


编译模块
  1. $ source ~/my-imx6/03_tools/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env
  2. 编译:
  3. $ make modules
  4. 安装:
  5. $ make modules_install INSTALL_MOD_PATH=./modules
  6. 打包模块文件:
  7. $ cd modules
  8. $ tar cjf ../modules.tar.bz2 *
  9. 复制模块包到image目录
  10. $ cp ../modules.tar.bz2 ~/my-imx6/04_image/image-linux-4115/kernel-modules-myimx6g.tar.bz2
复制代码


应用程序编译
  1. $ source ~/my-imx6/03_tools/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env
  2. 编写代码
  3. 编译
  4. $ ${CROSS_COMPILE}gcc hello.c -o hello.out
  5. $ file hello.out
  6. 保存可执行文件到你想要的目录
复制代码



| 2018-4-9 08:33 | 显示全部楼层
| 2018-4-14 10:28 | 显示全部楼层
你用得谁家得板子啊?
 楼主 | 2018-4-14 10:31 | 显示全部楼层
小熊配齐 发表于 2018-4-14 10:28
你用得谁家得板子啊?

看标题,明远智睿的板子
| 2018-4-14 10:44 | 显示全部楼层
标题没写啊,没用过他家得板子,好用嘛,我买过芯灵思一块,还不错。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

关闭

热门推荐上一条 /5 下一条

快速回复 返回顶部 返回列表