yocto-APP开发环境搭建

内容来源:http://www.yoctoproject.org/docs/2.0/adt-manual/adt-manual.html

本文档不会逐句翻译,只会依照自己在实践当中的使用来解释一些关键的内容.

在Ubuntu1204上需要安装下面的软件包:

sudo apt-get install libtool automake libarchive-dev

第一章 ADT文档简介

这篇文章是Yocto应用软件开发的说明文档.Application Development Toolkit (ADT)

介绍ADT的配置和安装;

介绍如何使用交叉编译工具;

介绍如何安装定制的开发包.

第二章 ADT组成介绍

ADT组成结构:

1.                  ARCH相关的交叉编译工具链

2.                  目标板sysroot

3.                  Eclipse 插件

4.                  QEMU 模拟器

5.                  大量的用户层工具包

第三章APP开发环境准备

3.1安装ADT和 工具链

3.1.1通过adt-installer安装

3.1.1.1 获取adt-installer

·       互联网下载:

http://downloads.yoctoproject.org/releases/yocto/yocto-2.0/adt-installer

·       编译:

$ cd ~
$ git clone git://git.yoctoproject.org/poky
$ cd poky
$ git checkout -b jethro origin/jethro
$ source oe-init-build-env
$ bitbake adt-installer

可以获得:build/tmp/deploy/sdk/adt_installer.tar.bz2

3.1.1.2 配置和使用adt-installer

·       命令

$ cd ~
$ cp poky/build/tmp/deploy/sdk/adt_installer.tar.bz2 $HOME
$ tar -xjf adt_installer.tar.bz2
$ cd adt-installer
$ ./adt_installer

默认安装路径: /opt/poky/release

·       配置ADT

####adt_installer.conf###########
#定义了yoctoIPKG包的来源
#自己编译的可以配置成YOCTOADT_REPO="$$/build/tmp/deploy/images/qemux86"
YOCTOADT_REPO=http://adtrepo.yoctoproject.org//2.0
#定义你想要支持那些 Arch的交叉编译环境
YOCTOADT_TARGETS="arm x86"
#定义是否需要安装qemu工具
YOCTOADT_QEMU="Y"
#定义是否需要安装user-mode NFS
YOCTOADT_NFS_UTIL="Y"
 
###下面的的arm可以换成x86###
#定义期望从REPO获得该Arch的文件系统类型
YOCTOADT_ROOTFS_arm="minimal sato-sdk"
#定义特定的文件系统被使用和解压.如这里使用的是上面定义的2种之一.
YOCTOADT_TARGET_SYSROOT_IMAGE_arm="sato-sdk"
YOCTOADT_TARGET_MACHINE_arm="qemuarm"
YOCTOADT_TARGET_SYSROOT_LOC_arm="$HOME/test-yocto/$YOCTOADT_TARGET_MACHINE_arm"
 

3.1.2 使用Cross-Toolchain tarball

·       互联网下载:

http://downloads.yoctoproject.org/releases/yocto/yocto-2.0/toolchain/ 选择想要交叉工具脚本.

例如: 准备给x86_64提供编译的工具: poky-glibc-x86_64-core-image-sato-i586-toolchain-2.0.sh

 

默认安装路径: /opt/poky/2.0

 

3.1.3 使用bitbake和编译目录

·       建立编译环境

Source  “oe-init-build-env” 或者  “oe-init-build-env-memres”.

·       修改conf/local.conf

·       确保需要使用的layers ,   conf/bblayers.conf

·       生成交叉编译工具

$ bitbake meta-ide-support

得到:tmp/environment-setup-i586-poky-linux & tmp/sysroots/

3.2 配置交叉开发环境

使用3.1.2或者3.1.3得到的文件environment-setup-i586-poky-linux, 该文件定义了许多必须的环境变量.

3.3 Linux 内核文件和文件系统

3.3.1 获取内核文件

·       互联网下载:

http://downloads.yoctoproject.org/releases/yocto/yocto-2.0/machines

·       工程编译

$ git clone git://git.yoctoproject.org/poky
$ git checkout jethro
$ source oe-init-build-env
$ bitbake core-image-sato

3.3.2解压文件系统

$ cd ~
$ source /opt/poky/2.0/environment-setup-i586-poky-linux
$ runqemu-extract-sdk ~/Downloads/core-image-sato-sdk-qemux86-2011091411831.rootfs.tar.bz2  $HOME/qemux86-sato

3.4. Optionally Building a Toolchain Installer

$ bitbake meta-toolchain
或者
$ bitbake core-image-sato -c populate_sdk
 
 
tmp/deploy/sdk/poky-glibc-x86_64-meta-toolchain-i586-toolchain-2.0.1.sh

3.5. Optionally Using an External Toolchain

实例:http://github.com/MentorEmbedded/meta-sourcery/

3.6. 实例: qemu使用已编译好的Binaries 

3.6.1 安装Toolchain

$ bitbake core-image-sato -c populate_sdk
 
tmp/deploy/sdk/poky-glibc-x86_64-meta-toolchain-i586-toolchain-2.0.1.sh

3.6.2  下载已编译的Kernel文件

tmp/deploy/images/qemux86/bzImage-qemux86.bin

3.6.3  下载已编译的Rootfs文件

tmp/deploy/images/qemux86/core-image-sato-qemux86.tar.bz2
tmp/deploy/images/qemux86/core-image-sato-qemux86.ext4

3.6.4  配置环境并启动QEMU

$ cd $HOME
$ source /opt/poky/2.0/environment-setup-i586-poky-linux
$ runqemu qemux86 bzImage-qemux86.bin core-image-sato-qemux86.ext4

第四章OptionallyCustomizing the Development Packages Installation

4.1. PackageManagement Systems

4.2.Configuring the PMS

第五章 命令行使用

5.1 Autotools-Based Projects

5.1.1 创建和运行一个hello工程基于GNUAutotool

·       创建工作目录

$ mkdir $HOME/helloworld

$ cd $HOME/helloworld

·       新建文件hello.c

#include

main()

{

printf("Hello World!\n");

}

·       新建文件Makefile.am

bin_PROGRAMS = hello

hello_SOURCES = hello.c

·       新建文件configure.in

AC_INIT(hello.c)

AM_INIT_AUTOMAKE(hello,0.1)

AC_PROG_CC

AC_PROG_INSTALL

AC_OUTPUT(Makefile)

·       Source 环境变量

$ source/opt/poky/2.0/environment-setup-i586-poky-linux

·       生成localaclocal.m4

$ aclocal

$ autoconf

·       建立GUN编码规范的文件

touch NEWSREADME AUTHORS ChangeLog

·       生成configure 文件

$ automake -a

·       交叉配置工程

$ ./configure${CONFIGURE_FLAGS}

·       编译.安装工程

$ make

$ make install DESTDIR=./tmp

5.1.2      传递host信息

$ ./configure --host=armv5te-poky-linux-gnueabi --with-libtool-sysroot=sysroot_dir

5.2. 基于Makefile的工程

CC=i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/1.8/sysroots/i586-poky-linux
 
LD=i586-poky-linux-ld --sysroot=/opt/poky/1.8/sysroots/i586-poky-linux
 
CFLAGS=-O2 -pipe -g -feliminate-unused-debug-types
 
CXXFLAGS=-O2 -pipe -g -feliminate-unused-debug-types

 

 

你可能感兴趣的:(Yocto)