bitbake简单的helloworld expamle
2016-11-10 19:25
357 查看
http://blog.csdn.net/groundhappy/article/details/51493040
build目录里面有 bblayers.conf
bblayers.conf里面有BBPATH和BBFILES还有BBLAYERS
BBPATH是用来搜索conf配置文件和class类文件的
BBFILES定位了bb菜谱文件和 bbappend菜谱附加文件
BBLAYERS用来指定layer层的位置和数据信息。BBLAYERS是一个layer目录的list。list
里面的每个变量值指向一个layer目录。这个目录下面又有conf/layer.conf
layer.conf里面又有BBPATH以及当前层的一些配置
bitbake 希望从某一个BBPATH里面的到 conf/bitbake.conf bitbake.conf通常包含了一些其他的变量。
比如架构,机器 本地环境等等
附录A
HelloWorld Expample
A1
最简单的就是从hello world来做一个通俗的例子
A2
获取bitbake。不管你用什么方式
A3
设置环境变量 起码能让你运行bitbake
export PATH=/your/path/to/bitbake/bin:$PAHT
A4
1创建目录进入工作目录
mkdir hello
cd hello
2运行Bitbake指令
bitbake
提示
The BBPATH variable is not set and bi.........
因为没有设置BBPATH变量,所以bitbake没法找到.conf文件和.bb文件。也不能找到bitbake.conf文件
3设置BBPATH变量
BBPATH=/your/path/to/hello
export BBPATH
4再次运行bitbake提示
ERROR: Traceback (most recent call last):
.............
这是没有找到bitbake.conf文件
5之前的bitbake是拷贝的某个文件 。这里我们自己创建一个
mkdir conf
在conf目录新建一个bitbake.conf
里面填入
TMPDIR="${TOPDIR}/tmp"
CACHE ="${TMPDIR}/cache"
STAMP="{TMPDIR}/stamps"
T="{TMPDIR}/work"
B="${TMPDIR}"
TMPDIR建立了一个用于输出文件以及中间文件的目录。这个TOPDIR代表hello
所以TMPDIR就是hello/tmp http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/#an-overview-of-bitbakeconf 这个链接详细解释了bitbakeconf里面的变量可以去这里看
6再次运行bitbake
ERROR: Unable to parse xxxxx这次是base.bbclass找不到
7
bitbake最小的要求是需要这个base class类
bitbake去classes目录下找这个文件。
我们还是新建一个
mkdir classes
cat <<EOF >classes/base.bbclass
<addtask build
<EOF
关于详细的bbclass参看 http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/#tasks. 最简单的bitbake任务是执行do_build任务
8再次运行bitbake
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.
没有错误。只是提示nothing todo
所以要创建一个bb文件让他有东西do
9虽然没必要为这个简单的例子创建一个层,但是练习一下创建一个层 http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/#adding-an-example-layer. 关于创建一个层。参看上面的链接,这里创建一个叫mylayer
最简单的需要一个菜谱文件和层配置文件。这个配置文件需要在conf目录中
mkdir -p mylayer/conf
在conf目录创建一个layer.conf里面写入
BBPATH .= ":${LAYERDIR}"
BBFILES += "${LAYERDIR}/*.bb"
BBFILE_COLLECTIONS += "mylayer"
BBFILE_PATTERN_mylayer := "^${LAYERDIR}/"
接下来就是创建一个bb文件。
在mylayer里面创建一个printhello.bb
写入
DESCRIPTION = "Prints Hello World"
PN = 'printhello'
PV = '1'
python do_build() {
bb.plain("********************");
bb.plain("* *");
bb.plain("* Hello, World! *");
bb.plain("* *");
bb.plain("********************");
}
这个BB文件提供了简单的描述和版本以及名字
10再次运行 这次带菜谱运行 bitbake printhello
提示
ERROR: no recipe files to build, check your BBPATH and BBFILES?
是由于bitbake还需要bblayers.conf
11创建bblayers.conf
这个文件在conf/目录下
写入
BBLAYERS ?= " \
/home/<you>/mylayer \
"
12再次执行
bitbake printhello
输出
********************
* *
* Hello, World! *
* *
********************
特别注意配置文件以及bb文件的解析格式要准确。不然会出现各种parse错误
build目录里面有 bblayers.conf
bblayers.conf里面有BBPATH和BBFILES还有BBLAYERS
BBPATH是用来搜索conf配置文件和class类文件的
BBFILES定位了bb菜谱文件和 bbappend菜谱附加文件
BBLAYERS用来指定layer层的位置和数据信息。BBLAYERS是一个layer目录的list。list
里面的每个变量值指向一个layer目录。这个目录下面又有conf/layer.conf
layer.conf里面又有BBPATH以及当前层的一些配置
bitbake 希望从某一个BBPATH里面的到 conf/bitbake.conf bitbake.conf通常包含了一些其他的变量。
比如架构,机器 本地环境等等
附录A
HelloWorld Expample
A1
最简单的就是从hello world来做一个通俗的例子
A2
获取bitbake。不管你用什么方式
A3
设置环境变量 起码能让你运行bitbake
export PATH=/your/path/to/bitbake/bin:$PAHT
A4
1创建目录进入工作目录
mkdir hello
cd hello
2运行Bitbake指令
bitbake
提示
The BBPATH variable is not set and bi.........
因为没有设置BBPATH变量,所以bitbake没法找到.conf文件和.bb文件。也不能找到bitbake.conf文件
3设置BBPATH变量
BBPATH=/your/path/to/hello
export BBPATH
4再次运行bitbake提示
ERROR: Traceback (most recent call last):
.............
这是没有找到bitbake.conf文件
5之前的bitbake是拷贝的某个文件 。这里我们自己创建一个
mkdir conf
在conf目录新建一个bitbake.conf
里面填入
TMPDIR="${TOPDIR}/tmp"
CACHE ="${TMPDIR}/cache"
STAMP="{TMPDIR}/stamps"
T="{TMPDIR}/work"
B="${TMPDIR}"
TMPDIR建立了一个用于输出文件以及中间文件的目录。这个TOPDIR代表hello
所以TMPDIR就是hello/tmp http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/#an-overview-of-bitbakeconf 这个链接详细解释了bitbakeconf里面的变量可以去这里看
6再次运行bitbake
ERROR: Unable to parse xxxxx这次是base.bbclass找不到
7
bitbake最小的要求是需要这个base class类
bitbake去classes目录下找这个文件。
我们还是新建一个
mkdir classes
cat <<EOF >classes/base.bbclass
<addtask build
<EOF
关于详细的bbclass参看 http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/#tasks. 最简单的bitbake任务是执行do_build任务
8再次运行bitbake
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.
没有错误。只是提示nothing todo
所以要创建一个bb文件让他有东西do
9虽然没必要为这个简单的例子创建一个层,但是练习一下创建一个层 http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/#adding-an-example-layer. 关于创建一个层。参看上面的链接,这里创建一个叫mylayer
最简单的需要一个菜谱文件和层配置文件。这个配置文件需要在conf目录中
mkdir -p mylayer/conf
在conf目录创建一个layer.conf里面写入
BBPATH .= ":${LAYERDIR}"
BBFILES += "${LAYERDIR}/*.bb"
BBFILE_COLLECTIONS += "mylayer"
BBFILE_PATTERN_mylayer := "^${LAYERDIR}/"
接下来就是创建一个bb文件。
在mylayer里面创建一个printhello.bb
写入
DESCRIPTION = "Prints Hello World"
PN = 'printhello'
PV = '1'
python do_build() {
bb.plain("********************");
bb.plain("* *");
bb.plain("* Hello, World! *");
bb.plain("* *");
bb.plain("********************");
}
这个BB文件提供了简单的描述和版本以及名字
10再次运行 这次带菜谱运行 bitbake printhello
提示
ERROR: no recipe files to build, check your BBPATH and BBFILES?
是由于bitbake还需要bblayers.conf
11创建bblayers.conf
这个文件在conf/目录下
写入
BBLAYERS ?= " \
/home/<you>/mylayer \
"
12再次执行
bitbake printhello
输出
********************
* *
* Hello, World! *
* *
********************
特别注意配置文件以及bb文件的解析格式要准确。不然会出现各种parse错误
相关文章推荐
- bitbake简单的helloworld expamle
- 一步步写bitbake简单的helloworld expamle(2)
- 一个简单的"Hello World"
- 理解简单的Windows Hello World程序
- 编写和运行简单的"Hello World"操作系统内核
- Cocos2d-x简单游戏<打飞机>代码实现|第四部分:主场景<Helloworld.h>
- C#简单介绍 + helloworld
- 20060507: 视频教程:写一个简单“Hello, world”的Java程序
- python 3.4.0 简单的print 'hello world',出错--SyntaxError: invalid syntax
- ICE第二篇--一个"hello world"的简单例子
- cocos2D中HelloWorldScene.h和HelloWorldScene.cpp的简单解释
- 用Vim写一个简单的Hello,World程序
- 用C写最简单的Windows窗口程序——WINAPI HelloWorld
- Building an MPI program with Managed Build(Eclipse 下怎么创建简单的MPI hello world 程序)
- 百度地图API入门——(2)第二个超简单应用:Hello, World!
- ICE第二篇--一个"hello world"的简单例子
- jade平台下的最简单AGENT程序---hello,world!
- 百度地图API入门——(2)第二个超简单应用:Hello, World!
- hello_world-2.2之简单设备驱动模型(一)
- Cocos2d-x简单Box2d代码示例|点击碰撞>HelloWorldScene.h<代码演示>