app-emulation/qemu: need seavgabios for pseries
authorRobin H. Johnson <robbat2@gentoo.org>
Fri, 10 Nov 2017 22:22:46 +0000 (14:22 -0800)
committerRobin H. Johnson <robbat2@gentoo.org>
Fri, 10 Nov 2017 23:23:57 +0000 (15:23 -0800)
Emulation of PPC64 pSeries needs a VGA BIOS:
$ qemu-system-ppc64 -m 256 -nographic \
  -echr 0x05 \
  -kernel cirros-0.4.0~pre1-ppc64-kernel \
  -initrd cirros-0.4.0~pre1-ppc64-initramfs \
  -append rdroot \
  -m 256 \
  -machine pseries
qemu-system-ppc64: Initialization of device VGA failed: failed to find romfile "vgabios-stdvga.bin"

Tested on bogsucker.ppc64.dev.g.o by booting CirrOS PPC64 images.

Package-Manager: Portage-2.3.8, Repoman-2.3.3
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
app-emulation/qemu/qemu-2.10.0-r1.ebuild
app-emulation/qemu/qemu-9999.ebuild

index a1210f3d5994ef4d1c8d7793463155f908feef38..0c1e2e682316d2f4f3b821f1e24ae8cb68a4932e 100644 (file)
@@ -164,6 +164,14 @@ X86_FIRMWARE_DEPEND="
                >=sys-firmware/seabios-1.10.2[seavgabios]
                sys-firmware/sgabios
        )"
+PPC64_FIRMWARE_DEPEND="
+       pin-upstream-blobs? (
+               ~sys-firmware/seabios-1.10.2[binary,seavgabios]
+       )
+       !pin-upstream-blobs? (
+               >=sys-firmware/seabios-1.10.2[seavgabios]
+       )
+"
 
 CDEPEND="
        !static? (
@@ -171,7 +179,9 @@ CDEPEND="
                ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
        )
        qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
-       qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )"
+       qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+       qemu_softmmu_targets_ppc64? ( ${PPC64_FIRMWARE_DEPEND} )
+"
 DEPEND="${CDEPEND}
        dev-lang/perl
        =dev-lang/python-2*
@@ -698,7 +708,8 @@ src_install() {
                rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
                rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
                rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
-               if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+               # PPC64 loads vgabios-stdvga
+               if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc64; then
                        dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
                        dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
                        dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
index e96e3a8a8f42c48c892b1eddb55afbf34d79981f..a256ce5e7f72c10b2f9af462e7f91c43292e74d1 100644 (file)
@@ -164,6 +164,14 @@ X86_FIRMWARE_DEPEND="
                >=sys-firmware/seabios-1.10.2[seavgabios]
                sys-firmware/sgabios
        )"
+PPC64_FIRMWARE_DEPEND="
+       pin-upstream-blobs? (
+               ~sys-firmware/seabios-1.10.2[binary,seavgabios]
+       )
+       !pin-upstream-blobs? (
+               >=sys-firmware/seabios-1.10.2[seavgabios]
+       )
+"
 
 CDEPEND="
        !static? (
@@ -171,7 +179,9 @@ CDEPEND="
                ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
        )
        qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
-       qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )"
+       qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+       qemu_softmmu_targets_ppc64? ( ${PPC64_FIRMWARE_DEPEND} )
+"
 DEPEND="${CDEPEND}
        dev-lang/perl
        =dev-lang/python-2*
@@ -695,7 +705,8 @@ src_install() {
                rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
                rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
                rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
-               if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+               # PPC64 loads vgabios-stdvga
+               if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc64; then
                        dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
                        dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
                        dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin