嵌入式Linux系统移植开发-(1)基于Yocto构建嵌入式u-boot,内核,文件系统.pdf

所需积分/C币:13 2019-07-01 14:28:00 760KB PDF
163
收藏 收藏
举报

Yocto是什么?简单地概括,它是一个工具,可以用来构建u-boot,kernel,文件系统,交叉编译工具链,等等。Yocto提供了一套完整的全面的嵌入式Linux移植解决方案。使嵌入式Linux系统移植告别了以前通过源码一步步移植的刀耕火种年代。Yocto解决了嵌入式Linux行业内各自为政的乱象,它为芯片厂家,操作系统,和设备厂商之间的协作提供广泛一致的行业支持。
Embeds Professiona/ Embeded loT Solutions Provider 重新执行以下命令,初始化repo仓厍: repo init-u git: //git. freescale. com/imx/ fsl-arm-yocto-bsp git-b imx- 4. 1-krogoth 初始化成功后,如下图所示: t/tsL-reLease-bsps repo init -u git: //git. freescale. ccm/imx/tsL-arm-yecto-bsp git -b 1mx-4 1-krogo 330 do:a 76) I patc) 13243:6F0ea 38-6UL patch scm-1mx-3.14.52-1,1.80a->orig1n/5cm-1nx-3.14.52-1.1.0_0a scm-imx-3,14.52-1,1. 1 ga -> origin/scm-1nx-3 14.5 ouridentity1s:emrbediotcenbedioto163.coms If you want to change this. please re-run ' repo init: with ---onfig-nae Testing colorized autput (for 'repo diff,, 'repo status) agenta cyan white epo has been initialized in /or to project/ fsl ubuntu命今行终端 se-hsps 重新开始进行repo仓库同步: repo sy -j8 仓库同步需要一段时问,同步完成后,如卜图所示: cents Fetching prc]ects: 100%(10/10 Fetching projects: 100%(10/10,, done. enbedicteemkediot-virtual-machine: /opt/ yocto project/fsl-release-tsps embedictcemtediot-virtual-machine: /opt/yocto_project/fsL-reLease-tsps embedictgembediot-virtual-machine: /opt/yocto project/fsl-release-bsps embedictcembediot-virtual-machine: /opt /yocto project/fsl-release-bsps I ubuntu命令行终端 (6)repo同步成功后,就可以开始进行锐像构建了,在fs- release-bsp目录下,使用以下命 令格式配置镜像的构建参数: DISTRO=<distro name> MACHINE=<machine name> source fsl-setup-release sh-b <build dir> DISTRO有以下参数可选: fsl-imx-x11 fsl-imx - wayland fsl-imx-xwayland fsl-imx-fb 在这里,我们选择fs-imx-×11这个选项,同吋注意,NXP官方不再支持 DirectFB MACHINE有以下参数可选: imx6qpsabreauto imx6qpsabresd mxbulevk imx6u|14×14evk imx6ull9xgevk imx6dlsabreauto imx6dlsabresd EmbedoT ETbedoT Professiona/ Embeded loT Solutions Provider imx6qsabreauto abresd imx6slevk imx6solosabreauto imx6solosabresd mx6sxsabresd imx6sxsabreauto imx7dsabresd 在这里,我们选择imx6uek这个选项。 最终,配置镜像构建参数的完整命令,如下所示: DISTRO=fsI-imx-x11 MACHINE=imx6ulevk source fsl-setup-release sh-b /fsl build_x11 fs- setup- release.sh是构建脚本,如脚本不可执行,需使用 chmod命令添加可执行权限。 b< build din>表示构建的在指定目录。 执行完以上的配置参数的命令后,会提示需要接受EULA协议,按空格键直到协议最后,然 后按“y”确认接受,最后,完成后如下图所示: you accept thc EULA you just rcad? ly/n) een accepted he Yocto Project has extensi entation about oe including a reference manual which can he found at ittp://yoc toro:ect. org/ documentation http://ww.openembeddtoaenembeddedseeth For more information about 0 he1 website You can now run bitbake <target> targets are din-sdk support our bui ld environment has been configured with i686 倌XX11 BUILD DIR= buiLd xlls bunu命令行终端 (7)在 Yocto这个系统中,使用 bitbake工具来进行各种系统或第三方库的构建和安装。 bitbake是一个软件组建的自动化构建工具,它可以像make命令一样控制如何构建一个系统 或解决系统构建过稈中的依赖问题。但 bitbake又不像make依赖 makefile那样单一, bitbake 可以搜集和管理大量没有依赖关系的配置描述文件(一股称为配方 recipe),然后根据这些 描述文件自动按照正确的顺序进行构建。注意: bitbake工具只能在普通用户下进行使用 在本次配置的 Yocto环境中, bitbake支持以下镜像的构建: core-image-minimal meta-toolchain meta-toolchain-sdk adt-installer meta-ide-support 在这里,我们需要构建个最小的嵌入式 Linux系统,因此,执行以下命令构建·个最小的 嵌入式 Linux系统: bitbake core-image-minimal 这个最小的嵌入式Linu系统,构建的过程非常漫长,取决于你的K速带宽和电脑配置。因 EmbedoT ETbedoT Professiona/ Embeded loT Solutions Provider 为 bitbake是一边下载一边编译的,构建过程如下图所示 linex-cnueabt stems 注意:如果构建过程中出现网络中断或关闭了构建的终端,只需要在fs}- release-bsp目 录下执行以下命令:D|STRO= fsl-imx- x11 MACHINE=mx6 ulevk source fsl-setup-release.sh -b./ fsl build_×11,重新配置构建的环境,然后再进入 fsl build×11目录下,重新执行 bitbake 命令就可以继续构建。 Yocto构建core-mage- minimal成功后,如下图所示: lemtediolQembediot-vir tual -machine: /opt/yoc Lo_project/fsl-release-bsp/fsl_build_x115 bitbake core-inaye-miininal NOTE: Your cont/bblayers, cont has be WARNING:Host distribution "Ubuntu-16 04" has not been validated with this ver sion of the build sys tem; you may pos oading cache:1θθ兴|###謀#####詩菥排#詳#罅#罅#謀蒜##排萨 oaded 2791 entries from dependency cache sing of 2215. bb files complete (2200 cached, 15 parsed). 2790 targets, 212 skipped, 5 masked, 0 errors NOTE: Resolving any missing task queue dependencies Build Configuration: BB VERSION BUILD SYS x86 64-Linux NATIVELSBSTRING ="Ubuntu-16c4" SYS arA-paky-Linux-gnueabi MACIL DISTRO 四x-X11 DISTRO VERSION 15-2,⊙,0" TUNE FEATURES fp callconvention-hard cortexal ncta- yocto "HEAD!f5d32a5913319ad6ac2141438ba1aa17576326ab" pieta-0e ncta-multimmedia HEAD: 247b1267bbe95719cd4877d2d3cfbaf2a2f4865a peta-'sl-arn ="HEAD: be78894e46820111575470rb23e5le6ba523508d ncta- fsl-arn- extra="HEAD: 3dfbe2fc7c703cac0891b3ffda0c9393701F2396 reta-f「st-deos="HEAD:a65c8f8ad1c「29adbe4b4653「28bec2dd492 ncta bsp meta-sdk HFAD: 0451819F7e07da962bd899f 5befe2Gafee1476ca meta-browser HEAD: 77736988073a5dgofcff9de005c8177332ede 387" neta-gnome peta-networking neta.python NOTE: Preparing runoueue NOTE:Executing Setscene T asks NOTE:Executing RunQueue Tasks NOTE: Tasks summary: Attempted 2077 tasks of whtch 2077 didn't need to be rerun and all succeeded 图 ntediotaembediot-virtual-machine: opt/yocto pro'ect/fsl-reLease-bsp/fsl build_ xi1s ubuntu命今行终端 (8)由于各种不可描述的原因,国内的普通网络在访问外国的源码服务器时,可能会出现 源码下载错误,源码下毂中断等笭情况,一般遇到这种情况的时候,可以先忽略其错误或警 告,等整个 Yocto构建完成后,再重新执行 bitbake。网络环境这个因素不是每个开发者都能 主导的,这个只能看运气。有条件的开发者可以不断寻找优质的网络环境。 EmbedoT ETbedoT Professiona/ Embeded loT Solutions Provider (9)最小的嵌入式 Linux系统构建完成后,在 Yocto工程的构建日录甲,已经包含了 kernel 和u-boot的源代码,以及根文件系统目录。其源码目录如下图所示: u-boot源码目录: /opt/yocto project/fsl-release-bsp/fsl build x11/tmp/work/imx6ulevk-poky-linux-gnueabi/u-bo ot-imx/2016.03-ro/git Linux kernel源码目录 /opt/yocto project/fsl-release-bsp/fsl build x11/tmp/work-shared/imxbulevkkernel-source 根文件目录 /opt/yocto project/fsl-release-bsp/fsl build x11/tmp/ deploy/images/imx6ulevk/ core-image-min imal-imx6uleyk-20190621012322 rootfs tar bz2 为了方便管理,我们把u-boot源码、 Linux kernel源码和 rootfs根文件目录统一存放在 /opt/mx6ubsp目录下,并对源码文件夹重新命名,完成后,如下图所示: ◎最近使月的 imx6ul bsp 合Home 名称 大小 广桌面 29项又件夹 6月21日 视频 rootfs-imx6ul 15项文件夹 6月21日 图片 -boot-imxou 29项又件夹 15:03 口文档 164.1MB归档 6月22日 rootfs-imx6uL tar bz2 6月21日 音乐 u boot imx6ulzip 287MB归档 6月22日 可回收站 (10)使用 Yocto除了能获取源码,还帮我们成功编译出各个源码的镜像文件,这些镜像可 以直接烧录至官方的丌发套件(imx6ul-evk)里面运行,镜像文件存放在以下目录: /opt/yocto _project/fsI-release-bsp/fsl_ build x11/tmp/deploy/images/imx6ulevk (11)至此,imx6u的最小系统,u-boot, kernel, rootfs凵经构建完成,卜一步可以基于使 用 Yocto构建的最小系统进行移植工作,以這型我们自己定制的开发板平台。在这个章节里 面,只是简单地措述了如何使用 Yocto构建ⅰMX6UL的最小系统,并且构建出来的iMX6UL 的各种镜像是以NXP官方开发套件(imX6ueVk)为基础的,对于用户自定义的开发板,还 需要进行一些移植工作,才能使u-boot, kernel, rootfs运行在自定义的开发板上。 (12) Yocto是一个很强人的构建工具,其功能不仅仅是用来获取BsP源码和简单地编译源 码,开发者还可以使用 Yocto对其开发板添加各种第三方开发库,而不需要每次都使用原始 的刀耕火种(从零开始编译源码,解决第三方依赖)方式进行开发,对开发效率的提高有很 大的帮助。也可以基于 Yocto的构建规则,把自己定义的开发板卡添加到 Yocto的构建工程 中,便于向第三方进行发布。但同时, Yocto也是个很庞大的构建系统,里面有很多基本 的构建规则需要开发者不断去熟悉才能灵活运用,遇到问题要善于使用搜索引擎去寻找答 案,最好的参考教程还是 Yocto Project的官方文档,开发者只有不断学习,不断提高,才能 把 Yocto这个工具用好,才能在开发中起到事半功倍的作用。 点击这里,访问作者博客 EmbedoT

...展开详情
试读 6P 嵌入式Linux系统移植开发-(1)基于Yocto构建嵌入式u-boot,内核,文件系统.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • GitHub

    绑定GitHub第三方账户获取
  • 分享小兵

    成功上传3个资源即可获取
关注 私信
上传资源赚积分or赚钱
    最新推荐
    嵌入式Linux系统移植开发-(1)基于Yocto构建嵌入式u-boot,内核,文件系统.pdf 13积分/C币 立即下载
    1/6
    嵌入式Linux系统移植开发-(1)基于Yocto构建嵌入式u-boot,内核,文件系统.pdf第1页
    嵌入式Linux系统移植开发-(1)基于Yocto构建嵌入式u-boot,内核,文件系统.pdf第2页

    试读结束, 可继续阅读

    13积分/C币 立即下载 >