I almost have this going, needs some smart people to take a look. <br>
To use it, follow the qemu tutorial for getting and patching qemu. <br>
For the bios, ignore the instuctions. <br>
Do this:<br>
git-clone git://dev.laptop.org/users/jcrouse/buildrom<br>
cd buildrom<br>
Now you need to set things up so that you get a linuxbios for qemu. replace the <a href="http://Config.mk">Config.mk</a> with the one I am attaching. <br>
not type make. After some time, you will have a deploy/linuxbios.rom to
use as a bios. cp it to some directory, say your home dir.<br>
Now get an OLPC image, go to <a href="http://wiki.laptop.org">wiki.laptop.org</a> and grab (e.g.) the build81 ext3 image. <br>
bunzip2 that image. <br>
Now do as the tutorial says: <br>
qemu -L ~ -hda1 blahblah.ext3 --nographic, e.g.<br>
/opt/qemu-0.8.2/bin/qemu -L  ~ -hda roots/olpc-stream-development-81-20060831_1548-ext3.img -nographic<br>
and watch it boot up: <br>
LinuxBIOS-2.0.0-OpenBIOS Mon Sep 18 22:07:06 MDT 2006 starting...<br>
Copying LinuxBIOS to ram.<br>
Jumping to LinuxBIOS.<br>
LinuxBIOS-2.0.0-OpenBIOS Mon Sep 18 22:07:06 MDT 2006 booting...<br>
Enumerating buses...<br>
Finding PCI configuration type.<br>
PCI: Using configuration type 1<br>
PCI_DOMAIN: 0000 enabled<br>
PCI: pci_scan_bus for bus 0<br>
set_pci_ops: seeking driver for 8086:1237 class 60000<br>
PCI: 00:00.0 [8086/1237] enabled<br>
set_pci_ops: seeking driver for 8086:7000 class 60100<br>
PCI: 00:01.0 [8086/7000] enabled<br>
set_pci_ops: seeking driver for 8086:7010 class 10180<br>
PCI: 00:01.1 [8086/7010] enabled<br>
set_pci_ops: seeking driver for 8086:7113 class 68000<br>
PCI: 00:01.3 [8086/7113] enabled<br>
set_pci_ops: seeking driver for 1013:b8 class 30000<br>
PCI: 00:02.0 [1013/00b8] enabled<br>
set_pci_ops: seeking driver for 10ec:8029 class 20000<br>
PCI: 00:03.0 [10ec/8029] enabled<br>
PCI: pci_scan_bus returning with max=00<br>
Allocating resources...<br>
Reading resources...<br>
Done reading resources.<br>
Setting resources...<br>
I would set ram size to 0x20000 Kbytes<br>
PCI: 00:01.1 20 <- [0x0000001400 - 0x000000140f] io<br>
PCI: 00:02.0 10 <- [0x00fc000000 - 0x00fdffffff] prefmem<br>
PCI: 00:02.0 14 <- [0x00fe000000 - 0x00fe000fff] mem<br>
PCI: 00:03.0 10 <- [0x0000001000 - 0x00000010ff] io<br>
Done setting resources.<br>
Done allocating resources.<br>
Enabling resources...<br>
PCI: 00:00.0 subsystem <- 00/00<br>
PCI: 00:00.0 cmd <- 140<br>
PCI: 00:01.0 subsystem <- 00/00<br>
PCI: 00:01.0 cmd <- 147<br>
PCI: 00:01.1 cmd <- 141<br>
PCI: 00:01.3 cmd <- 140<br>
PCI: 00:02.0 cmd <- 143<br>
PCI: 00:03.0 cmd <- 141<br>
Initializing devices...<br>
Root Device init<br>
PCI: 00:00.0 init<br>
PCI: 00:01.0 init<br>
PCI: 00:01.1 init<br>
PCI: 00:01.3 init<br>
PCI: 00:02.0 init<br>
PCI: 00:03.0 init<br>
Devices initialized<br>
Copying IRQ routing tables to 0xf0000...done.<br>
Verifing copy of IRQ routing tables at 0xf0000...done<br>
Checking IRQ routing table consistency...<br>
check_pirq_routing_table() - irq_routing_table located at: 0x000f0000<br>
Moving GDT to 0x500...ok<br>
Wrote linuxbios table at: 00000530 - 00000b64  checksum 5dad<br>
Welcome to elfboot, the open sourced starter.<br>
January 2002, Eric Biederman.<br>
Version 1.3<br>
rom_stream: 0xfff20000 - 0xfffeffff<br>
Uncompressing to RAM 0x01000000  olen = 0x000c995e done.<br>
Found ELF candiate at offset 0<br>
Dropping non PT_LOAD segment<br>
New segment addr 0x10000 size 0x1ab24 offset 0x168 filesize 0x561c<br>
(cleaned up) New segment addr 0x10000 size 0x1ab24 offset 0x168 filesize 0x561c<br>
New segment addr 0x91000 size 0x70 offset 0x5784 filesize 0x0<br>
(cleaned up) New segment addr 0x91000 size 0x70 offset 0x5784 filesize 0x0<br>
New segment addr 0x100000 size 0x700000 offset 0x5784 filesize 0x907c9<br>
(cleaned up) New segment addr 0x100000 size 0x700000 offset 0x5784 filesize 0x907c9<br>
New segment addr 0x800000 size 0x33a11 offset 0x95f4d filesize 0x33a11<br>
(cleaned up) New segment addr 0x800000 size 0x33a11 offset 0x95f4d filesize 0x33a11<br>
Loading Segment: addr: 0x0000000007fe8000 memsz: 0x0000000000006000 filesz: 0x000000000000561c<br>
Clearing Segment: addr: 0x0000000007fed61c memsz: 0x00000000000009e4<br>
Loading Segment: addr: 0x0000000000091000 memsz: 0x0000000000000070 filesz: 0x0000000000000000<br>
Clearing Segment: addr: 0x0000000000091000 memsz: 0x0000000000000070<br>
Loading Segment: addr: 0x0000000000100000 memsz: 0x0000000000700000 filesz: 0x00000000000907c9<br>
Clearing Segment: addr: 0x00000000001907c9 memsz: 0x000000000066f837<br>
Loading Segment: addr: 0x0000000000016000 memsz: 0x0000000000014b24 filesz: 0x0000000000000000<br>
Clearing Segment: addr: 0x0000000000016000 memsz: 0x0000000000014b24<br>
Loading Segment: addr: 0x0000000000800000 memsz: 0x0000000000033a11 filesz: 0x0000000000033a11<br>
   120:stream_skip() - overflowed source buffer<br>
