Difference between revisions of "Dextrose/Getting Involved"

From Sugar Labs
Jump to navigation Jump to search
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 15:11, 26 July 2010

Dextrose   ·   Get Involved   ·   Contacts   ·   Resources   ·   FAQ   ·   Roadmap   ·   To Do   ·   Meetings

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:

  • Dealing with yum and rpm.
  • 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