Hello, again (hoping this thread isnt too old)...
I ran this with qemu (the Ångström qemuarm target - qemu -M versatile-pb - same kernel as with the new "test Ångström" image). But i created my own filesystem with the Narcissus Ångström image builder - essentially so it had the toolchain. Then i compiled qemu (svn - but not totally recent (about from when i started this thread)) on it (more on all the deps later) on it - with --target-list="i386-softmmu i386-linux-user" (tugged that from memory - not exactly certain that is). Then copied my minimal x86 tux (with Xorg+twm+wine+Stars! on it) to the filesystem and tried to run it. And it (qemu emulating i386 running on qemu-system-arm (that ran on i386
)) loaded the BIOS ok- booted grub ok- loaded linux kernel ok- started kernel ok- ran init... and boom:
(init segfault)
So it still has something not quite right
(by this stage i had my hopes high...) . I posted this stating the ~current state of affairs and in hope if anybody can decipher anything useful out of that dump (the arm kernel is 2.6.26-rc4 that comes with the just posted "test ångström on windows" thingy (used it as an easy way to get a hd image and kernel and ready-to use qemu command line) and the x86 kernel is my self compiled 2.6.28.5 - and the host x86 kernel (the only kernel touching real hardware) is a ~recent ArchLinux stock 2.6.28-ARCH).
anyways - here's a list of things to do to get here (in case somebody wants to continue on my work or something - this stuff isn't for the faint of heart (or the ones frightened by loud noices & long division)).
- have linux with qemu (qemu-system-arm)
- get the 7z self extracting (for win) package - run it with wine (or extract with 7z?)
- change the start.bat to start.sh (add #!/bin/sh and remove .exe (of qemu-system-arm) and chmod +x)
- build an image with the Ångström image builder including the toolchain:CODE
http://amethyst.openembedded.net/~koen/narcissus/
(The exact image i used was this: (3 days and it goes bb) CODE
http://amethyst.openembedded.net/~koen/narcissus/deploy/qemuarm/7b70c8/random-7289058d-image-qemuarm.tar.bz2
(58.34MB)
- create an empty 512M file (i renamed hdd.img and put this in its place) (dd) create ext3fs on it (mke2fs -j) loop mount it (root rights required) (mount -o loop hdd.img /mount/point)
- extracted the .tar.bz2 to the image mounted
- include all this stuff (i had to reboot the system many times for this - boot once to create the user if you like):
SDL-1.2.13 (.tar.something originally), xextproto-7.0.3.tar.bz2,
libX11-1.1.5.tar.bz2,qemu-svn-src
(eg. check out the qemu svn on the host and dump it to the hd image),xproto-7.0.13.tar.bz2
libXext-1.0.4.tar.bz2,libXrandr-1.2.3.tar.bz2,zlib-1.2.3.tar.gz
libXt-1.0.5.tar.bz2
- run the start.sh and wait a moment (even on an Core 2 Duo P8400...)
- ok so you need zlib and X11 headers (i re-installed zlib before i understood the next thing)
- so re-configure&install zlib plus cp zlib.h zconf.h /usr/include
(or just copy the .h and go to /usr/lib to create link (in /usr/lib) libz.so to libz.so.1 (or the like))
[This stuff worked for me but really i think isnt recommended (but tell me when you find the X11 headers in the Ångström repos - the xproto package (that said headers in the description) was for example .. empty .. duh(686 bytes ipk no data only control):]
- unpack all the X-something packages - find out where the headers are in the package (include dir or at root usually) and rename *.h.in to .h (found two) (this might not be good advice - one should really run auto*(something) to create them) and just copy the headers to the place where they should be - i checked where they were on my host system (/usr/include/X11{/extensions})..
- go and create links libX*.so -> libX*.so.? (for all libX's included above (in /usr/lib)) (otherwise ld wont find them) - this took a while to figure out (ld wont find libX11.so.6 if you say "gcc -lX11 ...", it will find libX11.so)
- compile&install SDL (i did just with ./configure --prefix=/usr (watch it to make sure X is found - boring job) then make and then to root rights and make install)
- configure qemu with --prefix=/usr --install-target="i386-softmmu i386-linux-user" (i386-softmmu only should work too if you want system emulation only) (i passed --no-kqemu too but i dont think that had any effect...)
- compile qemu (make) (this will take a while) (even the configure takes a while though)
- install qemu (make install as root)
.. qet some x86 hd image to test (small - mine was ~50M qcow (compressed)) and run qemu
(just to show the bios you can say qemu -m 32 /dev/null (0MB hd then...))
Uh... report finished