文件名称:
嵌入式Linux系统移植开发-(1)基于Yocto构建嵌入式u-boot,内核,文件系统.pdf
开发工具:
文件大小: 760kb
下载次数: 0
上传时间: 2019-07-01
详细说明: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= MACHINE= source fsl-setup-release sh-b
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
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
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.