Yocto开发笔记之《快速入门,环境搭建 & 编译》(QQ交流群:519230208)
开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处。
QQ群:,为避免广告骚扰,申请时请注明 “开发者” 字样
========================================================
主机系统:Ubuntu 14.04
开发板子:freescale 6ul,http://freescale.github.io/#contributing
Yocto : www.yoctoproject.org/
IDE:eclipse
========================================================
工程获取、编译:
1. 翻墙:
教程:https://www.jsqgreen.com/shiyong/67.html,
网关:a.jpgjsq.com
2. Host工具
# sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat libsdl1.-dev
# sudo apt-get install libsdl1.-dev xterm sed cvs subversion coreutils texi2html \
docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils \
libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc
# sudo apt-get install u-boot-tools
3. repo
# mkdir ~/bin (this step may not be needed if the bin folder already exists)
# curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
# chmod a+x ~/bin/repo
# export PATH=~/bin:$PATH # git config --global user.name "Your Name"
# git config --global user.email "Your Email"
# git config --list # mkdir fsl-release-bsp
# cd fsl-release-bsp
# repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.14.38-6UL_ga
# repo sync
4. comlipe project
# MACHINE=imx6ulevk source fsl-setup-release.sh -b <build dir>
# bitbake fsl-image-gui
========================================================
烧写《i.MX_Linux_User's_Guide.pdf》
Image结构
. Bootloader (U-boot) ---> U-boot-[platform]-[board]_[machine_configeration].imx
. Linux kernel image (zImage) ---> 3.14.,所有平台一致
. A Device tree file --->
配置:arch/arm/boot/dts ---> *.dts
zImage: [kernel]-[platform]-[board][configuration].dtb
. A root file system (rootfs) ---> Busy common libs, fundermental element
Image Layout (boot from SD/MMC) (4G flash need)
0x400 0x09FFC00 bytes RAW u-boot
0xa00000 500Mbytes FAT kernel image & *.dtb
0x25800000 Remaning space ext3/ext4 rootfs
SD卡烧写
# cat proc/partitions // 查看
# sudo dd if=<.sdcard image> of=/dev/sdx bs=1M conv=fsync // 烧写到sdcard
========================================================
========================================================
纪录
bitbake编译命令
# bitbake -c cleansstate u-boot
# bitbake -c path u-boot // 如此才可以从本地编译,否则会从网上fetch代码
# bitbake -e u-boot | grep ^S= // 获取u-boot的代码路径,进入后可以修改
# bitbake -c compile -f u-boot >> log.txt //将输出结果显示在log.txt中
# bitbake u-boot
# bitbake -c cleansstate virtual/kernel
# bitbake -c patch virtual/kernel
# bitbake -e virtual/kernel | grep ^S=
# update KERNEL_DEFCONFIG variable in meta-fsl-ppc/conf/machine/<machine>.conf // 修改kernel defconfig
# update KERNEL_DEVICETREE variable in meta-fsl-ppc/conf/machine/<machine>.conf // 修改dts
# bitbake -c menuconfig virtual/kernel
# screen -r devshell
# bitbake # bitbake -c menuconfig virtual/kernel
# screen -r devshell
# bitbake -c compile -f virtual/kernel
# bitbake virtual/kernel # bitbake -b imx-test_3.10.17-1.0. -c compile -f
# bitbake -b imx-test_3.10.17-1.0. -c install # bitbake recipe -c listtasks // 查看task列表
make clean // 删除大多数的编译生成文件, 但是会保留内核的配置文件.config, 还有足够的编译支持来建立扩展模块
make mrproper // 删除所有的编译生成文件, 还有内核配置文件, 再加上各种备份文件
make distclean // mrproper 删除的文件, 加上编辑备份文件和一些补丁文件。 执行make mrproper, 会先执行make clean, 执行make distclean之前, 会先执行make mrproper。
包的位置
# bitbake -e virtual/kernel | grep ^S=
S="/media/summer/fsl-release-bsp/build-x11/tmp/work/imx6ulevk-poky-linux-gnueabi/linux-imx/3.14.38-r0/git"
====================================================================
理解 shared state cache
Poky通过scratch编译所有的东西,除非bitbake认为某个recipe不需要重新编译。shared state cache存放了一些中间产物,当bitbake编译内容时,先查看这个文件夹中有没有需要的中间文件。这个文件随着编译次数增多变大,我们时刻记住要定时清空它。当我们需要从scratch重新编译的时候,我们可以删除build/tmp文件夹,这样会通过sstate-cache加速编译过程,也可以把sstate-cache也删除掉,这样不会有cache文件被复用。
# ./scripts/sstate-cache-management.sh --remove-duplicated -d --cache-dir=<path to sstate-cached> // this removes the duplicated and old data from the cache
====================================================================
Yocto Project complier:
1. ubuntu has "sudo" installed
2. needed packages:
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat libsdl1.2-dev xter
3.1 Host packages
A Yocto Project build requires that some packages be installed for the build that are documented under the Yocto Project. You can go to Yocto Project Quick Start and check for the packages that must be installed for your build machine.
Essential Yocto Project host packages are:
Freescale Yocto Project User's Guide, Rev. L3.14.38_6ul-ga, 09/2015
 Freescale Semiconductor, Inc.
