Installing Fedora Core: Difference between revisions
No edit summary |
m (remove categories from this obsolete page) |
||
(61 intermediate revisions by 23 users not shown) | |||
Line 1: | Line 1: | ||
{{Deprecated}} |
|||
'''See [[Fedora on XO]] for how to run the Fedora 10 Linux distribution on your 2008 or 2009 XO laptop.''' |
|||
==Overview== |
==Overview== |
||
This page describes how to install Fedora Core on |
This page describes how to install [[Fedora Core]] on '''ancient, obsolete 2006 prototype''' One Laptop per Child hardware using a USB Hard Disk Drive. As of the writing of this document, the A-Test boards have been built and distributed to several hundred people. |
||
==Requirements== |
==Requirements== |
||
Line 7: | Line 13: | ||
===Hardware=== |
===Hardware=== |
||
You will need a few pieces of hardware to install the software on the |
You will need a few pieces of hardware to install the software on the A-Test board. |
||
* 1 |
* 1 A-Test (or pre-A-Test) OLPC board |
||
* 1 USB hub |
|||
* 1 USB flash drive |
|||
* 1 USB hard drive |
* 1 USB hard drive |
||
* 1 USB ethernet adapter |
* 1 USB ethernet adapter |
||
Line 17: | Line 21: | ||
* 1 USB keyboard |
* 1 USB keyboard |
||
* 1 USB mouse |
* 1 USB mouse |
||
* 1 powered USB hub |
|||
====Why you need the ''powered'' USB hub==== |
|||
* The board only has 3 USB ports, and there are 5 USB peripherals involved. |
|||
* But even if you are only using 3 USB peripherals, you still might need a powered hub, because the board's internal power converters are wimpy on ATest; fixed on later boards. |
|||
===Software=== |
===Software=== |
||
Right now, you need to use the Rawhide (unstable) version of Fedora Core to install on the laptop. We will be putting our kernel changes, dependency and software changes into FC Rawhide. So our current requirements for the software include: |
|||
* A recent rawhide snapshot (we provide some known good snapshots) |
|||
* A place to host that snapshot on the network |
|||
* The serenity to accept that sometimes Rawhide is broken |
|||
* A strong will to live |
|||
==Download== |
==Download== |
||
Get an OS image from [http://olpc.download.redhat.com/olpc/streams/development/latest/devel_ext3/ http://olpc.download.redhat.com/olpc/streams/development/latest/devel_ext3/]. You want the ".img.bz2" file, for example: |
|||
You will want to use one of our Rawhide snapshots. The reason is that Rawhide is fast-moving and you will want to use snapshots that we have tested. |
|||
olpc-redhat-stream-development-build-86-20060922_1506-devel_ext3.img.bz2 |
|||
A rawhide snapshot from May 27th, 2006 that works with these instructions is available from these three mirrors: |
|||
==Installing== |
|||
http://crank.laptop.org/olpc-rawhide/2006-05-27-0237/ |
|||
http://olpc.download.redhat.com/olpc/rawhide-snapshots/2006-05-27-0237/ |
|||
http://www-crca.ucsd.edu/~msp/olpc/rawhide-snapshots/2006-05-27-0237/ |
|||
Follow the directions at [[OS images for USB disks]], under the "Dedicated USB disk" section. |
|||
==Getting Ready to Install== |
|||
==Enlarging the Partition== |
|||
===Setting up a bootable image=== |
|||
The OLPC OS images are 512MB (to fit the onboard flash), but you are installing them to a larger drive. Therefore we must enlarge the partition. Once you have transferred the image to the USB device (the 'dd' step), and synced all disks (the 'sync' step), get a root shell. Then, start the 'fdisk' command like so: |
|||
Insert your USB key into another Fedora machine and run the command <tt>dmesg</tt>. The output should look something like this: |
|||
[root@localhost ~]# fdisk /dev/sda |
|||
usb-storage: waiting for device to settle before scanning |
|||
Vendor: Kingston Model: DataTraveler 2.0 Rev: 6.16 |
|||
Type: Direct-Access ANSI SCSI revision: 00 |
|||
SCSI device sda: 2004991 512-byte hdwr sectors (1027 MB) |
|||
sda: Write Protect is off |
|||
sda: Mode Sense: 45 00 00 08 |
|||
sda: assuming drive cache: write through |
|||
SCSI device sda: 2004991 512-byte hdwr sectors (1027 MB) |
|||
sda: Write Protect is off |
|||
sda: Mode Sense: 45 00 00 08 |
|||
sda: assuming drive cache: write through |
|||
'''sda: sda1''' |
|||
sd 3:0:0:0: Attached scsi removable disk sda |
|||
sd 3:0:0:0: Attached scsi generic sg0 type 0 |
|||
usb-storage: device scan complete |
|||
Be '''sure''' to replace '/dev/sda' with the actual device name of the USB Hard Disk Drive on which you are installing the OLPC OS. |
|||
Note the fact that this USB key has shown up as <tt>sda</tt>. You will need this in a moment. |
|||
Next, type 'p' to show the current partition table: |
|||
'''Make sure the device is not mounted.''' You can do this with a simple <tt>mount</tt> command. If <tt>/dev/sda1</tt> shows up in the output, it's mounted. You can unmonut it by running <tt>umount /dev/sda1</tt>. Like so: |
|||
Command (m for help): p<br> |
|||
[blizzard@mobile2 images]$ mount |
|||
/dev/ |
Disk /dev/sda: 5000 MB, 5000970240 bytes |
||
16 heads, 62 sectors/track, 9846 cylinders |
|||
none on /proc type proc (rw) |
|||
Units = cylinders of 992 * 512 = 507904 bytes<br> |
|||
none on /sys type sysfs (rw) |
|||
Device Boot Start End Blocks Id System |
|||
none on /dev/pts type devpts (rw,gid=5,mode=620) |
|||
/dev/sda1 1 993 492497 83 Linux |
|||
/dev/hda1 on /boot type ext3 (rw) |
|||
Command (m for help): |
|||
'''/dev/sda1 on /media/Kingston type vfat (rw,noexec,nosuid,nodev,shortname=winnt,uid=500)''' |
|||
[blizzard@mobile2 images]$ '''sudo umount /dev/sda1''' |
|||
[blizzard@mobile2 images]$ |
|||
Next, you wish to delete the existing partition: |
|||
Command (m for help): d |
|||
Locate the Fedora rawhide tree. In that tree find the file |
|||
Selected partition 1<br> |
|||
If you type 'p' again to print the partition table, you'll notice that the partition has been deleted: |
|||
images/diskboot.img |
|||
Command (m for help): p<br> |
|||
This is the file that contains a bootable image that you can use to boot on the board and run the installer. You will need to copy it in a raw format to the USB key. You use this using the <tt>dd</tt> command to the '''raw device.''' Note that this is '''/dev/sda''' not '''/dev/sda1'''. This will destroy or replace any filesystems or data on this drive. |
|||
Disk /dev/sda: 5000 MB, 5000970240 bytes |
|||
16 heads, 62 sectors/track, 9846 cylinders |
|||
Units = cylinders of 992 * 512 = 507904 bytes<br> |
|||
Device Boot Start End Blocks Id System<br> |
|||
Command (m for help): |
|||
Next, you wish to re-create the partition with a much larger size: |
|||
[root@mobile2 2006-06-08-0245]# '''dd if=images/diskboot.img of=/dev/sda''' |
|||
16384+0 records in |
|||
16384+0 records out |
|||
8388608 bytes (8.4 MB) copied, 1.88433 seconds, 4.5 MB/s |
|||
[root@mobile2 2006-06-08-0245]# |
|||
Command (m for help): n |
|||
===Boot on the laptop=== |
|||
Command action |
|||
e extended |
|||
Insert the USB flash drive into one of the USB ports that's directly connected to the laptop. Do not connect it through the USB hub. |
|||
p primary partition (1-4) |
|||
Power on the laptop board. If the BIOS detects the USB key you will see a message in the upper left hand corner of the screen that says something like: |
|||
Press F1 for Setup INITIALIZING BOOT USB DEVICE - DataTraveler 2.0 |
|||
USB Storage Class Device [xxxxxxxx/xxxx/xxxx] |
|||
or |
|||
Press F1 for Setup INITIALIZING BOOT USB DEVICE - WD1600BB-00RDA0 |
|||
USB BOOTABLE HDD DEVICE [xxxxxxxx/xxxx/xxxx] |
|||
You should see the Linux kernel being loaded and then the installer being loaded. If you don't, try the USB key in a different port or disconnecting the hub. The BIOS and USB are very flaky right now because this is a temporary BIOS until LinuxBIOS comes up on the boards. In fact, you might have to disconnect the USB hub while the kernel and initrd are loaded off the USB key and then connect it quickly once the kernel has started booting. |
|||
==Installing== |
|||
Type the letter 'p' here to create a new primary partition. |
|||
Congratulations! Now you've made it to the Linux installer boot screen. From here you should type |
|||
p |
|||
linux selinux=0 text |
|||
Type '1' here to create primary partition number 1: |
|||
and hit return to enter the text mode installer. The graphical installer will not run on this machine because it does not have enough memory. We disable selinux during this install because for some reason it turns a 40 minute install into a 4 hour ordeal. We aren't sure why. Please note the above instructions that say that you might have to plug the USB hub in after the initrd has been loaded and the kernel starts up due to problems with the USB stack and the BIOS. |
|||
Partition number (1-4): 1 |
|||
You may also have to remove the USB plug for the keyboard and plug it back in again once the kernel has started. Once again, USB and BIOS bugs. Just don't be alarmed if your keyboard suddenly doesn't work. |
|||
Just hit return here to start the partition at cylinder #1: |
|||
From here you need to pick your install type. We've been using HTTP installs and we have D-Link USB ethernet devices that require that we pick the <tt>asix</tt> driver. We're going to assume you know how to set up a web server or nfs server to install from and you know how to set your network settings so that it can find it. |
|||
First cylinder (1-9846, default 1): 1 |
|||
When you're setting up a partition table I suggest that you use the smallest configuration possible. This means no logical volume groups. Just three partitions: |
|||
Just hit return here to end the partition at the end of the disk: |
|||
/dev/sda1 /boot (about 128MB) |
|||
/dev/sda2 swap (about 1GB) |
|||
/dev/sda3 and / (everything else) |
|||
Last cylinder or +size or +sizeM or +sizeK (1-9846, default 9846): |
|||
This makes it very easy to fix things later. Because we are going to have to fix things later. And, yes, we really do need a gig of swap. We've run out of memory with only 512MB. |
|||
Using default value 9846<br> |
|||
You may type 'p' again to print out the new partition table: |
|||
Command (m for help): p<br> |
|||
Follow the installer prompts until you get to package selection. You should be able to install the packages you want, but be warned that picking a lot of packages will take a long time on this machine. We usually install a minimal system (unselect all the high level packages) and then install packages as we need. |
|||
Disk /dev/sda: 5000 MB, 5000970240 bytes |
|||
16 heads, 62 sectors/track, 9846 cylinders |
|||
Units = cylinders of 992 * 512 = 507904 bytes<br> |
|||
Device Boot Start End Blocks Id System |
|||
/dev/sda1 1 9846 4883615+ 83 Linux |
|||
Now, type 'w' to write the partition table to the disk and quit fdisk. |
|||
==Fixing post-install== |
|||
==Enlarging the filesystem== |
|||
Assuming that your install was successful and you've rebooted the machine you probably see an error like this: |
|||
Now that the partition is large enough, you must resize the filesystem to take advantage of all the new space. First we have to 'fsck' (file system check) the file system to ensure that it is clean. Be '''sure''' to replace the '/dev/sda1' with the actual device you are using, and make sure that you '''do''' have the '1' on the end, to specify checking of the first partition, not the entire device. |
|||
switchroot: mount failed: No such file or directory |
|||
Kernel panic - not syncing: Attempting to kill init! |
|||
<c0416e96> panic+0x46/0x188 <x04194cd> do_exit+0x75/0x72c |
|||
<c04121ab> do_page_fault+0x22a/0x5a9 <c0419bf1> sys_exit_group+0x0/0xd |
|||
<c0402cc7> syscall_call+0x7/0xb |
|||
[root@localhost ~]# fsck.ext3 /dev/sda1 |
|||
This is good news. This means that you've got an install that's completed and tried to boot. The panic is a symptom of the fact that your kernel doesn't have the usb modules loaded and can't find the disk. Lucky for you this is pretty easy to fix. |
|||
e2fsck 1.39 (29-May-2006) |
|||
/dev/sda1 is mounted.<br> |
|||
WARNING!!! Running e2fsck on a mounted filesystem may cause |
|||
SEVERE filesystem damage.<br> |
|||
Do you really want to continue (y/n)? yes<br> |
|||
Type 'y' here to continue checking: |
|||
===Fixing the initrd=== |
|||
OLPCRoot: recovering journal |
|||
First, you have to pull your USB drive out of the laptop board and plug it into another machine. You should mount the /boot and / partitions on your drive. In my examples, my root partition is mounted in /media/disk and my /boot partition is mounted in /media/disk-1. |
|||
OLPCRoot: clean, 18986/123464 files, 337653/492496 blocks |
|||
[root@localhost ~]# |
|||
Next, you will resize the actual filesystem. Choose a size that matches or is slightly less than the size of your actual USB hard disk drive. resize2fs will warn you if the size you chose is too big. In that case, just readjust the size and try again. |
|||
Once you've done that cd into your /boot partition. You should see a set of files like this: |
|||
[root@localhost ~]# resize2fs /dev/sda1 4500M |
|||
config-2.6.16-1.2221_FC6 lost+found |
|||
resize2fs 1.39 (29-May-2006) |
|||
grub System.map-2.6.16-1.2221_FC6 |
|||
Filesystem at /dev/sda1 is mounted on /media/OLPCRoot; on-line resizing required |
|||
initrd-2.6.16-1.2221_FC6.img vmlinuz-2.6.16-1.2221_FC6 |
|||
Performing an on-line resize of /dev/sda1 to 4608000 (1k) blocks. |
|||
When that step is complete (it could take a while), type 'sync' to ensure data is flushed to disk. '''Wait until the disk activity light has stopped''' before unplugging the disk. |
|||
The <tt>initrd-2.6.16-1.2221_FC6.img</tt> is the file we're interested in fixing. The <tt>initrd</tt> is a file that contains extra modules the kernel needs in order to find extra hardware devices as well as the initial startup script that mounts your root partition and kicks off the rest of the boot process. |
|||
==Done!== |
|||
There are two things we will be fixing: |
|||
You may now connect the drive to an OLPC developer board and boot it. |
|||
First, the modules for the usb drives are missing. We will have to pull them out of the kernel directory and add them to the initrd. |
|||
==Additional Setup== |
|||
Second, we need to add a delay during the boot process so that once the usb modules are loaded, the devices are given a chance to settle and the hard drives show up before attempting to mount root. |
|||
The OLPC OS images are set up to automatically start [[Sugar]]. You may not want this. After booting and arriving at the Sugar login screen, switch to a virtual terminal by pressing Ctrl+Alt+F1 all at the same time. You will then see a login prompt. You may log in as 'root' with no password. Change the password to something secure!!! Next, remove the contents of /etc/sysconfig/desktop and leave the file blank to stop sugar from starting by default. |
|||
The <tt>initrd</tt> is a file that's compressed and stored as a cpio archive. In order to extract the files we'll need to decompress it and explode the archive: |
|||
==Adding more software to the system== |
|||
[root@mobile2 ~]# cd /media/disk-1/ |
|||
[root@mobile2 disk-1]# ls |
|||
config-2.6.16-1.2221_FC6 lost+found |
|||
grub System.map-2.6.16-1.2221_FC6 |
|||
initrd-2.6.16-1.2221_FC6.img vmlinuz-2.6.16-1.2221_FC6 |
|||
[root@mobile2 disk-1]# ls -l |
|||
total 3533 |
|||
-rw-r--r-- 1 root root 59376 May 26 13:27 config-2.6.16-1.2221_FC6 |
|||
drwxr-xr-x 2 root root 1024 Jun 8 09:13 grub |
|||
-rw-r--r-- 1 root root 1101550 Jun 8 09:08 initrd-2.6.16-1.2221_FC6.img |
|||
drwx------ 2 root root 12288 Jun 8 04:51 lost+found |
|||
-rw-r--r-- 1 root root 796900 May 26 13:27 System.map-2.6.16-1.2221_FC6 |
|||
-rw-r--r-- 1 root root 1625946 May 26 13:27 vmlinuz-2.6.16-1.2221_FC6 |
|||
[root@mobile2 disk-1]# mkdir work |
|||
[root@mobile2 disk-1]# cd work |
|||
[root@mobile2 work]# gzip -cd ../initrd-2.6.16-1.2221_FC6.img | cpio -i |
|||
4765 blocks |
|||
[root@mobile2 work]# ls |
|||
bin dev etc init lib proc sbin sys sysroot |
|||
[root@mobile2 work]# |
|||
Since the OLPC images are quite stripped due to the 512MB requirement, you may wish to install additional software. Before installing either a Gnome or KDE environment, you must resolve a conflict between Sugar's artwork package, and the normal Fedora artwork package. |
|||
What we want to do is to add two files to the lib/ directory that are missing. The missing files are the drives for USB1 and USB2 devices. Those files are: |
|||
First, try to install redhat-artwork: |
|||
ehci-hcd.ko |
|||
ohci-hcd.ko |
|||
yum install redhat-artwork |
|||
They are located in the kernel modules directory on the root partition that you mounted earlier. In my case they would be at: |
|||
This will download redhat-artwork and its dependencies. When 'yum' asks: |
|||
/media/disk/lib/modules/2.6.16-1.2221_FC6/kernel/drivers/usb/host/ehci-hcd.ko |
|||
/media/disk/lib/modules/2.6.16-1.2221_FC6/kernel/drivers/usb/host/ohci-hcd.ko |
|||
Is this ok [y/N]: |
|||
Copy them into the lib/ directory that you just extracted. |
|||
Type 'y' to proceed. The install will fail with a file conflict for /etc/gtk-2.0/gtkrc. That's fine, we'll proceed to force-install redhat-artwork and it's fedora-logos dependency: |
|||
[root@mobile2 work]# cd lib |
|||
[root@mobile2 lib]# cp -v \ |
|||
/media/disk/lib/modules/2.6.16-1.2221_FC6/kernel/drivers/usb/host/ohci-hcd.ko \ |
|||
/media/disk/lib/modules/2.6.16-1.2221_FC6/kernel/drivers/usb/host/ehci-hcd.ko . |
|||
`/media/disk/lib/modules/2.6.16-1.2221_FC6/kernel/drivers/usb/host/ohci-hcd.ko' -> `./ohci-hcd.ko' |
|||
`/media/disk/lib/modules/2.6.16-1.2221_FC6/kernel/drivers/usb/host/ehci-hcd.ko' -> `./ehci-hcd.ko' |
|||
[root@mobile2 lib]# ls |
|||
dm-mirror.ko dm-zero.ko jbd.ko sd_mod.ko |
|||
dm-mod.ko ehci-hcd.ko ohci-hcd.ko usb-storage.ko |
|||
dm-snapshot.ko ext3.ko scsi_mod.ko |
|||
[root@mobile2 lib]# |
|||
-bash-3.1# cd /var/cache/yum/development/packages |
|||
Now that you've put the modules in the right place you have to tell the init program to load them during startup. At the same time, we will have to add a delay to the startup so that once those modules are loaded the devices will be detected once they have spun up. |
|||
-bash-3.1# rpm -Uhv redhat-artwork-5.0.7-1.fc6.i386.rpm fedora-logos-6.0.6-1.fc6.noarch --force |
|||
Note that your package versions might be slightly different; that's fine. Replace the filenames in the command above with the versions in the 'packages' directory. Now you may install your desktop environment of choice. |
|||
cd up to the <tt>work/</tt> directory and edit the <tt>init</tt> file using your favorite editor: |
|||
===Installing Gnome=== |
|||
[root@mobile2 lib]# pwd /media/disk-1/work/lib [root@mobile2 lib]# cd .. |
|||
[root@mobile2 work]# ls |
|||
bin dev etc init lib proc sbin sys sysroot |
|||
[root@mobile2 work]# vi init |
|||
To install a Gnome desktop environment, run: |
|||
In that file, look for the following section and add what I've added. The lines that I've added show up in bold: |
|||
-bash-3.1# yum install nautilus gedit gdm gnome-panel gnome-session |
|||
echo Setting up hotplug. |
|||
hotplug |
|||
echo Creating block device nodes. |
|||
mkblkdevs |
|||
mount -t usbfs /proc/bus/usb /proc/bus/usb |
|||
'''echo "Loading ehci-hcd.ko module"''' |
|||
'''insmod /lib/ehci-hcd.ko''' |
|||
'''echo "Loading ohci-hcd.ko module"''' |
|||
'''insmod /lib/ohci-hcd.ko''' |
|||
echo "Loading scsi_mod.ko module" |
|||
insmod /lib/scsi_mod.ko |
|||
echo "Loading sd_mod.ko module" |
|||
insmod /lib/sd_mod.ko |
|||
echo "Loading usb-storage.ko module" |
|||
insmod /lib/usb-storage.ko |
|||
echo Waiting for driver initialization. |
|||
stabilized /proc/bus/usb/devices |
|||
'''echo Waiting for driver initialization in case stabilize does not work''' |
|||
'''sleep 12''' |
|||
echo "Loading jbd.ko module" |
|||
insmod /lib/jbd.ko |
|||
This will download and install the major pieces of the GNOME desktop. When 'yum' asks: |
|||
Now that you've added the right lines to the init and you've also added the required modules, it's time to put the <tt>initrd</tt> back together again. To do that you need to make a backup of the current initrd, make a file list of the files to be included in the new initrd (remember, you've added some times) and then reassemble the initrd into an archive. The commands should look like this: |
|||
Is this ok [y/N]: |
|||
[root@mobile2 work]# mv ../initrd-2.6.16-1.2221_FC6.img ../initrd-2.6.16-1.2221_FC6.img.backup |
|||
[root@mobile2 work]# find . > ../initrd-file-list |
|||
[root@mobile2 work]# cat ../initrd-file-list | cpio -o -c | gzip -9 > ../initrd-2.6.16-1.2221_FC6.img |
|||
4892 blocks |
|||
[root@mobile2 work]# ls -l .. |
|||
total 4646 |
|||
-rw-r--r-- 1 root root 59376 May 26 13:27 config-2.6.16-1.2221_FC6 |
|||
drwxr-xr-x 2 root root 1024 Jun 8 09:13 grub |
|||
-rw-r--r-- 1 root root 1130820 Jun 15 10:43 initrd-2.6.16-1.2221_FC6.img |
|||
-rw-r--r-- 1 root root 1101550 Jun 8 09:08 initrd-2.6.16-1.2221_FC6.img.backup |
|||
-rw-r--r-- 1 root root 620 Jun 15 10:42 initrd-file-list |
|||
drwx------ 2 root root 12288 Jun 8 04:51 lost+found |
|||
-rw-r--r-- 1 root root 796900 May 26 13:27 System.map-2.6.16-1.2221_FC6 |
|||
-rw-r--r-- 1 root root 1625946 May 26 13:27 vmlinuz-2.6.16-1.2221_FC6 |
|||
drwxr-xr-x 9 root root 1024 Jun 15 10:38 work |
|||
[root@mobile2 work]# |
|||
Type 'y' to proceed. If yum fails due to dependency issues, you may need to wait until the problem gets fixed, or you may file a bug at [http://bugzilla.redhat.com Red Hat Bugzilla]. |
|||
At this point you should have a working initrd and the right modules in place. You should be able to unmount the drives, reconnect the drive '''directly into the laptop motherboard''' (don't connect through the hub or the BIOS might not find the drive!) and reboot. But since you're here we suggest that you fix up the grub options for the board first. |
|||
=== |
===Installing KDE=== |
||
If you would like the KDE environment, you could type: |
|||
We suggest that you add some options to grub that will make using X on the laptop easier, assuming you decide to install it. To do that, edit the file /boot/grub/grub.conf and add the options on bold to the boot options: |
|||
yum install kdebase kdeutils |
|||
title Fedora Core (2.6.16-1.2221_FC6) |
|||
root (hd0,0) |
|||
kernel /vmlinuz-2.6.16-1.2221_FC6 ro root=LABEL=/ '''selinux=0 vga=0x311 video=fbdev:ypan''' |
|||
This will download and install the major pieces of the KDE desktop. When 'yum' asks: |
|||
==Common Errors== |
|||
Is this ok [y/N]: |
|||
* "invalid file system" on boot |
|||
* kernel panic on boot |
|||
Type 'y' to proceed. If yum fails due to dependency issues, you may need to wait until the problem gets fixed, or you may file a bug at [http://bugzilla.redhat.com Red Hat Bugzilla]. |
|||
[[Category:Developers]] |
Latest revision as of 23:04, 5 November 2008
See Fedora on XO for how to run the Fedora 10 Linux distribution on your 2008 or 2009 XO laptop.
OverviewThis page describes how to install Fedora Core on ancient, obsolete 2006 prototype One Laptop per Child hardware using a USB Hard Disk Drive. As of the writing of this document, the A-Test boards have been built and distributed to several hundred people. RequirementsHardwareYou will need a few pieces of hardware to install the software on the A-Test board.
Why you need the powered USB hub
SoftwareDownloadGet an OS image from http://olpc.download.redhat.com/olpc/streams/development/latest/devel_ext3/. You want the ".img.bz2" file, for example: olpc-redhat-stream-development-build-86-20060922_1506-devel_ext3.img.bz2 InstallingFollow the directions at OS images for USB disks, under the "Dedicated USB disk" section. Enlarging the PartitionThe OLPC OS images are 512MB (to fit the onboard flash), but you are installing them to a larger drive. Therefore we must enlarge the partition. Once you have transferred the image to the USB device (the 'dd' step), and synced all disks (the 'sync' step), get a root shell. Then, start the 'fdisk' command like so: [root@localhost ~]# fdisk /dev/sda Be sure to replace '/dev/sda' with the actual device name of the USB Hard Disk Drive on which you are installing the OLPC OS. Next, type 'p' to show the current partition table: Command (m for help): p Next, you wish to delete the existing partition: Command (m for help): d Selected partition 1 If you type 'p' again to print the partition table, you'll notice that the partition has been deleted: Command (m for help): p Next, you wish to re-create the partition with a much larger size: Command (m for help): n Command action e extended p primary partition (1-4) Type the letter 'p' here to create a new primary partition. p Type '1' here to create primary partition number 1: Partition number (1-4): 1 Just hit return here to start the partition at cylinder #1: First cylinder (1-9846, default 1): 1 Just hit return here to end the partition at the end of the disk: Last cylinder or +size or +sizeM or +sizeK (1-9846, default 9846): Using default value 9846 You may type 'p' again to print out the new partition table: Command (m for help): p Now, type 'w' to write the partition table to the disk and quit fdisk. Enlarging the filesystemNow that the partition is large enough, you must resize the filesystem to take advantage of all the new space. First we have to 'fsck' (file system check) the file system to ensure that it is clean. Be sure to replace the '/dev/sda1' with the actual device you are using, and make sure that you do have the '1' on the end, to specify checking of the first partition, not the entire device. [root@localhost ~]# fsck.ext3 /dev/sda1 e2fsck 1.39 (29-May-2006) /dev/sda1 is mounted. Type 'y' here to continue checking: OLPCRoot: recovering journal OLPCRoot: clean, 18986/123464 files, 337653/492496 blocks [root@localhost ~]# Next, you will resize the actual filesystem. Choose a size that matches or is slightly less than the size of your actual USB hard disk drive. resize2fs will warn you if the size you chose is too big. In that case, just readjust the size and try again. [root@localhost ~]# resize2fs /dev/sda1 4500M resize2fs 1.39 (29-May-2006) Filesystem at /dev/sda1 is mounted on /media/OLPCRoot; on-line resizing required Performing an on-line resize of /dev/sda1 to 4608000 (1k) blocks. When that step is complete (it could take a while), type 'sync' to ensure data is flushed to disk. Wait until the disk activity light has stopped before unplugging the disk. Done!You may now connect the drive to an OLPC developer board and boot it. Additional SetupThe OLPC OS images are set up to automatically start Sugar. You may not want this. After booting and arriving at the Sugar login screen, switch to a virtual terminal by pressing Ctrl+Alt+F1 all at the same time. You will then see a login prompt. You may log in as 'root' with no password. Change the password to something secure!!! Next, remove the contents of /etc/sysconfig/desktop and leave the file blank to stop sugar from starting by default. Adding more software to the systemSince the OLPC images are quite stripped due to the 512MB requirement, you may wish to install additional software. Before installing either a Gnome or KDE environment, you must resolve a conflict between Sugar's artwork package, and the normal Fedora artwork package. First, try to install redhat-artwork: yum install redhat-artwork This will download redhat-artwork and its dependencies. When 'yum' asks: Is this ok [y/N]: Type 'y' to proceed. The install will fail with a file conflict for /etc/gtk-2.0/gtkrc. That's fine, we'll proceed to force-install redhat-artwork and it's fedora-logos dependency: -bash-3.1# cd /var/cache/yum/development/packages -bash-3.1# rpm -Uhv redhat-artwork-5.0.7-1.fc6.i386.rpm fedora-logos-6.0.6-1.fc6.noarch --force Note that your package versions might be slightly different; that's fine. Replace the filenames in the command above with the versions in the 'packages' directory. Now you may install your desktop environment of choice. Installing GnomeTo install a Gnome desktop environment, run: -bash-3.1# yum install nautilus gedit gdm gnome-panel gnome-session This will download and install the major pieces of the GNOME desktop. When 'yum' asks: Is this ok [y/N]: Type 'y' to proceed. If yum fails due to dependency issues, you may need to wait until the problem gets fixed, or you may file a bug at Red Hat Bugzilla. Installing KDEIf you would like the KDE environment, you could type: yum install kdebase kdeutils This will download and install the major pieces of the KDE desktop. When 'yum' asks: Is this ok [y/N]: Type 'y' to proceed. If yum fails due to dependency issues, you may need to wait until the problem gets fixed, or you may file a bug at Red Hat Bugzilla. |