Yocto开发笔记之《快速入门,环境搭建 & 编译》(QQ交流群:519230208)

时间:2022-09-04 08:43:19

开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处。

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)的更多相关文章

  1. Yocto开发笔记之《错误记录》(QQ交流群:519230208)

    QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 ============================================== 提问: 1. 怎样修改linu ...

  2. Yocto开发笔记之《Makefile编写》(QQ交流群:519230208)

    开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 =============================== ...

  3. Yocto开发笔记之《网卡配置》(QQ交流群:519230208)

    QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 ============================================== # ifconfig -a # ...

  4. Jmeter二次开发之代码环境搭建(QQ交流群:577439379)

    一.创建项目 1. 分别下载apache3.1 binaries和source两个压缩包,前者为release版本,后者为jmeter最新的源码,下载地址:http://jmeter.apache.o ...

  5. Android开发使用控件入门--环境搭建

    Android开发使用控件入门--环境搭建 软件名称(,梦,,想.CAD  ,控件) 1. 环境搭建: 3 1.1. 安装Eclipse 3 1.2. 下载JDK 3 1.3. 下载Android S ...

  6. PHP移动互联网开发笔记(1)——环境搭建及配置

    开篇说明:记得我上大二的时候第一次听到PHP,当时只知道这是一个开发网站的语言,并没有深入学习,在学了Java Web开发和Android开发之后我对互联网的发展方向有了一个我自己的认识,现在我们不能 ...

  7. 《ArcGIS Runtime SDK for &period;Net开发笔记》--介绍与环境搭建

    一. ArcGIS Runtime SDK for .NET介绍 ArcGIS Runtime SDK for .net是一款针对windows平台的开发包.能够在开发出在windows phone, ...

  8. ArcGIS API for Silverlight&sol; 开发入门 环境搭建

    Silverlight/ 开发入门 环境搭建1 Silverlight SDK下载ArcGIS API for Microsoft Silverlight/WPF ,需要注册一个ESRI Gloab ...

  9. 57&period;NodeJS入门--环境搭建 IntelliJ IDEA

    转自:https://blog.csdn.net/wang19891106/article/details/51127133 NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习N ...

  10. NodeJS入门--环境搭建 IntelliJ IDEA

    NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习NodeJS,所以以此做个笔记,欢迎大家提出意见. 1.首先 下载安装NodeJS,下载安装IntelliJ IDEA 2.接下 ...

随机推荐

  1. 如何让Advanced Installer卸载软件时保留一些文件

    http://www.advancedinstaller.com/user-guide/qa-keep-file.html You need to modify some of the resourc ...

  2. c&num; ActiveX 控件的开发

    关于ActiveX控件的开发,网上很多例子,昨天也整整研究一天才捋顺了. 网上大部分例子都是js调用控件的方法,由于要实现在html页面"相应"控件的事件,整整折腾一天. 关键点在 ...

  3. lua5&period;3调用C&sol;C&plus;&plus;

    马上面临毕业设计,打算做点跟网游有关的,先从做周边工具开始,目前正在做一个协议序列化和反序列化的东西,广告一波先: https://github.com/Anti-Magic/rproto 目前非常简 ...

  4. php 微信 统一下单 接口实例

    <?phpclass wechatAppPay { //接口API URL前缀 const API_URL_PREFIX = 'https://api.mch.weixin.qq.com'; / ...

  5. ERP-非财务人员的财务培训教&lpar;四&rpar;------公司&sol;部门的成本与费用控制

    一.损益表.资产负责表 二.成本分类 ----成本习性 三.成本核算模式 四.成本控制原则 第四部分 公司/部门的成本与费用控制   一.损益表.资产负责表   项目 Items 产品销售收入 Sal ...

  6. react-native中的setNativeProps

    如果你通过React.createClass方法自定义了一个组件,直接给它设置样式 prop 是不会生效的,你得把样式 props 层层向下传递给子组件 ,直到子组件是一个能够直接定义样式的原生组件. ...

  7. HDU4414-DFS

    给一个图,寻找十字交叉的个数,十字交叉应为两个大于3的奇数交叉与正*.图的大小很小. 使用DFS搜八连块,之后按照规则筛选出符合条件的交叉. 我的筛选规则有点蠢,先将点排序,再通过三段for循环判断 ...

  8. Class PropertyPlaceholderHelper的使用

    1.代码 private static Properties properties = new Properties(); public static String getProperties(Str ...

  9. ubuntu下安装迅雷thunder

    迅雷是windows xp下必装的下载工具,作为一款跨协议的下载软件,迅雷的下载速度极其强悍. 那么在ubuntu下能否安装迅雷呢? 到ubuntu中文论坛逛了一圈,发现有现成的wine-thunde ...

  10. R语言绘制沈阳地铁线路图

    ##使用leaflet绘制地铁线路图,要求 ##(1)图中绘制地铁线路 library(dplyr) library(leaflet) library(data.table) stations< ...