aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: fc435bd01a5e4f2ef824a719cd567f9eeee2db43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Introduction
==

'Poky' is a combined cross build system and linux distribution based
upon OpenEmbedded. It features support for building X11/Matchbox/GTK
based filesystem images for various embedded devices and boards.


Required Packages
===

Running Poky on Debian based distributions requires the following
extra packages be installed;

build-essential
diffstat
texinfo
texi2html
cvs
subversion
gawk
bochsbios (to run qemux86 images)

You also need to install the qemu from http://debian.o-hand.com/. A
poky-depends deb is also available from this source which will install 
all the dependencies mentioned above for you.

Alternatively poky can build qemu itself, but for this you need the
following packages installed;

gcc-3.4
libsdl1.2-dev
zlib1g-dev

You will also need to comment out ASSUME_PROVIDED += "qemu-native"' in  
build/conf/local.conf.

Building under other distro's such as Fedora is known to work. Use the above
package names as a guide for dependencies.

Building An Image
===

Simply run;

% source poky-init-build-env
% bitbake poky-image-sato

This will result in an ext2 image and kernel for qemu arm (see scripts dir).

To build for other machine types see MACHINE in build/conf/local.conf

Other image targets such as poky-image-sdk or poky-image-minimal are available, 
see meta/packages/images/*.

Notes:
===

Useful Links;

OpenedHand
http://openedhand.com

Poky Homepage
http://projects.o-hand.com/poky

OE Homepage and wiki
http://openembedded.org
 
                                         Copyright (C) 2006-2007 OpenedHand Ltd.
ss="c1"># # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., 59 # Temple Place - Suite 330, Boston, MA 02111-1307, USA. import os from wic import msger from wic import kickstart from wic.utils import misc, runner, errors def get_siteconf(): wic_path = os.path.dirname(__file__) eos = wic_path.find('scripts') + len('scripts') scripts_path = wic_path[:eos] return scripts_path + "/lib/image/config/wic.conf" class ConfigMgr(object): DEFAULTS = { 'common': { "distro_name": "Default Distribution", "plugin_dir": "/usr/lib/wic/plugins"}, # TODO use prefix also? 'create': { "tmpdir": '/var/tmp/wic', "outdir": './wic-output', "release": None, "logfile": None, "name_prefix": None, "name_suffix": None} } # make the manager class as singleton _instance = None def __new__(cls, *args, **kwargs): if not cls._instance: cls._instance = super(ConfigMgr, cls).__new__(cls, *args, **kwargs) return cls._instance def __init__(self, ksconf=None, siteconf=None): # reset config options self.reset() if not siteconf: siteconf = get_siteconf() # initial options from siteconf self._siteconf = siteconf if ksconf: self._ksconf = ksconf def reset(self): self.__ksconf = None self.__siteconf = None # initialize the values with defaults for sec, vals in self.DEFAULTS.iteritems(): setattr(self, sec, vals) def __set_ksconf(self, ksconf): if not os.path.isfile(ksconf): msger.error('Cannot find ks file: %s' % ksconf) self.__ksconf = ksconf self._parse_kickstart(ksconf) def __get_ksconf(self): return self.__ksconf _ksconf = property(__get_ksconf, __set_ksconf) def _parse_kickstart(self, ksconf=None): if not ksconf: return ks = kickstart.read_kickstart(ksconf) self.create['ks'] = ks self.create['name'] = os.path.splitext(os.path.basename(ksconf))[0] self.create['name'] = misc.build_name(ksconf, self.create['release'], self.create['name_prefix'], self.create['name_suffix']) configmgr = ConfigMgr()