Difference between revisions of "Dextrose/Getting Involved"
m (fix path) |
|||
Line 1: | Line 1: | ||
<noinclude>{{GoogleTrans-en}}{{TeamHeader|Dextrose|home=Dextrose|xbgColor=ffe792|join_label=Get Involved}}</noinclude> | <noinclude>{{GoogleTrans-en}}{{TeamHeader|Dextrose|home=Dextrose|xbgColor=ffe792|join_label=Get Involved}}</noinclude> | ||
+ | |||
+ | == F11-XO1 == | ||
+ | |||
+ | We use [http://wiki.laptop.org/go/OS_Builder olpc-os-builder], a tool | ||
+ | used by OLPC to create official and customized system images. | ||
+ | |||
+ | Our version contains local customizations specific to Paraguay and some | ||
+ | patches that should be upstreamed. | ||
+ | |||
+ | == How to create a build == | ||
+ | |||
+ | We cook our builds on [[Machine/robbie]], which is Fedora 11 i386. | ||
+ | I could create builds also on my laptop, which runs Fedora 12 x86_64. | ||
+ | What the host system runs shouldn't matter much, because all the work | ||
+ | is being done in a chroot environment. | ||
+ | |||
+ | * Checkout our local tree: | ||
+ | |||
+ | git clone git://git.sugarlabs.org/dextrose/mainline.git | ||
+ | |||
+ | * One time preparation | ||
+ | |||
+ | yum upgrade | ||
+ | yum install libtomcrypt-devel bitfrost make gcc mtd-utils | ||
+ | make | ||
+ | |||
+ | * Build: | ||
+ | |||
+ | time sudo ./osbuilder.py examples/f11-xo1-py.ini | ||
+ | |||
+ | * Wait 15 minutes | ||
+ | |||
+ | * Serve hot | ||
+ | |||
+ | == Signing == | ||
+ | |||
+ | * Put the 4 signing keys somewhere in your home: | ||
+ | |||
+ | bernie@robbie:~$ ll src/olpc/keys/ | ||
+ | -rw-------. 1 bernie bernie 1,2K Feb 5 2009 pyo1.private | ||
+ | -rw-------. 1 bernie bernie 270 Feb 5 2009 pyo1.public | ||
+ | -rw-------. 1 bernie bernie 1,2K Feb 5 2009 pys1.private | ||
+ | -rw-------. 1 bernie bernie 270 Feb 5 2009 pys1.public | ||
+ | -rw-------. 1 bernie bernie 1,2K Feb 5 2009 pyw1.private | ||
+ | -rw-------. 1 bernie bernie 270 Feb 5 2009 pyw1.public | ||
+ | |||
+ | * Make sure the keys are '''NOT''' world-readable | ||
+ | |||
+ | * Edit the paths in the <tt>[signing]</tt> section of <tt>examples/f11-xo1-py.ini</tt> | ||
+ | |||
+ | |||
+ | == Publishing the images == | ||
+ | |||
+ | I'm currently publishing selected builds in [http://oficina.paraguayeduca.org/~bernie/f11-xo1-py/ my public html folder]. | ||
+ | |||
+ | Signed builds should be published only if they implement the OLPC anti-theft system | ||
+ | ([http://wiki.laptop.org/go/Antitheft_HowTo OATS]). Signing does | ||
+ | not have anything to do with quality or endorsement (i.e. signed builds are not | ||
+ | necessarily bug-free). | ||
+ | |||
+ | * TODO: We don't have a place for publishing official images yet | ||
+ | |||
+ | * TODO: We don't have a procedure for releasing builds to field technicians (we may use repo.paraguayeduca.org in the future) | ||
+ | |||
+ | * TODO: We don't keep release notes for our builds (we should probably use the wiki) | ||
+ | |||
+ | |||
+ | == Customizing the build == | ||
+ | |||
+ | The topic of is too vast to discuss in detail here. Start by reading http://git.paraguayeduca.org/gitweb/users/bernie/olpc-os-builder.git/blob_plain/HEAD:/doc/README README] in the olpc-os-builder tree. Then, as needed, read the various <tt>README</tt> | ||
+ | files contained in the [http://git.paraguayeduca.org/gitweb/users/bernie/olpc-os-builder.git/tree/HEAD:/modules modules] directory. | ||
+ | |||
+ | Being a Build Master involves knowledge of many workflows, including: | ||
+ | |||
+ | * Building Sugar in [http://wiki.sugarlabs.org/go/Development_Team/Jhbuild sugar-jhbuild]. | ||
+ | |||
+ | * Dealing with yum and [http://www.rpm.org/wiki/Docs rpm]. | ||
+ | |||
+ | * Understanding the [http://fedoraproject.org/wiki/Packaging/Guidelines Fedora packaging] workflow and conventions. | ||
+ | |||
+ | * Creating yum package repositories with <tt>[http://createrepo.baseurl.org/]</tt>. | ||
+ | |||
+ | * Uploading activities to [http://activities.sugarlabs.org]. | ||
+ | |||
+ | * General understanding of the Linux system plumbing infrastructure: [http://www.kernel.org/ kernel], | ||
+ | [http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html udev], [http://www.freedesktop.org/wiki/Software/dbus dbus], [http://www.freedesktop.org/wiki/Software/DeviceKit DeviceKit], [http://www.freedesktop.org/wiki/NetworkManager NetworkManager], | ||
+ | [http://www.x.org/wiki/ Xorg]... | ||
+ | |||
+ | * Flashing laptops and debugging any problems | ||
+ | |||
+ | * Interaction with the Sugar and OLPC community to solve issues and minimize our divergence from the official builds. | ||
+ | |||
+ | == Upstream == | ||
+ | |||
+ | Our upstream code comes from dev.laptop.org: | ||
+ | |||
+ | git remote add olpc git://dev.laptop.org/projects/olpc-os-builder | ||
+ | git fetch olpc | ||
+ | git log olpc/master | ||
+ | |||
+ | == Building custom kernels == | ||
+ | |||
+ | $ git clone git://git.paraguayeduca.org/users/bernie/olpc-2.6 | ||
+ | $ cd olpc-2.6 | ||
+ | $ setarch i386 make ARCH=i386 xo_1-kernel-rpm | ||
+ | |||
[[Category:SIG]] | [[Category:SIG]] |
Revision as of 14:11, 26 July 2010
F11-XO1
We use olpc-os-builder, a tool used by OLPC to create official and customized system images.
Our version contains local customizations specific to Paraguay and some patches that should be upstreamed.
How to create a build
We cook our builds on Machine/robbie, which is Fedora 11 i386. I could create builds also on my laptop, which runs Fedora 12 x86_64. What the host system runs shouldn't matter much, because all the work is being done in a chroot environment.
- Checkout our local tree:
git clone git://git.sugarlabs.org/dextrose/mainline.git
- One time preparation
yum upgrade yum install libtomcrypt-devel bitfrost make gcc mtd-utils make
- Build:
time sudo ./osbuilder.py examples/f11-xo1-py.ini
- Wait 15 minutes
- Serve hot
Signing
- Put the 4 signing keys somewhere in your home:
bernie@robbie:~$ ll src/olpc/keys/ -rw-------. 1 bernie bernie 1,2K Feb 5 2009 pyo1.private -rw-------. 1 bernie bernie 270 Feb 5 2009 pyo1.public -rw-------. 1 bernie bernie 1,2K Feb 5 2009 pys1.private -rw-------. 1 bernie bernie 270 Feb 5 2009 pys1.public -rw-------. 1 bernie bernie 1,2K Feb 5 2009 pyw1.private -rw-------. 1 bernie bernie 270 Feb 5 2009 pyw1.public
- Make sure the keys are NOT world-readable
- Edit the paths in the [signing] section of examples/f11-xo1-py.ini
Publishing the images
I'm currently publishing selected builds in my public html folder.
Signed builds should be published only if they implement the OLPC anti-theft system (OATS). Signing does not have anything to do with quality or endorsement (i.e. signed builds are not necessarily bug-free).
- TODO: We don't have a place for publishing official images yet
- TODO: We don't have a procedure for releasing builds to field technicians (we may use repo.paraguayeduca.org in the future)
- TODO: We don't keep release notes for our builds (we should probably use the wiki)
Customizing the build
The topic of is too vast to discuss in detail here. Start by reading http://git.paraguayeduca.org/gitweb/users/bernie/olpc-os-builder.git/blob_plain/HEAD:/doc/README README] in the olpc-os-builder tree. Then, as needed, read the various README files contained in the modules directory.
Being a Build Master involves knowledge of many workflows, including:
- Building Sugar in sugar-jhbuild.
- Dealing with yum and rpm.
- Understanding the Fedora packaging workflow and conventions.
- Creating yum package repositories with [1].
- Uploading activities to [2].
- General understanding of the Linux system plumbing infrastructure: kernel,
udev, dbus, DeviceKit, NetworkManager, Xorg...
- Flashing laptops and debugging any problems
- Interaction with the Sugar and OLPC community to solve issues and minimize our divergence from the official builds.
Upstream
Our upstream code comes from dev.laptop.org:
git remote add olpc git://dev.laptop.org/projects/olpc-os-builder git fetch olpc git log olpc/master
Building custom kernels
$ git clone git://git.paraguayeduca.org/users/bernie/olpc-2.6 $ cd olpc-2.6 $ setarch i386 make ARCH=i386 xo_1-kernel-rpm