<?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>Fri, 24 Jan 2025 15:16:07 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</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, IBM did however produce AIX version for the Itanium architecture! According to Wikipedia, some 30+ licenses were sold in 2001-2002. 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>. 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">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 SDV was sold 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 IBM Z pro is probably most suitable for running AIX. Finding one of these is no easy task. Luckily I was able to score a working HP i2000. 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>
