Hello to everybody. I'm trying to virtualize Linaro-Android 4 with qemu-linaro on two different kind of machines :
1) Pandaboard ES running Ubuntu with this kernel :
Linux arm 3.7.2-x6 #1 SMP Sat Jan 12 07:16:37 UTC 2013 armv7l armv7l armv7l GNU/Linux
2) Samsung XE303C12-A01US Chromebook running CHR Ubuntu with this kernel :
Linux localhost.localdomain 3.4.0-5-chromebook #5-Ubuntu SMP Fri Feb 8 14:54:53 UTC 2013 armv7l armv7l armv7l GNU/Linux
To accomplish the goal I made the experiments with two versions of qemu-linaro :
1) qemu-linaro-1.3.0-2012.12 2) qemu-linaro 1.4 from the GIT rep
In both cases I configured qemu-linaro with these parameters :
--disable-kvm --disable-tcg-interpreter --enable-curses --enable-sdl --enable-vnc --disable-debug-tcg --enable-vhost-net
I tried to follow two different kind of tutorials :
1) http://www.linuxforu.com/2011/06/qemu-for-embedded-systems-development-part-...
2) https://wiki.linaro.org/KenWerner/Sandbox/AndroidQEMU?highlight=%28QEMU%29%7...https://wiki.linaro.org/KenWerner/Sandbox/AndroidQEMU?highlight=%28QEMU%29%7C%28Android%29
On the TUTORIAL n. 1:
1) Created a small test program, test.c, with the basic “Hello world”:
#include<stdio.h> int main(){ printf("Welcome to Open World\n"); }
# gcc test.c -o test
2) Built the Linux kernel for ARM
# tar -jxvf linux-2.6.37.tar.bz2 (but I tried with a lot of other kernel versions) # cd linux-2.6.37 # make menuconfig ARCH=arm # make ARCH=arm uImage -s # qemu-system-arm -M versatilepb -m 128M -kernel /home/user/Desktop/linux-2.6.37/arch/arm/boot/uImage
RESULT = black screen inside the qemu-linaro window without error messages
3) Developed a dummy filesystem (hello.c) for testing
#include<stdio.h> int main(){ while(1){ printf("Hello Open World\n"); getchar(); } }
# gcc hello.c -static -o hello
4) Created a root filesystem
# echo hello | cpio -o --format=newc > rootfs
5) Testing :
qemu-system-arm -M versatilepb -m 128M -kernel /home/user/Desktop/ linux-2.6.37/arch/arm/boot/uImage -initrd rootfs -append "root=/dev/ram rdinit=/hello"
RESULT = black screen inside the qemu-linaro window without error messages
On the TUTORIAL n. 2 :
1) Patched :
qemu-linaro-1.3.0-2012.12
with :
sed -i "s/#define INITRD_LOAD_ADDR 0x00d00000/#define INITRD_LOAD_ADDR 0x01d00000/" qemu-linaro-1.3.0-2012.12/hw/arm_boot.c
and also qemu-linaro 1.4 from the GIT rep
with the same patch:
sed -i "s/#define INITRD_LOAD_ADDR 0x00d00000/#define INITRD_LOAD_ADDR 0x01d00000/" qemu-linaro/hw/arm_boot.c
2) wget http://releases.linaro.org/12.05/android/images/vexpress-ics-gcc47-armlt-tra...
gunzip vexpress-ics-gcc47-armlt-tracking-open.img.gz
sudo kpartx -a vexpress-ics-gcc47-armlt-tracking-open.img
sudo mount /dev/mapper/loop0p1 /mnt -o loop,ro
cp /mnt/uImage /mnt/uInitrd .
sudo umount /mnt
sudo kpartx -d /dev/mapper/loop0p*
dd if=uImage of=vmlinuz skip=64 bs=1
dd if=uInitrd of=initrd.gz skip=64 bs=1
3) Tried to boot Linaro Android 12.05 using qemu-linaro-1.3.0-2012.12 and also qemu-linaro 1.4 from the GIT rep
on the Pandaboard ES with this :
qemu-system-arm -M vexpress-a9 -m 1024 -smp 1 -snapshot -serial stdio -no-reboot -kernel vmlinuz -initrd initrd.gz -drive file=vexpress-ics-gcc47-armlt-tracking-open.img,if=sd,cache=writeback --append "console=tty0 console=ttyAMA0,38400n8 rootwait ro init=/init androidboot.console=ttyAMA0"
and on the Samsung XE303C12-A01US Chromebook with this :
qemu-system-arm -M vexpress-a15 -cpu-cortex-a15 -m 1024 -smp 1 -snapshot -serial stdio -no-reboot -kernel vmlinuz -initrd initrd.gz -drive file=vexpress-ics-gcc47-armlt-tracking-open.img,if=sd,cache=writeback --append "console=tty0 console=ttyAMA0,38400n8 rootwait ro init=/init androidboot.console=ttyAMA0"
I've also tried wth :
qemu-system-arm -M vexpress-a15 -cpu cortex-a15 -m 1024 -smp 1 -snapshot -serial stdio -no-reboot -kernel uImage -initrd uInitrd -drive file=vexpress-ics-gcc47-armlt-tracking-open.img,if=sd,cache=writeback --append "console=tty0 console=ttyAMA0,38400n8 rootwait ro init=/init androidboot.console=ttyAMA0"
Also tried with different kind of combinations,like :
-M versatilepb ; -M vexpress-a9 ; -cpu cortex-a9 ; -m 512 ;
but the RESULT is still the smae = black screen inside the qemu-linaro window without error messages. Any help ?
Instead,debian_lenny_armel_desktop is virtualized very well with qemu-linaro following this procedure :
a) wget vmlinuz-2.6.32-5-versatile,initrd.img-2.6.32-5-versatile and debian_lenny_armel_desktop from here :
http://people.debian.org/~aurel32/qemu/armel/
b) tried to virtualize debian_lenny_armel_desktop with :
qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.img-2.6.32-5-versatile -hda debian_lenny_armel_desktop.qcow2 -append "root=/dev/sda1"
and it works....