Jumping to boot code at 0x10000<br>
Firmware type: LinuxBIOS<br>
Linux version 2.6.18-rc4jhc (<a href="mailto:rminnich@q.ccstar.lanl.gov">rminnich@q.ccstar.lanl.gov</a>) (gcc version
4.0.2 20051125 (Red Hat 4.0.2-8)) #1 Mon Sep 18 22:04:13 MDT 2006<br>
BIOS-provided physical RAM map:<br>
 BIOS-e820: 0000000000000000 - 0000000000000bd0 (reserved)<br>
 BIOS-e820: 0000000000000bd0 - 00000000000a0000 (usable)<br>
 BIOS-e820: 00000000000f0000 - 00000000000f0400 (reserved)<br>
 BIOS-e820: 0000000000100000 - 0000000008000000 (usable)<br>
user-defined physical RAM map:<br>
 user: 0000000000000000 - 0000000000000bd0 (reserved)<br>
 user: 0000000000000bd0 - 00000000000a0000 (usable)<br>
 user: 00000000000f0000 - 00000000000f0400 (reserved)<br>
 user: 0000000000100000 - 0000000007700000 (usable)<br>
119MB LOWMEM available.<br>
DMI not present or invalid.<br>
Allocating PCI resources starting at 10000000 (gap: 07700000:f8900000)<br>
Detected 1694.659 MHz processor.<br>
Built 1 zonelists.  Total pages: 30464<br>
Kernel command line: console=ttyS0,115200 video=gxfb:1024x768 mem=119m rdinit=/linuxrc <br>
Enabling fast FPU save and restore... done.<br>
Enabling unmasked SIMD FPU exception support... done.<br>
Initializing CPU#0<br>
PID hash table entries: 512 (order: 9, 2048 bytes)<br>
Console: colour dummy device 80x25<br>
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)<br>
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)<br>
Memory: 118932k/121856k available (780k kernel code, 2456k reserved, 191k data, 108k init, 0k highmem)<br>
Checking if this processor honours the WP bit even in supervisor mode... Ok.<br>
Calibrating delay using timer specific routine.. 3094.78 BogoMIPS (lpj=15473942)<br>
Mount-cache hash table entries: 512<br>
CPU: L1 I cache: 8K<br>
CPU: L2 cache: 128K<br>
CPU: Intel Pentium II (Klamath) stepping 03<br>
Checking 'hlt' instruction... OK.<br>
Unpacking initramfs... done<br>
Freeing initrd memory: 206k freed<br>
PCI: Using configuration type 1<br>
Setting up standard PCI resources<br>
SCSI subsystem initialized<br>
usbcore: registered new driver usbfs<br>
usbcore: registered new driver hub<br>
PCI: Probing PCI hardware<br>
PCI quirk: region b000-b03f claimed by PIIX4 ACPI<br>
PCI: Using IRQ router PIIX/ICH [8086/7000] at 0000:00:01.0<br>
PCI: Found IRQ 11 for device 0000:00:03.0<br>
PCI: Ignore bogus resource 6 [0:0] of 0000:00:02.0<br>
JFFS2 version 2.2. (NAND) (SUMMARY)  (C) 2001-2006 Red Hat, Inc.<br>
io scheduler noop registered (default)<br>
Limiting direct PCI/PCI transfers.<br>
PCI: PIIX3: Enabling Passive Release on 0000:00:01.0<br>
Activating ISA DMA hang workarounds.<br>
Serial: 8250/16550 driver $Revision: 1.90 $ 1 ports, IRQ sharing disabled<br>
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16450<br>
Initializing USB Mass Storage driver...<br>
usbcore: registered new driver usb-storage<br>
USB Mass Storage support registered.<br>
usbcore: registered new driver usbhid<br>
drivers/usb/input/hid-core.c: v2.6:USB HID core driver<br>
serio: i8042 AUX port at 0x60,0x64 irq 12<br>
serio: i8042 KBD port at 0x60,0x64 irq 1<br>
Using IPI Shortcut mode<br>
Time: tsc clocksource has been installed.<br>
Freeing unused kernel memory: 108k freed<br>
input: AT Raw Set 2 keyboard as /class/input/input0<br>
OLPC ROM rev_a_20060913-2<br>
Build timestamp: 20060918 22:06:37<br>
Starting bootmenu.<br>
Couldn't open /dev/fb0<br>
NOTICE: Starting the shell...<br>
# TSC appears to be running slowly. Marking it as unstable<br>
Time: pit clocksource has been installed.<br>
#        <br>
so you have a root prompt. But getting to graphics is another matter. <br>