“Linux-4.14.98编译手册”的版本间的差异
(未显示2个用户的33个中间版本) | |||
第1行: | 第1行: | ||
− | === | + | ==Yocto介绍== |
+ | Yocto项目是一个开源协作项目,可帮助开发人员创建基于Linux的定制系统,这些系统专为嵌入式产品而设计,无论产品的硬件架构如何。Yocto Project提供灵活的工具集和开发环境,允许全球的嵌入式设备开发人员通过共享技术,软件堆栈,配置和用于创建这些定制的Linux映像的最佳实践进行协作。 | ||
+ | <br/> | ||
+ | 全球数以千计的开发人员发现Yocto Project在系统和应用程序开发,归档和管理优势以及用于速度,占用空间和内存利用率的自定义方面都具有优势。该项目是提供嵌入式软件堆栈的标准。该项目允许软件定制和多个硬件平台的构建交换以及可以维护和扩展的软件堆栈。 | ||
+ | |||
+ | ==Yocto镜像编译== | ||
+ | 编译yocto工程前需要先部署Linux开发环境,请参考[[Ubuntu-16.04.6 64位开发环境指导|《Ubuntu-16.04 64位开发环境指导》]] | ||
+ | |||
+ | ===Yocto编译完整镜像=== | ||
+ | 在网盘上下载ltt-imx8m-evm100-yocto.tar.gz,指定fsl-image-qt5-validation-imx 目标进行编译,命令如下: | ||
+ | <pre style="color: #3e45a9"> | ||
+ | $ tar -zxvf ltt-imx8m-evm100-yocto.tar.gz | ||
+ | $ cd ltt-imx8m-evm100-yocto | ||
+ | $ DISTRO=fsl-imx-xwayland MACHINE=imx8mqevk source fsl-setup-release.sh -b build-xwayland | ||
+ | $ bitbake fsl-image-qt5-validation-imx | ||
+ | </pre> | ||
+ | 第一次编译Yocto时会非常耗时,在网速好的情况下也需要好几个小时, 如果编译中途出错,可以ctrl+c中断后,重新执行命令 | ||
+ | <pre style="color: #3e45a9"> | ||
+ | $ bitbake fsl-image-qt5-validation-imx | ||
+ | </pre> | ||
+ | 如果编译过程中无意关掉了终端,那么重新打开终端进入ltt-imx8m-evm100-yocto目录后只需要执行以下命令就可以重新进入编译环境 | ||
+ | <pre style="color: #3e45a9"> | ||
+ | $ source setup-environment build-xwayland | ||
+ | </pre> | ||
+ | 编译完成后,可在下面的目录中找到编译好的.sdcard.bz2镜像文件 | ||
+ | <pre style="color: #3e45a9"> | ||
+ | ltt-imx8m-evm100-yocto/build-xwayland/tmp/deploy/images/imx8mqevk | ||
+ | </pre> | ||
+ | 编译出来的fsl-image-qt5-validation-imx-imx8mqevk.sdcard.bz2 需要先解压缩,得到fsl-image-qt5-validation-imx-imx8mqevk.rootfs.sdcard文件 | ||
+ | <pre style="color: #3e45a9"> | ||
+ | $ bunzip2 -d -f fsl-image-qt5-validation-imx-imx8mqevk.rootfs.sdcard.bz2 | ||
+ | </pre> | ||
+ | |||
+ | Yocto编译过程中可能会报错,看看报的是哪个地方的错误,可以先clean掉这个recipes,再单独编译这个recipes,许多错误都可以解决。比如: | ||
+ | <pre style="color: #3e45a9"> | ||
+ | ERROR: Task (/home/ydf/yocto/4.14.98/sources/meta-qt5/recipes-qt/qt5/qtbase-native_git.bb:do_configure) failed with exit code '1' | ||
+ | $ bitbake -c cleansstate qtbase-native_git | ||
+ | $ bitbake qtbase-native_git | ||
+ | </pre> | ||
+ | |||
+ | ===Yocto编译U-Boot=== | ||
+ | uboot源码在ltt-imx8m-evm100-yocto/uboot-imx目录下,编译uboot时,要在sources/meta-fsl-bsp-release/imx/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2018.03.bb文件中进行修改,把想要编译的分支和commit节点进行替换 | ||
+ | <pre style="color: #3e45a9"> | ||
+ | SRCBRANCH = "imx_v2018.03_4.14.98_2.0.0_ga" //分支名 | ||
+ | SRCREV = "0f6d1c4ae2ba545ddc08913475faae36b864d2c4" //commit节点 | ||
+ | </pre> | ||
+ | 在uboot-imx目录下使用如下命令查看git分支和commit节点 | ||
+ | <pre style="color: #3e45a9"> | ||
+ | $ git branch | ||
+ | $ git log | ||
+ | </pre> | ||
+ | 配置完成后,就可以通过yocto来编译imx-boot,命令如下: | ||
+ | <pre style="color: #3e45a9"> | ||
+ | $ cd ltt-imx8m-evm100-yocto | ||
+ | $ source setup-environment build-xwayland | ||
+ | $ bitbake -c cleansstate u-boot | ||
+ | $ bitbake -c compile u-boot -f | ||
+ | $ bitbake -c deploy u-boot | ||
+ | $ bitbake imx-boot | ||
+ | </pre> | ||
+ | 编译完后,镜像文件生成目录如下: | ||
<pre style="color: #3e45a9"> | <pre style="color: #3e45a9"> | ||
− | + | build-xwayland/tmp/deploy/images/imx8mqevk/imx-boot-imx8mqevk-sd.bin | |
</pre> | </pre> | ||
− | === | + | ===Yocto编译Kernel和dtb=== |
+ | Kernel源码在ltt-imx8m-evm100-yocto/linux-imx目录下,编译Kernel时,要在sources/meta-fsl-bsp-release/imx/meta-bsp/recipes-kernel/linux/linux-imx-src-4.14.98.inc文件中进行修改,把想要编译的分支和commit节点进行替换 | ||
+ | <pre style="color: #3e45a9"> | ||
+ | SRCBRANCH = "ltt_fsl_4.14.98" //分支名 | ||
+ | SRCREV = "1a4c66e7a41dc45571dd7f82979db8f103e39703" //commit节点 | ||
+ | </pre> | ||
+ | 在linux-imx目录下使用如下命令查看git分支和commit节点 | ||
+ | <pre style="color: #3e45a9"> | ||
+ | $ git branch | ||
+ | $ git log | ||
+ | </pre> | ||
+ | 配置完成后,编译命令如下: | ||
+ | <pre style="color: #3e45a9"> | ||
+ | $ cd fsl-release-yocto | ||
+ | $ source setup-environment build-xwayland | ||
+ | $ bitbake -c cleansstate virtual/kernel | ||
+ | $ bitbake -c patch virtual/kernel | ||
+ | $ bitbake -c compile virtual/kernel -f | ||
+ | </pre> | ||
+ | 编译完后,镜像文件生成目录如下: | ||
+ | <pre style="color: #3e45a9"> | ||
+ | build-xwayland/tmp/work/imx8mqevk-poky-linux/linux-imx/4.14.98-r0/build/arch/arm64/boot //Image目录 | ||
+ | build-xwayland/tmp/work/imx8mqevk-poky-linux/linux-imx/4.14.98-r0/build/arch/arm64/boot/dts/freescale //dtb目录 | ||
+ | </pre> |
2020年1月16日 (四) 14:07的最新版本
Yocto介绍
Yocto项目是一个开源协作项目,可帮助开发人员创建基于Linux的定制系统,这些系统专为嵌入式产品而设计,无论产品的硬件架构如何。Yocto Project提供灵活的工具集和开发环境,允许全球的嵌入式设备开发人员通过共享技术,软件堆栈,配置和用于创建这些定制的Linux映像的最佳实践进行协作。
全球数以千计的开发人员发现Yocto Project在系统和应用程序开发,归档和管理优势以及用于速度,占用空间和内存利用率的自定义方面都具有优势。该项目是提供嵌入式软件堆栈的标准。该项目允许软件定制和多个硬件平台的构建交换以及可以维护和扩展的软件堆栈。
Yocto镜像编译
编译yocto工程前需要先部署Linux开发环境,请参考《Ubuntu-16.04 64位开发环境指导》
Yocto编译完整镜像
在网盘上下载ltt-imx8m-evm100-yocto.tar.gz,指定fsl-image-qt5-validation-imx 目标进行编译,命令如下:
$ tar -zxvf ltt-imx8m-evm100-yocto.tar.gz $ cd ltt-imx8m-evm100-yocto $ DISTRO=fsl-imx-xwayland MACHINE=imx8mqevk source fsl-setup-release.sh -b build-xwayland $ bitbake fsl-image-qt5-validation-imx
第一次编译Yocto时会非常耗时,在网速好的情况下也需要好几个小时, 如果编译中途出错,可以ctrl+c中断后,重新执行命令
$ bitbake fsl-image-qt5-validation-imx
如果编译过程中无意关掉了终端,那么重新打开终端进入ltt-imx8m-evm100-yocto目录后只需要执行以下命令就可以重新进入编译环境
$ source setup-environment build-xwayland
编译完成后,可在下面的目录中找到编译好的.sdcard.bz2镜像文件
ltt-imx8m-evm100-yocto/build-xwayland/tmp/deploy/images/imx8mqevk
编译出来的fsl-image-qt5-validation-imx-imx8mqevk.sdcard.bz2 需要先解压缩,得到fsl-image-qt5-validation-imx-imx8mqevk.rootfs.sdcard文件
$ bunzip2 -d -f fsl-image-qt5-validation-imx-imx8mqevk.rootfs.sdcard.bz2
Yocto编译过程中可能会报错,看看报的是哪个地方的错误,可以先clean掉这个recipes,再单独编译这个recipes,许多错误都可以解决。比如:
ERROR: Task (/home/ydf/yocto/4.14.98/sources/meta-qt5/recipes-qt/qt5/qtbase-native_git.bb:do_configure) failed with exit code '1' $ bitbake -c cleansstate qtbase-native_git $ bitbake qtbase-native_git
Yocto编译U-Boot
uboot源码在ltt-imx8m-evm100-yocto/uboot-imx目录下,编译uboot时,要在sources/meta-fsl-bsp-release/imx/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2018.03.bb文件中进行修改,把想要编译的分支和commit节点进行替换
SRCBRANCH = "imx_v2018.03_4.14.98_2.0.0_ga" //分支名 SRCREV = "0f6d1c4ae2ba545ddc08913475faae36b864d2c4" //commit节点
在uboot-imx目录下使用如下命令查看git分支和commit节点
$ git branch $ git log
配置完成后,就可以通过yocto来编译imx-boot,命令如下:
$ cd ltt-imx8m-evm100-yocto $ source setup-environment build-xwayland $ bitbake -c cleansstate u-boot $ bitbake -c compile u-boot -f $ bitbake -c deploy u-boot $ bitbake imx-boot
编译完后,镜像文件生成目录如下:
build-xwayland/tmp/deploy/images/imx8mqevk/imx-boot-imx8mqevk-sd.bin
Yocto编译Kernel和dtb
Kernel源码在ltt-imx8m-evm100-yocto/linux-imx目录下,编译Kernel时,要在sources/meta-fsl-bsp-release/imx/meta-bsp/recipes-kernel/linux/linux-imx-src-4.14.98.inc文件中进行修改,把想要编译的分支和commit节点进行替换
SRCBRANCH = "ltt_fsl_4.14.98" //分支名 SRCREV = "1a4c66e7a41dc45571dd7f82979db8f103e39703" //commit节点
在linux-imx目录下使用如下命令查看git分支和commit节点
$ git branch $ git log
配置完成后,编译命令如下:
$ cd fsl-release-yocto $ source setup-environment build-xwayland $ bitbake -c cleansstate virtual/kernel $ bitbake -c patch virtual/kernel $ bitbake -c compile virtual/kernel -f
编译完后,镜像文件生成目录如下:
build-xwayland/tmp/work/imx8mqevk-poky-linux/linux-imx/4.14.98-r0/build/arch/arm64/boot //Image目录 build-xwayland/tmp/work/imx8mqevk-poky-linux/linux-imx/4.14.98-r0/build/arch/arm64/boot/dts/freescale //dtb目录