Emulation: Raspberry Pi Fedora 14 Remix under QEMU
As we (im)patiently wait for our Raspberry Pi boards, an interesting way to bridge the lack of hardware is to run one or more of the Rpi ARM distros under QEMU emulation.
It's not hard to set this up on a Linux desktop for the Raspberry Pi Fedora 14 Remix distro, as CNXSoft has provided a very well written HOWTO with full details.
I had no trouble at all getting it working as per those instructions on my Gentoo 32-bit system. I encountered the same error that he found on his Ubuntu machine with qemu-system-arm, but rebuilding qemu-system-arm from the Linaro Git sources as he described fixed mine as well.
Here's the output from a few commands I ran on the emulated machine. I had to ssh into it from another box to be able to cut'n'paste. QEMU's native console appears not to provide that facility, and unfortunately the console mouse package "gpm" doesn't appear to be in the Fedora 14 Remix image.
As I booted the kernel that CNXSoft suggested, it's actually Linux raspi 3.0.4 rather than the 3.1.9 that is on the Raspberry Pi Fedora 14 Remix SD image, so it's possible that the above information varies a little from what we'll see when we finally boot up our boards.
[root@raspi boot]# uname -a
Linux raspi 3.0.4 #2 Mon Oct 17 17:39:42 ICT 2011 armv6l armv6l armv6l GNU/Linux
[root@raspi boot]# cat /proc/cpuinfo
Processor : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 225.68
Features : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7
Hardware : ARM-Versatile PB
Revision : 0000
Serial : 0000000000000000
[root@raspi boot]# ip route ls
default via 10.0.2.2 dev eth0 proto static
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15 metric 1
[root@raspi boot]# ps -elf | wc -l
[root@raspi boot]# dmesg | perl -ne '/^(Linux)|(CPU)|(Memory)|(Console):/ && print'
Linux version 3.0.4 (jaufranc@CNX-NETBOOK) (gcc version 4.5.2
(Sourcery G++ Lite 2011.03-42) ) #2 Mon Oct 17 17:39:42 ICT 2011
CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387f
CPU: VIPT aliasing data cache, unknown instruction cache
Memory policy: ECC disabled, Data cache writeback
Memory: 192MB = 192MB total
Memory: 190620k/190620k available, 5988k reserved, 0K highmem
Console: colour dummy device 80x30
CPU: Testing write buffer coherency: ok
Console: switching to colour frame buffer device 80x60
Happy emulating! :D