F11 for XO-1: Difference between revisions

From OLPC
Jump to navigation Jump to search
Line 44: Line 44:
* You need to know how to issue firmware commands ([[OFW FAQ]] is one starting point)
* You need to know how to issue firmware commands ([[OFW FAQ]] is one starting point)
* There will be bugs!
* There will be bugs!
* Advanced features for the video driver will not work, so forget about playing full screen videos or such.


If you have an issue with a Sugar activity please report it to http://bugs.sugarlabs.org/
If you have an issue with a Sugar activity please report it to http://bugs.sugarlabs.org/

Revision as of 02:20, 24 November 2009

OLPC is developing a new Fedora based XO operating system for both the XO-1 and the XO-1.5, see (F11 for 1.5) for the XO-1.5 hardware revision. It includes various improvements and modernizations over the last released version (release 8.2.1 on 2009-05-13) for the XO-1 hardware shipped to many deployments and G1G1 donors.


Community-developed builds

The builds for the XO-1 are maintained by Steven M. Parrish

The builds for the XO-1.5 are maintained by Chris Ball & Daniel Drake.

Current release: OS9

This build was released November 23rd, 2009 and includes:

  • prevent NM from setting the system hostname
  • agetty fix now included in olpc-utils
  • enable tmpfs mounts (#9637)
  • Move #9414, #9470 fixes up to the %post chroot section
  • Disable PulseAudio autospawning (#9470)
  • add olpc-netutils to build (#9587)
  • Cleaner hack for crackly sound bug (#9414)
  • Restore VT layout and behaviour from OLPC 8.2 builds (#9517)
  • Fix pristine update of /etc/sysconfig/keyboard
  • Only allow su access to those in the wheel group
  • allow olpc access to ttyUSB nodes
  • relax permissions on /home/olpc
  • Use google-droid-fonts instead of cjkuni-uming. (based on feedback from Chine...
  • add ds-backup-client
  • Remove firmware references (#9606)
  • Add version number to fix activity updater (#9533)
  • Use Eye of GNOME instead of Mirage (#9596)
  • Do not exclude Chinese (Traditional) translations
  • Removing '-scim' and '-m17n' from the build rules
  • Add support for Chinese input via SCIM
  • Add dependencies for Epub support in Read, fix repo definitions
  • A new kernel plus numerous package updates.

Builds can be downloaded here.

To update to this build does require you flash your XO so be sure to backup you home directory as you will loose everything.

The usual cautions apply:

  • This is development code
  • You will need to request a developer key
  • You need to know how to issue firmware commands (OFW FAQ is one starting point)
  • There will be bugs!
  • Advanced features for the video driver will not work, so forget about playing full screen videos or such.

If you have an issue with a Sugar activity please report it to http://bugs.sugarlabs.org/ For issues with Gnome or any associated apps please report those to http://bugzilla.redhat.com For anything else please report it to http://dev.laptop.org/newticket


Installation instructions

Before you start, be sure you know can install the latest released XO software image from a thumb drive. Print out the instructions, download the files, and install it for practice. If the software below has any bugs -- and it will -- you might need to go back to the released image.

Get a developer key for your XO, install it, and disable security. Read and understand http://wiki.laptop.org/go/Developer_key

You do have a backup copy of your developer signature and the latest released XO software image stored safely on another computer right? What about all the files you created on your XO? They will all be erased!

Format your thumb drive as a FAT drive. Copy the os9.crc and os9.img files to the thumb drive.

Boot your XO and as soon as you hear the chimes, press the Escape key (at the upper left, marked Esc.png)

You should see a firmware prompt, which looks like this: ok

At the firmware prompt, use copy-nand to install os9.img with os9.crc, overwriting your XO-1's files.

to do so you have to issue the following command at the ok OFW prompt:

probe-usb copy-nand disk:\osN.img 

where N is the number of the .img you dowloaded and having in mind that your USB key has to have the .crc file in the same location of the .img file.

When it completes, turn off the XO (hold power button) and remove the thumb drive, then hit the power button to start again. (It might take a long time to start up the first time, and it might take a few tries to start up completely. You might want to boot with more detail shown: If you hold down the "Check" key (with a ✓ check-mark on it, the rightmost of the four keys in the game pad to the right of the screen), then you'll get a "Check Boot" which is significantly more verbose.


You may be able to use Live USB techniques to create a bootable USB from os9.iso

Earlier builds

See http://dev.laptop.org/~dsd/f11-xo1/

Notes on how to create XO-1 builds

People presumably are following these steps to create.

Here's how you might do it:

Prerequisites: Fedora 11 system, with sudo access and a decent amount of disk space.

yum install git livecd-tools mtd-utils crcimg

As your regular user, check out fedora-xo:

git clone git://dev.laptop.org/projects/fedora-xo

In this git tree:

  • master branch is currently unused.
  • xo-1.5 branch contains all build scripts for the new OS release for the XO-1.5.
  • xo-1 branch contains all build scripts for the for the XO-1
git checkout --track -b xo-1 origin/xo-1

As a quick summary of the most important files,

olpc-base.ks and olpc-desktop.ks
the kickstart files used to make the core software image.
livecd-creator
processes the core software files to create a .iso image.
livecd-iso-to-xo.sh
converts that .iso into an image that can be flashed onto XOs.
Makefile
wraps up the whole process.

The ongoing process will be to synchronize the xo-1 branch with any new changes made to the xo-1.5 branch. Really, there are only a few differences that must be maintained between the 2 branches. You can see these differences with this command:

git diff 38951c7..xo-1

The above command shows the state of the XO-1.5 branch at the point of last synchronization compared to the XO-1 branch. The differences that have to be maintained (for example, geode video driver, jffs2 file-system) can be seen here, but even this was an unclean synchronization and could be made cleaner (there is some "noise" in the diff).

The next step is to look at all of the recent changes that have been made to xo-1.5 and merge them into xo-1. I would do this by comparing the 2 trees as follows:

git diff xo-1 origin/xo-1.5

Your task is to apply all the hunks of this diff (excluding ones that are specific to the XO-1.5 hardware) so that the output of this command looks similar to (or better than) the output of the earlier diff - i.e. so that the only differences between the 2 branches are the handful of changes that account for the differences in hardware.

Even in current state (before merging any new changes), the xo-1 branch is ready for building and should produce a bootable build. Here's how you kick off a build:

mkdir output cache builddir
cd output
make -f ../Makefile os5.img

After some time, the output file "os5.img" will be ready for flashing onto your unlocked XO.

If you're happy with this process, the next steps are to publish your build by uploading it to a webhost, and then announcing it on the OLPC devel and Fedora-OLPC mailing lists.

If you are a known community member, OLPC would probably be happy to give you access to machines where you can run these builds from and host the downloads. Otherwise, this is still a possibility but you'd probably first be expected to make and publish a couple of builds on your own. Similarly, it should be possible to get you direct access to commit to the main fedora-xo repository. Once usable builds are being published regularly, you could also take over this wiki page.

I may have forgotten a few considerations in the above braindump, but if you're interested then the next step is to give it a try and write about any troubles on the devel@lists.laptop.org mailing list, and we'll help you figure it out. -- User:DanielDrake 2009-07-14