Yocto Project Setup
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat libsdl1.-dev
i.MX layers host packages for a Ubuntu 12.04 or 14.04 host setup are:
$ sudo apt-get install libsdl1.-dev xterm sed cvs subversion coreutils texi2html \
docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils \
libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc
i.MX layers host packages for a Ubuntu 12.04 host setup only are:
$ sudo apt-get install uboot-mkimage
i.MX layers host packages for a Ubuntu 14.04 host setup only are:
$ sudo apt-get install u-boot-tools
The configuration tool uses the default version of grep that is on your build machine. If there is a different version of grep in your path, it may cause builds to fail. One workaround is to rename the special version to something not containing "grep".
3. 获取工程代码
$ git clone git://git.yoctoproject.org/poky
Cloning into 'poky'...
remote: Counting objects: 226790, done.
remote: Compressing objects: 100% (57465/57465), done.
remote: Total 226790 (delta 165212), reused 225887 (delta 164327)
Receiving objects: 100% (226790/226790), 100.98 MiB | 263 KiB/s, done.
Resolving deltas: 100% (165212/165212), done.
$ git checkout jethro 因为我们要获取板子对应的工程,所以不用以上方式,直接按照开发板的快速指南,下载repo,直接run.
4. Initialize the build enviroment
$ source oe-init-build-env
=======================================================
summer@summer-ThinkPad-X230:~/fsl-community-bsp$ . ./setup-environment fsl_linux_project/
Welcome to Freescale Community BSP
The Yocto Project has extensive documentation about OE including a
reference manual which can be found at:
http://yoctoproject.org/documentation
For more information about OpenEmbedded see their website:
http://www.openembedded.org/
You can now run 'bitbake <target>'
Common targets are:
core-image-minimal
meta-toolchain
meta-toolchain-sdk
adt-installer
meta-ide-support
编译问题纪录:
没有lsusb、file等命令
之前的helloworld程序在这儿不能运行
Yocto开发笔记之《快速入门,环境搭建 & 编译》(QQ交流群:519230208)的更多相关文章
- 运维开发笔记整理-URL配置
运维开发笔记整理-URL配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.URL路由 对于高质量的Web应用来说,使用简洁,优雅的URL的路由是一个非常值得重视的细节.Dja ...
- Yocto开发笔记之《根文件系统裁剪》(QQ交流群:519230208)
开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 =============================== ...
- Yocto开发笔记之《嵌入式linux libcurl编程》(QQ交流群:519230208)
开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 =============================== ...
- Yocto开发笔记之《Makefile编写》(QQ交流群:519230208)
开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 =============================== ...
- Yocto开发笔记之《驱动调试-GPS数据采集》(QQ交流群:519230208)
开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 =============================== ...
- Yocto开发笔记之《Tip-bitbake常用命令》(QQ交流群:519230208)
开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 =============================== ...
- [Openwrt 项目开发笔记]:MySQL配置(六)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 在本人的项目中,运行在路由器上的服务器采用Ngi ...
- 《linux就该这么学》课堂笔记12 网卡配置、防火墙配置
1.网卡配置(四种方法,选其一即可,配置后须重启网络服务使其生效) 1)修改配置文件./etc/sysconfig/network-scripts/ifcfg-网卡名称 2)nmtui [RHEL7] ...
- Yocto开发笔记之《网卡配置》(QQ交流群:519230208)
QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 ============================================== # ifconfig -a # ...
随机推荐
- iOS -- cocopods使用
- 生产环境下案例 No space left on device (inode使用满的情况)
第一种情况: 问题: 如果想磁盘写入数据提示如下错误: No space left on device. 通过df -h查看磁盘空间,发现没满,请问可能原因是什么? 解答: 可能是inode数量被消耗 ...
- Beta版本冲刺———第一天
会议照片: 项目燃尽图: 1.项目进展: 昨天的困难:对2048项目中方块颜色的调整 今天解决的进度:调整了方块的颜色,原来用UIColor.(颜色名)color颜色效果不是很好,现在改用了RGB调色 ...
- ASP.NET利用WINRar实现在线解压缩文件
一.肯定是服务器必须装了winrar这个软件了. 二.创建Helper类,如下: using System; using System.Collections.Generic; using Syste ...
- 对象关系映射ORM
对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效 ...
- python练习之购物车脚本
# -*- coding:utf-8 -*- #简单的购物车小程序 author:李瑞鑫 shopping_car =[] product_list_tatol = "---product ...
- Canvas是什么
Canvas 是通过 JavaScript 来绘制 2D 图形,是 HTML 5 中新增的元素. Canvas 有如下特点: 绘制的是位图,图像放大后会失真. 不支持事件处理器. 能够以 .png 或 ...
- Google Android 6.0 权限完全解析
注:本文只针对Google原生Android系统有效, 小米魅族等手机有自己的权限机制, 可能不适用 一.运行时权限的变化及特点 新的权限机制更好的保护了用户的隐私,Google将权限分为两类,一类是 ...
- 使用MVVM框架时,如何处理在页面动态渲染完之后需要发生的事件呢?
在项目实践过程中,当我们使用如avalon这样的MVVM框架时,通常会发现一直会有个问题. 过往的经验告诉我们,想在页面加载完之后处理些事件我们可以绑定document的ready方法或者使用jque ...
- Yii2的Debug工具
yii2的Debug工具 调用 r=debug 可以对程序进行性能分析,从而对程序进行改良 (1)数据库某条sql语句的执行时间 (2)debug的profiling标签 \YII::beginP ...