NETGEAR is aware of a growing number of phone and online scams. To learn how to stay safe click here.
Forum Discussion
chirpa
Jul 13, 2009Luminary
Sparc platform development envrionment using Qemu
You can now run a fully emulated Sparc platform development environment on any system capable of running Qemu.
Download: readynas_compile_environment.qcow.gz
Default root password for this package is 'a'. The compile environment is all there for most common stuff.
Download: readynas_compile_environment.qcow.gz
# wget -q http://www.readynas.com/download/development/readynas_compile_environment.qcow.gz
# gunzip readynas_compile_environment.qcow.gz
# qemu-system-sparc -hda readynas_compile_environment.qcow -nographic
Default root password for this package is 'a'. The compile environment is all there for most common stuff.
# qemu-system-sparc -hda readynas_compile_environment.qcow -nographic(I'm actually running this directly on a ReadyNAS Pro)
(qemu)
Nvram id QEMU_BIOS, version 1, machine id 0x80
CPUs: 1
invalid nvram partition length
nvram error detected, zapping pram
Welcome to OpenBIOS v1.0RC1 built on May 31 2007 23:50
Type 'help' for detailed information
[sparc] Booting file 'disk' with parameters ''
Not a bootable ELF image
Not a Linux kernel image
Loading a.out image...
Loaded 7680 bytes
entry point is 0x4000
Jumping to entry point...
SILO Version 1.4.13
boot:
Uncompressing image...
Loaded kernel version 2.6.18
Loading initial ramdisk (3210249 bytes at 0x3000000 phys, 0x60000000 virt)...
PROMLIB: obio_ranges 1
Booting Linux...
PROMLIB: Sun Boot Prom Version 3 Revision 2
Linux version 2.6.18-6-sparc32 (Debian 2.6.18.dfsg.1-23etch1) (dannf@debian.org) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 Fri Dec 12 16:29:52 UTC 2008
ARCH: SUN4M
TYPE: SPARCstation 5
Ethernet address: 52:54:0:12:34:56
Boot time fixup v1.6. 4/Mar/98 Jakub Jelinek (jj@ultra.linux.cz). Patching kernel for srmmu[Fujitsu TurboSparc]/iommu
PROM: Built device tree with 21266 bytes of memory.
Power off control detected.
Built 1 zonelists. Total pages: 31179
Kernel command line: root=/dev/sda2 ro
PID hash table entries: 512 (order: 9, 2048 bytes)
start_kernel(): bug: interrupts were enabled early
Console: colour dummy device 80x25
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 121200k/130232k available (1640k kernel code, 8880k reserved, 404k data, 136k init, 0k highmem)
Mount-cache hash table entries: 512
checking if image is initramfs... it is
Freeing initrd memory: 3135k freed
NET: Registered protocol family 16
IOMMU: impl 0 vers 4 table 0xf3200000[262144 B] map [65536 b]
sbus0: Clock 21.1250 MHz
dma0: Revision 2
dma1: Revision 2
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 4096 bind 2048)
TCP reno registered
ioremap: done with statics, switching to malloc
apc: power management initialized
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
Initializing Cryptographic API
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
Console: switching to colour frame buffer device 128x48
/iommu@0,10000000/sbus@0,10001000/SUNW,tcx@3,800000: TCX at 0:50800000, 24-bit depth
ffd54490: ttyS0 at MMIO 0x71100000 (irq = 44) is a zs
Console: ttyS0 (SunZilog zs0)
ffd54490: ttyS1 at MMIO 0x71100004 (irq = 44) is a zs
ffd5466c: Keyboard at MMIO 71000000 (irq = 44) is a zs
ffd5466c: Mouse at MMIO 71000004 (irq = 44) is a zs
Floppy drive(s): fd0 is 1.44M
FDC 0 is a S82078B
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
rtc_sun_init: Registered Mostek RTC driver.
mice: PS/2 mouse device common for all mice
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Freeing unused kernel memory: 136k freed
input: Sun Type 5 keyboard as /class/input/input0
Loading, please wait...
Begin: Loading essential drivers... ...
SCSI subsystem initialized
esp0: IRQ 36 SCSI ID 7 Clk 40MHz CCYC=25000 CCF=8 TOut 167 NCR53C90(esp100)
scsi0 : Sparc ESP100 (NCR53C90)
Vendor: QEMU Model: QEMU HARDDISK Rev: 0.8.
Type: Direct-Access ANSI SCSI revision: 03
Vendor: QEMU Model: QEMU CD-ROM Rev: 0.8.
Type: CD-ROM ANSI SCSI revision: 03
Done.
Begin: Running /scripts/init-premount ...
SCSI device sda: 20971521 512-byte hdwr sectors (10737 MB)
sda: Write Protect is off
SCSI device sda: drive cache: write back
SCSI device sda: 20971521 512-byte hdwr sectors (10737 MB)
sda: Write Protect is off
SCSI device sda: drive cache: write back
sda: sda1 sda2 sda3 sda4
sd 0:0:0:0: Attached scsi disk sda
Done.
Begin: Mounting root file system... ...
Begin: Running /scripts/local-top ...
Done.
Begin: Running /scripts/local-premount ...
Done.
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
Begin: Running /scripts/local-bottom ...
Done.
Done.
Begin: Running /scripts/init-bottom ...
Done.
INIT: version 2.84 booting
INIT: Entering runlevel: 3
EXT3 FS on sda2, internal journal
sunlance.c:v2.02 8/24/03 Miguel de Icaza (miguel@nuclecu.unam.mx)
SunLance: using auto-carrier-detection.
eth0: LANCE 52:54:00:12:34:56
Starting LVM...done.
Checking filesystems...done
Setting kernel variables.
Mounting filesystems:
nothing was mounted
Initializing urandom... done.
Starting portmap...done.
Starting log daemons: syslogd klogd.
Starting atd...done
Starting inetd...done
Starting cupsd...done
Starting cron...done
debian-sparc login: root
Password:
Linux debian-sparc 2.6.18-6-sparc32 #1 Fri Dec 12 16:29:52 UTC 2008 sparc GNU/Linux
debian-sparc:~#
36 Replies
Replies have been turned off for this discussion
- hnoAspirantarchive.debian.org
- jj69Aspirant
hno wrote: archive.debian.org
Well, thanx hno.
It does help but the packages I need are not there (vlc source).
I changed strategy and grabed source archives.
I'll start a new thread as I have some difficulties. - derJan1AspirantI'm having trouble running the qemu-Image on my Mac with "Q", the Mac qemu-Port (http://www.kju-app.org/).
It starts, but I can't log in (there is no prompt for the username).
Does anyone know how I can fix this? Perhaps it is like on some *nix-Systems that I have to switch to another console or something, how do I do this? - jj69Aspirant
derJan wrote: Perhaps it is like on some *nix-Systems that I have to switch to another console or something, how do I do this?
Indeed, switch to console 3 (ctrl+alt+3 on the PC, should be Ctrl+Opt+3 on the Mac).
You'll be able to log in. - derJan1AspirantThanks a lot, that did the trick!
- krylonAspirantI'm not having any luck getting qemu-system-sparc to start the bios on Ubuntu, it just hangs. qemu (x86) starts just fine though. I downloaded the openbios-sparc32 from the link in this thread. Any help linux users? This is with both qemu v0.12.3 and v.0.11
It hangs both with and without -nographic. qemu loads just a black screen if I don't specify -nographic. - WhoCares_MentorI found that it will only work with qemu 0.9.x but not with any newer versions of qemu.
-Stefan - vidarnoAspirantI am now running this image with Qemu 0.12.5 on Ubuntu 10.4 Lucid Lynx, after some work.
The qemu-packages in Lucid have had the openbios-files removed and instead suggest
you install the package openbios-sparc, which has no installation candidate - I get the
impression that's because it has build-issues, but you are welcome to try and build
the source package for openbios-sparc, it is in the universe repository. (I tried, and failed)
The openbios link earlier in this thread did not work for me either, qemu just froze.
The solution is to compile qemu from source http://wiki.qemu.org/Download
It will install the openbios-files missing from the packaged version and you are all set. - veehexxAspirantif it's of use to anyone, openSUSE 11.3 x64 works out-of-the-box with qemu via 'zypper install qemu' (qemu 0.12.5), and the guide both in this post and the developing addons guide.
no tinkering required which makes me happy :D - An_Evil_PenguinAspirantI managed to get this running fairly easily in my Ubuntu 10.10 virtual machine (running win 7 pro x64 as a base). What I had real difficulty with was setting up a tap/tun bridge to my external network (for testing updates and patches to the minidlna service more than anything else). The only documentation that QEMU provides (that I was able to find at least) is as follows: http://wiki.qemu.org/Documentation/Networking/Tap Currently this is a bit useless but it may prove useful to people in the future. I managed to get it running in the end using a combination of stuff found through these links:
http://ubuntuforums.org/showthread.php?t=179472
http://compsoc.dur.ac.uk/~djw/qemu.html
http://permalink.gmane.org/gmane.comp.e ... qemu/81839
http://en.wikibooks.org/wiki/QEMU/Networking#qemu-ifup
http://ubuntuforums.org/archive/index.php/t-593577.html <<<<Godsend
As far as I can tell there is no documentation/guides for this on the site so I'm going to document it in this post(if only so I can do it again later when I inevitably forget) and I'm going to try and be as clear as I can about EVERYTHING as most of the tuts I have read in the past tend to assume a base level of knowledge that is (at least in my case) not always there.
To note I am doing this on a virtual machine in Bridge mode and have a router with a DHCP server using Ubuntu 10.10 and Qemu 0.13.0. If you are planing on doing this with static ip addresses you will need to edit your /etc/network/interfaces file (http://compsoc.dur.ac.uk/~djw/qemu.html seems to cover it in at least some depth)
There are some extra packages that need to be installed onto the operating system that do not come with qemu and didn't come with my particular installation of Ubuntusudo apt-get install vtun
sudo apt-get install bridge-utils
sudo apt-get install uml-utilities
We need vtun to create our tap interface that Qemu will use to talk to our outside network and bridge-utils to help create the bridge that will allow QEMU to talk to the network rather than just the host.
(Bridges are quite nicely covered here in a qemu context for anyone interested: http://qemu-buch.de/cgi-bin/moin.cgi/Qe ... =%28Tap%29)
Not entirely sure why the uml-utilities are needed, but they are specifically mentioned in one of the tutorials I have read.
Next we have to set up the bridge, set up the tap interface that QEMU will use and then add any connections that we want to use to the bridge
First we set the permissions of the tun devicechown root.users /dev/net/tun
chmod g+rw /dev/net/tun
One of the tutorials has suggested using a new group to manage this but as I am the only person using this VM I couldn't be arsed.
Next we create the bridge and assign a connection to it. The majority will be wanting to use eth0 the usual wired connection but I have done something similar using my laptop and the ath0 wireless interface. You should also note that you will lose network conectivity briefly at this stagebrctl addbr br0
ifconfig eth0 0.0.0.0 promisc
brctl addif br0 eth0
dhclient br0
Now we create and enable the tap device that we will be using where dave is the username of the account being used. I used tap0 because it made sense to me and sticks vaguely to existing standards but I believe you can rename it to whatever the hell you want.tunctl -t tap0 -u dave
brctl addif br0 tap0
ifconfig tap0 up
The above code either needs to be done every time you wish to use the connection or be put into your /etc/rc.local file to be run at startup. I did the latter because I'm lazy and it doesn't really impact on my system, however if you have programs that are hard coded to rely on the eth0 interface this could cause problems later.
Next we need to create a script to allow qemu to deal with the tap interface (and because it wont let you run the program without it).
This is named qemu-ifup and it exists in the /etc folder (I got this from: http://compsoc.dur.ac.uk/~djw/qemu.html)
#!/bin/sh
echo "Executing /etc/qemu-ifup"
echo "Bringing up $1 for Bridged mode..."
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo "adding $1 to br0..."
sudo /usr/sbin/brctl addif br0 $1
echo "finished running script"
sleep 2
and then we need to make sure that this can be executed by all userschmod 755 /etc/qemu-ifup
Orchmod a+x /etc/qemu-ifup
if youre just planning to use it yourself
Thats the basics to get things running!
Running Qemu with A tun/tap interface requires root access(sudo) so I've also taken the suggestion of the last link to create a sudoers file, which allows me to run qemu without having to enter my password or switching to a root account. This needs to be done using visudo which is loosely based on vi and isn't particularly user friendly. This can also seriously screw up your instalation if done wrong (as I found out) and require to go back into the recovery mode to fix. In VMware the recovery mode does not seem to be accessible and just dumped me into a standard terminal session without root access so I would highly recomend using snapshots if you aren't doing so already so you can simply revert to an earlier state (also aplies to qemu emulations).
My sudoers file is as follows:# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
Cmnd_Alias QEMU=/sbin/ifconfig, \
/sbin/modprobe, \
/usr/sbin/brctl
# User privilege specification
root ALL=(ALL) ALL
dave ALL=NOPASSWD: QEMU
And that is all the preparation I have done to get this running. I can now call the program using the following code and it appears on my local network like any other device:sudo qemu-system-sparc -hda readynas_compile_environment.qcow -nographic -m 256 -net nic,vlan=0 -net tap,vlan=0
-m sets the allocated memory to 256MB rather than the default 128
-net nic,vlan=0 -net tap,vlan=0 is the code needed to set qemu to run
As far as I know this is all that is needed to configure to qemu to run in this bridged mode. Any qestions feel free to ask, I only visit infrequently and my knowledge is limited but I will try my best to help.
*Edit: Corrected some typos*
Related Content
NETGEAR Academy

Boost your skills with the Netgear Academy - Get trained, certified and stay ahead with the latest Netgear technology!
Join Us!