免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 879 | 回复: 0
打印 上一主题 下一主题

安装openmoko from scratch [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-17 00:39 |只看该作者 |倒序浏览
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"  
因为我们是以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


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12679/showart_691225.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP