完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>
MY-IMX6-EK140P L4115 编译手册
目录 [隐藏]
文档说明 系统环境说明
操作说明 1)文档中以“$”开头的行,其后是Linux命令。 2)文档中所有的Linux命令建议手动输入到Linux主机执行(直接复制、粘贴到Linux主机上执行,可能会执行失败)。 3)文档中的Linux执行命令,如果空格后的下一个字符是“-”的(如:sudo apt-get –y install之类的),请手动输入到Linux主机执行(直接复制、粘贴到Linux主机上执行,通常会执行失败)。 4)文档中所有一行没写完的Linux命令请手动输入到Linux主机执行,(因为复制、粘贴命令不能包含类似“换行符”之类的特殊字符)。 5)按文档输入并执行Linux命令时注意观察命令的执行结果与文档图片中的是否一致,以确认命令是否输入有误及是否执行失败。 6)第一遍编译请严格按照文档进行,否则可能出现莫名其妙的错误。 截图说明 为使视图看起来简洁整齐,截图中的命令提示符统一使用myzr$。 图片中的Linux命令 在文档的图片中观察“myzr$”开头的行可以直观的看到输入的Linux命令。 重要信息说明 为避免各位客户在搭建开发环境及编译过程中遇到不必要的问题浪费时间和精力,推荐使用明远智睿发布的“vb43-u12045-serv-amd64”虚拟机系统。 具体参见《MYZR虚拟机系统指导》 准备源码及相关文件 源码文件 评估板对应的Linux版本及对应的源码文件见下表:
交叉编译工具文件 Linux程序交叉编译工具:gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz Linux交叉编译工具配置文件:gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env 创建工作目录 1)源码目录 $ mkdir ~/my-imx6/02_source –p 2)工具目录 $ mkdir ~/my-imx6/03_tools –p 3)镜像目录 $ mkdir ~/my-imx6/04_image –p $ mkdir ~/my-imx6/04_image/image-linux-4115 –p 4)应用程序目录 $ mkdir ~/my-demo 安装交叉编译工具链 安装Linux交叉编译工具链 1)进入交叉编译工具链目录 $ cd ~/my-imx6/03_tools/ 2)复制Linux交叉编译工具到目录 将gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar复制到“~/my-imx6/03_tools”,这一步自己采取相应的方式完成。 3)解压Linux交叉编译工具 $ tar xf gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar 4)复制交叉编译工具配置文件 将gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env复制到“~/my-imx6/03_tools”,这一步自己采取相应的方式完成。 5)检查安装 $ source gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env $ ${CROSS_COMPILE}gcc –v U-Boot编译 准备编译 复制源码包到开发主机中 将下载的“u-boot源码”复制到Linux开发主机的“~/my-imx6/02_source”。 这一步自己采取相应的方式完成。 解压u-boot源码包 $ cd ~/my-imx6/02_source/ $ tar xf u-boot-2016.03__svn121.tar.xz 编译 使编译配置文件生效 $ source ~/my-imx6/03_tools/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env 进入u-boot源码目录 $ cd ~/my-imx6/02_source/u-boot-2016.03 清除u-boot临时文件 $ make distclean 配置u-boot(configure u-boot)
执行编译 $ make 提示:这里为了提高编译速度,在make后面加了“-j4”。这里编译的Linux主机是双核4线程的,所以“-j”后面用了4,也就是采用4线程编译。“-j”后面的数字可以根据系统资源分配,但是不应该超过编译主机最大支持的线程数。
目标文件
$ ls
这里以MY-IMX6-EK200-6Q为例(把配置myimx6ek200-6q_defconfig编译生成的u-boot.imx复制为目标文件): $ cp u-boot.imx ~/my-imx6/04_image/image-linux-4115/uboot-myimx6ek200-6q.imx 编译内核 准备编译 复制源码包到开发主机中 将下载的“linux源码”复制到Linux开发主机的“~/my-imx6/02_source”。 这一步自己采取相应的方式完成。 解压linux源码包 $ cd ~/my-imx6/02_source/ $ tar xf linux-4.1.15__svn189.tar.xz 内核编译配置 使编译配置文件生效 $ source ~/my-imx6/03_tools/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf-env 清除内核临时文件
内核配置
如果是编译 MY-IMX6-EK140 的内核,请使用 $ make myimx6a7_defconfig 这里以 myimx6a9_defconfig 为例。 编译内核
$ ls arch/arm/boot/zImage -la 注意:我们烧录及启动的内核文件名为“zImage-myimx6a9”或“zImage-myimx6a7”,所以我们需要把zImage复制为zImage-myimx6a9或zImage-myimx6a7。 $ cp arch/arm/boot/zImage ~/my-imx6/04_image/image-linux-4115/zImage-myimx6a9 (A9) 或 $ cp arch/arm/boot/zImage ~/my-imx6/04_image/image-linux-4115/zImage-myimx6a7 (A7) 编译设备树 评估板型号规格与设备树文件对应关系见下表:
$ ls arch/arm/boot/dts/myimx6ek*.dtb 复制设备树文件到镜像目录 $ cp arch/arm/boot/dts/myimx6ek*.dtb ~/my-imx6/04_image/image-linux-4115/ 编译模块
$ tar cjf ../modules.tar.bz2 *
注意:如果是编译内核时配置文件使用的是 myimx6a9_defconfig,在这里要把 modules.tar.bz2 复制为 kernel-modules-myimx6a9.tar.bz2;如果是编译内核时配置文件使用的是 myimx6a7_defconfig,在这里要把 modules.tar.bz2 复制为 kernel-modules-myimx6a7.tar.bz2 应用程序编译 Linux应用程序编译 编写应用程序
$ mkdir ~/my-demo/bin-l4115 -p
$ vi hello.c 写入以下代码并保存 #include int main(int argc, char **argv) { printf("Hello, MYZR!n"); return; }
$ cat hello.c
注意:上面的命令有包含“$”号,即“${CROSS_COMPILE}gcc”,是引用我们source时产生的环境变量。
可以看到目标文件 hello.out 的属性。 保存目标可执行文件 $ mv hello.out ~/my-demo/bin-l31452/ 应用程序打包 说明 烧录工具支持烧录“my-demo.tar.xz”的文件包到评估板。所以在这里我们把我们需要的应用程序打包为“my-demo.tar.xz”。至于“my-demo.tar.xz”会被烧录到哪个位置,请看《烧录手册》。 打包应用程序 1)打包 这里我们将整个my-demo目录打包。 $ cd ~ $ tar cjf my-demo.tar.bz2 my-demo 2)复制应用程序包为目标烧录文件 $ cp my-demo.tar.bz2 ~/my-imx6/04_image/image-linux-31452/ 目标烧录文件 至此,我们在“~/my-imx6/04_image/image-linux-31452/”得到了除文件系统以外的一套烧录文件。包括“uboot*.imx”、“myimx6*.dtb”、“zImage-myimx6”、“kernel-modules.tar.bz2”、“my-demo.tar.bz2”。 现在可以参照《烧录手册》烧录我们自己编译出来的image了。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
964 浏览0 评论
1398 浏览1 评论
如何配置Linux操作系统设备树让我的开发板可以将板子上的GPIO接口用作 I2S输出??
2135 浏览1 评论
1596 浏览0 评论
2104 浏览0 评论
小黑屋|手机版|Archiver|德赢Vwin官网(湘ICP备2023018690号)
GMT+8, 2024-8-24 10:54, Processed in 0.625379 second(s), Total 35, Slave 28 queries .
Powered by德赢Vwin官网 网
© 2015bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号