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]] |