Debian on qemu-system-sparc64
Hi all,
Just thought I'd share a couple of things to help people use debian on
emulated sparc64 (sun4u).
Currently, graphics is not functioning so once installed using Adrian's
wonderful debian d-i iso [1] from message thread [2], you need to make
sure that systemd it not going to make modprobe load the DRM modules,
else you hang your VM.
For DRM blacklisting:
debian-sparc64:#$ cat /etc/modprobe.d/drm-blacklist.conf
# blacklist of DRM modules that do not load on qemu-system-sparc64 sun4u
blacklist drm
blacklist bochs-drm
blacklist ttm
For sanity, loading initrd at 4.0MB rather than 14MB+:
edit /etc/initramfs-tools/initramfs.conf to not install every module
#MODULES=most
MODULES=dep
I found having the following entry in /etc/silo.conf rather handy for
debugging the last couple of weeks:
image = /vmlinuz
label = linux-emergency
append = "initrd=/initrd.img root=/dev/sda1
systemd.unit=emergency.target"
I prefer to run VMs using libvirt, and use the gui from virt-manager so
I use the following xml in virsh, hope this helps other people. If you
edit the VM config be sure to check what pci slots are automatically
reset to lower numbers that then collide with predefined machine config
in qemu-system-sparc64.
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made
using:
virsh edit debian-unstable-sparc64
or other application using the libvirt API.
-->
<domain type='qemu'>
<name>debian-unstable-sparc64</name>
<uuid>ccd8b5c2-b8e4-4d5e-af19-9322cd8e55bf</uuid>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu placement='static'>1</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='sparc64' machine='sun4u'>hvm</type>
</os>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/qemu-system-sparc64</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none' io='native'/>
<source
file='/path/to/vm/images/default/debian-unstable-sparc64.qcow2'/>
<target dev='hda' bus='ide'/>
<boot order='1'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw' cache='none' io='native'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
</disk>
<controller type='ide' index='0'/>
<controller type='usb' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06'
function='0x0'/>
</controller>
<controller type='pci' index='0' model='pci-root'/>
<interface type='network'>
<mac address='52:54:00:ce:98:e8'/>
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x09'
function='0x0'/>
</interface>
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<video>
<model type='vga' vram='16384' heads='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07'
function='0x0'/>
</video>
<memballoon model='none'/>
</devices>
</domain>
Enjoy debian on emulated sparc64. Is it fast? Erm no, but it is fun and
a useful way to test d-i images. I am sure that booting off IDE for
silo, kernel and initrd and then using virtio disks would make things
better for IO, but not tried it yet. I think single threaded qemu
sparc64 cpu is more the limiting factor, however.
Thanks go to the debian sparc porters and the qemu developers!
Regards,
Adrian
[1]
https://people.debian.org/~glaubitz/debian-cd/debian-9.0-sparc64-NETINST-1.iso
[2] https://lists.debian.org/debian-sparc/2016/01/msg00097.html
Reply to: