AIX 4.1.5 on QEMU

(This is a guest post by Antoni Sawicki aka Tenox)

AIX on QEMU is hardly any news. It has been done over and over again. Especially thanks to Artyom Tarasenko and subject to even more posts by Neozeed. However it was mostly plagued by having only serial console and using outdated QEMU. For a long time I wasn’t able to run it. Had to fire up some IBM rust if I wanted to build/test something on AIX. Lack of local UI was also pain. AIX 4.1.5 is full of cool GUI software, CATIA, Corel Draw, Word Perfect, FrameMaker, Lotus Notes, not to mention VisualAge! I know that you can connect to it via Xephyr/Xnest etc, but having a local console is way better!

Behold! AIX 4.1.5 in a full glory on emulated IBM RS/6000 7020-40P with PowerPC 604 and GXT110P video adapter. Also featuring front the panel display:

Balls of AIX!

Let’s look at some cool apps!

Acrobat Exchange
FrameMaker
Corel Word Perfect
WABI
SoftWindows
SimCity on AIX
VisualAge IDE
Lotus Notes 4

I have prepared a ready to run, portable QEMU image with binaries for MacOS/Linux/Windows. Download and run: https://files.42718.net/mirror/tenox/os/aix/Virtual/aix415rs6k-qemu.tar.lz

Have Fun with Virtualization!

PS You may also be interested in AIX 3.2.5 in QEMU

One thought on “AIX 4.1.5 on QEMU”

  1. I don’t know if it bugs anyone else, but for me the biggest frustration I had with AIX on QEMU was that it didn’t support any form of idle, and I’m not a huge fan of leaving an emulator to chew up an entire CPU core the whole time it’s running. I wrote a quick and dirty patch to get idle working on AIX 4.3.3 and have had that running for some months without noticeable issue, and it looks like it works (with a bit of tweaking) on this system too. I figure it might be handy, so here it is.

    You will need to rebuild QEMU to tell it to check for idle on the 604 processor (as the real one didn’t actually support idling I don’t think…), and then patch the kernel. I’ve only tried this with the uniprocessor kernel; I suspect it wouldn’t work with the multiprocessor one, at least not without a bit of tweaking.

    The QEMU patch is just changing “pcc->check_pow = check_pow_nocheck;” to “pcc->check_pow = check_pow_hid0;” in target/ppc/cpu_init.c. And the kernel can be patched with the below commands from within AIX:
    # cd /usr/lib/boot
    # cp unix_up unix_up.bkp
    # printf ‘\174\020\372\246\144\000\000\200\174\020\373\246\174\000\000\246\144\000\000\004\174\000\004\254\174\000\001\044\114\000\001\054\110\001\116\006’ | dd of=unix_up obs=1 seek=21960 conv=notrunc
    # printf ‘\100\236\124\002’ | dd of=unix_up obs=1 seek=86036 conv=notrunc
    # bosboot -a

    Then reboot, and if it all went OK, the CPU usage should be much reduced.

    Some disparate notes on the process are here which explain the logic a bit more: https://gist.github.com/0x90nz/64accadfcda766637b731e4f3323f470

Leave a Reply