openbsd/macppc on qemu

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

openbsd/macppc on qemu

rgcinjp
ppc@

i have been interested in running kernel builds on
qemu ... but then hit a roadblock.

the OpenBSD macppc installXX.iso images would not boot
on the qemu included in ports (qemu-4.0.1).

a search revealed the sad state of affairs:
https://marc.info/?l=openbsd-tech&m=153450839802519

sharing here some information about 6.6-current. as it
is not all bad news :-)


6.6 and 6.6-current can run on qemu. i have been able
to make an installation to a RAW disk image on an amd64
host.


1) the commandline

$ qemu-system-ppc -M mac99 -cpu g4 -net none -usb \
-device usb-kbd -boot d -cdrom install66.iso

qemu documentation mentions
https://wiki.qemu.org/Documentation/Platforms/PowerPC

-M mac99,via=pmu
-M mac99,via=pmu-adb
-M mac99,via=cuda (default)

i could never get "via=pmu" to work

"via=pmu-adb" does not like to work unless "-nographic"
is used ... but this mixes the console with the tons
of error log from qemu (about the INTR). needs the
same coaxing of the kernel to work. in this case we
"disable 61" or ohci as there seems to be a conflict.

"via=cuda" (== -M mac99, with to extra strings) work
with the GUI but requires mapping USB devices. and some
extra work via "boot -c"

the extra work requires us to disable "adb" ... so

boot -c
find adb
disable 103
quit

there are errors showing up for "gem" so "-net none"
i'm still reading up on the tun/tap/bridge interface
if it is usable.


2) RAMDISK vs GENERIC
RAMDISK image can fully boot ... but GENERIC reports a
stack smash! quite early during device probing. keyboard
not usable in the kernel debugger.

the clang kernels i made ... doesn't even show the
OpenBSD version string. goes to ddb. keyboard seems to be
usable.


3) booting and blessing
the firmware used by qemu does not seem to know MSDOS
partitions ... so it can not find ofwboot ... even the
normal OpenBSD/macppc install (1MB MSDOS part + OpenBSD
part) will not boot!

the installXX.iso is blessed with an HFS partition
courtesy of mkhybrid ... so the ISOs boot up properly.

to run my kernel builds ... i had to steal some code
from distrib/macppc/iso/Makefile and create my own ISO,
and modify bsd.tbxi to allow my bsd.gdb (that is now
on the ISO image) to run. if i need a rootdisk i issue
a "boot -c -a".


may you find these info useful.



yorosiku ~

Reply | Threaded
Open this post in threaded view
|

Re: openbsd/macppc on qemu

rgcinjp
On Wed, Jan 22, 2020 at 07:37:44AM +0900, rgc wrote:
> ppc@
>
> i have been interested in running kernel builds on
> qemu ... but then hit a roadblock.
>
> the OpenBSD macppc installXX.iso images would not boot
> on the qemu included in ports (qemu-4.0.1).

correction 6.6/6.6-current ports has qemu-4.1.0

with the modifications further down (where boot -c is issued)
i can get:

- i386 host, macppc guest RAMDISK boots, installer finish
- amd64 host, macppc guest RAMDISK boots, installer finish
- macppc host, macppc guest RAMDISK boots, installer reboots
due to disk timeouts

>
> a search revealed the sad state of affairs:
> https://marc.info/?l=openbsd-tech&m=153450839802519
>
> sharing here some information about 6.6-current. as it
> is not all bad news :-)
>
>
> 6.6 and 6.6-current can run on qemu. i have been able
> to make an installation to a RAW disk image on an amd64
> host.
>
>
> 1) the commandline
>
> $ qemu-system-ppc -M mac99 -cpu g4 -net none -usb \
> -device usb-kbd -boot d -cdrom install66.iso
>
> qemu documentation mentions
> https://wiki.qemu.org/Documentation/Platforms/PowerPC
>
> -M mac99,via=pmu
> -M mac99,via=pmu-adb
> -M mac99,via=cuda (default)
>
> i could never get "via=pmu" to work
>
> "via=pmu-adb" does not like to work unless "-nographic"
> is used ... but this mixes the console with the tons
> of error log from qemu (about the INTR). needs the
> same coaxing of the kernel to work. in this case we
> "disable 61" or ohci as there seems to be a conflict.
>
> "via=cuda" (== -M mac99, with to extra strings) work
> with the GUI but requires mapping USB devices. and some
> extra work via "boot -c"
>
> the extra work requires us to disable "adb" ... so
>
> boot -c
> find adb
> disable 103
> quit
>
> there are errors showing up for "gem" so "-net none"
> i'm still reading up on the tun/tap/bridge interface
> if it is usable.

this gem0 issue is weird. i got it to work on amd64 with
a tun/tap interface ... then next morning (after a host
-current upgrade) it wouldn't work anymore. the kernel
issues a panic inside the qemu.

>
>
> 2) RAMDISK vs GENERIC
> RAMDISK image can fully boot ... but GENERIC reports a
> stack smash! quite early during device probing. keyboard
> not usable in the kernel debugger.
>
> the clang kernels i made ... doesn't even show the
> OpenBSD version string. goes to ddb. keyboard seems to be
> usable.
>
>
> 3) booting and blessing
> the firmware used by qemu does not seem to know MSDOS
> partitions ... so it can not find ofwboot ... even the
> normal OpenBSD/macppc install (1MB MSDOS part + OpenBSD
> part) will not boot!

used mkhybrid to write to that 1MB MSDOS partition in the
raw disk image with a modified bsd.tbxi file ... qemu boots
from the hd image  but the FW can not see the other
partition where /bsd (OpenBSD partition) resides.

>
> the installXX.iso is blessed with an HFS partition
> courtesy of mkhybrid ... so the ISOs boot up properly.
>
> to run my kernel builds ... i had to steal some code
> from distrib/macppc/iso/Makefile and create my own ISO,
> and modify bsd.tbxi to allow my bsd.gdb (that is now
> on the ISO image) to run. if i need a rootdisk i issue
> a "boot -c -a".
>
>
> may you find these info useful.
>
>
>
> yorosiku ~
>