文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>安装openmoko from scratch

安装openmoko from scratch

时间:2009-04-08  来源:soararing

ZZ from http://blog.chinaunix.net/u/12679/showart_691225.html   1、安装http://oe.linuxtogo.org/wiki/RequiredSoftware此页面上列出的一些必要的软件包 apt-get install python patch m4 make ccache perl diffstat build-essential wget curl ftp cvs subversion git-core tar bzip2 gzip unzip openjade docbook  docbook-utils texinfo texi2html sed bison libc6-dev mktemp sgmltools-lite libpcre++-dev libpcre++0 libpcre3 libpcre3-dev help2man gawk 如果想要编译qemu-native的话,还要安装libsdl1.2-dev 如果要编译Zaurus 2.4 或者任何  collie kernels 的话,还要apt-get install bc 备注:[bc (binary calculator)] === 安装过程中,我的debian etch上出现libc6_2.7-10_amd64.deb什么xxxxxx的问题,我单独强制安装了这个包dpkg -i --force-overwrite libc6_2.7-10_amd64.deb,因为我用的是testing的源,估计是由于跨版本安装的原因引起的。 === perl还老提示perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
我export LC_ALL=POSIX解决问题。 ==== 2、确立好一个工作目录,作为编译openmoko的顶层目录/hpc/moko/,选择一个开发分支,用来建立openmoko,这里选择org.openembedded.dev ,因为openmoko是建立在openembedded之上的,而openembedded有多个开发分支,http://oe.linuxtogo.org/wiki/DevelopmentBranches这里是其他的开发分支。 3.建立目录 mkdir -p /hpc/moko/build/conf   cd /hpc/moko/ 4.获取bitbake,因为下一步需要使用OE,而OE需要bitbake来建立,官方建议不要直接安装bitbake到系统目录,下载完bitbake后,将其目录添加进环境变量就可以使用他了(文章后面会讲到)。有好几种获得bitbake的方法:     a、使用为特定linux版本准备的包http://oe.linuxtogo.org/wiki/OEandYourDistro     b、下载bitbake的源码包,自己编译http://developer.berlios.de/projects/bitbake/     c、使用subversion下载源代码树编译,cd /hpc/moko        svn co svn://svn.berlios.de/bitbake/branches/bitbake-1.8/ bitbake bitbake经常被修订更新,如果目前的bitbake是以前下载的,最好到http://svn.berlios.de/viewcvs/bitbake/branches查看你的bitbake版本是否是最新的。在你的bitbake目录下svn info,可以到目前你的bitbake的版本号。如果已经有了一个新的版本,那么你可以删掉当前的版本,然后svn co svn://svn.berlios.de/bitbake/branches/bitbake版本号/ bitbake的方法重新下载一份,如果不是新的版本,而是相同版本的更新,那么在bitbake目录下可以用svn update命令更新到最新。     如果就想安装到系统目录的话,./setup.py -v install --prefix=/usr/local 或者不加--prefix=/usr/local的话,就安装到/usr/(包括/usr/bin和/usr/lib/python*.*/)目录下去了

5.下载并升级OE    这是一份openembedded的数据库,他包含了所有openembedded的元数据:包括构建分类,配置文件,和软件包。OpenEmbedded数据库是一个monotone数据库,monotone是目前openembedded的源代码管理工具SCM,http://www.venge.net/monotone/这是他的主页。    下载一份和第四步中bitbake相同版本号的OE,进入到/hpc/moko/目录, wget http://www.openembedded.org/snapshots/OE.mtn.版本号.bz2 解压bunzip2 -d OE.mtn.bz2  (确保OE版本是0.32及以上,否则可能出现一些问题)   mtn --db=/hpc/moko/OE.mtn pull monotone.openembedded.org  org.openembedded.dev   chechout本地的openembedded源代码树    #cd /hpc/moko/    #mtn --db=/hpc/moko/OE.mtn checkout --branch=org.openembedded.dev 6、建立本地配置文件

   cd /hpc/moko

   cp org.openembedded.dev/conf/local.conf.sample  build/conf/local.conf

编辑build/conf/local.conf,因为之前我们使用的是.dev分支,所以至少得添加如下内容
BBFILES = "/hpc/moko/org.openembedded.dev/packages/*/*.bb"

DISTRO = "openmoko" 

MACHINE = "om-gta01" 

(有时候会提示要TARGET_ARCH = "",我在neo上uname -m的结果是armv4tl,这里可以填这个,也可以填"arm")

因为我们是以local.conf.sample为基础修改,所以还要删掉最后一行。

DISTRO和MACHINE究竟应该设置为哪些值呢,在org.openembedded.dev/conf目录下有DISTRO和MACHINE目录,进去一看便知道了。

7、设置环境变量,可以把一下的内容添加到/etc/profile,也可以是~/.bashrc(推荐用这个)

====如果你安装我之前说的,没有实际的安装bitbake,那么使用以下语句

  #export PATH=/hpc/moko/bitbake/bin:$PATH

 #export BBPATH=/hpc/moko/build:/hpc/moko/org.openembedded.dev

====如果你已经使用setup.py install安装的bitbake,那么,export BBPATH=/hpc/moko/build/:/hpc/moko/org.openembedded.dev

8,开始编译

编译单个软件包: #bitbake nano  (编译nano这个编辑器软件)

编译一个软件套件:#bitbake task-base

编译一组软件包,并把他们部署进rootfs镜像

------a、编译gpe镜像:bitbake gpe-image

------b、编译opie镜像: bitbake opie-image

(分别编译每个镜像大概需要4g空间)

在/hpc/moko/org.openembedded.dev/packages/meta/目录可以找到meta/task和目标镜像。

编译所有的软件包: bitbake world (大概需要35g的编译空间)

绕过冗长的语法,编译单个软件包: #bitbake -b /hpc/moko/org.openembedded.dev/packages/blah/blah.bb

http://oe.linuxtogo.org/wiki/UsefulTargets这里是bitbake后面可以跟的一些参数,可以自定义用bitbake编译什么。

其参数的含义如下:

helloworld

编译一个静态可执行文件,此文件的作用是无限的打印出hello world

world

编译所有的东西,这会消耗掉大量的时间,带宽,磁盘空间 ,甚至损坏交叉编译工具链

task-base

编译内核和一些必须的核心包,你甚至还需要自己安装ssh,因为他很可能没有安装

helloworld-image

编译一个镜像,用作rootfs,并产生一个无限打印出hello world的循环程序,这可以用来测试linux是否已经被引导进入用户空间

bootstrap-image

编译一个包含task-base包的镜像

opie-image

编译一个基于opie的镜像

opie-kdepim-image

编译一个基于opie并且包含kde-based pim所有特性的镜像

meta-opie

编译所有与opie有关的包,和一些opie需要使用的包

pivotboot-image

 

Build image that is necessary to flash a Sharp SL C3000, Zaurus. It pivots after booting from the NAND and finalizes the install to the HD during the first boot.

task-dvb

dvb程序的所有元数据包(DVB = Digital Video Broadcasting).

task-python-everything

关于python的所有东西

twin-image

包含task-base和一对编辑器nano和vim,以及一个邮件阅读器mutt 

uml-image

编译用户模式linux下的root镜像,包括task-base,和opie的一部分。

gpe-image

基于gpe的内核和rootfs

meta-gpe

与gpe-image一起发行的基本软件包

package-index

Target to update the "feed" files (Package*) to reflect the current set of .ipk's that exist in the deploy directory. Commonly used after building some packages individually to update the feed and allow them to be installed via a package manager or thie ipkg command line tools.

virtual/kernel

编译适合你设备的内核

============================ 这里有一片很不错的相关文章http://203.208.33.101/search?q=cache:AS03vdzNjUgJ:www.wretch.cc/blog/bbyykk/9258269+bitbake+openembedded+local.conf+MACHINE&hl=zh-CN&ct=clnk&cd=3&gl=cn&st_usg=ALhdy2-fIj_X8A5OAP6BWaG1wrq0Z3P5BQ
排行榜 更多 +
木头人挑战游戏

木头人挑战游戏

休闲益智 下载
荒野神枪手

荒野神枪手

休闲益智 下载
步步通行

步步通行

学习教育 下载