<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AIX &#8211; Virtually Fun</title>
	<atom:link href="https://virtuallyfun.com/category/aix/feed/" rel="self" type="application/rss+xml" />
	<link>https://virtuallyfun.com</link>
	<description>Fun with Virtualization</description>
	<lastBuildDate>Wed, 15 Jul 2026 07:02:00 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>
	<item>
		<title>Networking on AIX 4.3</title>
		<link>https://virtuallyfun.com/2022/11/08/networking-on-aix-4-3/</link>
					<comments>https://virtuallyfun.com/2022/11/08/networking-on-aix-4-3/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 08 Nov 2022 16:49:18 +0000</pubDate>
				<category><![CDATA[AIX]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[QEMU]]></category>
		<category><![CDATA[telnet]]></category>
		<category><![CDATA[virtual networking]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=12039</guid>

					<description><![CDATA[Well oslevel says 4.3.3.0, but you get the idea. You&#8217;ll need to have the ethernet driver handy, or better loaded. Since I had disabled the NIC on install it&#8217;s not loaded. And since I&#8217;m still using a cellphone for internet &#8230; <a href="https://virtuallyfun.com/2022/11/08/networking-on-aix-4-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Well oslevel says 4.3.3.0, but you get the idea.</p>



<p class="wp-block-paragraph">You&#8217;ll need to have the ethernet driver handy, or better loaded.  Since I had disabled the NIC on install it&#8217;s not loaded.  And since I&#8217;m still using a cellphone for internet I extracted the file somewhere else and copied in some patches.  I&#8217;ve managed to reproduce this twice now, so I guess it&#8217;s good to go.  Apparently, this just works in later versions, but this is very touchy.</p>



<p class="wp-block-paragraph">To start how I&#8217;m running qemu:</p>



<pre class="wp-block-preformatted">./qemu-build/ppc-softmmu/qemu-system-ppc -M 40p -bios q40pofw-serial.rom -serial telnet::4441,server -hda disk0.vmdk-post-install -vga none -nographic -net none -device pcnet,netdev=ne -netdev user,id=ne,hostfwd=tcp::42323-:23 -cdrom /mnt/c/temp/<a href="https://virtuallyfun.com/wp-content/uploads/2022/11/pcnet-aix.iso_.zip" target="_blank" rel="noreferrer noopener">pcnet-aix.iso</a></pre>



<p class="wp-block-paragraph">With aix booted, extract the tar file from the cdrom:</p>



<pre class="wp-block-code"><code>mkdir /cdrom
mount -V cdrfs -o ro /dev/cd0 /cdrom
mkdir /pcnet
cd pcnet
tar -xvf /cdrom/pci.tar</code></pre>



<p class="wp-block-paragraph">Fix your terminal up&#8230; if needed (it probably is)</p>



<pre class="wp-block-code"><code>export TERM=vt100<br>stty erase ^?<br>export LIBPATH=$LIBPATH:/usr/lib<br>export PATH=/usr/local/bin:$PATH</code></pre>



<p class="wp-block-paragraph">Now run smitty -&gt; devices -&gt; after ipl</p>



<p class="wp-block-paragraph">Change the directory to /pcnet , and let it run  It will give errors but thats okay.  All being well it won&#8217;t crash AIX, otherwise you&#8217;ll want to restore your hardisk.  You did make a backup beforehand right?!</p>



<p class="wp-block-paragraph">I don&#8217;t think it matters but I run this afterwards:</p>



<pre class="wp-block-code"><code>odmchange -o CuAt -q "name=ent0 and attribute=busio" /cdrom/lance_ch.asc<br>odmget -q "name=ent0 and attribute=busio" CuAt<br>shutdown -h now</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2022/11/aix-halt-takes-forever-on-adding-ethernet.png"><img fetchpriority="high" decoding="async" width="825" height="521" src="https://virtuallyfun.com/wp-content/uploads/2022/11/aix-halt-takes-forever-on-adding-ethernet.png" alt="" class="wp-image-12040" srcset="https://virtuallyfun.com/wp-content/uploads/2022/11/aix-halt-takes-forever-on-adding-ethernet.png 825w, https://virtuallyfun.com/wp-content/uploads/2022/11/aix-halt-takes-forever-on-adding-ethernet-300x189.png 300w, https://virtuallyfun.com/wp-content/uploads/2022/11/aix-halt-takes-forever-on-adding-ethernet-768x485.png 768w, https://virtuallyfun.com/wp-content/uploads/2022/11/aix-halt-takes-forever-on-adding-ethernet-475x300.png 475w" sizes="(max-width: 825px) 100vw, 825px" /></a><figcaption class="wp-element-caption">halting does take forever</figcaption></figure>
</div>


<p class="wp-block-paragraph">As tempting as it is to kill the emulator, wait for it to complete.  Otherwise you may have to do the whole thing agian.</p>



<p class="wp-block-paragraph">For me the value attribute was never preserved, so we get to do it again on reboot/restart:</p>



<pre class="wp-block-code"><code>odmget -q "name=ent0 and attribute=busio" CuAt
mount -V cdrfs -o ro /dev/cd0 /cdrom
odmchange -o CuAt -q "name=ent0 and attribute=busio" /cdrom/lance_ch.asc
rmdev -l ent0
mkdev -l ent0
ifconfig en0 10.0.2.15
ping -c 1 10.0.2.2</code></pre>



<p class="wp-block-paragraph">If everything went well this time you should get a ping reply!  Great!  Now to configure the system for real.</p>



<p class="wp-block-paragraph">smitty -&gt; communication -&gt; tcpip -&gt; minimum -&gt; en0</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2022/11/aix-configure-nic.png"><img decoding="async" width="825" height="521" src="https://virtuallyfun.com/wp-content/uploads/2022/11/aix-configure-nic.png" alt="" class="wp-image-12041" srcset="https://virtuallyfun.com/wp-content/uploads/2022/11/aix-configure-nic.png 825w, https://virtuallyfun.com/wp-content/uploads/2022/11/aix-configure-nic-300x189.png 300w, https://virtuallyfun.com/wp-content/uploads/2022/11/aix-configure-nic-768x485.png 768w, https://virtuallyfun.com/wp-content/uploads/2022/11/aix-configure-nic-475x300.png 475w" sizes="(max-width: 825px) 100vw, 825px" /></a><figcaption class="wp-element-caption">simple slirp</figcaption></figure>
</div>


<p class="wp-block-paragraph">As always I configure my system for slirp.  We&#8217;re almost there!  Now to pad the DNS records for slirp:</p>



<pre class="wp-block-code"><code>cat &gt;&gt; /etc/hosts<br>10.0.2.2 slirp<br>10.0.2.3 slirpdns<br>^D</code></pre>



<p class="wp-block-paragraph">And now you can reboot!</p>



<p class="wp-block-paragraph">If everything goes well, you will have a patched up pcnet driver that works (well mine does)</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2022/11/aix-4.3-at-telnet-prompt.png"><img decoding="async" width="1024" height="606" src="https://virtuallyfun.com/wp-content/uploads/2022/11/aix-4.3-at-telnet-prompt-1024x606.png" alt="" class="wp-image-12042" srcset="https://virtuallyfun.com/wp-content/uploads/2022/11/aix-4.3-at-telnet-prompt-1024x606.png 1024w, https://virtuallyfun.com/wp-content/uploads/2022/11/aix-4.3-at-telnet-prompt-300x178.png 300w, https://virtuallyfun.com/wp-content/uploads/2022/11/aix-4.3-at-telnet-prompt-768x454.png 768w, https://virtuallyfun.com/wp-content/uploads/2022/11/aix-4.3-at-telnet-prompt-500x296.png 500w, https://virtuallyfun.com/wp-content/uploads/2022/11/aix-4.3-at-telnet-prompt.png 1080w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">It works!</figcaption></figure>
</div>


<p class="wp-block-paragraph">The big test is to of course reboot.  Then you&#8217;ll know for sure.</p>



<p class="wp-block-paragraph">I have tried this a few times, and yeah it can crash when adding the drivers, so I had to restore a few times.  I would say 1/3 times worked flawlessly.  So be patient.  And backup!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2022/11/08/networking-on-aix-4-3/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Revisiting AIX 4.3 on Qemu</title>
		<link>https://virtuallyfun.com/2022/11/08/revisiting-aix-4-3-on-qemu/</link>
					<comments>https://virtuallyfun.com/2022/11/08/revisiting-aix-4-3-on-qemu/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 08 Nov 2022 12:01:49 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[AIX]]></category>
		<category><![CDATA[cdroms]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[QEMU]]></category>
		<category><![CDATA[x86_64]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=12033</guid>

					<description><![CDATA[I had gone over the install a while ago, but I wanted to re-install on a newer machine. And going from GCC 7 to 11, well a number of things changed. And I found with experience that letting Qemu select &#8230; <a href="https://virtuallyfun.com/2022/11/08/revisiting-aix-4-3-on-qemu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I had gone over <a href="/2019/04/22/installing-aix-on-qemu/" target="_blank" rel="noreferrer noopener">the install a while ago</a>, but I wanted to re-install on a newer machine.  And going from GCC 7 to 11, well a number of things changed.  And I found with experience that letting Qemu select as much as it wants leads to numerous dependencies that end up being problematic.</p>



<pre class="wp-block-preformatted">jsteve@piorun:~/atar-boot/qemu/ppc-softmmu$ objdump -p qemu-system-ppc | grep NEEDED<br>NEEDED libvdeplug.so.2<br>NEEDED libncursesw.so.6<br>NEEDED libtinfo.so.6<br>NEEDED libz.so.1<br>NEEDED libxml2.so.2<br>NEEDED libpixman-1.so.0<br>NEEDED libutil.so.1<br>NEEDED libnuma.so.1<br>NEEDED libnettle.so.6<br>NEEDED libgnutls.so.30<br>NEEDED libfdt.so.1<br>NEEDED libgthread-2.0.so.0<br>NEEDED libglib-2.0.so.0<br>NEEDED librt.so.1<br>NEEDED libstdc++.so.6<br>NEEDED libm.so.6<br>NEEDED libgcc_s.so.1<br>NEEDED libpthread.so.0<br>NEEDED libc.so.6</pre>



<p class="wp-block-paragraph">So using the same <a href="https://github.com/artyom-tarasenko/qemu/tree/40p-20190406-aix-boots">atar qemu git dump</a>, I found the newer config string a bit more refined:</p>



<pre class="wp-block-code"><code>./configure --target-list=ppc-softmmu --disable-sdl --disable-vnc --disable-gtk --disable-gnutls --disable-nettle --disable-gcrypt --disable-spice --disable-numa --disable-libxml2 --disable-vde --disable-werror --disable-seccomp --disable-capstone --disable-vhost-net --disable-vhost-crypto --disable-vhost-scsi --disable-vhost-vsock --disable-vhost-user --disable-tpm --disable-live-block-migration</code></pre>



<p class="wp-block-paragraph">Another fun think is that there is submodules from other servers, and it seems their certs have expired.. Which also means it&#8217;s inevitable at some point this will become impossible to build.  Be sure to set this environment variable in order to build:</p>



<pre class="wp-block-preformatted">export GIT_SSL_NO_VERIFY=true</pre>



<p class="wp-block-paragraph">As always Qemu will try to sneak a few things in there that we don&#8217;t need like audio support.  As an example here is what I trimmed from config-host.mak:</p>



<pre class="wp-block-preformatted">$ diff -ruN config-host.mak config-host.mak-cutdown<br>--- config-host.mak 2022-11-08 09:37:41.104441392 +0000<br>+++ config-host.mak-cutdown 2022-11-08 09:37:25.084441253 +0000<br>@@ -27,8 +27,8 @@<br>CONFIG_SLIRP=y<br>CONFIG_SMBD_COMMAND="/usr/sbin/smbd"<br>CONFIG_L2TPV3=y<br>-CONFIG_AUDIO_DRIVERS=oss<br>-CONFIG_AUDIO_OSS=m<br>+CONFIG_AUDIO_DRIVERS=<br>+CONFIG_AUDIO_OSS=n<br>ALSA_LIBS=<br>PULSE_LIBS=<br>COREAUDIO_LIBS=<br>@@ -72,7 +72,6 @@<br>HAVE_STRCHRNUL=y<br>CONFIG_BYTESWAP_H=y<br>CONFIG_TLS_PRIORITY="NORMAL"<br>-CONFIG_TASN1=y<br>HAVE_IFADDRS_H=y<br>HAVE_FSXATTR=y<br>HAVE_COPY_FILE_RANGE=y<br>@@ -164,7 +163,7 @@<br>DSOSUF=.so<br>LDFLAGS_SHARED=-shared<br>LIBS_QGA+=-lm -lgthread-2.0 -pthread -lglib-2.0<br>-TASN1_LIBS=-ltasn1<br>+TASN1_LIBS=<br>TASN1_CFLAGS=<br>POD2MAN=pod2man --utf8<br>TRANSLATE_OPT_CFLAGS=</pre>



<p class="wp-block-paragraph">And this cuts down the needed dll&#8217;s to:</p>



<pre class="wp-block-preformatted">jsteve@piorun:~/atar-boot/qemu/ppc-softmmu$ objdump -p qemu-system-ppc | grep NEED<br>NEEDED libncursesw.so.6<br>NEEDED libtinfo.so.6<br>NEEDED libz.so.1<br>NEEDED libpixman-1.so.0<br>NEEDED libfdt.so.1<br>NEEDED libglib-2.0.so.0<br>NEEDED libm.so.6<br>NEEDED libgcc_s.so.1<br>NEEDED libc.so.6</pre>



<p class="wp-block-paragraph">which is a bit better.  I&#8217;m still annoyed at it&#8217;s reliance on pixman despite not having any framebuffer support, I&#8217;m guessing I could amputate it if I looked further.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2022/11/AIX-4.3-on-Qemu-on-Linux.png"><img loading="lazy" decoding="async" width="1024" height="628" src="https://virtuallyfun.com/wp-content/uploads/2022/11/AIX-4.3-on-Qemu-on-Linux-1024x628.png" alt="" class="wp-image-12034" srcset="https://virtuallyfun.com/wp-content/uploads/2022/11/AIX-4.3-on-Qemu-on-Linux-1024x628.png 1024w, https://virtuallyfun.com/wp-content/uploads/2022/11/AIX-4.3-on-Qemu-on-Linux-300x184.png 300w, https://virtuallyfun.com/wp-content/uploads/2022/11/AIX-4.3-on-Qemu-on-Linux-768x471.png 768w, https://virtuallyfun.com/wp-content/uploads/2022/11/AIX-4.3-on-Qemu-on-Linux-489x300.png 489w, https://virtuallyfun.com/wp-content/uploads/2022/11/AIX-4.3-on-Qemu-on-Linux.png 1046w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption>AIX 4.3 booted!</figcaption></figure>
</div>


<p class="wp-block-paragraph">Since nothing has fundamentally changed, I can still use my original bootflags:</p>



<pre class="wp-block-preformatted">./qemu-system-ppc -M 40p -bios q40pofw-serial.rom -serial telnet::4441,server -hda disk0.vmdk-post-install -vga none -nographic -net none -cdrom /mnt/c/temp/xlc13-gzip.iso</pre>



<p class="wp-block-paragraph">And for the heck of it, this is the steps I used to get <a rel="noreferrer noopener" href="http://tenox.pdp-11.ru/os/aix/Software/xlc/xlc1.3.tar.lz" target="_blank">x</a><a rel="noreferrer noopener" href="http://tenox.pdp-11.ru/os/aix/Software/xlc/xlc1.3.tar.lz" target="_blank">l</a><a rel="noreferrer noopener" href="http://tenox.pdp-11.ru/os/aix/Software/xlc/xlc1.3.tar.lz" target="_blank">C</a><a rel="noreferrer noopener" href="http://tenox.pdp-11.ru/os/aix/Software/xlc/xlc1.3.tar.lz" target="_blank"> 1.3</a> up and running:</p>



<pre class="wp-block-preformatted">restore -f /tmp/xlc/xlccmp2<br>restore -f /tmp/xlc/xlccmpmE2<br>chmod +x /usr/bin/xlc<br>chmod +x /usr/lpp/xlc/bin/xlcentry<br>chmod +x /usr/lpp/xlc/bin/dis<br>cp /usr/lpp/xlccmp/inst_root/etc/xlc.cfg /etc<br>cp /tmp/xlc/cpp /usr/lib/cpp<br>chmod +x /usr/lib/cpp</pre>



<p class="wp-block-paragraph">and with that all in place we can compile a simple hello world!</p>



<pre class="wp-block-code"><code>
# cat mt.c
#include &lt;stdio.h&gt;
void main(){
printf("hi from C\n");
}
# xlc -v mt.c -o mt
exec: /usr/lpp/xlc/bin/xlcentry(xlcentry,mt.c,mt.o,mt.lst,-D_ANSI_C_SOURCE,-D_IBMR2,-D_AIX,-D_AIX32,-qansialias,NULL)
exec: /bin/ld(ld,-H512,-T512,-bhalt:4,-o,mt,/lib/crt0.o,mt.o,-lc,NULL)
unlink: mt.o
# ./mt
hi from C
#

</code></pre>



<p class="wp-block-paragraph">xlC is also capable of building a running <a href="/2022/11/07/gnu-chess-87/" target="_blank" rel="noreferrer noopener">GNU Chess</a>.  And I <a href="https://github.com/neozeed/gnuchess-87" target="_blank" rel="noreferrer noopener">updated the git</a> so that book building works.  Not that I expect anyone to care.</p>



<pre class="wp-block-code"><code>Chess<br>book<br>Compiling book, please waitâ€¦<br>186 games added, 3384 positions added, 3383 total positions in book</code></pre>



<p class="wp-block-paragraph">It has the same desire to move pieces back and forth for thousands of moves, but it&#8217;s doing a heck of a lot more than any modern C compiler.</p>



<p class="wp-block-paragraph">Since we don&#8217;t have any networking, Everything is on the console.  I&#8217;ve found making CD-ROM images being a much easier way to get data in, and I&#8217;m still using uuencode to get data out from the console.  I guess I should setup Z-modem at some point but that&#8217;s very futuristic.  Or just break down and learn how to use C-kermit.</p>



<p class="wp-block-paragraph">My go to quality of life startup is:</p>



<pre class="wp-block-code"><code>export TERM=vt100<br>stty erase ^?<br>export LIBPATH=$LIBPATH:/usr/lib<br>export PATH=/usr/local/bin:$PATH</code></pre>



<p class="wp-block-paragraph">Sure not perfect but it makes it slightly more usable.  As a follow on, I got networking working here: <a href="https://virtuallyfun.com/2022/11/08/" target="_blank" rel="noreferrer noopener">Networking on AIXI 4.3</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2022/11/08/revisiting-aix-4-3-on-qemu/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>IBM AIX for IA64 (Itanium) aka Project Monterey runs again!</title>
		<link>https://virtuallyfun.com/2022/09/24/ibm-aix-for-ia64-itanium-aka-project-monterey-runs-again/</link>
					<comments>https://virtuallyfun.com/2022/09/24/ibm-aix-for-ia64-itanium-aka-project-monterey-runs-again/#comments</comments>
		
		<dc:creator><![CDATA[tenox]]></dc:creator>
		<pubDate>Sat, 24 Sep 2022 12:00:08 +0000</pubDate>
				<category><![CDATA[AIX]]></category>
		<category><![CDATA[guest post]]></category>
		<category><![CDATA[itanium]]></category>
		<category><![CDATA[SYSV]]></category>
		<category><![CDATA[unix]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=11979</guid>

					<description><![CDATA[(This is a guest post by Antoni Sawicki aka Tenox) Project Monterey was an attempt to unify the fragmented Unix market of the 90s in to a single, cross vendor Unix OS that would run on the upcoming Intel Itanium &#8230; <a href="https://virtuallyfun.com/2022/09/24/ibm-aix-for-ia64-itanium-aka-project-monterey-runs-again/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>(This is a guest post by Antoni Sawicki aka Tenox)</em></p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="464" height="171" src="https://virtuallyfun.com/wp-content/uploads/2022/10/monterey_logo.jpeg" alt="" class="wp-image-11980" srcset="https://virtuallyfun.com/wp-content/uploads/2022/10/monterey_logo.jpeg 464w, https://virtuallyfun.com/wp-content/uploads/2022/10/monterey_logo-300x111.jpeg 300w" sizes="auto, (max-width: 464px) 100vw, 464px" /></figure>
</div>


<p class="wp-block-paragraph"><strong><a href="https://en.wikipedia.org/wiki/Project_Monterey">Project Monterey</a></strong> was an attempt to unify the fragmented Unix market of the 90s in to a single, cross vendor Unix OS that would run on the upcoming <strong><a href="https://en.wikipedia.org/wiki/Itanium">Intel Itanium</a></strong> (and others) CPU. The main collaborators were: <strong>IBM</strong>, who brought its <strong><a href="https://en.wikipedia.org/wiki/IBM_AIX">AIX</a></strong>, <strong>SCO</strong> brought <strong><a href="https://en.wikipedia.org/wiki/UnixWare">UnixWare</a></strong>, <strong>HP</strong> was supposed to bring parts of <strong><a href="https://en.wikipedia.org/wiki/HP-UX">HP-UX</a></strong> and <strong>Sequent</strong> <strong><a href="https://en.wikipedia.org/wiki/DYNIX">DYNIX/ptx</a></strong>. Ironically the project shared fate of the Itanium processor &#8211; it totally failed. In the end Linux took spot of the &#8220;single Unix OS&#8221;. IBM <a href="http://osarchive.org/os/linux/ibm-lvm.pdf">donated</a> pieces of AIX to Linux instead and the main legacy of Project Monterey was <a href="https://en.wikipedia.org/wiki/SCO_Group,_Inc._v._International_Business_Machines_Corp.">the famous SCO vs IBM lawsuit</a>.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="439" height="397" src="https://virtuallyfun.com/wp-content/uploads/2022/10/monterey_roadmap.png" alt="" class="wp-image-11990" srcset="https://virtuallyfun.com/wp-content/uploads/2022/10/monterey_roadmap.png 439w, https://virtuallyfun.com/wp-content/uploads/2022/10/monterey_roadmap-300x271.png 300w, https://virtuallyfun.com/wp-content/uploads/2022/10/monterey_roadmap-332x300.png 332w" sizes="auto, (max-width: 439px) 100vw, 439px" /></figure>
</div>


<p class="wp-block-paragraph">A little known fact &#8211; IBM did however produce an <a href="https://en.wikipedia.org/wiki/IBM_AIX#IA-64_systems">AIX version for the Itanium architecture</a>! According to Wikipedia, some 30+ licenses were sold in 2001-2002 but none ever surfaced. For years a dedicated group of individuals were trying to locate a copy of the legendary OS. As time passed it seemed that the OS was lost forever.</p>



<p class="wp-block-paragraph">&#8230;until some 21 years later friends of <a href="https://www.youtube.com/c/NCommander">NCommander</a> checked in with a set of AIX5L IA64 CDROMS! The CDs have now been dumped and you can download them <a href="https://archive.org/details/aix-ia64">here</a>. But dont get your hopes. Unfortunately downloading will not get you any closer to actually running this. As of today no publicly available virtualization or emulation platform can boot this. Yes we tried <a href="https://en.wikipedia.org/wiki/Simics">Simics</a>, looked at <a href="https://qemu.mercurysquad.com/">QEMU IA64</a> and XEN/KVM for IA64, etc. The OS will not boot on modern Itanium 2 (McKinley) CPUs, only the early &#8220;pre-release&#8221; <strong>Itanium 1</strong> aka <strong>Merced</strong>. The only emulator allegedly capable of doing so was the super elusive unobtanium called <a href="http://osarchive.org/os/aix/5.1ia64/misc/softsdv.pdf" data-type="URL" data-id="http://osarchive.org/os/aix/5.1ia64/misc/softsdv.pdf">Intel SoftSDV</a>.</p>



<p class="wp-block-paragraph">As for hardware, It&#8217;s currently speculated that AIX5L IA64 will work on and only on so called <em>Intel Software Development Vehicle (SDV)</em> sometimes referred to as <em>Intel Engineering Sample</em>. You can see the original system overview <a href="http://osarchive.org/os/aix/5.1ia64/misc/merced_system_over_final2.pdf">here</a>.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="640" height="828" src="https://virtuallyfun.com/wp-content/uploads/2022/09/sdv1.jpg" alt="" class="wp-image-14992" style="width:269px;height:auto" srcset="https://virtuallyfun.com/wp-content/uploads/2022/09/sdv1.jpg 640w, https://virtuallyfun.com/wp-content/uploads/2022/09/sdv1-232x300.jpg 232w" sizes="auto, (max-width: 640px) 100vw, 640px" /><figcaption class="wp-element-caption">Intel Engineering Sample, image courtesy @RetroHoosk</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="443" src="https://virtuallyfun.com/wp-content/uploads/2022/09/sdv2-1024x443.jpg" alt="" class="wp-image-14990" srcset="https://virtuallyfun.com/wp-content/uploads/2022/09/sdv2-1024x443.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2022/09/sdv2-300x130.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2022/09/sdv2-768x332.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2022/09/sdv2-1536x665.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2022/09/sdv2-2048x886.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2022/09/sdv2-500x216.jpg 500w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Intel Engineering Sample, image courtesy @RetroHoosk</figcaption></figure>



<p class="wp-block-paragraph">Later Intel sold SDV under several OEM branded versions: <a href="https://www.ibm.com/support/pages/overview-ibm-intellistation-z-pro-type-6894">IBM IntelliStation Z Pro 6894</a>, <a href="https://www.openpa.net/systems/hp_i2000.html">HP i2000 Workstation</a>, <a href="https://wiki.irixnet.org/SGI-750">SGI 750</a>, Dell Precision Workstation 730 and Fujitsu-Siemens Celsius 880. They all look alike because all of them were in fact produced by Intel.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="743" height="241" src="https://virtuallyfun.com/wp-content/uploads/2022/10/ItaniumWorkstations-1.png" alt="" class="wp-image-11981" srcset="https://virtuallyfun.com/wp-content/uploads/2022/10/ItaniumWorkstations-1.png 743w, https://virtuallyfun.com/wp-content/uploads/2022/10/ItaniumWorkstations-1-300x97.png 300w, https://virtuallyfun.com/wp-content/uploads/2022/10/ItaniumWorkstations-1-500x162.png 500w" sizes="auto, (max-width: 743px) 100vw, 743px" /><figcaption class="wp-element-caption">Intel Itanium Software Development Vehicle Lineup</figcaption></figure>



<p class="wp-block-paragraph">The <a href="https://www.ibm.com/support/pages/overview-ibm-intellistation-z-pro-type-6894">IBM Z Pro</a> is probably most suitable for running AIX. But these are pretty much unobtanium. Luckily I was able to score a fully working, brand new old stock <strong>HP i2000</strong>. Surprisingly AIX IA64 booted on a first try! The install went smoothly and I was able to log in!</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2022/10/IMG_8331-1024x768-1.jpeg" alt="" class="wp-image-11982" srcset="https://virtuallyfun.com/wp-content/uploads/2022/10/IMG_8331-1024x768-1.jpeg 1024w, https://virtuallyfun.com/wp-content/uploads/2022/10/IMG_8331-1024x768-1-300x225.jpeg 300w, https://virtuallyfun.com/wp-content/uploads/2022/10/IMG_8331-1024x768-1-768x576.jpeg 768w, https://virtuallyfun.com/wp-content/uploads/2022/10/IMG_8331-1024x768-1-400x300.jpeg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">AIX 5L IA64 on HP i2000 Workstation &#8211; boot loader</figcaption></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2022/10/IMG_8334-1024x768-1.jpeg" alt="" class="wp-image-11983" srcset="https://virtuallyfun.com/wp-content/uploads/2022/10/IMG_8334-1024x768-1.jpeg 1024w, https://virtuallyfun.com/wp-content/uploads/2022/10/IMG_8334-1024x768-1-300x225.jpeg 300w, https://virtuallyfun.com/wp-content/uploads/2022/10/IMG_8334-1024x768-1-768x576.jpeg 768w, https://virtuallyfun.com/wp-content/uploads/2022/10/IMG_8334-1024x768-1-400x300.jpeg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">AIX 5L IA64 on HP i2000 Workstation &#8211; logged in</figcaption></figure>



<p class="wp-block-paragraph">The OS feels like a standard AIX 5L. Nothing particularly special about it, except that it runs on Itanium. This <a href="http://osarchive.org/os/aix/5.1ia64/misc/aix5l_differences.pdf">RedBook</a> outlines differences between the Power and IA64 versions. A few most interesting facts are that: Itanium AIX uses ELF object files. There is a new device driver model called UDI (Uniform Device Interface) with it&#8217;s own <a href="http://osarchive.org/os/aix/5.1ia64/ddk.tar.lz">DDK</a>. It came from SCO UnixWare. Also according <a href="http://osarchive.org/os/aix/5.1ia64/misc/aix_itanium_early_adopters.pdf">early adopters guide</a>, AIX5L IA64 introduces JFS2 file system.</p>



<p class="wp-block-paragraph">Initially I was not able to get the onboard NIC working. AIX5L IA64 supports only two network cards:</p>



<pre class="wp-block-code"><code>adapter 23100020 IBM 10/100 Mbps Ethernet PCI Adapter (23100020)
adapter ae120200 10/100/1000 Base-T Ethernet PCI Adapter (ae120200)
</code></pre>



<p class="wp-block-paragraph">The <a href="http://osarchive.org/os/aix/5.1ia64/misc/aix_itanium_early_adopters.pdf">AIX Itanium Early Adopters Release Notes</a> mentions a few other cards but I do not see drivers for these in the OS. The doc mentions <em>Extended Hardware Drivers CD</em> which we don&#8217;t have.</p>



<p class="wp-block-paragraph">Luckily again I was able to find a working NIC on eBay!</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="740" height="217" src="https://virtuallyfun.com/wp-content/uploads/2022/10/ebaynic.png" alt="" class="wp-image-11991" srcset="https://virtuallyfun.com/wp-content/uploads/2022/10/ebaynic.png 740w, https://virtuallyfun.com/wp-content/uploads/2022/10/ebaynic-300x88.png 300w, https://virtuallyfun.com/wp-content/uploads/2022/10/ebaynic-500x147.png 500w" sizes="auto, (max-width: 740px) 100vw, 740px" /></figure>



<p class="wp-block-paragraph">The system comes with X11 and CDE but so far I was not able to get any GPU working beyond basic text mode. I tried many different video cards from that era but there simply doesn&#8217;t appear to be any driver in the OS except for basic VGA / <a href="https://www.ibm.com/docs/ssw_aix_72/kernelextension/lowfunc_term_subsys.html" data-type="URL" data-id="https://www.ibm.com/docs/ssw_aix_72/kernelextension/lowfunc_term_subsys.html">LFT</a>. I think the key to getting video working is the previously mentioned extended hardware drivers cd.</p>



<p class="wp-block-paragraph">Finally, if you want to read more I have found some interesting pieces on <a href="http://www.ibmfiles.com/pages/aixia64.htm">ibmfiles</a> and various mirrors <a href="http://ftpmirror.your.org/pub/misc/ftp.software.ibm.com/aix/itanium/developer/">here</a> and <a href="http://osarchive.org/os/aix/5.1ia64">here</a>.</p>



<p class="wp-block-paragraph"><strong>Update:</strong> Thanks to efforts of <strong>TRN</strong> we now have a working GCC and <a href="https://github.com/johnsonjh/AIX5-IA64">ports of lots of apps</a>!</p>



<p class="wp-block-paragraph"><strong>Update 2</strong>: After going through a pile of video cards I now have local X11 and CDE!</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2022/11/IMG_8777-1024x768.jpg" alt="" class="wp-image-12017" srcset="https://virtuallyfun.com/wp-content/uploads/2022/11/IMG_8777-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2022/11/IMG_8777-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2022/11/IMG_8777-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2022/11/IMG_8777-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2022/11/IMG_8777-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2022/11/IMG_8777-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">AIX IA64 local X11 with CDE</figcaption></figure>



<p class="wp-block-paragraph">This was the lucky winner:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="716" height="202" src="https://virtuallyfun.com/wp-content/uploads/2022/11/Screen-Shot-2022-10-31-at-4.39.14-PM.png" alt="" class="wp-image-12018" srcset="https://virtuallyfun.com/wp-content/uploads/2022/11/Screen-Shot-2022-10-31-at-4.39.14-PM.png 716w, https://virtuallyfun.com/wp-content/uploads/2022/11/Screen-Shot-2022-10-31-at-4.39.14-PM-300x85.png 300w, https://virtuallyfun.com/wp-content/uploads/2022/11/Screen-Shot-2022-10-31-at-4.39.14-PM-500x141.png 500w" sizes="auto, (max-width: 716px) 100vw, 716px" /></figure>



<p class="wp-block-paragraph"><strong>Update 3</strong>: SimCity is <a href="https://github.com/tenox7/micropolis/releases/download/1.0.0/sim-aix5ia64">now available</a> for AIX IA64! You will also need other stuff mentioned <a href="https://virtuallyfun.com/2024/08/08/dux-simcity-unix-aka-micropolis-on-irix-6-5-and-aix-4-3/" data-type="post" data-id="14763">here</a>.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2022/09/24/ibm-aix-for-ia64-itanium-aka-project-monterey-runs-again/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Cross compiling to AIX: or missing shr.o</title>
		<link>https://virtuallyfun.com/2021/08/17/cross-compiling-to-aix-or-missing-shr-o/</link>
					<comments>https://virtuallyfun.com/2021/08/17/cross-compiling-to-aix-or-missing-shr-o/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 17 Aug 2021 09:42:26 +0000</pubDate>
				<category><![CDATA[AIX]]></category>
		<category><![CDATA[cross compiler]]></category>
		<category><![CDATA[powerpc]]></category>
		<category><![CDATA[unix]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=11267</guid>

					<description><![CDATA[I was inspired by NCommander&#8217;s MinGW to Solaris cross compiler so I thought I&#8217;d dig out the one that got me started decades ago, cross compiling to the RS/6000 from Linux some time back in 1993. For this experiment I &#8230; <a href="https://virtuallyfun.com/2021/08/17/cross-compiling-to-aix-or-missing-shr-o/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="979" height="512" src="https://virtuallyfun.com/wp-content/uploads/2021/08/cross-compiling-hello-world-MinGW-to-AIX.png" alt="" class="wp-image-11268" srcset="https://virtuallyfun.com/wp-content/uploads/2021/08/cross-compiling-hello-world-MinGW-to-AIX.png 979w, https://virtuallyfun.com/wp-content/uploads/2021/08/cross-compiling-hello-world-MinGW-to-AIX-300x157.png 300w, https://virtuallyfun.com/wp-content/uploads/2021/08/cross-compiling-hello-world-MinGW-to-AIX-768x402.png 768w, https://virtuallyfun.com/wp-content/uploads/2021/08/cross-compiling-hello-world-MinGW-to-AIX-500x261.png 500w" sizes="auto, (max-width: 979px) 100vw, 979px" /></figure></div>



<p class="wp-block-paragraph">I was inspired by <a rel="noreferrer noopener" href="https://www.youtube.com/watch?v=KiI_Ohee65s" target="_blank">NCommander&#8217;s MinGW to Solaris cross compiler</a> so I thought I&#8217;d dig out the one that got me started decades ago, cross compiling to the RS/6000 from Linux some time back in 1993.  For this experiment I was able to beg/borrow a copy of /usr/lib &amp; /usr/include from AIX 3.2.5 and wanted to use that as a base.  I decided to use GCC 2.7.2.2 and Binutils 2.11.2 as these were old enough t build somewhat easy enough from MinGW/MSYS 1, but I figured they also had the best luck of being able to parse the headers without needing &#8216;fixinc&#8217;.</p>



<p class="wp-block-paragraph">I was able to build both binutils and GCC with this simple incanation</p>



<pre class="wp-block-preformatted">sh configure --target=ppc-ibm-aix325 --prefix=/aix3</pre>



<p class="wp-block-paragraph">One weird thing was that binutils completely sidestepped ld, so I had to configure that manually like this:</p>



<pre class="wp-block-preformatted">--target=powerpc-ibm-aix --prefix=/aix3</pre>



<p class="wp-block-paragraph">Also &#8216;eaixppc.c&#8217; didn&#8217;t generate properly I had to rebuild binutils from Linux to get it to pick up and build that file, copy that back in to get a working cross linker.  Older stuff has some issues with CR/LF from time to time, and sometimes it&#8217;s easier to deal with builds from other systems and pluck files as needed.</p>



<p class="wp-block-paragraph">Surprisingly things built, and <a href="/wordpress/2019/04/22/installing-aix-on-qemu/" target="_blank" rel="noreferrer noopener">transferring the to my Qemu AIX image</a> gave me this fun error:</p>



<pre class="wp-block-code"><code>exec(): 0509-036 Cannot load program /cdrom/demo/hello/hello because of the following errors:<br>0509-150 Dependent module libc.a(shr.o) could not be loaded.<br>0509-022 Cannot load module libc.a(shr.o).<br>0509-026 System error: A file or directory in the path name does not exist.</code></pre>



<p class="wp-block-paragraph">Surprisingly <a href="https://www.ibm.com/support/pages/connectenterprise-unix-%C2%A0cannot-load-module-libcashro-sci61849" target="_blank" rel="noreferrer noopener">IBM has a fix</a>!</p>



<pre class="wp-block-code"><code># export LIBPATH=$LIBPATH:/usr/lib
# /cdrom/demo/hello/hello
hello world, compiled by GCC 2.7.2.2!
#</code></pre>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2021/08/cross-compiled-hello-world-MinGW-to-AIX.png" alt="" class="wp-image-11269" srcset="https://virtuallyfun.com/wp-content/uploads/2021/08/cross-compiled-hello-world-MinGW-to-AIX.png 661w, https://virtuallyfun.com/wp-content/uploads/2021/08/cross-compiled-hello-world-MinGW-to-AIX-300x190.png 300w, https://virtuallyfun.com/wp-content/uploads/2021/08/cross-compiled-hello-world-MinGW-to-AIX-474x300.png 474w" sizes="auto, (max-width: 661px) 100vw, 661px" /></figure></div>



<p class="wp-block-paragraph">Amazing.</p>



<p class="wp-block-paragraph">Of course it&#8217;s not all sunshine and rainbows, bigger programs like the &#8216;<a href="/wordpress/2014/12/15/tracking-down-the-infotaskforce-from-1987/" target="_blank" rel="noreferrer noopener">87 Infocom interpreter</a> bomb like this:</p>



<pre class="wp-block-code"><code>C:\aix3\demo\infocom&gt;gcc -v -o infocom file.o funcs.o infocom.o init.o input.o interp.o io.o jump.o object.o options.o page.o print.o property.o support.o variable.o term.o<br>gcc version 2.7.2.2<br>ld -T512 -H512 -btextro -bhalt:4 -bnodelcsect -o infocom /aix3/lib/crt0.o -L/aix3/lib file.o funcs.o infocom.o init.o input.o interp.o io.o jump.o object.o options.o page.o print.o property.o support.o variable.o term.o /aix3/lib/libgcc.a -lc /aix3/lib/libgcc.a<br>ld: section .data &#91;0000000000000000 -&gt; 00000000000007ff] overlaps section .text &#91;0000000000000200 -&gt; 0000000000009b0b]<br>ld: section .loader &#91;0000000000000000 -&gt; 00000000000014a8] overlaps section .text &#91;0000000000000200 -&gt; 0000000000009b0b]<br>gcc: Internal compiler error: program ld got fatal signal 1</code></pre>



<p class="wp-block-paragraph">Initially I thought this was a problem with the GCC Linker, but after copying the objects to Qemu, and linking from there, I found out that the GNAT gcc driver calls the linker in a different manner:</p>



<pre class="wp-block-code"><code>ld -bpT:0x10000000 -bpD:0x20000000 -btextro -bnodelcsect -o infocom /aix3/lib/crt0.o file.o funcs.o infocom.o init.o input.o interp.o io.o jump.o object.o options.o page.o print.o property.o support.o variable.o term.o /aix3/lib/libgcc.a /aix3/lib/libc.a /aix3/lib/libgcc.a</code></pre>



<p class="wp-block-paragraph">Reformatted for my cross, but this produces a running executable.</p>



<p class="wp-block-paragraph">And finally phoon which heavily relies on floating point math:</p>



<pre class="wp-block-code"><code>C:\aix3\demo\phoon&gt;ld -bpT:0x10000000 -bpD:0x20000000 -btextro -bnodelcsect -o phoon /aix3/lib/crt0.o phoon.o date_parse.o astro.o /aix3/lib/libc.a /aix3/lib/libgcc.a /aix3/lib/libm.a<br>/aix3/lib/libm.a(atan2.o)(.pr+0x308):atan2.c: undefined reference to <code>__itrunc' /aix3/lib/libm.a(atan2.o)(.pr+0x33c):atan2.c: undefined reference to</code>__itrunc'<br>/aix3/lib/libm.a(atan2.o)(.pr+0x3c4):atan2.c: undefined reference to `__itrunc'</code></pre>



<p class="wp-block-paragraph">I thought first I could just tack -lm onto the end.  However remembering years ago, <a rel="noreferrer noopener" href="/wordpress/2010/05/05/bsd-games-solaris-fun/" target="_blank">linkers ARE position dependent</a>, and on AIX libm must come before libc.</p>



<pre class="wp-block-code"><code>C:\aix3\demo\phoon&gt;make<br>ld -bpT:0x10000000 -bpD:0x20000000 -btextro -bnodelcsect -o phoon /aix3/lib/crt0.o phoon.o date_parse.o astro.o /aix3/lib/libm.a /aix3/lib/libgcc.a /aix3/lib/libc.a</code></pre>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2021/08/aix-cross-phoon.png" alt="" class="wp-image-11270" srcset="https://virtuallyfun.com/wp-content/uploads/2021/08/aix-cross-phoon.png 661w, https://virtuallyfun.com/wp-content/uploads/2021/08/aix-cross-phoon-300x190.png 300w, https://virtuallyfun.com/wp-content/uploads/2021/08/aix-cross-phoon-474x300.png 474w" sizes="auto, (max-width: 661px) 100vw, 661px" /></figure></div>



<p class="wp-block-paragraph">And yep it runs!</p>



<p class="wp-block-paragraph">Sadly networking is a bit goofed on 4.3.3, and Im unable to upload more than a few hundred bytes before a stall on the console so slip/ppp would be a bit useless.</p>



<p class="wp-block-paragraph">Speaking of useless, if anyone is crazy enough, you can follow here: <a href="https://vpsland.superglobalmegacorp.com/install/Win32/MinGW-AIX325.7z" target="_blank" rel="noreferrer noopener">MinGW-AIX325.7z</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2021/08/17/cross-compiling-to-aix-or-missing-shr-o/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Installing AIX on Qemu!</title>
		<link>https://virtuallyfun.com/2019/04/22/installing-aix-on-qemu/</link>
					<comments>https://virtuallyfun.com/2019/04/22/installing-aix-on-qemu/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Mon, 22 Apr 2019 04:03:25 +0000</pubDate>
				<category><![CDATA[AIX]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[powerpc]]></category>
		<category><![CDATA[QEMU]]></category>
		<category><![CDATA[SYSV]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=9373</guid>

					<description><![CDATA[YES it&#8217;s real! I&#8217;m using the Linux subystem on Windows, as it&#8217;s easier to build this Qemu tree from source. I&#8217;m using Debian, but these steps will work on other systems that use Debian as a base. First thing first, &#8230; <a href="https://virtuallyfun.com/2019/04/22/installing-aix-on-qemu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-on-Qemu-logged-in-as-root.png"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-on-Qemu-logged-in-as-root.png" alt="" class="wp-image-9375" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-on-Qemu-logged-in-as-root.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-on-Qemu-logged-in-as-root-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a></figure>



<p class="wp-block-paragraph">YES it&#8217;s real!</p>



<p class="wp-block-paragraph">I&#8217;m using the Linux subystem on Windows, as it&#8217;s easier to build this Qemu tree from source.  I&#8217;m using Debian, but these steps will work on other systems that use Debian as a base.</p>



<p class="wp-block-paragraph">First thing first, you need to get your system with the needed pre-requisites to compile:</p>



<code>apt-get update;apt-get upgrade
apt-get install build-essential pkg-config libz-dev libglib2.0-dev libpixman-1-dev libfdt-dev</code>



<p class="wp-block-paragraph">Great with those in place, now clone Artyom Tarasenko&#8217;s source repository</p>



<code>git clone --branch 40p-20190406-aix-boots --single-branch https://github.com/artyom-tarasenko/qemu.git</code>



<p class="wp-block-paragraph">*NOTE from the future (2022) you may want to <a rel="noreferrer noopener" href="https://virtuallyfun.com/2022/11/08/revisiting-aix-4-3-on-qemu/" target="_blank">jump here: to check out building on newer systems</a>.  Also <a href="https://virtuallyfun.com/2022/11/08/networking-on-aix-4-3/" target="_blank" rel="noreferrer noopener">don&#8217;t forget about networking</a>!</p>



<p class="wp-block-paragraph">Since the frame buffer apparently isn&#8217;t quite working just yet, I configure for something more like a text mode build.</p>



<code>././configure --target-list=ppc-softmmu --disable-sdl --disable-vnc --disable-gtk --disable-gnutls --disable-nettle --disable-gcrypt --disable-spice --disable-numa --disable-libxml2 --disable-werror</code>



<p class="wp-block-paragraph">Now for me, GCC 7 didn&#8217;t build the source cleanly.  I had to make a change to the file config-host.mak and remove all references to -Werror.  Also I removed the sound hooks, as we won&#8217;t need them.  remove the following lines:</p>



<code>CONFIG_AUDIO_DRIVERS=oss
CONFIG_AUDIO_OSS=m</code>



<p class="wp-block-paragraph">Now you can build Qemu.  it&#8217;ll happily build in parallel so feel free to build using the -j parameter with how many cores you have.  I have 32, so I use</p>



<code>make -j32</code>



<p class="wp-block-paragraph">Okay, all being well you now have a Qemu.  Now following the steps from  <br><a href="https://tyom.blogspot.com/2019/04/aixprep-under-qemu-how-to.html">Artyom Tarasenko&#8217;s blog post</a>, we can get started on the install!</p>



<p class="wp-block-paragraph">First we create a 8GB disk</p>



<code>qemu-img create -f qcow2 aix-hdd.qcow2 8G</code>



<p class="wp-block-paragraph">Next we need the custom BIOS with serial as the console.</p>



<code>wget https://github.com/artyom-tarasenko/openfirmware/releases/download/40p-20190413/q40pofw-serial.rom</code>



<p class="wp-block-paragraph">You&#8217;ll need some AIX.  I tried a 3.2.5 CD-ROM and it didn&#8217;t pick up, but <a href="https://winworldpc.com/product/aix/43x">AIX 4.3.3</a> did.</p>



<p class="wp-block-paragraph">Now with all those bits in place, it&#8217;s time to run Qemu.</p>



<code>./ppc-softmmu/qemu-system-ppc -M 40p -bios q40pofw-serial.rom -serial telnet::4441,server -hda aix-hdd.qcow2 -vga none -nographic -net none -cdrom Volume_1.iso</code>



<p class="wp-block-paragraph">Now telnet to your localhost on port 4441 and you will see the console doing it&#8217;s BIOS initialize and eventually drop to the OK prompt.</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/Qemu-BIOS-boot-prompt.png"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/04/Qemu-BIOS-boot-prompt.png" alt="" class="wp-image-9376" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/Qemu-BIOS-boot-prompt.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/Qemu-BIOS-boot-prompt-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a></figure>



<p class="wp-block-paragraph">One trick I&#8217;ve found is that from the Open Firmware prompt you can find out what partitions are recognized from the firmware.  If it see&#8217;s partitions then there is some hope that the image you have is valid enough to boot.  In the last few days I&#8217;ve found quite a few AIX images, which are lacking the partition table, and unable to boot.</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/view-partitions-on-CD-ROM.png"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/04/view-partitions-on-CD-ROM.png" alt="" class="wp-image-9395" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/view-partitions-on-CD-ROM.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/view-partitions-on-CD-ROM-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a><figcaption>.partitions cdrom</figcaption></figure>



<p class="wp-block-paragraph">simply type in boot cdrom:2 to kick off the installer.  It may take a minute or so for the installer to kick off.</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/Qemu-BIOS-boot-prompt-boot-cd-romx.png"><img loading="lazy" decoding="async" width="661" height="100" src="https://virtuallyfun.com/wp-content/uploads/2019/04/Qemu-BIOS-boot-prompt-boot-cd-romx.png" alt="" class="wp-image-9378" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/Qemu-BIOS-boot-prompt-boot-cd-romx.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/Qemu-BIOS-boot-prompt-boot-cd-romx-300x45.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a></figure>



<p class="wp-block-paragraph">If all goes well, you&#8217;ll see the BIOS reload itself, then after a minute you&#8217;ll be prompted to press 1 to select the console</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-console-select.png"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-console-select.png" alt="" class="wp-image-9379" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-console-select.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-console-select-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a></figure>



<p class="wp-block-paragraph">It doesn&#8217;t echo, don&#8217;t panic!</p>



<p class="wp-block-paragraph">Next select your language.  I&#8217;m doing English.</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-language-select.png"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-language-select.png" alt="" class="wp-image-9380" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-language-select.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-language-select-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a></figure>



<p class="wp-block-paragraph">Next it&#8217;ll ask about installation type.  Default ought to be fine.</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Install-now-with-defaults.png"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Install-now-with-defaults.png" alt="" class="wp-image-9381" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Install-now-with-defaults.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Install-now-with-defaults-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a></figure>



<p class="wp-block-paragraph">Because this will destroy the contents of the disk (which doesn&#8217;t matter as it&#8217;s blank) it&#8217;ll prompt for confirmation.</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Continue-with-Install.png"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Continue-with-Install.png" alt="" class="wp-image-9382" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Continue-with-Install.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Continue-with-Install-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a></figure>



<p class="wp-block-paragraph">After this it&#8217;ll begin the installation.  Depending on how fast your disk &amp; CPU is this will take a while.</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Intalling-0pct.png"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Intalling-0pct.png" alt="" class="wp-image-9383" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Intalling-0pct.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Intalling-0pct-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a><figcaption><br></figcaption></figure>



<p class="wp-block-paragraph">For me, the installation took about 11 minutes.  This is using my Xeon E5-2667 v2.  It took 17 minutes on my 2006 Mac Pro, with X5365&#8217;s it .</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Install-took-11-minutes.png"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Install-took-11-minutes.png" alt="" class="wp-image-9384" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Install-took-11-minutes.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Install-took-11-minutes-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a></figure>



<p class="wp-block-paragraph">After it&#8217;s done, right around the 96% time it&#8217;ll reboot back to the BIOS</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Install-finished.png"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Install-finished.png" alt="" class="wp-image-9385" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Install-finished.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-Install-finished-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a></figure>



<p class="wp-block-paragraph">Once you are back at the OK prompt, you can now boot disk:</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/boot-disk0-after-install.png"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/04/boot-disk0-after-install.png" alt="" class="wp-image-9386" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/boot-disk0-after-install.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/boot-disk0-after-install-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a></figure>



<p class="wp-block-paragraph">it&#8217;ll look like it&#8217;s hung for a minute, then it&#8217;ll start booting from disk!</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booting-from-disk.png"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booting-from-disk.png" alt="" class="wp-image-9387" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booting-from-disk.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booting-from-disk-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a></figure>



<p class="wp-block-paragraph">Once the OS is booted up, you select the terminal type.  I&#8217;m using putty but I&#8217;ll select the vt100.  Of note the function keys are selected by hitting escape and then the number key.  So F3 is ESC 3.</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booted-off-hard-disk-select-terminal-type.png"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booted-off-hard-disk-select-terminal-type.png" alt="" class="wp-image-9388" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booted-off-hard-disk-select-terminal-type.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booted-off-hard-disk-select-terminal-type-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a></figure>



<p class="wp-block-paragraph">I&#8217;m just going to finish the install, as we can always run smitty to mess with the system more, but right now I&#8217;m just interested in a base install of the BOS (Base Operating System, and IBM ISM).</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booted-off-hard-disk-Tasks-Completed.png"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booted-off-hard-disk-Tasks-Completed.png" alt="" class="wp-image-9389" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booted-off-hard-disk-Tasks-Completed.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booted-off-hard-disk-Tasks-Completed-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a></figure>



<p class="wp-block-paragraph">A few moments later, you&#8217;ll get dumped to the login prompt.</p>



<figure class="wp-block-image"><a href="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booted-off-hard-disk-login-prompt.png"><img loading="lazy" decoding="async" width="661" height="418" src="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booted-off-hard-disk-login-prompt.png" alt="" class="wp-image-9390" srcset="https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booted-off-hard-disk-login-prompt.png 661w, https://virtuallyfun.com/wp-content/uploads/2019/04/IBM-AIX-booted-off-hard-disk-login-prompt-300x190.png 300w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a></figure>



<p class="wp-block-paragraph">By default there is no password, so just login as root, and there you go, your very own virtual AIX 4.3 system.</p>



<code># uname -a
AIX localhost 3 4 000000004C00</code>



<p class="wp-block-paragraph">So there you go!  All thanks to Artyom&#8217;s hard work!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2019/04/22/installing-aix-on-qemu/feed/</wfw:commentRss>
			<slash:comments>65</slash:comments>
		
		
			</item>
	</channel>
</rss>
