Yocto项目(imx6dl处理器)的使用
2017-09-01 11:19
411 查看
前言
Yocto项目的神奇地方在于,当你需要移植什么软件的时候,只需配置recipes(食谱、方法),它就会帮你编译出来!神奇吧,本文主要记录yocto项目的使用方法以及遇到的问题及解决办法。实验环境:VM+ubuntu14.04
实验平台:恩智浦imx6dl处理器
Linux内核版本:3.14.28
Yocto版本:1.7
注意:磁盘空间最少分配100g,推荐150g,否则会不够用!
问题一:按照文档下载源码,做不通怎么办?
被墙了!翻墙或换个地址。$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
官网给出的地址需要翻墙才能下载,所以换个地址:
curl http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo > ~/bin/repo
$ repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.10.53-1.1.0_ga
这个地址网络链接失败,官方文档地址也不管用,醉了。。。
所以经过不断搜索,找到可用地址:repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.14.28-1.0.0_ga
//下拉Repo管理的项目代码:repo init -u xxxx(xxxl文件决定初始化的项目)
——————以上内容采自其他博客,都是改的这个地址。
配置与编译
文档中有这么一句话:The command below is used to set up a directory and configuration files for the specified board and backend. After this step, the build environment is initialized and configured for building an image. $ MACHINE=<machine name> source fsl-setup-release.sh -b <build dir> -e <backend>
我采用的是:
MACHINE=imx6dlsabresd source fsl-setup-release.sh -b build-wayland -e wayland
以供参考!
-b、-e含义如下:
• -b sets the build directory. -b < build dir > • -e sets the graphical back end for frame buffer and direct fb images. X11 is default if no backend is set. • -e fb • -e dfb • -e wayland • -e x11
配置完后,可以进行编译操作
执行:bitbake fsl-image-qt5 即可。
Yocto License问题:restricted license not whitelisted in LICENSE_FLAGS_WHITELIST
在config/local.conf文件添加:LICENSE_FLAGS_WHITELIST="commercial"
即可。有一个问题就是local.conf这个文件,在环境变量声明的时候会刷新,所以当执行完:
MACHINE=imx6dlsabresd source fsl-setup-release.sh -b build-wayland -e wayland
后,还需要重新添加。
bitbake命令的使用
文件系统、内核全编译:bitbake fsl-image-qt5内核配置:
bitbake -c menuconfig -f linux-imx
编译内核命令:
bitbake -c compile -f linux-imx
bitbake -c deploy -f linux-imx
编译工具链:
bitbake meta-toolchain
bitbake meta-toolchain-qt5
清理特定软件包:
bitbake -c cleansstate bluez4
bitbake -c cleansstate bluez-hcidump
清理全部:
bitbake -c cleansall
bitbake -c cleansstate
make menuconfig 出错:
apt-get install lsb-core
查看可用chain,以blue为例:
bitbake -s |grep blue
一些路径介绍
编译结果路径:fsl_6dl_source/build-wayland/tmp/deploy/images/imx6dlsabresd/
文件系统路径:(但好像改完没啥作用!)
fsl_6dl_source/build-wayland/tmp/work/imx6dlsabresd-poky-linux-gnueabi/fsl-image-qt5/1.0-r0/rootfs/
yocto Linux内核路径:
fsl_6dl_source/build-wayland/tmp/work/imx6dlsabresd-poky-linux-gnueabi/linux-imx/3.14.28-r0/git
rootfs路径:
fsl_6dl_so
befa
urce/build-wayland/tmp/deploy/images/imx6dlsabresd/fsl-image-qt5-imx6dlsabresd.tar.bz2
添加编译选项
配置文件位置(永久添加):fsl_6dl_source/sources/meta-fsl-bsp-release/imx/meta-fsl-demos/recipes-fsl/images/fsl-image-qt5.bb
例如添加:
QT5_IMAGE_INSTALL = “ppp\
openssh-sftp-server\
\”
或:
vi fsl-6dl-source/sources/meta-fsl-bsp-release/imx/meta-fsl-demos/recipes-fsl/images/fsl-image-gui.bb
IMAGE_INSTALL += ” \
X11IMAGEINSTALL {X11_IMAGE_INSTALL_GRAPHICS} \
DFBIMAGEINSTALL {WAYLAND_IMAGE_INSTALL} \
${MM_IMAGE_INSTALL} \
packagegroup-fsl-tools-gpu \
packagegroup-fsl-tools-gpu-external \
packagegroup-fsl-tools-testapps \
packagegroup-fsl-tools-benchmark \
ppp \
openssh-sftp-server \
”
还有一个路径:
/sources/meta-fsl-bsp-release/imx/meta-fsl-arm
临时配置(
MACHINE=imx6dlsabresd source fsl-setup-release.sh -b build-wayland -e wayland之后就没了):
fsl-6dl-source/build-wayland/conf/local.conf
例如添加:
IMAGE_INSTALL_append += “openssh-sftp-server”
openssh-sftp-server openssh-sftp
IMAGE_INSTALL_append += “ppp”
Linux内核自启动文件,是rootfs中的路径:
vim ./etc/rc2.d/S99rc.local
yocto 蓝牙文档:
fsl-6dl-source/sources/meta-fsl-bsp-release/imx/meta-fsl-bluez/readme-bluez.txt
交叉编译工具环境变量声明:
source /opt/poky/1.7/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi
imx6交叉编译工具:
arm-poky-linux-gnueabi-gcc -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 –sysroot=/opt/poky/1.7/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi
相关文章推荐
- 谈谈asp.net项目中对Excel报表的使用心得
- eclipse如何使用git从远程仓库clone项目?
- 使用MyEclipse开发Java EE应用:用XDoclet创建EJB 2 Session Bean项目(三)
- 使用atchetype生成maven项目骨架
- 在web项目中使用MarkDown组件
- GitHub基本使用:通过eclipse创建、共享项目到GitHub
- vs.net web项目使用visual source safe进行源代码管理
- 在java项目中使用log4j的实例
- 使用SVN项目时,删除所有.svn文件夹
- 使用Hibernate的项目中对VO的理解
- 使用 maven 部署项目到私服 nexus 出现 Deployment failed 问题的解决方法
- zhihu-spider之RabbitMQ——zhihu-spider开源项目使用技术详解(其五)
- 使用Spring框架的12个开源项目【转】
- 使用Visual Studio Team Services敏捷规划和项目组合管理(二)——VSTS中的工作项
- 使用myeclipse新建maven web 项目
- vs2015使用向导创建SOUI项目问题记录
- 如何在C#项目中使用NHibernate
- Android Studio如何在项目中使用jni以及OpenCV库
- android 为什么谷歌官方不建议在项目中使用 Enum
- .NET Core Tools转向使用MSBuild项目格式