User Tools

Site Tools


aix:aix_simulator_x86_qemu

This is an old revision of the document!


Install AIX on x86 using QEMU

https://worthdoingbadly.com/aixqemu/

http://gibsonnet.net/blog/cgaix/html/AIX%207.2%20running%20on%20my%20Macbook.html

https://lists.gnu.org/archive/html/qemu-ppc/2018-05/msg00387.html

http://gibsonnet.net/blog/cgaix/resource/AIX_QEMU_blog.pdf

First install QEMU for PPC, version 3 or later:

qemu-ppc-3.1.1.1-lp151.7.9.1.x86_64
opensuse:/virtual_vm/aix72 # rpm -ql qemu-ppc-3.1.1.1-lp151.7.9.1.x86_64
/usr/bin/qemu-system-ppc
/usr/bin/qemu-system-ppc64
/usr/share/qemu/bamboo.dtb
/usr/share/qemu/canyonlands.dtb
/usr/share/qemu/openbios-ppc
/usr/share/qemu/ppc_rom.bin
/usr/share/qemu/qemu_vga.ndrv
/usr/share/qemu/skiboot.lid
/usr/share/qemu/slof.bin
/usr/share/qemu/spapr-rtas.bin
/usr/share/qemu/u-boot-sam460-20100605.bin
/usr/share/qemu/u-boot.e500

Boot AIX on x86 using QEMU using diag CDROM

Step 1: Download the AIX 7.2 Standalone Diagnostics disk from IBM
https://www.ibm.com/support/pages/standalone-diagnostics-cd-overview-and-download
You want CD73220.iso

Step 2: (optional) If you want the Diagnostics disk to give you an AIX shell prompt instead of running diagnostics, apply this patch to your ISO file: patch_cd72220.py

import sys
patch_off = 0x7b43800
patch_data = b"#!/bin/sh\n/bin/sh\nexit\n"
with open(sys.argv[1], "rb") as infile:
        indata = bytearray(infile.read())
indata[patch_off:patch_off+len(patch_data)] = patch_data
with open(sys.argv[2], "wb") as outfile:
        outfile.write(indata)
# python patch_cd72220.py CD72220.ISO ModdedCD.ISO

(this replaces usr/lpp/diagnostics/bin/Dctrl on the ISO with a shell script that launches /bin/sh)

Launch QEMU with this command line:

# qemu-system-ppc64 -cpu POWER9 -machine pseries -m 2G -serial mon:stdio \
	-cdrom ModdedCD.iso \
	-d guest_errors \
	-prom-env "input-device=/vdevice/vty@71000000" \
	-prom-env "output-device=/vdevice/vty@71000000" \
	-prom-env "boot-command=dev / 0 0 s\" ibm,aix-diagnostics\" property boot cdrom:\ppc\chrp\bootfile.exe -s verbose"

Step 5: Wait. (It’ll get stuck on define_rspc for a long time.)

Step 6: After nine very, very long minutes, you’ll be greeted with this notice:

******* Please define the System Console. *******

Type a 1 and press Enter to use this terminal as the
  system console.
Pour definir ce terminal comme console systeme, appuyez
  sur 1 puis sur Entree.
Taste 1 und anschliessend die Eingabetaste druecken, um
  diese Datenstation als Systemkonsole zu verwenden.
Premere il tasto 1 ed Invio per usare questo terminal
  come console.
Escriba 1 y pulse Intro para utilizar esta terminal como
  consola del sistema.
Escriviu 1 1 i premeu Intro per utilitzar aquest
  terminal com a consola del sistema.
Digite um 1 e pressione Enter para utilizar este terminal
  como console do sistema.

Type 1 in your terminal, then press enter.

Step 7: After another two minutes, you’ll be dropped to an AIX shell prompt (or, if you didn’t patch the ISO, the IBM Diagnostics tool): uname

Install AIX 7.2 on x86 using QEMU

https://astr0baby.wordpress.com/2018/11/04/running-aix-7-2-tl3sp1-on-x86_64-via-qemu-system-ppc64/

# qemu-system-ppc64 -cpu POWER9 -machine pseries -m 2048 -serial stdio \
-drive file=aix72.img,if=none,id=drive-virtio-disk0 \
-device virtio-scsi-pci,id=scsi -device scsi-hd,drive=drive-virtio-disk0 \
-cdrom cd_image_7537004 \
-netdev tap,id=n1 -device virtio-net,netdev=n1  \
-prom-env boot-command='boot disk: -s verbose'

aix72.img is disk image, cd_image_7537004 is CD image created by 'smitty mkdvd' in a working aix 7200-02-02-1810

[root@prnim01]/export/lppsources# mkcd -L -S -I /export/lppsources -m /export/lppsources/mksysb01
Initializing mkcd log: /var/adm/ras/mkcd.log...
Verifying command parameters...
Creating temporary file system: /mkcd/cd_fs...
Populating the CD or DVD file system...
Building chrp boot image...
Copying backup to the CD or DVD file system...
.
Creating Rock Ridge format image: /export/lppsources/cd_image_7799230
Running mkisofs ...
.
mkrr_fs was successful.

Making the CD or DVD image bootable...


Removing temporary file system: /mkcd/cd_fs...

-prom-env boot-command='boot disk: -s verbose' is used to control boot source, when installing aix, ' boot cd:' should be used. '-s verbose' lets aix throwing verbose output, each executed command will be printed.

After installing aix, /sbin/helpers/jfs2/fsck64 should be modified to following file, and be granted execute permission:

#!/bin/ksh
exit 0

Next is my AIX 7.2 TL3SP1 installation loader script

# qemu-system-ppc64 -cpu POWER8 -machine pseries -m 2048 -serial stdio -drive file=disk.img,if=none,id=drive-virtio-disk0 -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=drive-virtio-disk0 -cdrom aix.iso -prom-env "boot-command=dev / 0 0 s\" ibm,aix-diagnostics\" property boot cdrom:\ppc\chrp\bootfile.exe -s verbose" -net nic -net tap -display vnc=:1

And here is the simulation loader script

# qemu-system-ppc64 -cpu POWER8 -machine pseries -m 2048 -serial stdio -drive file=disk.img,if=none,id=drive-virtio-disk0 -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=drive-virtio-disk0 -cdrom aix.iso -prom-env boot-command='boot disk: ' -net nic -net tap -display vnc=:1

My disk.img (or aix-hdd.qcow2) is a standard qcow2 compressed image format (100 G)

qemu-img create -f qcow2 aix-hdd.qcow2 100G

Test 08/2024

qemu-img create -f qcow2 aix-hdd.qcow2 10G

root@manu-Latitude-5480:/home/manu/Downloads# qemu-img create -f qcow2 aix73.qcow2 50G Formatting 'aix73.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=53687091200 lazy_refcounts=off refcount_bits=16

root@manu/home/manu/Downloads# qemu-system-ppc64 -cpu POWER9 -machine pseries -m 2048 -serial stdio \ -drive file=aix73.qcow2,if=none,id=drive-virtio-disk0 \ -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=drive-virtio-disk0 \ -cdrom cd_diag73220.iso \ -netdev tap,id=n1 -device virtio-net,netdev=n1 \ -prom-env boot-command='boot disk: -s verbose'

aix/aix_simulator_x86_qemu.1724795359.txt.gz · Last modified: 2024/08/27 23:49 by manu