<?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>Linux &#8211; Virtually Fun</title>
	<atom:link href="https://virtuallyfun.com/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>https://virtuallyfun.com</link>
	<description>Fun with Virtualization</description>
	<lastBuildDate>Fri, 02 Aug 2024 12:13:21 +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>Compiling Linux 0.11 using the December 1991 Windows NT Pre-release</title>
		<link>https://virtuallyfun.com/2024/08/02/compiling-linux-0-11-using-the-december-1991-windows-nt-pre-release/</link>
					<comments>https://virtuallyfun.com/2024/08/02/compiling-linux-0-11-using-the-december-1991-windows-nt-pre-release/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 02 Aug 2024 12:13:21 +0000</pubDate>
				<category><![CDATA[cross compiler]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows NT 3.1]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14730</guid>

					<description><![CDATA[It&#8217;s no secret that I do enjoy building silly &#8220;what if&#8221; things. And this is going to be one of the more impractical ones. Building on previous work, where I had built GCC 1.40 using the OS/2 hosted Microsoft C &#8230; <a href="https://virtuallyfun.com/2024/08/02/compiling-linux-0-11-using-the-december-1991-windows-nt-pre-release/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">It&#8217;s no secret that I do enjoy building silly &#8220;what if&#8221; things.  And this is going to be one of the more impractical ones.</p>



<p class="wp-block-paragraph">Building on previous work, where <a href="https://virtuallyfun.com/2024/01/08/so-it-turns-out-gcc-could-have-been-available-on-windows-nt-the-entire-time/" target="_blank" rel="noreferrer noopener">I had built GCC 1.40 using the OS/2 hosted Microsoft C compiler</a> that shipped with this Pre-Release, and using <a href="https://virtuallyfun.com/2015/10/09/building-linux-0-11-on-windows-10/" target="_blank" rel="noreferrer noopener">MinGW to build Linux 0.11</a>, it was time to combine the two, like chocolate &amp; peanut butter!</p>



<figure class="wp-block-video"><video height="480" style="aspect-ratio: 854 / 480;" width="854" controls src="https://virtuallyfun.com/wp-content/uploads/2024/08/combo.mp4"></video><figcaption class="wp-element-caption">Yes, it&#8217;s from 1981.  I&#8217;m that old to remember this.</figcaption></figure>



<h2 class="wp-block-heading">Getting NT ready</h2>



<p class="wp-block-paragraph">The first thing I wanted was to install the Pre-Release onto a HPFS disk.  I&#8217;ve uploaded this over on <a href="https://archive.org/details/dec-1991-prepped.7z" target="_blank" rel="noreferrer noopener">archive.org (Windows NT December 1991 prepped for Qemu<span style="color: rgb(44, 44, 44); font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 14px; white-space-collapse: collapse;"></span>)</a>.  I took the CD-ROM image, removed all the MIPS stuff, built a boot floppy, and setup the paths so that the floppy can boot onto the secondary hard disk to a &#8216;full&#8217; version of NT.  This lets me format the C: drive as HPFS, and then do a selective install of Windows NT to ensure that that the software tools (compiler) are installed.</p>



<p class="wp-block-paragraph">I use a specially patched vintage QEMU build, <a href="https://archive.org/download/dec-1991-prepped.7z/qemu-0.14.0.7z" target="_blank" rel="noreferrer noopener">qemu-0.14.0.7z</a> which kind of makes it &#8216;easier&#8217;, along with the needed disk images in <a href="https://archive.org/download/dec-1991-prepped.7z/dec-1991-prepped.7z">dec-1991-prepped.7z</a></p>



<pre class="wp-block-code"><code>qemu.exe -L pc-bios -m 64 -net none -hda nt1991.vmdk -hdb nt1991-cd.vmdk -fda boot.vfd -boot a</code></pre>



<p class="wp-block-paragraph">This will bring up the boot selection menu.  The default option is fine, you can just hit enter.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="722" height="432" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-01.png" alt="" class="wp-image-14732" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-01.png 722w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-01-300x180.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-01-500x300.png 500w" sizes="(max-width: 722px) 100vw, 722px" /><figcaption class="wp-element-caption">boot NT from D:</figcaption></figure>



<p class="wp-block-paragraph">NT will load up and you now have to login as the SYSTEM user.  We need the advanced permissions to format the hard disk.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-02.png" alt="" class="wp-image-14733" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-02.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-02-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-02-376x300.png 376w" sizes="(max-width: 642px) 100vw, 642px" /><figcaption class="wp-element-caption">Login as &#8216;system&#8217;</figcaption></figure>



<p class="wp-block-paragraph">From the desktop we first format the C: drive as HPFS.  I made icons for all this stuff to try to make it as easy as possible.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-03.png" alt="" class="wp-image-14742" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-03.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-03-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-03-376x300.png 376w" sizes="(max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph">You&#8217;ll get asked to confirm you want to do this, and give the disk a creative name.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-04.png" alt="" class="wp-image-14741" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-04.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-04-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-04-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph">And with the disk formatted it&#8217;s time to start the setup process.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-05.png" alt="" class="wp-image-14740" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-05.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-05-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-05-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph">Who are you?</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-06.png" alt="" class="wp-image-14739" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-06.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-06-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-06-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph">And what slick account do you want?  It doesn&#8217;t matter tbh.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-07.png" alt="" class="wp-image-14738" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-07.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-07-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-07-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph">I&#8217;m going to do a custom install as the NIC&#8217;s aren&#8217;t supported, and even if they were it&#8217;s just NetBEUI anyways.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-08.png" alt="" class="wp-image-14737" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-08.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-08-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-08-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph">And select your hardware platform.  NT basically only supports this config, so it doesn&#8217;t matter.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-09.png" alt="" class="wp-image-14736" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-09.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-09-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-09-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph">The default target drive is our C drive, which we had just formatted to HPFS.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-10.png" alt="" class="wp-image-14735" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-10.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-10-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-10-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph">Next, I unchecked everything only leaving the MS Tools</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-11.png" alt="" class="wp-image-14734" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-11.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-11-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-11-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph">It&#8217;ll offer the samples &amp; help files.  I always install them as I eventually need examples of stuff to steal, and to learn that including &lt;windows.h> won&#8217;t work right unless you manually define a -Di386 on the command line.  I&#8217;m saving you this pain right now up front.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-12.png" alt="" class="wp-image-14745" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-12.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-12-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-12-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph">Files will copy, and on a modern machine this takes seconds.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-13.png" alt="" class="wp-image-14744" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-13.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-13-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-13-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph">And there we go!</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-14.png" alt="" class="wp-image-14743" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-14.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-14-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-14-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph">And Windows NT is installed.</p>



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



<p class="wp-block-paragraph">I put in a &#8216;CAD&#8217; feature in this Qemu hitting control+alt+d will send the familiar pattern, and after a few times NT will reboot.  We are pretty much done with NT for the moment, but congrats you&#8217;ve installed the December 1991 Pre-release onto a HPFS disk for those sweet long long file names!</p>



<h2 class="wp-block-heading">Going over the strategy:</h2>



<p class="wp-block-paragraph">I&#8217;ve already built GCC 1.40 for NT, so what is the rest of the stuff needed to build Linux?  It&#8217;s a quick checklist but here goes, in no specific order:</p>



<ul class="wp-block-list">
<li><s>GCC 1.40</s></li>



<li>bin86</li>



<li>binutils</li>



<li><s>gas 1.38</s></li>



<li>bison</li>



<li>unzip</li>



<li>zip</li>
</ul>



<p class="wp-block-paragraph">Luckily as part of building on Windows 10 using MinGW, I had fixed the weird file issues as MS-DOS/Windows NT/OS2 handle text/binary files, as we went through with how <a href="https://virtuallyfun.com/2024/04/28/compiling-ms-dos-4-0-from-dos-4-0-on-a-ps-2/" target="_blank" rel="noreferrer noopener">Github mangled MS-DOS 4.00</a>.</p>



<p class="wp-block-paragraph">The primary reason I wanted a working zip/unzip was to deal with long file names, and to auto convert text files.  And this ended up being an incredible waste of time trying to get the &#8216;old&#8217;s code on the Info-Zip page.</p>



<figure class="wp-block-image size-large"><a href="https://sourceforge.net/projects/infozip/files/UnZip%205.x%20and%20earlier/" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="418" src="https://virtuallyfun.com/wp-content/uploads/2024/08/infozip-old-downloads-1024x418.jpg" alt="" class="wp-image-14748" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/infozip-old-downloads-1024x418.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2024/08/infozip-old-downloads-300x123.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/infozip-old-downloads-768x314.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2024/08/infozip-old-downloads-500x204.jpg 500w, https://virtuallyfun.com/wp-content/uploads/2024/08/infozip-old-downloads.jpg 1119w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Info-Zip&#8217;s old downloads. Version 5 only!</figcaption></figure>



<p class="wp-block-paragraph">I&#8217;m sure like everything else, the old versions are removed as they probably suffer from some catastrophic security issue with overflows.  The issue I ran into is that the version 5 stuff uses so many features of shipping NT, to even 2000 that it was going to be a LOT of work to get this far.  The quicker &amp; easier path as always turned out to be a time machine.</p>



<p class="wp-block-paragraph">Thankfully, since I had made a copy of the UTZOO archives, I was able to fish out, both <a href="https://github.com/neozeed/Info-Zip-3.1" target="_blank" rel="noreferrer noopener">version 3.1</a> from the archives.  Also known as &#8220;Portable UnZIP 3.1&#8221;, parts <a href="https://altavista.superglobalmegacorp.com/usenet/b181/comp/sources/misc/1833.txt" target="_blank" rel="noreferrer noopener">1</a>/<a href="https://altavista.superglobalmegacorp.com/usenet/b181/comp/sources/misc/1834.txt" target="_blank" rel="noreferrer noopener">2</a>/<a href="https://altavista.superglobalmegacorp.com/usenet/b181/comp/sources/misc/1835.txt" target="_blank" rel="noreferrer noopener">3</a>.  I also found <a href="https://github.com/neozeed/Info-Zip-4.1" target="_blank" rel="noreferrer noopener">version 4.1</a> as well.  And people wonder why you want to save these &#8216;huge&#8217; data sets. If the lawyers could have their way, they would obliterate all history.</p>



<p class="wp-block-paragraph">I spent a lot of time messing with Makefiles, as linking &amp; object conversion on old NT is a big deal, and not the kind of thing you want to do more than once.  Another big pain is that large files become delete only.  I don&#8217;t know what the deal with notepad is, but I could remove text, but not change or add.  I solved that by wrapping a number of things by including it in another file with some #define work to go around it. Needless to say, that sucked.</p>



<p class="wp-block-paragraph">One thing that constantly threw issues is that this version of Windows doesn&#8217;t handle Unix style signals.  I removed all the signal catch/throw stuff, and the binaries ran fine.  Why on earth does &#8216;strip&#8217; need signals is beyond me, but it runs fine without them!</p>



<h2 class="wp-block-heading">Bringing it together.</h2>



<p class="wp-block-paragraph">From my &#8220;<a href="https://archive.org/details/linux-0.11-compile-ntdec1991-bins" target="_blank" rel="noreferrer noopener">Build artifacts from Building Linux 0.11 on Windows NT build 239, December 1991</a>&#8221; page, grab the two files, <a href="https://archive.org/download/linux-0.11-compile-ntdec1991-bins/bin.zip" target="_blank" rel="noreferrer noopener">bin.zip</a> &amp; <a href="https://archive.org/download/linux-0.11-compile-ntdec1991-bins/source0.zip" target="_blank" rel="noreferrer noopener">source0.zip</a>.</p>



<p class="wp-block-paragraph">On Windows I just unzip the bin.zip file and leave source.0.zip intact into a directly say something like temp.  Then I can use a cool feature of Qemu where it can mount a directory as a read-only FAT disk.  This saves a lot of time!</p>



<p class="wp-block-paragraph">Running Qemu like this:</p>



<pre class="wp-block-code"><code>qemu.exe -L pc-bios -m 64 -net none -hda nt1991.vmdk -hdb fat:temp -fda boot.vfd</code></pre>



<p class="wp-block-paragraph">Will drop to the bootloader. Hit enter to login, and you&#8217;ll be at the desktop.  Hit enter again, and open a command prompt.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-15.png" alt="" class="wp-image-14750" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-15.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-15-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-15-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /><figcaption class="wp-element-caption">open the command prompt</figcaption></figure>



<p class="wp-block-paragraph">By default, the Numlock is messing with the arrow keys (I think it&#8217;s mapping to the old 83 key keyboard no matter what?)  Hit num-lock and your arrow keys should kind of work.  It&#8217;s a great time saver.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-16b.png" alt="" class="wp-image-14752" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-16b.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-16b-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-16b-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /><figcaption class="wp-element-caption">copy the binaries to \bin &amp; get ready to unzip</figcaption></figure>



<p class="wp-block-paragraph">I copied the binaries &amp; the ygcc.cmd file into the \bin directory, created a \proj directory and get ready to unzip all the source code.  For some reason this version of unzip doesn&#8217;t understand the zip compression, so it&#8217;s just storing instead, much like TAR.  It&#8217;s not that involved but unzip with the -d flag so it creates directories as needed.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-17.png" alt="" class="wp-image-14753" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-17.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-17-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-17-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /><figcaption class="wp-element-caption">unzipped</figcaption></figure>



<p class="wp-block-paragraph">This will let us keep long file names.  HPFS is case insensitive, but it also preserves the case, so don&#8217;t worry about the names being all weird.  It doesn&#8217;t matter.</p>



<p class="wp-block-paragraph">One thing worth mentioning is that even though the C pre-processor does compile it just hangs when trying to run it.  I&#8217;m not sure what is wrong exactly, but it&#8217;s just not worth fighting.  Instead, I had the better idea, of using the Microsoft C compiler to pre-process the source.  Apparently, this is how they originally built Windows NT, pre-processing on OS/2, then uploading the pre-processed files to a SUN workstation with the i860 compiler and downloading the objects to be converted &amp; linked.  Wow that must have been tedious!</p>



<p class="wp-block-paragraph">I created a CMD file &#8216;ygcc.cmd&#8217; to run the cl386 pre-processor, call CC1 &amp; GAS and clean up afterwards.</p>



<pre class="wp-block-code"><code>cl386 -nologo /u /EP -I\include -D__GNUC__ -Dunix -Di386 -D__unix__ -D__i386__ -D__OPTIMIZE__ %2 > \tmp\xxx.cpp
\bin\cc1 -version -quiet -O -fstrength-reduce -fomit-frame-pointer -fcombine-regs -o /tmp/xxx.s /tmp/xxx.cpp
\bin\ax386 -v -o %1 /tmp/xxx.s
@del \tmp\xxx.s
@del \tmp\xxx.cpp</code></pre>



<p class="wp-block-paragraph">It&#8217;s not pretty but it works!</p>



<h2 class="wp-block-heading">Building</h2>



<p class="wp-block-paragraph">Before you can build Linux, you need to create both a \tmp &amp; \temp directory.  Also the include files need to be copied to the \include directory to make the pre-processor happier.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-18b.png" alt="" class="wp-image-14755" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-18b.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-18b-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-18b-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph">I&#8217;ve tried to make this as simple as possible there is a &#8216;blind.cmd&#8217; file which I built that&#8217;ll manually compile Linux.  There is no error checking.</p>



<p class="wp-block-paragraph">And saving everyone the excitement here is an animation of the build process</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="480" height="357" src="https://virtuallyfun.com/wp-content/uploads/2024/08/build-linux011-ntdec1991.gif" alt="" class="wp-image-14749"/><figcaption class="wp-element-caption">Actually compiling Linux</figcaption></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-19.png" alt="" class="wp-image-14756" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-19.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-19-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-19-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /><figcaption class="wp-element-caption">compiled!</figcaption></figure>



<p class="wp-block-paragraph">And there we go! All compiled!</p>



<p class="wp-block-paragraph">From there it&#8217;s a matter of copying the Image file out of the VM, I used the boot floppy and 7zip&#8217;s ability to extract FAT images, and then boot up Qemu using the Image file as a &#8216;floppy&#8217; as back in the day we used to rawrite these to floppy disks. </p>



<pre class="wp-block-code"><code>qemu.exe -L pc-bios -m 64 -net none -hda nt1991.vmdk -hdb fat:temp -fda boot\IMAGE -boot a</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="722" height="432" src="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-20.png" alt="" class="wp-image-14757" srcset="https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-20.png 722w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-20-300x180.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/08/install-patched-1991-20-500x300.png 500w" sizes="auto, (max-width: 722px) 100vw, 722px" /><figcaption class="wp-element-caption">And there we go, Linux 0.11 booted!</figcaption></figure>



<p class="wp-block-paragraph">I don&#8217;t have a root filesystem, so the panic is expected, but yes, we just cross compiled Linux from Windows NT, circa 1991!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/08/02/compiling-linux-0-11-using-the-december-1991-windows-nt-pre-release/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://virtuallyfun.com/wp-content/uploads/2024/08/combo.mp4" length="1485267" type="video/mp4" />

			</item>
		<item>
		<title>Two things that really annoy me!</title>
		<link>https://virtuallyfun.com/2024/06/14/two-things-that-really-annoy-me/</link>
					<comments>https://virtuallyfun.com/2024/06/14/two-things-that-really-annoy-me/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 14 Jun 2024 08:36:19 +0000</pubDate>
				<category><![CDATA[disk images]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[QEMU]]></category>
		<category><![CDATA[random updates]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14540</guid>

					<description><![CDATA[Moving homes. again. First off, I got a new VPS to house this on, size wise, I&#8217;d just plain outgrown the old one, even with SquashFS. Over on lowend box, I had spotted this one: LuxVPS It&#8217;s not an AD, &#8230; <a href="https://virtuallyfun.com/2024/06/14/two-things-that-really-annoy-me/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Moving homes. again.</h2>



<p class="wp-block-paragraph">First off, I got a new VPS to house this on, size wise, I&#8217;d just plain outgrown the old one, even with <a href="https://virtuallyfun.com/2024/06/11/squeezing-the-bytes-out-of-webhosting-linux-with-squashfs-overlay/" target="_blank" rel="noreferrer noopener">SquashFS</a>. Over on <a href="https://lowendbox.com/" target="_blank" rel="noreferrer noopener">lowend box</a>, I had spotted this one: <a href="https://luxvps.net/" target="_blank" rel="noreferrer noopener">LuxVPS</a></p>



<figure class="wp-block-image size-full"><a href="https://lowendbox.com/blog/happy-birthday-luxvps-now-lets-cut-the-cake-on-these-celebration-deals-and-giveaway-%f0%9f%a5%b3/" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="704" height="199" src="https://virtuallyfun.com/wp-content/uploads/2024/06/luxvps.png" alt="" class="wp-image-14541" srcset="https://virtuallyfun.com/wp-content/uploads/2024/06/luxvps.png 704w, https://virtuallyfun.com/wp-content/uploads/2024/06/luxvps-300x85.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/06/luxvps-500x141.png 500w" sizes="auto, (max-width: 704px) 100vw, 704px" /></a></figure>



<p class="wp-block-paragraph">It&#8217;s not an AD, just thought the pricing seemed pretty good for 5€.  One of the nice things about converting so much of my data to SquashFS is that moving single files is WAY easier to deal with!</p>



<h2 class="wp-block-heading">Mice in my 1970&#8217;s teletype text editor?!</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-1.png" alt="" class="wp-image-14542" srcset="https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-1.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-1-300x300.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-1-150x150.png 150w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-1-768x768.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Using Mice with a 1970&#8217;s text editor</figcaption></figure>



<p class="wp-block-paragraph">But editing text files had me facing off some feature of VIM I&#8217;d somehow not dealt with that Debian 11 set by default, and that is mouse integration!</p>



<p class="wp-block-paragraph"><strong>CAN YOU BELIVE IT?</strong></p>



<p class="wp-block-paragraph">Somewhere out there, is people who use a mouse with a VI clone.&nbsp;</p>



<p class="wp-block-paragraph">It bares repeating</p>



<p class="wp-block-paragraph"><strong>SOMEONE THINKS YOU NEED A MOUSE TO USE VI.</strong></p>



<p class="wp-block-paragraph">So much so, it&#8217;s the system default.</p>



<p class="wp-block-paragraph"><strong>G</strong>ood lor<strong>d</strong>.</p>



<p class="wp-block-paragraph">The fix is to edit /etc/vim/vimrc:</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<pre class="wp-block-code"><code>set mouse=
set ttymouse=</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">Problem solved.  Obviously, I&#8217;m not going to remember this, but now I can right click/paste the way G&#8217;d intended it!</p>



<h2 class="wp-block-heading">Stale encryption</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-3.png" alt="" class="wp-image-14543" srcset="https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-3.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-3-300x300.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-3-150x150.png 150w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-3-768x768.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Old rusty locks</figcaption></figure>



<p class="wp-block-paragraph">The next source of annoyance is the ancient <a href="https://www.stunnel.org/">stunnel</a> 4.17 that I use for <a href="https://altavista.superglobalmegacorp.com/altavista">altavista.superglobalmegacorp.com</a>.  I&#8217;m kind of trapped with this setup as it needs to be a 32bit &#8216;workstation&#8217; OS, and I don&#8217;t want to run something as heavy as XP or Vista when NT 4.0 is more than enough.  Anyways OpenSSL won&#8217;t talk to this ancient encryption, throwing this error trying to do a connection with &#8220;openssl s_client -connect 192.168.23.6:443&#8221;:</p>



<pre class="wp-block-code"><code>error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol
Unable to establish SSL connection.</code></pre>



<p class="wp-block-paragraph">The fix, thanks to <a href="https://stackoverflow.com/users/2868801/dave-thompson-085">dave_thompson_085</a> is simple enough.</p>



<p class="wp-block-paragraph">Basically, modify /etc/ssl/openssl.conf and place this at the top:</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<pre class="wp-block-code"><code>openssl_conf = default_conf
#
# OpenSSL example configuration file.
# This is mostly being used for generation of certificate requests.
#</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">then place this at the bottom:</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<pre class="wp-block-code"><code>&#91; default_conf ]

ssl_conf = ssl_sect

&#91;ssl_sect]

system_default = ssl_default_sect

&#91;ssl_default_sect]
MinProtocol = TLSv1
CipherString = DEFAULT:@SECLEVEL=1</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">Now when I connect to stunnel, I can verify that I am indeed using ancient crap level security:</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<pre class="wp-block-code"><code>New, SSLv3, Cipher is AES256-SHA
Server public key is 1024 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID: 19D20D30E0026E8417E00402DE939E90770D4658C3A9CFE4DB4E5F2A5454DE9D
    Session-ID-ctx:
    Master-Key: 498C648E77E9B9C944A8B1D16242240A161A05A087881C6AD300718DD9B8C443EA12FB76440B666B7C6634A7E7DBE9D5
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1718352960
    Timeout   : 7200 (sec)
    Verify return code: 10 (certificate has expired)
    Extended master secret: no
---
DONE</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">I don&#8217;t care about the encryption, I could as a matter of fact just run without it, as I only need the reverse proxy aspect of it, to make the AltaVista web server accessible over the LAN/WAN/INTERNET.  It&#8217;s all fronted with CloudFlare so from the end use POV it&#8217;s all encrypted anyways</p>



<h2 class="wp-block-heading">A rainbow of happiness</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-4.png" alt="" class="wp-image-14544" srcset="https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-4.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-4-300x300.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-4-150x150.png 150w, https://virtuallyfun.com/wp-content/uploads/2024/06/Designer-4-768x768.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Sunshine &amp; rainbows!</figcaption></figure>



<p class="wp-block-paragraph">Another nice side benefit of this SquashFS setup is that I can forever rebase the disks as the content never changes.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<pre class="wp-block-code"><code>#!/bin/bash
# rebase the disk
rm /usr/local/vm/AltaVista/altavista-c.vmdk
rm /usr/local/vm/AltaVista/altavista-d.vmdk
rm /usr/local/vm/AltaVista/altavista-u.vmdk

qemu-img create -f vmdk -b /usr/local/vmdk/AltaVista_C/altavista-c.vmdk -F vmdk /usr/local/vm/AltaVista/altavista-c.vmdk
qemu-img create -f vmdk -b /usr/local/vmdk/AltaVista_D/altavista-d.vmdk -F vmdk /usr/local/vm/AltaVista/altavista-d.vmdk
qemu-img create -f vmdk -b /usr/local/vmdk/AltaVista_U/altavista-u.vmdk -F vmdk /usr/local/vm/AltaVista/altavista-u.vmdk

qemu-system-i386 -vga std -cpu pentium -m 64 \
        -vnc 192.168.23.1:6 \
        -net none  \
        -hda /usr/local/vm/AltaVista/altavista-c.vmdk \
        -hdb /usr/local/vm/AltaVista/altavista-d.vmdk \
        -hdd /usr/local/vm/AltaVista/altavista-u.vmdk \
        -device pcnet,netdev=alta,mac=5a:00:11:55:22:22  \
        -netdev tap,ifname=tap6,id=alta,script=/usr/local/vm/AltaVista/alta-up,downscript=/usr/local/vm/AltaVista/alta-down</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">One thing is for sure, it makes hosting AltaVista a bit easier to deal with.  And for the sake of archiving, I uploaded a pre-loaded &amp; indexed dataset <a href="https://archive.org/details/altavista-preloaded_squashfs">Altavista Pre-Loaded (squashfs)</a>.  I found that you can just copy the databases into a new VM, as long as you keep the drive letters the same as your source.  So luckily, I had kept the OS on C:, installed AltaVista on D: with all the usenet posts on U:.  Even better, for those strapped for space, you don&#8217;t technically need the U: drive, if you just want to search.  Of course, you probably do want to look at them, <a href="https://virtuallyfun.com/2016/04/21/fun-with-apache-mod_proxy-mod_rewrite-stunnel-and-altavista-personal-search/" target="_blank" rel="noreferrer noopener">but we&#8217;ve gone down this road before</a>.  And we know where it leads.</p>



<figure class="wp-block-image size-full"><img decoding="async" src="https://virtuallyfun.com/wp-content/uploads/2014/10/Screen-Shot-2014-10-29-at-10.06.14-PM.png" alt="" class="wp-image-4698"/><figcaption class="wp-element-caption">Index All the things!</figcaption></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/06/14/two-things-that-really-annoy-me/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Let&#8217;s build a Linux kernel from Windows!</title>
		<link>https://virtuallyfun.com/2024/06/11/lets-build-a-linux-kernel-from-windows/</link>
					<comments>https://virtuallyfun.com/2024/06/11/lets-build-a-linux-kernel-from-windows/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 11 Jun 2024 19:22:50 +0000</pubDate>
				<category><![CDATA[cross compiler]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Win32]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14534</guid>

					<description><![CDATA[Some of you may remember some 9 years ago, I had put together a package to compile Linux 0.10 under Windows. Time goes on, and things are lost, and it&#8217;d come up somewhere about actually building Linux from Windows, so &#8230; <a href="https://virtuallyfun.com/2024/06/11/lets-build-a-linux-kernel-from-windows/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Let&#039;s build the Linux 0.10 kernel from Windows!" width="584" height="329" src="https://www.youtube.com/embed/fDbzazjSrYE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption">Very exciting</figcaption></figure>



<p class="wp-block-paragraph">Some of you may remember some 9 years ago, I had put together <a href="https://virtuallyfun.com/2015/10/09/building-linux-0-11-on-windows-10/" target="_blank" rel="noreferrer noopener">a package to compile Linux 0.10 under Windows</a>.</p>



<p class="wp-block-paragraph">Time goes on, and things are lost, and it&#8217;d come up somewhere about actually building Linux from Windows, so I thought I&#8217;d show it off.</p>



<p class="wp-block-paragraph">The one thing is that modern machines are just so fast, that it&#8217;s almost hard to believe that a 386DX 16 with 4MB of ram would struggle for seemingly hours, what an i7 can churn out in mere seconds.</p>



<p class="wp-block-paragraph">Time sure flies!</p>



<p class="wp-block-paragraph">It&#8217;s my usual &#8216;DO IT LIVE&#8217; style, I tried to clean up the audio, but I lost the steps&#8230; One day I&#8217;ll try to script &amp; build a PowerPoint so it&#8217;s more cohesive.</p>



<p class="wp-block-paragraph">But today is not that day.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/06/11/lets-build-a-linux-kernel-from-windows/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Squeezing the bytes out of webhosting &#038; Linux with SquashFS &#038; Overlay</title>
		<link>https://virtuallyfun.com/2024/06/11/squeezing-the-bytes-out-of-webhosting-linux-with-squashfs-overlay/</link>
					<comments>https://virtuallyfun.com/2024/06/11/squeezing-the-bytes-out-of-webhosting-linux-with-squashfs-overlay/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 11 Jun 2024 08:50:42 +0000</pubDate>
				<category><![CDATA[disk images]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14529</guid>

					<description><![CDATA[It&#8217;s a problem that we will all face sooner or later in shared environments, running out of disk space. Back in the old days we would just run stacker and be done with it, but what on earth can we &#8230; <a href="https://virtuallyfun.com/2024/06/11/squeezing-the-bytes-out-of-webhosting-linux-with-squashfs-overlay/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        29G   27G  2.1G  93% /</code></pre>



<p class="wp-block-paragraph">It&#8217;s a problem that we will all face sooner or later in shared environments, running out of disk space.  Back in the old days we would just run stacker and be done with it, but what on earth can we do in this modern age?</p>



<p class="wp-block-paragraph">Well, there is squashfs which is great at creating ultra-compressed read-only filesystems!  Well, that is great, but it is READ-ONLY after all, so that is going to suck right?  Well thanks to the magic of file system overlays, we can compress our website, and get the much-needed COW (Copy on Write) to another directory giving us the best of both worlds.  It&#8217;s a common thing in many live CD&#8217;s or any seemingly appliance-based OS where you have a hardened read-only OS core that a user cannot delete/infect but gives the appearance of allowing you to update files.  Well, that&#8217;s all nice but how do you do it manually?</p>



<p class="wp-block-paragraph">The first thing I did was shut down Apache so I could get a clean compress of my web document root:  mksquashfs is pretty easy to use, and in a few minutes of downtime I was able to create a read-only version of my blog&#8217;s filesystem.  (NOTE that this doesn&#8217;t include the database! so anyone wanting to quick &amp; easily archive WordPress, remember there is always more than just the files!).</p>



<pre class="wp-block-code"><code>root@ukweb:/srv/www/blog# mksquashfs . /usr/local/blog.sqshfs
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on /usr/local/blog.sqshfs, block size 131072.
&#91;===================================================================================================-] 67497/67497 100%

Exportable Squashfs 4.0 filesystem, gzip compressed, data block size 131072
        compressed data, compressed metadata, compressed fragments,
        compressed xattrs, compressed ids
        duplicates are removed
Filesystem size 4604333.36 Kbytes (4496.42 Mbytes)
        82.78% of uncompressed filesystem size (5562424.58 Kbytes)
Inode table size 480413 bytes (469.15 Kbytes)
        33.86% of uncompressed inode table size (1418977 bytes)
Directory table size 430607 bytes (420.51 Kbytes)
        32.31% of uncompressed directory table size (1332573 bytes)
Number of duplicate files found 519
Number of inodes 38856
Number of files 32640
Number of fragments 7872
Number of symbolic links 0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 6216
Number of ids (unique uids + gids) 2
Number of uids 2
        www-data (33)
        root (0)
Number of gids 2
        www-data (33)
        root (0)</code></pre>



<p class="wp-block-paragraph">Before compression the blog sat at 5.6GB worth of space.  After compressing, it now sits at 4.4GB.  Not that awesome, but not that bad either!  the blog.sqshfs file can be easily mounted on the command-line like this:</p>



<pre class="wp-block-code"><code>mount -o loop /usr/local/blog.sqshfs /srv/www/blog</code></pre>



<p class="wp-block-paragraph">And it mounted up just fine, and astonishingly the blog worked.  Although it being a read-only filesystem means that I cannot upload new content so all the media would be frozen in time, just as I would no-longer be able to make any updates to the pluggins or the software.</p>



<p class="wp-block-paragraph">Enter the overlayfs, which lets you specify an &#8216;upper&#8217; and &#8216;lower&#8217; level for your filesystem where you can have a read-only lower level, and a read-write upper level.  Perfect!</p>



<p class="wp-block-paragraph">I moved the blog read-only mount to /srv/www/blog-ro created a blog-tmp &amp; blog-rw directories as well and mounted up in overlay mode like this:</p>



<pre class="wp-block-code"><code>mount -t overlay -o lowerdir=/srv/www/blog-ro,upperdir=/srv/www/blog-rw,workdir=/srv/www/blog-tmp overlay /srv/www/blog</code></pre>



<p class="wp-block-paragraph">You&#8217;ll notice that despite all the documentation mentioning overlayfs, along with all the posts, as of Linux 5.15 it&#8217;s now called overlay.</p>



<pre class="wp-block-code"><code>root@ukweb:/lib/modules/5.15.0-101-generic/kernel/fs/overlayfs# ls<br>overlay.ko</code></pre>



<p class="wp-block-paragraph">At least that was easy enough to find.</p>



<p class="wp-block-paragraph">But you might say, THATS ALL MANUAL!  How on earth are you going to deal with a reboot? rc.local?!</p>



<p class="wp-block-paragraph">Well, you <em>could</em> but /etc/fstab is much easier!</p>



<pre class="wp-block-code"><code>/usr/local/blog.sqshfs /srv/www/blog-ro squashfs ro,defaults 0 0
overlay /srv/www/blog overlay defaults,lowerdir=/srv/www/blog-ro,upperdir=/srv/www/blog-rw,workdir=/srv/www/blog-tmp 0 2</code></pre>



<p class="wp-block-paragraph">And just like that, I now have a read-only version of the blog data, in a single easy to backup file, along with writes going to a much more manageable directory for updates.</p>



<p class="wp-block-paragraph">I guess I should add that for sites that use caching, you&#8217;ll want to purge the wp-content/cache directory as it&#8217;ll become stale, and there really is no point having a read only version of the chache.</p>



<p class="wp-block-paragraph">If you can see this, then clearly the site is working!</p>



<p class="wp-block-paragraph"><strong>**UPDATE</strong></p>



<p class="wp-block-paragraph">So I do have a qemu image piggy-backing on my VPS that runs the <a href="https://winnt31.superglobalmegacorp.com/" target="_blank" rel="noreferrer noopener">Apache on NT 3.1 (superglobalmegacorp.com)</a> site.  It&#8217;s not very complicated, just NT 3.1 with my terrible <a href="https://winnt31.superglobalmegacorp.com/" target="_blank" rel="noreferrer noopener">apache</a> site.  Content doesn&#8217;t change, it&#8217;s a &#8220;just because I can&#8221; thing.</p>



<p class="wp-block-paragraph">So you can happily shut down the VM, and in this case I&#8217;m using VMDK&#8217;s but it really doesn&#8217;t matter, I just like having a more neutral container if I want to move stuff around.  Just squash the VMDK by itself into a new squash fs file:</p>



<pre class="wp-block-code"><code># mksquashfs nt31as.vmdk /usr/local/vmdk/NT31_AdvancedServer.vmdk.squashfs
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on /usr/local/vmdk/NT31_AdvancedServer.vmdk.squashfs, block size 131072.
&#91;=====================================================================================================-] 1390/1390 100%

Exportable Squashfs 4.0 filesystem, gzip compressed, data block size 131072
        compressed data, compressed metadata, compressed fragments,
        compressed xattrs, compressed ids
        duplicates are removed
Filesystem size 72383.38 Kbytes (70.69 Mbytes)
        40.68% of uncompressed filesystem size (177925.66 Kbytes)
Inode table size 3918 bytes (3.83 Kbytes)
        69.64% of uncompressed inode table size (5626 bytes)
Directory table size 31 bytes (0.03 Kbytes)
        93.94% of uncompressed directory table size (33 bytes)
Number of duplicate files found 0
Number of inodes 2
Number of files 1
Number of fragments 0
Number of symbolic links 0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 1
Number of ids (unique uids + gids) 1
Number of uids 1
        root (0)
Number of gids 1
        root (0)</code></pre>



<p class="wp-block-paragraph">The disk image went from 174MB to 71MB.  Not bad!</p>



<p class="wp-block-paragraph">Next, setup a mount point in /etc/fstab</p>



<pre class="wp-block-code"><code>/usr/local/sqshfs/NT31_AdvancedServer.vmdk.squashfs /usr/local/vmdk/NT31_AdvancedServer squashfs ro,defaults 0 0</code></pre>



<p class="wp-block-paragraph">Now we create the backing file to point to the original VMDK where all write operations will take place.  And of course this means that the site can be reverted very quickly if something goes wrong.</p>



<pre class="wp-block-code"><code>qemu-img create -f vmdk -b /usr/local/vmdk/NT31_AdvancedServer/nt31as.vmdk -F vmdk nt31as.vmdk</code></pre>



<figure class="wp-block-image size-full"><a href="https://winnt31.superglobalmegacorp.com/" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="642" height="512" src="https://virtuallyfun.com/wp-content/uploads/2024/06/NT-3.1-apache-server-2.png" alt="" class="wp-image-14538" srcset="https://virtuallyfun.com/wp-content/uploads/2024/06/NT-3.1-apache-server-2.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/06/NT-3.1-apache-server-2-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/06/NT-3.1-apache-server-2-376x300.png 376w" sizes="auto, (max-width: 642px) 100vw, 642px" /></a><figcaption class="wp-element-caption">Windows NT 3.1 with compressed backing store VMDK</figcaption></figure>



<p class="wp-block-paragraph">And just like that, we&#8217;ve now up and running!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/06/11/squeezing-the-bytes-out-of-webhosting-linux-with-squashfs-overlay/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Re-visiting Red Ribbon Linux on the PS3</title>
		<link>https://virtuallyfun.com/2023/10/20/re-visiting-red-ribbon-linux-on-the-ps3/</link>
					<comments>https://virtuallyfun.com/2023/10/20/re-visiting-red-ribbon-linux-on-the-ps3/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 20 Oct 2023 20:17:47 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[powerpc]]></category>
		<category><![CDATA[Sony]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=13352</guid>

					<description><![CDATA[So after basically facing defeat, I thought I&#8217;d give Linux on the PS3 another shot. Last time things just didn&#8217;t work for some reason, and although I could boot Linux from the USB, I couldn&#8217;t get it to partition the &#8230; <a href="https://virtuallyfun.com/2023/10/20/re-visiting-red-ribbon-linux-on-the-ps3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-00-ps3-system-rotated.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-00-ps3-system-rotated.jpg" alt="" class="wp-image-13336" srcset="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-00-ps3-system-rotated.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-00-ps3-system-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-00-ps3-system-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-00-ps3-system-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">£24 kit!</figcaption></figure>



<p class="wp-block-paragraph">So <a href="https://virtuallyfun.com/2023/09/27/a-wild-ps3-appears/">after basically facing defeat</a>, I thought I&#8217;d give Linux on the PS3 another shot.  Last time things just didn&#8217;t work for some reason, and although I could boot Linux from the USB, I couldn&#8217;t get it to partition the hard drive.  And running from USB 2.0 is just insanely slow.. Especially when it&#8217;s trying to run X11.</p>



<p class="wp-block-paragraph">I followed the instructions here: <a href="https://www.psx-place.com/threads/tutorial-read-warning-installing-red-ribbon-linux-on-rebug-4-81-2-4-84-2-d-rex.16419/">psx-place.com</a>.</p>



<p class="wp-block-paragraph">Having already installed <a href="https://mega.nz/folder/oV93nACL#MGK4ajtgpT5EBrBL8yjvRg">CFW 4.90 Evilnat Cobra 8.4 [CEX]</a> on my PS3, I downgraded to the suggested <a href="https://mega.nz/#!ZeBXmLaa!WVu3u4z-WgdziKFbgsYc5MDi4HVoFSeCJ-Ivc8SISpw">REBUG_4.81.2_REX_EMER_INIT_PS3UPDAT.PUP</a> version of the firmware.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="524" src="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-01-flash-to-4.81.2.jpg" alt="" class="wp-image-13337" srcset="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-01-flash-to-4.81.2.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-01-flash-to-4.81.2-300x154.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-01-flash-to-4.81.2-768x393.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-01-flash-to-4.81.2-500x256.jpg 500w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Loading is a bit weird requiring you to load, then entering safe mode, re-installing, then recovering again.</p>



<p class="wp-block-paragraph">One silly thing to note, is that although a USB keyboard got me through the majority of this, you ABSOLUTELY NEED a PS3 controller to his the PS button to continue in safe/recovery mode.  I ended up buying a new controller for £12 on eBay.  Used ones were selling for the comparable price, so why buy something with ick on it?  Sadly, this did double my budget to £24. </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-02-installing-4.81.2.jpg" alt="" class="wp-image-13338" srcset="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-02-installing-4.81.2.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-02-installing-4.81.2-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-02-installing-4.81.2-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-02-installing-4.81.2-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">But rest assured just keep pushing through.</p>



<p class="wp-block-paragraph">Although my FLASH was clearly re-partitioned, with it not changing as I had expected the recovery boot didn&#8217;t work, so I had to jump the instructions, and install <a href="https://archive.org/details/rebug-toolbox-02.03.02.-multi-.-16">REBUG_TOOLBOX_02.03.02.MULTI_.16.pkg</a> and select boot into safe mode from there, and re-apply the firmware.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-03-safe-mode-reset.jpg" alt="" class="wp-image-13339" srcset="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-03-safe-mode-reset.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-03-safe-mode-reset-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-03-safe-mode-reset-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-03-safe-mode-reset-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">over and over&#8230;.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-05-safe-mode-install.jpg" alt="" class="wp-image-13341" srcset="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-05-safe-mode-install.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-05-safe-mode-install-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-05-safe-mode-install-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-05-safe-mode-install-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">But eventually success!</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-06-boot-fresh.jpg" alt="" class="wp-image-13342" srcset="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-06-boot-fresh.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-06-boot-fresh-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-06-boot-fresh-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-06-boot-fresh-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">You ABSOLUTELY need a PS3 controller to hit the PS button here!</figcaption></figure>



<p class="wp-block-paragraph">Finally on enough reboots, I got to the setup screen for a clean system!</p>



<p class="wp-block-paragraph">Re-installing the toolboox took me to repartitioning the flash (again), powering off, then loading petitboot for NOR flash (well mine is NOR), powering off, then prepping the USB, and this time booting with the &#8216;use current&#8217; option.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-07-boot-otheros-with-defaults.jpg" alt="" class="wp-image-13343" srcset="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-07-boot-otheros-with-defaults.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-07-boot-otheros-with-defaults-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-07-boot-otheros-with-defaults-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-07-boot-otheros-with-defaults-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">While I had busybox &amp; running from initrd/USB before so far so good, nothing looks different.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="454" src="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-08-ramdisk-boot.jpg" alt="" class="wp-image-13344" srcset="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-08-ramdisk-boot.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-08-ramdisk-boot-300x133.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-08-ramdisk-boot-768x341.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-08-ramdisk-boot-500x222.jpg 500w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">HOWEVER:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="623" src="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-09-create-linux-partition.jpg" alt="" class="wp-image-13345" srcset="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-09-create-linux-partition.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-09-create-linux-partition-300x183.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-09-create-linux-partition-768x467.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-09-create-linux-partition-493x300.jpg 493w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">This time the create_hdd_region.sh actually did what it should do!  Excited I rebooted back to &#8216;gameos&#8217; and checked the system status</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-10-verify-20gb-partition.jpg" alt="" class="wp-image-13346" style="aspect-ratio:1.3333333333333333;width:614px;height:auto" srcset="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-10-verify-20gb-partition.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-10-verify-20gb-partition-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-10-verify-20gb-partition-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-10-verify-20gb-partition-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">finally a partitioned PS3!</figcaption></figure>



<p class="wp-block-paragraph">I&#8217;m not sure why it kept failing before, but this time it did what it should have done.  Obviously, I screwed up something before, and I&#8217;m not sure what.</p>



<p class="wp-block-paragraph">Booting back to the USB drive, Red Ribbon booted up in X11, allowing me to run run the installer.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-11-kick-off-installer.jpg" alt="" class="wp-image-13347" srcset="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-11-kick-off-installer.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-11-kick-off-installer-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-11-kick-off-installer-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-11-kick-off-installer-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">The volumes by default are fine.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-12-setup-partitions.jpg" alt="" class="wp-image-13349" srcset="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-12-setup-partitions.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-12-setup-partitions-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-12-setup-partitions-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-12-setup-partitions-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">It does give the ability to set locale, region, and machine name.  I don&#8217;t know why but I tried it twice and it failed every time.  </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-12-installer-failed-changing-system-name.jpg" alt="" class="wp-image-13348" srcset="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-12-installer-failed-changing-system-name.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-12-installer-failed-changing-system-name-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-12-installer-failed-changing-system-name-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-12-installer-failed-changing-system-name-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">So I just hit defaults, just setting input &amp; language to EN-us for American English in Alaska.  I mean why not.  I gave up on just fighting and just let it go with defaults.</p>



<p class="wp-block-paragraph">And with that I had the PS3 up and booting!</p>



<p class="wp-block-paragraph">Sadly it wasn&#8217;t all sunshine and rainbows, I was noticing some important software like m4, <a href="https://sourceforge.net/projects/infozip/files/UnZip%206.x%20%28latest%29/">unzip</a>, gdb, autoconf/automake/libtool <a href="https://www.darwinsys.com/file/">file</a>, <a href="http://hisham.hm/htop/releases/2.0.2/htop-2.0.2.tar.gz">htop</a>/ncurses to say a few! </p>



<p class="wp-block-paragraph">Compiling however lead me to kernel crashes &amp; panics.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="641" src="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-15-kernel-panic.jpg" alt="" class="wp-image-13351" srcset="https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-15-kernel-panic.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-15-kernel-panic-300x188.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-15-kernel-panic-768x481.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/10/rebug-15-kernel-panic-479x300.jpg 479w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Stackframe panics!</figcaption></figure>



<p class="wp-block-paragraph">Eventually it&#8217;ll hard lock.</p>



<p class="wp-block-paragraph">I speculate its probably my PS3.  The optical drive doesn&#8217;t work so I&#8217;ve never played a game on it, or done anything intensive until compiling software.  I did find that disabling the swap space to video ram stopped it from crashing.  As a matter of fact I disabled a bunch of things to get back some performance.</p>



<p class="wp-block-paragraph">In the /etc/rc2.d just rename the S*** to K*** for the following to disable all of this stuff..</p>



<pre class="wp-block-code"><code>K01nmbd K01ps3-eyetoy K01ps3-rsx-swapon K01samba-ad-dc K01xrdp K02smbd K03bluetooth</code></pre>



<p class="wp-block-paragraph">The other thing was to just plain disable X11.  I&#8217;m going to ssh across the network, so I don&#8217;t need the PS3 hogging my TV:</p>



<pre class="wp-block-code"><code>(live)neozeed@redribbon:~$ cat /etc/X11/default-display-manager<br>none<br>(live)neozeed@redribbon:~$</code></pre>



<p class="wp-block-paragraph">So yeah, not sure why I had goofed this up so bad, but in the end I got what I wanted, a big endian machine on a budget.  What is interesting about this Red Ribbon thing, is that the kernel looks 64bit, but it&#8217;s all a 32bit userland.  I don&#8217;t know if it matters so much.  The place to get deb&#8217;s is long gone, so I guess Id have to find something with source this was based off of to build the missing stuff, or just keep going on, and building from source.  I&#8217;m find with either, but I don&#8217;t need it as a desktop so my motivation is already waning. I can&#8217;t imagine even trying to use a 256MB PS3 as a desktop. It&#8217;s just pain.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/10/20mb-commited-ps3-linux.png"><img loading="lazy" decoding="async" width="1024" height="547" src="https://virtuallyfun.com/wp-content/uploads/2023/10/20mb-commited-ps3-linux-1024x547.png" alt="" class="wp-image-13356" srcset="https://virtuallyfun.com/wp-content/uploads/2023/10/20mb-commited-ps3-linux-1024x547.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/10/20mb-commited-ps3-linux-300x160.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/10/20mb-commited-ps3-linux-768x410.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/10/20mb-commited-ps3-linux-500x267.png 500w, https://virtuallyfun.com/wp-content/uploads/2023/10/20mb-commited-ps3-linux.png 1483w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Dumping nice &#8216;desktop&#8217; services conserves a great deal of RAM</figcaption></figure>
</div>


<p class="wp-block-paragraph">Again I&#8217;m not sure why the swap to video ram thing kills the PS3, but I can live with avoiding it.</p>



<p class="wp-block-paragraph">Thanks to <a href="https://www.psx-place.com/members/dazzaxx.34084/">dazzaXx</a>, for the instructions.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/10/20/re-visiting-red-ribbon-linux-on-the-ps3/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>A wild PS3 appears!</title>
		<link>https://virtuallyfun.com/2023/09/27/a-wild-ps3-appears/</link>
					<comments>https://virtuallyfun.com/2023/09/27/a-wild-ps3-appears/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Wed, 27 Sep 2023 22:18:19 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[powerpc]]></category>
		<category><![CDATA[Sony]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=13222</guid>

					<description><![CDATA[I&#8217;ve been wanting a cheap Big Endian RISC machine, and of course I want to do it on the cheap! From a few tips it seems its possible to re-activate the &#8216;otheros&#8217; feature of the PS3, and get the newer &#8230; <a href="https://virtuallyfun.com/2023/09/27/a-wild-ps3-appears/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I&#8217;ve been wanting a cheap Big Endian RISC machine, and of course I want to do it on the <em>cheap</em>!  From a few tips it seems its possible to re-activate the &#8216;otheros&#8217; feature of the PS3, and get the newer ones running Linux!</p>



<p class="wp-block-paragraph">There is a LOT of warnings about breaking your system, bricking things, so of course I&#8217;m not going to buy something nice, and I found this beauty on eBay</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="943" height="394" src="https://virtuallyfun.com/wp-content/uploads/2023/09/ebay.png" alt="" class="wp-image-13223" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/ebay.png 943w, https://virtuallyfun.com/wp-content/uploads/2023/09/ebay-300x125.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/ebay-768x321.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/ebay-500x209.png 500w" sizes="auto, (max-width: 943px) 100vw, 943px" /><figcaption class="wp-element-caption">Sure it&#8217;s beat up, but look at the price!</figcaption></figure>



<p class="wp-block-paragraph">What a beauty!  Only £23 with shipping!  The way inflation is going its like McDonalds money.</p>



<p class="wp-block-paragraph">Anyways a mere 3 days later, and it showed up!</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-from-eBay-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-from-eBay-1024x768.jpg" alt="" class="wp-image-13224" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-from-eBay-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-from-eBay-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-from-eBay-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-from-eBay-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-from-eBay-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-from-eBay-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">yeah&#8230;</figcaption></figure>



<p class="wp-block-paragraph">The cover promptly fell off, and I was a bit worried.  I hooked up the power, and the red light came but but it didn&#8217;t turn on.  The power switches are these weird sensors, and it looked like the power one was pushed in.  I guess its more of an antenna rather than closing a circuit, so I genitally bent it apart, and it sprang to life.  There was no video, but it did chirp pretty loudly so I assumed it was working.  I figured there was no disk, so I found the process to reset the video (turn on, holding power and it&#8217;ll power off.  Power on again, and wait for it to do 2 chirps while holding power down, then let go, and it&#8217;ll hopefully lower all video to minimal levels on both composite and HDMI.  And yeah, it sprang to life!</p>



<p class="wp-block-paragraph">The PS3 had version 4.50 loaded, and the first step to bringing back otheros was to update to 4.90.  The last version that had otheros was 3.16, so sadly it&#8217;s long gone.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/Update-to-490-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" data-id="13225" src="https://virtuallyfun.com/wp-content/uploads/2023/09/Update-to-490-1024x768.jpg" alt="" class="wp-image-13225" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/Update-to-490-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/Update-to-490-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/Update-to-490-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/Update-to-490-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/Update-to-490-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/Update-to-490-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>



<p class="wp-block-paragraph">Updating was pretty uneventval.</p>



<p class="wp-block-paragraph">But now starts the real fun.</p>



<figure class="wp-block-image size-large is-resized"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/CECHK03-type.jpg"><img loading="lazy" decoding="async" src="https://virtuallyfun.com/wp-content/uploads/2023/09/CECHK03-type-1024x869.jpg" alt="" class="wp-image-13226" style="width:614px;height:511px" width="614" height="511"/></a></figure>



<p class="wp-block-paragraph">It&#8217;s scratched pretty bad, but you can make out it&#8217;s a CECHK03.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/NOR-flash.png"><img loading="lazy" decoding="async" width="442" height="612" src="https://virtuallyfun.com/wp-content/uploads/2023/09/NOR-flash.png" alt="" class="wp-image-13227" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/NOR-flash.png 442w, https://virtuallyfun.com/wp-content/uploads/2023/09/NOR-flash-217x300.png 217w" sizes="auto, (max-width: 442px) 100vw, 442px" /></a></figure>
</div>


<p class="wp-block-paragraph">, meaning it&#8217;s NOR type flash.  This matters as the launch devices used NAND, and a heck of a lot more too!  And of course totally incompatible.  So yeah be careful!</p>



<p class="wp-block-paragraph">So the first thing to do is to patch the flash.  And shockingly this is VERY very easy&#8230; It&#8217;s so scary it&#8217;s easy!  Just open the browser after you&#8217;ve flashed to 4.90 and go to</p>



<p class="wp-block-paragraph"><a href="https://www.ps3toolset.com/bgtoolset/">https://www.ps3toolset.com/bgtoolset/</a></p>



<p class="wp-block-paragraph">Yep it&#8217;s a web browser exploit that should terrify you.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-1-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-1-1024x768.jpg" alt="" class="wp-image-13228" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-1-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-1-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-1-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-1-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-1-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-1-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">Using FLASH buffer overflows we&#8217;re going to reprogram the FLASH.  WOW could you imagine a world where iPhones ran Adobe Flash?</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-3-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-3-1024x768.jpg" alt="" class="wp-image-13229" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-3-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-3-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-3-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-3-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-3-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-3-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">From the web page, it&#8217;s a snap to backup the flash to USB, and then you can download and merge the flash patch right from the UI</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-4-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-4-1024x768.jpg" alt="" class="wp-image-13231" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-4-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-4-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-4-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-4-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-4-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-4-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-5-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-5-1024x768.jpg" alt="" class="wp-image-13232" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-5-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-5-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-5-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-5-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-5-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-5-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">With the image loaded and merged, we can now re-flash the PS3.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-6-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-6-1024x768.jpg" alt="" class="wp-image-13233" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-6-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-6-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-6-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-6-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-6-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-6-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">It&#8217;s really this easy.</p>



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



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="768" height="1024" src="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-log-768x1024.jpg" alt="" class="wp-image-13234" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-log-768x1024.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-log-225x300.jpg 225w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-log-1152x1536.jpg 1152w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-log-1536x2048.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/driveby-ps3toolset-log-scaled.jpg 1920w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<p class="wp-block-paragraph">Now you need to power it off.</p>



<p class="wp-block-paragraph">Next up is to install the Evilnat CEX 4.90 hacked firmware.  It&#8217;s pretty simple, much like the production image, it installs from the XMB after copying the file to USB in the appropriate directories.  I downloaded &#8220;<a href="https://mega.nz/folder/oV93nACL#MGK4ajtgpT5EBrBL8yjvRg" data-type="link" data-id="https://mega.nz/folder/oV93nACL#MGK4ajtgpT5EBrBL8yjvRg">CFW 4.90 Evilnat Cobra 8.4 [CEX].rar</a>&#8220;.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-1-1024x768.jpg" alt="" class="wp-image-13235" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-1-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-1-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-1-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-1-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-1-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-1-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">And now you are a reboot away into modified OS</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-boot-1024x768.jpg" alt="" class="wp-image-13237" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-boot-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-boot-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-boot-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-boot-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-boot-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-boot-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">There was a bunch of users, and installed games, I removed the users, deleted the games, and formatted the disk.  I&#8217;m not going to be playing games anyways.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-1024x768.jpg" alt="" class="wp-image-13236" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/install-evilnat-CEX-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Now it was a bit more things to do.</p>



<p class="wp-block-paragraph">Partition the flash, and re-program it again with the otheros support.  And then now finally you can boot to the BusyBox ramdisk.</p>



<p class="wp-block-paragraph">I&#8217;ll have to touch on this part a bit more, it&#8217;s involved, and again you can brick your PS3.  If you worry about it, now is the time to do it, as many are being sold effectively as garbage.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-ramdisk-boot-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="377" src="https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-ramdisk-boot-1024x377.jpg" alt="" class="wp-image-13238" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-ramdisk-boot-1024x377.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-ramdisk-boot-300x110.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-ramdisk-boot-768x283.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-ramdisk-boot-1536x565.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-ramdisk-boot-2048x754.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/ps3-ramdisk-boot-500x184.jpg 500w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Finally running Linux on the PS3!</figcaption></figure>



<p class="wp-block-paragraph">For the heck of it, I exploded out an old Red Ribbon ISO, and was able to &#8216;live image&#8217; boot it from USB.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/red-ribbon-splash-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/red-ribbon-splash-1024x768.jpg" alt="" class="wp-image-13239" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/red-ribbon-splash-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/red-ribbon-splash-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/red-ribbon-splash-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/red-ribbon-splash-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/red-ribbon-splash-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/red-ribbon-splash-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">So this gets me part of the way here.</p>



<p class="wp-block-paragraph">The next thing to figure out is if I can downgrade the OS to something where I can partition part of the hard drive for Linux.  And how to get that installed.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/09/check-cpuinfo-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2023/09/check-cpuinfo-1024x768.jpg" alt="" class="wp-image-13241" srcset="https://virtuallyfun.com/wp-content/uploads/2023/09/check-cpuinfo-1024x768.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/09/check-cpuinfo-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/09/check-cpuinfo-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/09/check-cpuinfo-1536x1152.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/09/check-cpuinfo-2048x1536.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2023/09/check-cpuinfo-400x300.jpg 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">2&#215;3.2Ghz PowerPC with altivec</figcaption></figure>



<p class="wp-block-paragraph">So I&#8217;m going to have to leave it here, at least for my usage case I may have to just be happy using the slow USB for the root filesystem.  I&#8217;m pretty sure when it comes to partitioning the disk you need the lower OS version to do so.  Obviously for me I can leave it there if it runs, as I don&#8217;t care about playing games on this one anyways.</p>



<p class="wp-block-paragraph">Which I&#8217;m sure won&#8217;t be as bad once I turn off X11 and everything &#8216;nice&#8217; for a user.</p>



<p class="wp-block-paragraph">Also you probably want to get a PS3 controller, as at any point you need to do a recovery you need to be able to hit the ps3 button.  And that&#8217;s where I am currently stuck, but not bricked.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/09/27/a-wild-ps3-appears/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>68katy-musashi</title>
		<link>https://virtuallyfun.com/2023/06/06/68katy-musashi/</link>
					<comments>https://virtuallyfun.com/2023/06/06/68katy-musashi/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 06 Jun 2023 22:56:18 +0000</pubDate>
				<category><![CDATA[68000]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://virtuallyfun.com/?p=12777</guid>

					<description><![CDATA[Just a quick thing I saw before going to sleep, 68katy-musashi! It&#8217;s a very simple 68000 machine, based on the big mess o\ wires 68-katy! I had issues with 64bit, but I jumped over to Windows, stripped out the termios &#8230; <a href="https://virtuallyfun.com/2023/06/06/68katy-musashi/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="979" height="512" src="https://virtuallyfun.com/wp-content/uploads/2023/06/68katy-musashi.png" alt="" class="wp-image-12778" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/68katy-musashi.png 979w, https://virtuallyfun.com/wp-content/uploads/2023/06/68katy-musashi-300x157.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/68katy-musashi-768x402.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/68katy-musashi-500x261.png 500w" sizes="auto, (max-width: 979px) 100vw, 979px" /></figure>



<p class="wp-block-paragraph">Just a quick thing I saw before going to sleep, <a rel="noreferrer noopener" href="https://github.com/eparadis/68katy-musashi" target="_blank">68katy-musashi</a>!  It&#8217;s a very simple 68000 machine, based on the <a rel="noreferrer noopener" href="https://www.bigmessowires.com/" target="_blank">big mess o\ wires</a> <a href="https://www.bigmessowires.com/68-katy/" target="_blank" rel="noreferrer noopener">68-katy</a>!</p>



<p class="wp-block-paragraph">I had issues with 64bit, but I jumped over to Windows, stripped out the termios and had something running in seconds!</p>



<p class="wp-block-paragraph">Another note is that I had to manually enable -O2 flags, which made a tremendous difference!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/06/06/68katy-musashi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How do I re-install all the deb&#8217;s I had from an existing Debian/Ubuntu install?</title>
		<link>https://virtuallyfun.com/2023/05/28/how-do-i-re-install-all-the-debs-i-had-from-an-existing-debian-ubuntu-install/</link>
					<comments>https://virtuallyfun.com/2023/05/28/how-do-i-re-install-all-the-debs-i-had-from-an-existing-debian-ubuntu-install/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sun, 28 May 2023 12:54:25 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://virtuallyfun.com/?p=12723</guid>

					<description><![CDATA[Mostly because I&#8217;m an idiot, but at least I had a backup in hand. the debs are kpe tin /var/cache/apt/archives So a simple script like this: Will go ahead and prep a simple script to re-add everything. Obviously I don&#8217;t &#8230; <a href="https://virtuallyfun.com/2023/05/28/how-do-i-re-install-all-the-debs-i-had-from-an-existing-debian-ubuntu-install/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Mostly because I&#8217;m an idiot, but at least I had a backup in hand.</p>



<p class="wp-block-paragraph">the debs are kpe tin /var/cache/apt/archives</p>



<p class="wp-block-paragraph">So a simple script like this:</p>



<pre class="wp-block-code"><code>ls -l *.deb | awk '{print $9}' | sed -e 's/_/\ /g' | awk '{print "apt-get install "$1}' > /tmp/missing</code></pre>



<p class="wp-block-paragraph">Will go ahead and prep a simple script to re-add everything.  Obviously I don&#8217;t pass it into a sudo&#8217;d bash, but heh it works.</p>



<p class="wp-block-paragraph">Probably one of my quicker recoveries, since I had all the data &amp; config&#8217;s just lost the OS.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/05/28/how-do-i-re-install-all-the-debs-i-had-from-an-existing-debian-ubuntu-install/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>pptp always ignoring localip on Ubuntu</title>
		<link>https://virtuallyfun.com/2022/11/17/pptp-always-ignoring-localip-on-ubuntu/</link>
					<comments>https://virtuallyfun.com/2022/11/17/pptp-always-ignoring-localip-on-ubuntu/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Thu, 17 Nov 2022 12:24:20 +0000</pubDate>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[virtual networking]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=12061</guid>

					<description><![CDATA[I don&#8217;t know how the other various linux distros handle this but I found this by accident: Nov 17 12:04:25 ukweb pppd[4943]: Using interface ppp0 Nov 17 12:04:25 ukweb pppd[4943]: Connect: ppp0 &#60;--> /dev/pts/0 Nov 17 12:04:25 ukweb pptpd[4942]: GRE: &#8230; <a href="https://virtuallyfun.com/2022/11/17/pptp-always-ignoring-localip-on-ubuntu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I don&#8217;t know how the other various linux distros handle this but I found this by accident:</p>



<pre class="wp-block-preformatted">Nov 17 12:04:25 ukweb pppd[4943]: Using interface ppp0
Nov 17 12:04:25 ukweb pppd[4943]: Connect: ppp0 &lt;--> /dev/pts/0
Nov 17 12:04:25 ukweb pptpd[4942]: GRE: Bad checksum from pppd.
Nov 17 12:04:25 ukweb systemd-udevd[4944]: Using default interface naming scheme 'v249'.
Nov 17 12:04:25 ukweb pppd[4943]: peer from calling number 1.1.1.1.1 authorized
Nov 17 12:04:25 ukweb pppd[4943]: MPPE 128-bit stateless compression enabled
Nov 17 12:04:27 ukweb systemd-networkd[592]: ppp0: Link UP
Nov 17 12:04:27 ukweb systemd-networkd[592]: ppp0: Gained carrier
Nov 17 12:04:27 ukweb pppd[4943]: found interface br0 for proxy arp
Nov 17 12:04:27 ukweb pppd[4943]: local  IP address 192.168.0.1
Nov 17 12:04:27 ukweb pppd[4943]: remote IP address 192.168.23.10
Nov 17 12:05:28 ukweb systemd[1]: Stopping PoPToP Point to Point Tunneling Server...
Nov 17 12:05:28 ukweb pppd[4943]: Terminating on signal 15
Nov 17 12:05:28 ukweb pppd[4943]: Connect time 1.1 minutes.
Nov 17 12:05:28 ukweb pppd[4943]: Sent 0 bytes, received 6937 bytes.
Nov 17 12:05:28 ukweb systemd-networkd[592]: ppp0: Link DOWN
Nov 17 12:05:28 ukweb systemd-networkd[592]: ppp0: Lost carrier</pre>



<p class="wp-block-paragraph">With the emphasis on &#8220;local  IP address 192.168.0.1&#8221;.  Which is *NOT* in my config.  I went as far as adding a bridge to satisfy the proxy arp!  Netplan is some yaml thing and yeah not a big fan.</p>



<pre class="wp-block-code"><code>    ethernets:
        eth0:
            addresses:
            - PUBLICIP/24
            gateway4: GATEWAY
            match:
                macaddress: AA:BB:CC:00:00:01
            nameservers:
                addresses:
                - 1.1.1.1
                - 8.8.8.8
    bridges:
      br0:
        dhcp4: no
        addresses: &#91;192.168.23.1/24]
    version: 2</code></pre>



<p class="wp-block-paragraph">my /etc/ppp/pptpd.conf had the options set, but no matter what it *ALWAYS* went to 192.168.0.1</p>



<pre class="wp-block-code"><code>option /etc/ppp/pptpd-options
logwtmp
localip 192.168.24.1
remoteip 192.168.23.30-250</code></pre>



<p class="wp-block-paragraph">And then I found  it after doing what i should have done, and grep around to find out that pptpd.conf should actually live in /etc</p>



<p class="wp-block-paragraph">Yeah that&#8217;s right, there is 2 of them although they should be the same.  A symlink and a restart later, and now I get this:</p>



<pre class="wp-block-preformatted">Nov 17 12:19:56 ukweb kernel: [  112.718861] PPP MPPE Compression module registered
Nov 17 12:19:56 ukweb pppd[1002]: MPPE 128-bit stateless compression enabled
Nov 17 12:19:58 ukweb systemd-networkd[599]: ppp0: Link UP
Nov 17 12:19:58 ukweb systemd-networkd[599]: ppp0: Gained carrier
Nov 17 12:19:58 ukweb pppd[1002]: found interface br0 for proxy arp
Nov 17 12:19:58 ukweb pppd[1002]: local  IP address 192.168.23.1
Nov 17 12:19:58 ukweb pppd[1002]: remote IP address 192.168.23.10</pre>



<p class="wp-block-paragraph"><strong>M</strong>UCH much better.  I don&#8217;t know if this is anything worth wriging about, but if I can save someone else an hour of wondering why the config isn&#8217;t working and why their pptp is always defaulting to 192.168.0.1 and why it&#8217;s wreaking havoc with any default home router, where here it is.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2022/11/17/pptp-always-ignoring-localip-on-ubuntu/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>
	</channel>
</rss>
