OS images: Difference between revisions
Jump to navigation
Jump to search
m (added note that images contain partition table) |
No edit summary |
||
(180 intermediate revisions by 63 users not shown) | |||
Line 1: | Line 1: | ||
{{Translations}} |
|||
The operating system used for OLPC is work-in-progress and so-called ''images'' are available from |
|||
{{ Latest Releases |
|||
| rc = inline |
|||
| stable = inline |
|||
| devel = inline |
|||
| livecd = inline |
|||
| firmware = inline |
|||
| server = inline }} |
|||
OLPC produces '''OS images''' (also known as '''software builds''') which can be installed on XO laptops, customized and rebuilt by deployments, etc. These images include all of the system and user software, allowing your XO to boot straight into OLPC's software environment. |
|||
[http://olpc.download.redhat.com/olpc/streams/development http://olpc.download.redhat.com/olpc/streams/development] |
|||
* To install a specific build on your laptop, follow the links to one of the XO releases from the box on the right. For other releases, see [[Releases]]. |
|||
== Downloads == |
|||
* The [[Release notes]] for each release have instructions for installing or upgrading to a release on your XO. The [[Updating the XO]] page references other ways that software images can be installed. |
|||
* If you want to identify which build/release is running on your XO, see [[What release am I running?]]. |
|||
* If you are interested in testing upcoming releases, the [[Friends in testing]] page explains where you can start. |
|||
* If you know what you're doing, you might be able to find the files that you're looking for on http://download.laptop.org |
|||
* To build your own image, see [[Building custom images]]. |
|||
[[Category:Hardware]] |
|||
As the operating system for OLPC is under development, there are several builds available. The latest build might not always be stable since developers are experimenting with new features. Each build is labeled with a unique version number. When reporting problems on mailing lists, please make sure you list the build number you are using. |
|||
[[Category:Developers]] |
|||
[[Category:OS]] |
|||
=== Latest Stable === |
|||
[[Category:Build system]] |
|||
[[Category:Update paths]] |
|||
Latest stable build is [http://olpc.download.redhat.com/olpc/streams/development/build59-20060808_1153/ build59]. --[[User:Blizzard|Blizzard]] 23:35, 8 Aug 2006 (EDT) |
|||
[[Category:Builds]] |
|||
== Image variants == |
|||
Images are available in two variants |
|||
* Normal images |
|||
** These are in the <tt>images/</tt> subdirectory of a build. |
|||
** Intended for production use; does not contain tools or software suitable for developers of the OLPC operating system |
|||
** Also available in two sub-variants: ext3, which is a filesystem image, and tree, which is an archive of the directory structure |
|||
* Developer images |
|||
** These are in the <tt>images-rpm/</tt> sub-directory of a build |
|||
** Contains tools useful for developers of the OLPC operating system |
|||
*** Presently includes: <tt>yum, rpm, vim-minimal, openssh-server, xterm, which, file, tree, wget, xorg-x11-twm, gdb</tt> |
|||
** '''WARNING''': Do not attempt to update the kernel on <tt>images-rpm</tt> builds - the <tt>initrd</tt> will be wrong. We're working on fixing this through including an <tt>olpc-mkinitrd</tt> package. |
|||
=== Passwords === |
|||
The images have no password set at build time. This means you can log in as root using no password. Always remember to change the password as the first thing when start using an image. |
|||
As the <tt>image-rpm</tt> variant ships with an SSH server you thus need to set the password to be able to login from a remote host. This is a feature of <tt>sshd</tt>. |
|||
''Password handling is subject to change before official release.'' |
|||
== Using Images == |
|||
For development we right now offer images that runs the OLPC operating system off a USB storage device. We're working on getting this to work on the NAND flash of the hardware too. Instructions to come. |
|||
=== Images on USB storage devices === |
|||
To try out an image, simply download the appropriate <tt>.img.bz2</tt> file, e.g., |
|||
olpc-stream-development-42-20060714_1709-rpm-ext3.img.bz2 |
|||
unzip it, and transfer it to a USB storage device via <tt>dd</tt>, e.g., |
|||
# bunzip2 olpc-stream-development-42-20060714_1709-rpm-ext3.img.bz2 |
|||
# dd if=olpc-stream-development-42-20060714_1709-rpm-ext3.img of=/dev/sdb bs=512 |
|||
# sync |
|||
Remember to |
|||
* Do this as the super user / root |
|||
* Replace <tt>/dev/sdb</tt> with the device file of the USB storage device. The images do contain a partition table, so do not write to a partition such as <tt>/dev/sdb1</tt> |
|||
* Make sure any old partitions from the storage device is unmounted. |
|||
* The USB storage device must be 512MB or bigger. All existing data on it will be wiped. |
|||
Now you should be able to boot the OLPC operating system off the USB storage device. |
|||
=== Installing on a USB hard disk === |
|||
If you don't have a USB stick available, but do have a USB hard drive, you could also try installing on that. |
|||
For example, I have a 200GB USB hard disk partitioned into 3 partitions: |
|||
* sdb1 - 10GB (for the root filesystem) |
|||
* sdb2 - 1.5GB swap partition |
|||
* sdb3 - the rest as a storage partition. |
|||
Retrieve and unzip the appropriate OLPC image file as above. This file contains a partition table, which describes exactly one partition. What we want to do is to mount that partition (using a loopback device) and copy the contents to the USB hard disk, then make that hard disk bootable. |
|||
First, we need to setup the image file on a loopback device so we can inspect that partition table: |
|||
# losetup /dev/loop0 olpc-stream-development-59-20060808_1153-rpm-ext3.img |
|||
Now, use fdisk to look at the contents: |
|||
# fdisk -l -u /dev/loop0 |
|||
Disk /dev/loop0: 504 MB, 504626688 bytes |
|||
16 heads, 32 sectors/track, 1924 cylinders, total 985599 sectors |
|||
Units = sectors of 1 * 512 = 512 bytes |
|||
Device Boot Start End Blocks Id System |
|||
/dev/loop0p1 32 985599 492784 83 Linux |
|||
In this case, the partition we want starts at sector 32, and each sector is 512 bytes = 16384 bytes into the image file. Now, we can set up a second loopback device to load this partition and mount it: |
|||
# losetup /dev/loop1 -o 16384 olpc-stream-development-59-20060808_1153-rpm-ext3.img |
|||
# mount -text3 /dev/loop1 /media/tmp/ |
|||
Now, copy the files to your USB hard disk: |
|||
# cp -a /media/tmp/* /media/usbdisk/ |
|||
And finally, we need to set up grub on the disk to boot from the first partition. We do this using the GRUB shell. Note that in this example, we're installing on (hd1), because the external disk is the 2nd disk connected to the system. When it boots on the OLPC board, it will be the primary disk and grub will treat it as (hd0) |
|||
# grub |
|||
Probing devices to guess BIOS drives. This may take a long time. |
|||
# grub> root (hd1) |
|||
root (hd1) |
|||
Filesystem type unknown, using whole disk |
|||
# grub> root (hd1,0) |
|||
root (hd1,0) |
|||
Filesystem type is ext2fs, partition type 0x83 |
|||
grub> setup (hd1) |
|||
setup (hd1) |
|||
Checking if "/boot/grub/stage1" exists... yes |
|||
Checking if "/boot/grub/stage2" exists... yes |
|||
Checking if "/boot/grub/e2fs_stage1_5" exists... yes |
|||
Running "embed /boot/grub/e2fs_stage1_5 (hd1)"... 15 sectors are embedded. |
|||
succeeded |
|||
Running "install /boot/grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded |
|||
Done. |
|||
# grub> ^C |
|||
# |
|||
* When I tried booting from this drive on the OLPC, GRUB started but didn't load its configuration correctly - just dropping me into the grub shell instead. I needed to run 'root' and 'setup' again on the actual board to get GRUB to set itself up right. If anyone knows how to avoid this step, please fix the instructions. |
|||
=== Images in QEMU === |
|||
The easiest way to test the images is to use qemu or some similar emulator. See [[Using QEMU on Windows XP|here]] for Windows users. On Fedora Core 5, QEMU is included in extras and is very easy to install. As root just type |
|||
yum install qemu |
|||
and it should be installed. You may have to start the service for it. As root run: |
|||
service qemu start |
|||
Once you have an image downloaded, it is very easy to use qemu to launch the OLPC environment: |
|||
qemu -hda olpc-stream-development-7-20060609_1600-ext3.img |
|||
The simulator will start up at this point. When the screen turns green saying ''One Laptop Per Child'' at the bottom, press the spacebar to get the grub menu. It's '''important that you choose the OLPC Simulator option'''. The default for these images is to boot for the '''OLPC Hardware, not the Simulator'''. |
|||
We have heard multiple people say that QEMU doesn't work with these images on the debian-derived distributions. We also haven't heard of any solutions to these problems. The symptom is that the kernel hangs during boot. |
|||
[[User:Marcin|Marcin]]: On Ubuntu Dapper it hangs with qemu 0.8.0 (from distro), but works with 0.8.1 from [http://fabrice.bellard.free.fr/qemu/download.html i386 binary tarball]. |
|||
[[User:Vedran|Vedran]]: It also hangs on Debian unstable with qemu 0.8.1-1 (from distro), but works with 0.8.1 from [http://fabrice.bellard.free.fr/qemu/download.html i386 binary tarball]. |
|||
[[Using QEMU on Windows XP]] |
|||
=== Images in VMware Player === |
|||
VMware Player is another convenient way to test the image on your windows machine. You can convert the image to a VMware virtual disk file with qemu-img command included qemu distribution. |
|||
$ qemu-img convert olpc-stream-development-59-20060808_1153-rpm-ext3.img -O vmdk olpc.vmdk |
|||
Additionally, you need a config file to run the virtual disk. This is an example(save it as olpc.vmx). |
|||
#!/usr/bin/vmware |
|||
config.version = "8" |
|||
virtualHW.version = "3" |
|||
memsize = "128" |
|||
ide0:0.present = "TRUE" |
|||
ide0:0.fileName = "olpc.vmdk" |
|||
ide1:0.present = "TRUE" |
|||
ide1:0.fileName = "/dev/cdrom" |
|||
ide1:0.deviceType = "atapi-cdrom" |
|||
floppy0.fileName = "A:" |
|||
ethernet0.present = "TRUE" |
|||
ethernet0.connectionType = "nat" |
|||
usb.present = "TRUE" |
|||
sound.present = "TRUE" |
|||
sound.virtualDev = "es1371" |
|||
displayName = "OLPC" |
|||
guestOS = "other26xlinux" |
|||
ethernet0.addressType = "generated" |
|||
uuid.location = "56 4d d1 99 5c 64 a3 6f-ef c7 aa 86 a8 cc ed 46" |
|||
uuid.bios = "56 4d d1 99 5c 64 a3 6f-ef c7 aa 86 a8 cc ed 46" |
|||
tools.remindInstall = "TRUE" |
|||
ethernet0.generatedAddress = "00:0c:29:cc:ed:46" |
|||
ethernet0.generatedAddressOffset = "0" |
|||
checkpoint.vmState = "olpc.vmss" |
|||
ide0:0.redo = "" |
|||
Note: Don't forget to select OLPC Simulator option on booting. |
Latest revision as of 21:51, 5 August 2013
OLPC produces OS images (also known as software builds) which can be installed on XO laptops, customized and rebuilt by deployments, etc. These images include all of the system and user software, allowing your XO to boot straight into OLPC's software environment.
- To install a specific build on your laptop, follow the links to one of the XO releases from the box on the right. For other releases, see Releases.
- The Release notes for each release have instructions for installing or upgrading to a release on your XO. The Updating the XO page references other ways that software images can be installed.
- If you want to identify which build/release is running on your XO, see What release am I running?.
- If you are interested in testing upcoming releases, the Friends in testing page explains where you can start.
- If you know what you're doing, you might be able to find the files that you're looking for on http://download.laptop.org
- To build your own image, see Building custom images.