On Fri, Sep 21, 2012 at 7:03 PM, Steven Frank <address@hidden> wrote:
On Sep 21, 2012, at 11:59 AM, Ezequiel Garcia <address@hidden> wrote:
I am using a Mac OS X host to build the Linux 3.5 kernel for ARM, and trying to boot it in QEMU 1.2.0.
The kernel, to my surprise, built fine on my Mac using the arm-none-eabi-gcc toolchain from MacPorts. I'm using the versatile_defconfig, since that turned up a lot when I was Googling how to do this.
Then I try to boot my kernel in QEMU using this command line:
arm-softmmu/qemu-system-arm -m 16 -M versatilepb -kernel arch/arm/boot/zImage -serial stdio
I don't have a rootfs yet -- I was hoping to just get as far as seeing the kernel boot messages.
It outputs this:
Uncompressing Linux... done, booting the kernel.
Then hangs, with an empty white window. Nothing further appears to happen.
I had the same problem just yesterday. Try with older kernel 2.6.32 /
2.6.38 and let me know.
Also, what kernel config are you using?
I'm using the versatile_defconfig to (hopefully) match up with QEMU's "versatilepb" machine.
I just tried 2.6.32 and 2.6.38. Same results, although 2.6.32 outputs more dots between "Uncompressing Linux" and "booting the kernel". But both hang at the blank white screen, just like 3.5 did.
There is one other interesting difference. When trying to boot 2.6.32, QEMU remains responsive. In other words, it responds to events like Cmd-Q to quit. With the later kernels, QEMU hangs completely and must be force-quit (killed).
Very curious. Any thoughts?
It was working yesterday. Let me check my qemu / kernel version and
I think I finally located the problem.
The QEMU binary is defective when built with Apple's LLVM-based toolchain, as documented here:
My workaround was to install gcc 4.8 using MacPorts:
sudo port install gcc48
Configure and build QEMU like so:
./configure --disable-sdl --disable-kvm --target-list=arm-softmmu --cc=x86_64-apple-darwin12-gcc-4.8.0 --host-cc=x86_64-apple-darwin12-gcc-4.8.0
And now I can boot my compiled-from-source Linux kernel.