<?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>networking &#8211; Virtually Fun</title>
	<atom:link href="https://virtuallyfun.com/category/networking/feed/" rel="self" type="application/rss+xml" />
	<link>https://virtuallyfun.com</link>
	<description>Fun with Virtualization</description>
	<lastBuildDate>Thu, 26 Dec 2024 02:02:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>
	<item>
		<title>Merry Christmas 2024!</title>
		<link>https://virtuallyfun.com/2024/12/26/merry-christmas-2024/</link>
					<comments>https://virtuallyfun.com/2024/12/26/merry-christmas-2024/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Thu, 26 Dec 2024 00:42:56 +0000</pubDate>
				<category><![CDATA[Christmas]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[microsoft windows]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[random updates]]></category>
		<category><![CDATA[virtual networking]]></category>
		<category><![CDATA[Windows 2019]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=15072</guid>

					<description><![CDATA[While doom scrolling on eBay I always seem to stop and look at the upgrade version of Windows 3.1. It has to be the most clearly marked &#8220;why bother upgrading&#8221; version of Windows, and at the same time the ugliest. &#8230; <a href="https://virtuallyfun.com/2024/12/26/merry-christmas-2024/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">While doom scrolling on eBay I always seem to stop and look at the upgrade version of Windows 3.1. It has to be the most clearly marked &#8220;why bother upgrading&#8221; version of Windows, and at the same time the ugliest. Fitting for the season&#8217;s ugly sweater theme!</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2024/12/Windows-3.1-upgrade.webp"><img fetchpriority="high" decoding="async" width="720" height="960" src="https://virtuallyfun.com/wp-content/uploads/2024/12/Windows-3.1-upgrade.webp" alt="" class="wp-image-15070" srcset="https://virtuallyfun.com/wp-content/uploads/2024/12/Windows-3.1-upgrade.webp 720w, https://virtuallyfun.com/wp-content/uploads/2024/12/Windows-3.1-upgrade-225x300.webp 225w" sizes="(max-width: 720px) 100vw, 720px" /></a><figcaption class="wp-element-caption">The ugliest Windows ever</figcaption></figure>



<p class="wp-block-paragraph">It&#8217;s amazing how terrible this thing has always looked to me.  As far as &#8216;proof&#8217; I remember being able to fake it out by doing a &#8216;copy con win.com ^Z&#8217; type thing to create a fake windows directory with win.com &amp; kernel286.exe &#8230; I think.  But back when this was a <strong>NEW!</strong> product, I had to install Windows 3.0 anyways to get the CGA driver.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="802" height="496" src="https://virtuallyfun.com/wp-content/uploads/2024/12/windows-3.1-in-CGA.png" alt="" class="wp-image-15077" srcset="https://virtuallyfun.com/wp-content/uploads/2024/12/windows-3.1-in-CGA.png 802w, https://virtuallyfun.com/wp-content/uploads/2024/12/windows-3.1-in-CGA-300x186.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/12/windows-3.1-in-CGA-768x475.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/12/windows-3.1-in-CGA-485x300.png 485w" sizes="(max-width: 802px) 100vw, 802px" /><figcaption class="wp-element-caption">Windows 3.1 in CGA</figcaption></figure>



<p class="wp-block-paragraph">I don&#8217;t know how I used Windows with CGA either.</p>



<p class="wp-block-paragraph">Speaking of impossible, back in the dark ages of Windows/286 2.1 this thing snuck out:</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2024/12/Italian-Windows-286.png"><img decoding="async" width="820" height="1024" src="https://virtuallyfun.com/wp-content/uploads/2024/12/Italian-Windows-286.png" alt="" class="wp-image-15069" srcset="https://virtuallyfun.com/wp-content/uploads/2024/12/Italian-Windows-286.png 820w, https://virtuallyfun.com/wp-content/uploads/2024/12/Italian-Windows-286-240x300.png 240w, https://virtuallyfun.com/wp-content/uploads/2024/12/Italian-Windows-286-768x959.png 768w" sizes="(max-width: 820px) 100vw, 820px" /></a><figcaption class="wp-element-caption">Microsoft Windows/286 &#8211; Italian</figcaption></figure>



<p class="wp-block-paragraph">One day I&#8217;d love to get this Italian Windows 2.1 and frame it?  I don&#8217;t know who snuck in the <em>Buone Fest</em> onto the box art, but I&#8217;d like to think it was subversive, as I hadn&#8217;t seen anything like that on any of the other retail Operating System packaging?</p>



<p class="wp-block-paragraph">It&#8217;s been a real struggle this year from the relocation, losing just about everything that I&#8217;d tried to do, then losing my job, that brief absolute terror of being unemployed with zero callbacks trying to job hunt to now spending nearly every waking hour at work.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="236" src="https://virtuallyfun.com/wp-content/uploads/2024/12/IMG_20241217_165548-1024x236.jpg" alt="" class="wp-image-15073" srcset="https://virtuallyfun.com/wp-content/uploads/2024/12/IMG_20241217_165548-1024x236.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2024/12/IMG_20241217_165548-300x69.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2024/12/IMG_20241217_165548-768x177.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2024/12/IMG_20241217_165548-1536x353.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2024/12/IMG_20241217_165548-2048x471.jpg 2048w, https://virtuallyfun.com/wp-content/uploads/2024/12/IMG_20241217_165548-500x115.jpg 500w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Alcatel &#8211; Lucent saves the day</figcaption></figure>



<p class="wp-block-paragraph">Speaking of stress, I haven&#8217;t had to build a physical network in ages, and this was news to me that all the SFP connectors are now vendor locked.  Thinking I could just buy some cheap SFP DAC cables and plug away and I was greeted with the fact that neither the Dell, nor Cisco switches would recognize them.  Oddly enough, Linux/Windows didn&#8217;t care at all.  I had ordered some RJ45 10 gig SFPs to run across the data centre, and found out as well that I&#8217;d ordered Cisco keyed generic ones, and yes of course they don&#8217;t work in the Fortigate firewalls, nor the Dell switches.  Those needed their own special ones.  Luckily for me I had been pulling out all the old SFPs from decommissioned equipment as I had figured that the single mode fiber optics may be useful if I ever need anything, and there was a couple of these Alcatel-Lucent SFP-GIG-T (1gig) modules that at least saved the day in that I could connect stuff, while waiting for the trial and error of needing 2 weeks to get the appropriate 10 gig interfaces.</p>



<p class="wp-block-paragraph">Also with mentioning is that Dell switches configure in cluster groups and the 25 gig clusters have to be configured down to 10gig mode to recognize and work with 10/1gig modules.</p>



<pre class="wp-block-code"><code>port-group 1/1/5
 mode Eth 25g-4x
!
port-group 1/1/6
 mode Eth 10g-4x</code></pre>



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



<p class="wp-block-paragraph">Speaking of, setting up a LACP bundle on the Dell switch was a snap! Just remember your port-groups!</p>



<pre class="wp-block-code"><code>
interface ethernet1/1/1
 description "WIN-HVN-100 port 0"
 no shutdown
 channel-group 1 mode active
 no switchport
 flowcontrol receive off</code></pre>



<p class="wp-block-paragraph">There isn&#8217;t all that much to do in the individual ethernet ports, but you get the idea.  Since I&#8217;m short on cables, I&#8217;ve only got the first two ports populated, but I&#8217;m aiming for 4&#215;25 per server!</p>



<pre class="wp-block-code"><code>interface port-channel1
 description WIN-HVN-100
 no shutdown
 switchport mode trunk
 switchport trunk allowed vlan 50,75-78,150,875,901-902</code></pre>



<p class="wp-block-paragraph">I did find that by explicitly allowing the VLANs onto the port helped a lot.  And by default, the switches do LACP so there isn&#8217;t all that much to do.</p>



<p class="wp-block-paragraph">And checking the LACP status is a snap as well:</p>



<pre class="wp-block-code"><code>hyperv-lan-core-01# show interface port-channel 1 summary
LAG     Mode      Status    Uptime              Ports
1       L2-HYBRID up        1 day 21:45:26      Eth 1/1/1 (Up)
                                                Eth 1/1/2 (Up)
                                                Eth 1/1/3 (Down)
                                                Eth 1/1/4 (Down)</code></pre>



<p class="wp-block-paragraph">Needless to say, I was happy as &#8216;it just worked&#8217;!</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="503" src="https://virtuallyfun.com/wp-content/uploads/2024/12/epyc-9454-1024x503.png" alt="" class="wp-image-15074" srcset="https://virtuallyfun.com/wp-content/uploads/2024/12/epyc-9454-1024x503.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/12/epyc-9454-300x147.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/12/epyc-9454-768x377.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/12/epyc-9454-500x246.png 500w, https://virtuallyfun.com/wp-content/uploads/2024/12/epyc-9454.png 1343w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">AMD Epyc 9454 48-Core Processor</figcaption></figure>



<p class="wp-block-paragraph">Speaking of which, I deployed Hyper-V 2019 Server.  Shame VMware had to go get Broadcomm&#8217;ed as there won&#8217;t be any more free Hyper-V servers, but for now it&#8217;s fine.</p>



<p class="wp-block-paragraph">I had meant to write more on setting up Hyper-V as doing it through PowerShell is a bit daunting at first.</p>



<p class="wp-block-paragraph">First setup your load balancing network team.  In this case I&#8217;m using a 4 port 25gig card:</p>



<pre class="wp-block-preformatted">New-NetlbfoTeam -Name "Converged Network Team" -TeamMembers "Integrated NIC 1 Port 1-1","Integrated NIC 1 Port 2-1","Integrated NIC 1 Port 3-1","Integrated NIC 1 Port 4-1" -TeamingMode lacp<br></pre>



<p class="wp-block-paragraph">The port names are 100% system dependent, but you can get the idea.  And setting the LACP was surprisingly easy.</p>



<p class="wp-block-paragraph">The next step is to create a virtual switch</p>



<pre class="wp-block-preformatted">New-VMSwitch -Name "Converged Network Switch" -NetAdapterName "Converged Network Team"</pre>



<p class="wp-block-paragraph">I just load everything onto the same switch as I&#8217;m old, and trust my VLANs.  And the servers are 1u so they don&#8217;t exactly have a lot of NIC&#8217;s for splitting stuff out but as always do what works for you.</p>



<p class="wp-block-paragraph">The next step is to add the virtual network card onto my management VLAN in this case it&#8217;s 75</p>



<pre class="wp-block-preformatted">add-vmnetworkadapter -switchname "Converged Network Switch" -name Management -managementos<br>set-vmnetworkadaptervlan -managementos -vmnetworkadaptername "Management" -vlanid 75 -access</pre>



<p class="wp-block-paragraph">From there you can now use the &#8216;sconfig&#8217; and setup your management IP address, load up Windows patches, load more drivers, and manage the server using the remote RSAT tools.  Be sure to enable the remote desktop, unless you really love to type.</p>



<p class="wp-block-paragraph">I went ahead and installed these services to get my servers onto an existing Hyper-V cluster.  I&#8217;m sure some can be removed, but YMMV as always:</p>



<pre class="wp-block-preformatted">Install-WindowsFeature -Name FileAndStorage-Services<br>Install-WindowsFeature -Name File-Services<br>Install-WindowsFeature -Name FS-FileServer<br>Install-WindowsFeature -Name Storage-Services<br>Install-WindowsFeature -Name Hyper-V<br>Install-WindowsFeature -Name NET-Framework-45-Core<br>Install-WindowsFeature -Name NET-Framework-45-Features<br>Install-WindowsFeature -Name NET-WCF-Services45<br>Install-WindowsFeature -Name NET-WCF-TCP-PortSharing45<br>Install-WindowsFeature -Name Failover-Clustering<br>Install-WindowsFeature -Name Multipath-IO<br>Install-WindowsFeature -Name RSAT<br>Install-WindowsFeature -Name RSAT-Feature-Tools<br>Install-WindowsFeature -Name RSAT-Clustering<br>Install-WindowsFeature -Name RSAT-Clustering-PowerShell<br>Install-WindowsFeature -Name SNMP-Service<br>Install-WindowsFeature -Name Windows-Defender<br>Install-WindowsFeature -Name PowerShellRoot<br>Install-WindowsFeature -Name PowerShell<br>Install-WindowsFeature -Name WoW64-Support</pre>



<p class="wp-block-paragraph">Interestingly enough, on 2019 the option is there for the Linux Subsystem.  I didn&#8217;t install it, but that&#8217;d be an interesting thing to share out.</p>



<p class="wp-block-paragraph">I did have some weird issue with remoting and explicitly enabled it with a </p>



<pre class="wp-block-preformatted">Enable-PSRemoting -Force</pre>



<p class="wp-block-paragraph">It&#8217;s probably me, but it worked for me.</p>



<p class="wp-block-paragraph">Then it&#8217;s a matter of adding all the other virtual networks Hyper-V seems to love:</p>



<pre class="wp-block-preformatted">add-vmnetworkadapter -switchname "Converged Network Switch" -name Backup -managementos<br>add-vmnetworkadapter -switchname "Converged Network Switch" -name "Live Migration" -managementos<br>add-vmnetworkadapter -switchname "Converged Network Switch" -name Cluster -managementos<br>set-vmnetworkadaptervlan -managementos -vmnetworkadaptername "Backup" -vlanid 76 -access<br>set-vmnetworkadaptervlan -managementos -vmnetworkadaptername "Live Migration" -vlanid 77 -access<br>set-vmnetworkadaptervlan -managementos -vmnetworkadaptername "Cluster" -vlanid 78 -access</pre>



<p class="wp-block-paragraph">And of course, don&#8217;t forget your shared storage, in this case my servers have that 4x25gig card, and a smaller custom 2&#215;25 gig card that I used to storage A/B.  Fun times!</p>



<p class="wp-block-paragraph">From there I could use sconfig to join my machines to the domain, and then finally add them into the cluster, and start moving my workload over to the new servers, which is what I&#8217;ll be doing throughout the Christmas break.</p>



<p class="wp-block-paragraph">Speaking of work:</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2024/12/IMG_20241203_111241-scaled.jpg"><img loading="lazy" decoding="async" width="655" height="1024" src="https://virtuallyfun.com/wp-content/uploads/2024/12/IMG_20241203_111241-655x1024.jpg" alt="" class="wp-image-15075" srcset="https://virtuallyfun.com/wp-content/uploads/2024/12/IMG_20241203_111241-655x1024.jpg 655w, https://virtuallyfun.com/wp-content/uploads/2024/12/IMG_20241203_111241-192x300.jpg 192w, https://virtuallyfun.com/wp-content/uploads/2024/12/IMG_20241203_111241-768x1201.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2024/12/IMG_20241203_111241-982x1536.jpg 982w, https://virtuallyfun.com/wp-content/uploads/2024/12/IMG_20241203_111241-1310x2048.jpg 1310w, https://virtuallyfun.com/wp-content/uploads/2024/12/IMG_20241203_111241-scaled.jpg 1637w" sizes="auto, (max-width: 655px) 100vw, 655px" /></a><figcaption class="wp-element-caption">A very Christmas Vacation like tree</figcaption></figure>



<p class="wp-block-paragraph">They ordered this very Clark Griswald like Christmas tree.  They had to cut it down to get the base to fit the lobby area with it reaching into the 2nd floor.  It&#8217;d been so long since I&#8217;d seen something like this at work.  But thats me working remotely for nearly 20 years.</p>



<p class="wp-block-paragraph">Something awe inspiring about it.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2024/12/real-snoopy.jpg"><img loading="lazy" decoding="async" width="431" height="365" src="https://virtuallyfun.com/wp-content/uploads/2024/12/real-snoopy.jpg" alt="" class="wp-image-15076" srcset="https://virtuallyfun.com/wp-content/uploads/2024/12/real-snoopy.jpg 431w, https://virtuallyfun.com/wp-content/uploads/2024/12/real-snoopy-300x254.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2024/12/real-snoopy-354x300.jpg 354w" sizes="auto, (max-width: 431px) 100vw, 431px" /></a><figcaption class="wp-element-caption">real life Snoopy</figcaption></figure>
</div>


<p class="wp-block-paragraph">Which reminds me of this Snoopy I saw on twitter.  As terrible as life feels from time to time, there is a bit of hope, and fun here and there as my muse is always quick to point out when I&#8217;m feeling down.</p>



<p class="wp-block-paragraph">And sometimes it&#8217;s better to just get it out, as who knows, maybe this could be useful in the future somehow.</p>



<p class="wp-block-paragraph">Thanks for everyone&#8217;s ongoing support over on Patron and here.  It really means the world to me.</p>



<h2 class="wp-block-heading">Merry Christmas to all!</h2>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/12/26/merry-christmas-2024/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Looking at UnixWare 7.1.1 on VMware &#038; Qemu yet again!</title>
		<link>https://virtuallyfun.com/2024/03/29/looking-at-unixware-7-1-1-on-vmware-qemu-yet-again/</link>
					<comments>https://virtuallyfun.com/2024/03/29/looking-at-unixware-7-1-1-on-vmware-qemu-yet-again/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 29 Mar 2024 13:48:47 +0000</pubDate>
				<category><![CDATA[networking]]></category>
		<category><![CDATA[QEMU]]></category>
		<category><![CDATA[SYSV]]></category>
		<category><![CDATA[UnixWare]]></category>
		<category><![CDATA[virtual networking]]></category>
		<category><![CDATA[VMWare]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14194</guid>

					<description><![CDATA[Same old OS, same old problems. The UnixWare 7.1.1 install program has a date &#38; time Y2k problem. And this always ends in whatever licensing you give it to install will expire and be nullified. Luckily this time while re-installing &#8230; <a href="https://virtuallyfun.com/2024/03/29/looking-at-unixware-7-1-1-on-vmware-qemu-yet-again/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Same old OS, same old problems.</h2>



<figure class="wp-block-image size-full"><a href="https://archive.org/details/UnixWare71" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="768" src="/wp-content/uploads/2024/03/UnixWare_7.1.1_box-jpg.webp" alt="" class="wp-image-14195" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare_7.1.1_box-jpg.webp 1024w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare_7.1.1_box-300x225.webp 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare_7.1.1_box-768x576.webp 768w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare_7.1.1_box-400x300.webp 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">My UnixWare 7.1.1 box</figcaption></figure>



<p class="wp-block-paragraph">The UnixWare 7.1.1 install program has a date &amp; time Y2k problem.  And this always ends in whatever licensing you give it to install will expire and be nullified.  Luckily this time while re-installing on VMware I saw if you defer the license on install, It&#8217;ll grant you a temporary eval license.  It&#8217;s not going to matter as it&#8217;ll immediately expire, but it get&#8217;s us past the install.</p>



<p class="wp-block-paragraph">Qemu however let&#8217;s you rev up the time machine and specify a starting time</p>



<pre class="wp-block-code"><code>-rtc base=1999-09-29T15:00:00</code></pre>



<p class="wp-block-paragraph"> As simple as that.  I found for installing with Qemu 8.0 (Latest win32) binary it worked well enough like this:</p>



<pre class="wp-block-code"><code>"c:\Program Files\qemu\qemu-system-x86_64.exe" ^
-m 1024 ^
-hda UnixWare711.vmdk ^
-cdrom SCO_UnixWare711.iso ^
-net nic,model=pcnet ^
-rtc base=2010-09-29T15:00:00</code></pre>



<p class="wp-block-paragraph">Installation in a stock boring VM goes fine, there is built in support for the AMD PCnet driver, so things &#8216;just work&#8217;.  And then on the VMware reboot it never launches X11.</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="802" height="657" src="/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu.png" alt="" class="wp-image-14198" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu.png 802w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-300x246.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-768x629.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-366x300.png 366w" sizes="auto, (max-width: 802px) 100vw, 802px" /></a><figcaption class="wp-element-caption">Starting Desktop works fine on Qemu</figcaption></figure>



<p class="wp-block-paragraph">Under Qemu, I&#8217;m greeted by CDE and the login page.  On VMware however&#8230;</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-no-graphical-console.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="722" height="465" src="/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-no-graphical-console.png" alt="" class="wp-image-14197" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-no-graphical-console.png 722w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-no-graphical-console-300x193.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-no-graphical-console-466x300.png 466w" sizes="auto, (max-width: 722px) 100vw, 722px" /></a><figcaption class="wp-element-caption">Starting Desktop never starts</figcaption></figure>



<p class="wp-block-paragraph">I know t his used to work on VMware, but there is some regression in the VESA video driver.  The fix was to use scoadmin and knock the video settings down to stock VGA.  Luckily I have an X server running on Windows, so I could just export the display and set it up.</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Video-Configuration-VESA-VBE-3.0.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="802" height="657" src="/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Video-Configuration-VESA-VBE-3.0.png" alt="" class="wp-image-14200" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Video-Configuration-VESA-VBE-3.0.png 802w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Video-Configuration-VESA-VBE-3.0-300x246.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Video-Configuration-VESA-VBE-3.0-768x629.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Video-Configuration-VESA-VBE-3.0-366x300.png 366w" sizes="auto, (max-width: 802px) 100vw, 802px" /></a><figcaption class="wp-element-caption">Video Configuration on Qemu</figcaption></figure>



<p class="wp-block-paragraph">Whereas I had to set VMware to VGA:</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-Video-Configuration-VGA.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="642" height="545" src="/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-Video-Configuration-VGA.png" alt="" class="wp-image-14201" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-Video-Configuration-VGA.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-Video-Configuration-VGA-300x255.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-Video-Configuration-VGA-353x300.png 353w" sizes="auto, (max-width: 642px) 100vw, 642px" /></a><figcaption class="wp-element-caption">Video Configuration on VMware</figcaption></figure>



<p class="wp-block-paragraph">And one more reboot, and I was at least given a graphical console:</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-set-to-VGA-mode.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="642" height="545" src="/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-set-to-VGA-mode.png" alt="" class="wp-image-14202" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-set-to-VGA-mode.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-set-to-VGA-mode-300x255.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-set-to-VGA-mode-353x300.png 353w" sizes="auto, (max-width: 642px) 100vw, 642px" /></a><figcaption class="wp-element-caption">Now able to login to VMware graphically</figcaption></figure>



<h2 class="wp-block-heading">Inputting the licenses</h2>



<p class="wp-block-paragraph">Being a commercial Unix from back in the day, it relies on License Numbers, and activation codes to actually use the software.  I have the box, so I have <a href="/wp-content/uploads/2024/03/totally-legit-unixware-licensing-jpg.webp" target="_blank" rel="noreferrer noopener">codes</a> so yay me.  Post install, I could remove the expired licenses, and then input the ones that were in the box.</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/UnixWare-7.1.1-licensed-qemuw7-on-Qemu.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="802" height="657" src="/wp-content/uploads/2024/03/UnixWare-7.1.1-licensed-qemuw7-on-Qemu.png" alt="" class="wp-image-14199" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-licensed-qemuw7-on-Qemu.png 802w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-licensed-qemuw7-on-Qemu-300x246.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-licensed-qemuw7-on-Qemu-768x629.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-licensed-qemuw7-on-Qemu-366x300.png 366w" sizes="auto, (max-width: 802px) 100vw, 802px" /></a></figure>



<p class="wp-block-paragraph">These are 5 user licenses, just enough to show off the system, I suppose: The advanced features of the day are nothing special these days, but it&#8217;s nice to have the PCC derived compiler, if not to compile GCC but more so for SYSV code from back in the day.</p>



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



<p class="wp-block-paragraph">Networking for VMware is straightforward, I use the NAT interface VMnet8 that is installed by default, selecting a valid Tcp/IP address on the interface range gives me not only full internet access, but also allows me to easily telnet into the VM.</p>



<p class="wp-block-paragraph">Qemu however&#8230;</p>



<pre class="wp-block-code"><code>"c:\Program Files\qemu\qemu-system-x86_64.exe" ^
-m 1024 ^
-hda UnixWare711.vmdk ^
-net nic,model=pcnet ^
-net user,hostfwd=tcp::42323-:23</code></pre>



<p class="wp-block-paragraph">I had been using the user mode SLiRP code for ages, but after all the <a href="http://2024/03/25/using-mit-pc-ip-with-slirp-a-virtual-cisco-router/" target="_blank" rel="noreferrer noopener">MIT PC/IP fun</a>, I was thinking I bet modern Qemu supports UDP transport for network traffic, and that it&#8217;d just integrate with <a href="https://sourceforge.net/projects/hecnetnt/" target="_blank" rel="noreferrer noopener">HecnetNT</a> just fine.  And it does!</p>



<pre class="wp-block-code"><code>"c:\Program Files\qemu\qemu-system-x86_64.exe" ^
-m 1024 ^
-hda UnixWare711.vmdk ^
-net nic,model=pcnet,netdev=hecnet ^
-netdev socket,id=hecnet,udp=127.0.0.1:5001,localaddr=127.0.0.1:5000</code></pre>



<p class="wp-block-paragraph">Configuring the HetnetNT bridge was simple, as always make sure you have Wireshark/pcapng installed and simply run ethlist to get the list of interfaces:</p>



<pre class="wp-block-code"><code>D:\qemu>ethlist.exe
Network devices:
  Number       NAME                                     (Description)
  0  \Device\NPF_{E79F6278-3E7E-4547-955A-2080A0473AD6} (Local Area Connection* 8)
  1  \Device\NPF_{1D960E08-2A3A-43F7-BAD6-21FCB466717B} (Local Area Connection* 7)
  2  \Device\NPF_{98053A85-B049-45A0-AC33-961E2C136FCA} (Local Area Connection* 6)
  3  \Device\NPF_{BFA868ED-E508-4436-B085-EC815C4C544C} (LoopBack)
  4  \Device\NPF_{C75EAF23-0FA3-433B-B271-9CB0F5EB92D0} (VMware Network Adapter VMnet8)
  5  \Device\NPF_{B615DE21-AEC3-4347-916C-332AC4A4DA70} (VMware Network Adapter VMnet1)
  6  \Device\NPF_{82E5A370-6D3D-40AD-A9D5-C4E0E0C50F0D} (Ethernet)</code></pre>



<p class="wp-block-paragraph">And then create a simple <code>bridge.conf</code> file with the VMnet8 adapter and the UDP pariing to talk to Qemu:</p>



<pre class="wp-block-code"><code>&#91;bridge]
update 127.0.0.1:5000
vmnet8 \Device\NPF_{C75EAF23-0FA3-433B-B271-9CB0F5EB92D0}


&#91;tcpip]
update
vmnet8</code></pre>



<p class="wp-block-paragraph">Then launch the bridge program listening on port 5001:</p>



<pre class="wp-block-code"><code>D:\qemu>hecnet.exe 5001
Config filename: bridge.conf
Adding router ''update''. 0100007f:5000
Opening pcap \Device\NPF_{C75EAF23-0FA3-433B-B271-9CB0F5EB92D0}
Adding router ''vmnet8''. 00000000:0
Host table:
0: update 127.0.0.1:5000 (Rx: 0 Tx: 0 (Drop rx: 0)) Active: 1 Throttle: 0(000)
1: vmnet8 0.0.0.0:0 (Rx: 0 Tx: 0 (Drop rx: 0)) Active: 1 Throttle: 0(000)
Hash of known destinations:
Adding new hash entry &#91;52:54:00:12:34:56]. Port is 0
Adding new hash entry &#91;00:50:56:c0:00:08]. Port is 1
Adding new hash entry &#91;00:50:56:f1:dd:d0]. Port is 1
Adding new hash entry &#91;00:0c:29:9a:2b:fb]. Port is 1</code></pre>



<p class="wp-block-paragraph">It&#8217;s a little bit more involved to setup as we have to link the 2 programs via UDP, but I can say it&#8217;s totally worth it.</p>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/03/Designer-40.png"><img loading="lazy" decoding="async" width="1024" height="585" src="/wp-content/uploads/2024/03/Designer-40-1024x585.png" alt="" class="wp-image-14204" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/Designer-40-1024x585.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/03/Designer-40-300x171.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/Designer-40-768x439.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/03/Designer-40-1536x878.png 1536w, https://virtuallyfun.com/wp-content/uploads/2024/03/Designer-40-500x286.png 500w, https://virtuallyfun.com/wp-content/uploads/2024/03/Designer-40.png 1792w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">&#8220;It just works!&#8221; &#8211; Sydney</figcaption></figure>



<p class="wp-block-paragraph">I can now easily FTP files into Qemu, and of course telnet as much as I want to.  I don&#8217;t see why NFS wouldn&#8217;t work either.</p>



<p class="wp-block-paragraph">Which brings us to the bigger elephant in the room, which one is &#8216;worth the squeeze&#8217;?!</p>



<p class="wp-block-paragraph">I thought it&#8217;d be fun to do a totally unfair CPU intensive thing like building GCC.  I would do a quick stage 3 compile blindly running this:</p>



<pre class="wp-block-code"><code>./configure --host=i386-sysv4 --target=i386-sysv4 --prefix=/usr/local/gcc-2.5.8
make
make stage1
make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O"
make stage2
make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O"
make stage3
make CC="stage3/xgcc -Bstage3/" CFLAGS="-g -O"</code></pre>



<p class="wp-block-paragraph">This way we can just look at the timestamps between completed releases.  It does build C++ &amp; ObjectiveC as well, and compared to machines from 1999 this is amazing!</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><code>-rwxr-xr-x 1 neozeed other 3495688 Mar 29 12:42 ./cc1<br>-rwxr-xr-x 1 neozeed other 2646888 Mar 29 12:37 ./stage1/cc1<br>-rwxr-xr-x 1 neozeed other 3495720 Mar 29 12:39 ./stage2/cc1<br>-rwxr-xr-x 1 neozeed other 3495688 Mar 29 12:40 ./stage3/cc1</code></p>



<p class="wp-block-paragraph">Qemu timing</p>



<p class="wp-block-paragraph"><code>-rwxr-xr-x    1 neozeed  other       3884076 Mar 28 20:12 ./cc1<br>
-rwxr-xr-x    1 neozeed  other       2647116 Mar 28 20:11 ./stage1/cc1<br>
-rwxr-xr-x    1 neozeed  other       3884124 Mar 28 20:11 ./stage2/cc1<br>
-rwxr-xr-x    1 neozeed  other       3884076 Mar 28 20:12 ./stage3/cc1
</code></p>
<cite>VMware timing</cite></blockquote>



<p class="wp-block-paragraph">As you can see VMware is substantially faster when it comes to computation.  This shouldn&#8217;t come to anyone as any surprise.  And this isn&#8217;t a fair competition, but it does show that you can stage GCC on Qemu just fine, so that&#8217;s actually great!</p>



<p class="wp-block-paragraph">Now let&#8217;s mix in some more nonsense, I have a Merge license so let&#8217;s try it!  First off it really wants Windows 95 from CD-ROM.  It will not accept anything else.  I have a hacked-up copy of the floppy version of Windows 95 on CD-ROM, and it accepted that just fine, it appears to search through.CAB files looking for files to setup it&#8217;s preferred environment.  I&#8217;m not all that familiar with the whole thing as PC&#8217;s are cheap, and virtual machines are even cheaper!</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-Merge-Setup.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="642" height="545" src="/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-Merge-Setup.png" alt="" class="wp-image-14210" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-Merge-Setup.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-Merge-Setup-300x255.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-Merge-Setup-353x300.png 353w" sizes="auto, (max-width: 642px) 100vw, 642px" /></a><figcaption class="wp-element-caption">Merge setup on VMware</figcaption></figure>



<p class="wp-block-paragraph">After the setup completed, I thought I&#8217;d try my <a href="https://github.com/neozeed/sarien286" target="_blank" rel="noreferrer noopener">Sarien 286/386</a> ports.</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-Merge-no-DPMI.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="642" height="545" src="/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-Merge-no-DPMI.png" alt="" class="wp-image-14211" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-Merge-no-DPMI.png 642w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-Merge-no-DPMI-300x255.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-VMware-Merge-no-DPMI-353x300.png 353w" sizes="auto, (max-width: 642px) 100vw, 642px" /></a><figcaption class="wp-element-caption">no DPMI for Merge</figcaption></figure>



<p class="wp-block-paragraph">Sadly, neither worked.  Maybe it&#8217;d have better luck with Windows 95 actually installed.  I wanted some high colours so I went over to Qemu and found out that it cannot run Merge.</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Merge-failure.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="802" height="657" src="/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Merge-failure.png" alt="" class="wp-image-14212" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Merge-failure.png 802w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Merge-failure-300x246.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Merge-failure-768x629.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Merge-failure-366x300.png 366w" sizes="auto, (max-width: 802px) 100vw, 802px" /></a><figcaption class="wp-element-caption">No Merge!</figcaption></figure>



<p class="wp-block-paragraph">The error lies in a missing opcode 000000FF.  Maybe it&#8217;s invalid to trigger an exception to call between DOS and the supervisor?</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Merge-unknown-opcode-000000ff.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="722" height="457" src="/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Merge-unknown-opcode-000000ff.png" alt="" class="wp-image-14213" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Merge-unknown-opcode-000000ff.png 722w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Merge-unknown-opcode-000000ff-300x190.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/UnixWare-7.1.1-qemuw7-on-Qemu-Merge-unknown-opcode-000000ff-474x300.png 474w" sizes="auto, (max-width: 722px) 100vw, 722px" /></a><figcaption class="wp-element-caption">unknown opcode 000000FF</figcaption></figure>



<p class="wp-block-paragraph">Either way it doesn&#8217;t matter, it doesn&#8217;t work.  I did get feedback that it does run under KVM.</p>



<p class="wp-block-paragraph">I don&#8217;t know why I didn&#8217;t think about doing the HecnetNT bridge earlier as it gives things far more flexibility for tapping into networks, or even being transported.  I guess I should look at other transport mechanisms besides UDP since it&#8217;s 1:1.  Also, it might be worth dropping the protocol restrictive filters to allow everything on the wire to flow.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/03/29/looking-at-unixware-7-1-1-on-vmware-qemu-yet-again/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>Announcing Cockatrice III 0.5g</title>
		<link>https://virtuallyfun.com/2024/03/24/announcing-cockatrice-iii-0-5g/</link>
					<comments>https://virtuallyfun.com/2024/03/24/announcing-cockatrice-iii-0-5g/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sun, 24 Mar 2024 01:41:43 +0000</pubDate>
				<category><![CDATA[BasiliskII]]></category>
		<category><![CDATA[Cockatrice III]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[virtual networking]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14171</guid>

					<description><![CDATA[Now with better pcap filter in place. I had an issue with 86box and how NetBEUI wasn&#8217;t working. It didn&#8217;t hit me at the time but cold-brewed caught it, that the 86box didn&#8217;t have the multicast addresses in the default &#8230; <a href="https://virtuallyfun.com/2024/03/24/announcing-cockatrice-iii-0-5g/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Now with better pcap filter in place.  I had an issue with 86box and how NetBEUI wasn&#8217;t working.  It didn&#8217;t hit me at the time but <a href="https://github.com/cold-brewed" target="_blank" rel="noreferrer noopener">cold-brewed</a> caught it, that the 86box didn&#8217;t have the multicast addresses in the default pcap filter..  We need the filter to not send EVERY packet to the VM, and to also filter out the VM&#8217;s own packets so it doesn&#8217;t loop and send traffic to itself (which hopefully would just get discarded, but there is no point doing it in the first place!)</p>



<p class="wp-block-paragraph">Before I had it set to this:</p>



<pre class="wp-block-code"><code>(ether dst 09:00:07:ff:ff:ff) or (ether dst ff:ff:ff:ff:ff:ff)</code></pre>



<p class="wp-block-paragraph">It&#8217;s allowing one Multicast address for AppleTalk and the general ethernet broadcast address.  Which is more or less okay  but for everything else, you want to catch a wider net. The better choice is to use built in pcap macros:</p>



<pre class="wp-block-code"><code>((ether broadcast) or (ether multicast)</code></pre>



<p class="wp-block-paragraph">I can confirm that these do work for 86box, so I&#8217;ve copied the same into Cockatrice III.  For those who wonder what the difference between Basilisk II &amp; Cockatrice III is, I basically took a super old version of Basilisk II, ripped out as much platform code as I could, re-ported it to basic SDL, removed all the fancy clipboard/meta/drive sharing integration code, added a pcap network option to use the raw network for AppleTalk, and took the SCSI emulation from Previous so I can partition and format virtual &#8216;SCSI&#8217; disks that I&#8217;ve even been able to use in a BlueSCSI!.  I&#8217;ve sat down with a debugger some years ago and went through the SLiRP code catching as many faults when using Internet Explorer as I could, I think most of the &#8216;fix&#8217; involved renaming clashing symbols, and while it&#8217;s not perfect it was a lot more stable than the default stuff.  Although I haven&#8217;t touched it in years, and probably should look to borrowing a more modern version from elsewhere.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="480" height="263" src="/wp-content/uploads/2024/03/cock05g.gif" alt="" class="wp-image-14175"/><figcaption class="wp-element-caption">0.5g in action</figcaption></figure>
</div>


<p class="wp-block-paragraph">Linking this thing with TDM GCC is becoming a bit of a challenge so in case I forget here is how I&#8217;m currently statically linking libgcc/libg++ along with winpthread.  All it should need now is SDL &amp; working WinSock which every Win32 should have!</p>



<pre class="wp-block-code"><code>c++ -o CockatriceIII.exe        obj/main.o obj/main_sdl.o obj/prefs.o obj/prefs_dummy.o obj/sys_unix_sdl.o obj/rom_patches.o obj/slot_rom.o obj/rsrc_patches.o obj/emul_op.o obj/macos_util.o obj/xpram.o obj/xpram_dummy.o obj/timer.o obj/timer_common.o obj/clip_dummy.o obj/adb.o obj/serial.o obj/serial_dummy.o obj/ether.o obj/sony.o obj/disk.o obj/cdrom.o obj/scsi.o obj/video.o obj/video_sdl.o obj/audio.o obj/extfs.o obj/user_strings.o obj/user_strings_unix.o obj/sdl_pcap.o obj/scsi_dummy.o obj/audio_sdl.o obj/prefs_editor_dummy.o obj/basilisk_glue.o obj/memory.o obj/newcpu.o obj/readcpu.o obj/cpustbl.o obj/cpudefs.o obj/cpuemu.o obj/fpu_ieee.o cockatricerc.o ..\slirp\libslirp.a ..\drmingw-0.7.7-win32\lib\libexchndl.a -Wl,-Bdynamic -lSDL -lws2_32  -liphlpapi -Wl,-Bstatic -lgcc -lstdc++ -lwinpthread -static -static-libgcc -static-libstdc++</code></pre>



<p class="wp-block-paragraph">I&#8217;ve been able to map to my internal servers just fine, and connect using Internet Explorer so I suppose everything is fine!</p>



<p class="wp-block-paragraph">All the cool kids love github so here you got, you can get it from the latest releases:</p>



<p class="wp-block-paragraph"><a href="https://github.com/neozeed/CockatriceIII/releases">Releases · neozeed/CockatriceIII (github.com)</a></p>



<p class="wp-block-paragraph">I&#8217;ll have to re-sync <a href="https://sourceforge.net/projects/cockatrice/" target="_blank" rel="noreferrer noopener">sourceforge</a>.  Although I do keep more resources on sourceforge since it&#8217;s clearly a lot better at file hosting.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/03/24/announcing-cockatrice-iii-0-5g/feed/</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
			</item>
		<item>
		<title>Building MIT PC/IP, or making apple pie</title>
		<link>https://virtuallyfun.com/2024/03/21/building-mit-pc-ip-or-making-apple-pie/</link>
					<comments>https://virtuallyfun.com/2024/03/21/building-mit-pc-ip-or-making-apple-pie/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Thu, 21 Mar 2024 18:13:25 +0000</pubDate>
				<category><![CDATA[4.1 BSD]]></category>
		<category><![CDATA[8086]]></category>
		<category><![CDATA[cross compiler]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[pcc]]></category>
		<category><![CDATA[SIMH]]></category>
		<category><![CDATA[VAX]]></category>
		<category><![CDATA[VAX 11/780]]></category>
		<category><![CDATA[virtual networking]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14121</guid>

					<description><![CDATA[&#8220;If you want to make a pie from scratch, you must first create the universe&#8221; &#8211;Carl Sagan A little while ago I had touched briefly on the availability of of a PCC port to the 8086 done back in the &#8230; <a href="https://virtuallyfun.com/2024/03/21/building-mit-pc-ip-or-making-apple-pie/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>&#8220;If you want to make a pie from scratch, you must first create the universe&#8221; </em></p>
<cite><em>&#8211;Carl Sagan</em></cite></blockquote>



<p class="wp-block-paragraph">A little while ago <a href="/2022/11/04/on-the-trail-of-pcc-for-the-8086/" target="_blank" rel="noreferrer noopener">I had touched briefly</a> on the availability of of a PCC port to the 8086 done back in the early 1980&#8217;s that was hosted on VAX running 4.1BSD.  I&#8217;d ruled it basically useless as you are restricted to 64kb .COM files, and I couldn&#8217;t get much of anything interesting running on it.</p>



<p class="wp-block-paragraph">After all the fun of setting up <a href="/2024/03/03/installing-netmanage-chameleon-on-windows-3-0/" target="_blank" rel="noreferrer noopener">NetManage Chameleon on Windows 3.0</a>, over on IRC lys had mentioned I should try the MIT PC/IP stack.  I never knew anything about it&#8217;s history but it became the first PC TCP/IP stack.  You can read more about it from <a href="https://web.archive.org/web/20040215032121/http://www.drizzle.com/~aboba/internaut/pc-ip.html" target="_blank" rel="noreferrer noopener">&#8220;<em>Internaut</em>&#8220;</a>?</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Dave Clark had gone to England for sabbatical and while he was there, had implemented TCP/IP in BCPL for the TRIPOS operating system, a predecessor of the Commodore AMIGA operating system. He brought the TCP/IP code back with him, and the Lab for Computer Science had a bunch of Xerox Alto workstations, and someone at LCS ported Dave&#8217;s TCP/IP to the Alto.</p>



<p class="wp-block-paragraph">Then someone ported it to Version 6 UNIX and rewrote it in C. And that was what we took, and ported to PC DOS. At that point there were no C compilers that ran on the PC, and we were using a compiler that ran on a PDP 11/45 on Version 6 UNIX, and then on a VAX 750 running BSD v4.1. That was the AT&amp;T; portable C compiler, and a group of people on the fourth floor of the LCS had written an 8088 code generator for it. This was before Microsoft C, and before 4.2 BSD.</p>



<p class="wp-block-paragraph">Our first tasks were to bring up TFTP, TCP, and a telnet client under DOS. Several people were involved. Lou Konopelski did the initial TCP and telnet work, and Dave Brigham did similar work to what I did.</p>
<cite>John Romkey &#8211; <em>Internaut</em> &#8211; <strong>How PC-IP Came to Be</strong></cite></blockquote>



<p class="wp-block-paragraph">What is even more notable about PCIP is that it&#8217;s the reason the whole &#8216;MIT License&#8217; even exists, as word seems to have spread quickly about a TCP/IP stack for the IBM PC compatible market.  Jerome Saltzer has documented it all, if you want to read about it (<a href="https://www.mit.edu/~Saltzer/publications/MITLicense.pdf" target="_blank" rel="noreferrer noopener">WARNING PDF!</a>)</p>



<p class="wp-block-paragraph"><a href="https://en.wikipedia.org/wiki/John_Romkey" target="_blank" rel="noreferrer noopener">Romkey</a> would even then go on to found FTP software in that wonderful pre public internet era, before the eternal September.</p>



<p class="wp-block-paragraph">Over on <a href="http://bitsavers.trailing-edge.com/bits/MIT/pc-ip/">bitsavers</a> there are 3 files:</p>



<figure class="wp-block-table"><table><tbody><tr><td><img decoding="async" src="/wp-content/uploads/2024/03/tar.gif" alt="[   ]"></td><td>8086_C_19850820.tar</td><td>2019-03-12 14:36</td><td>750K</td><td>&nbsp;</td></tr><tr><td><img decoding="async" src="/wp-content/uploads/2024/03/tar.gif" alt="[   ]"></td><td>PC-IP_19850124.tar</td><td>2019-03-12 11:53</td><td>4.6M</td><td>&nbsp;</td></tr><tr><td><img decoding="async" src="/wp-content/uploads/2024/03/tar.gif" alt="[   ]"></td><td>PC-IP_19860403.tar</td><td>2019-03-12 11:53</td><td>6.9M</td><td>&nbsp;</td></tr></tbody></table><figcaption class="wp-element-caption">bitsavers.trailing-edge.com/bits/MIT/pc-ip/</figcaption></figure>



<p class="wp-block-paragraph">Of course, the one thing that stands out is that these files look tiny.  They aren&#8217;t even compressed!  PCC, or the Portable C Compiler was released from AT&amp;T, itself written in C, to make porting the C compiler easier to further allow Unix to be further easily ported. Now that I kind of had a mission, I decided to take the 8086 PCC leap, again.</p>



<h2 class="wp-block-heading">Get the time machine ready!</h2>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/03/Designer-5-jpg.webp"><img loading="lazy" decoding="async" width="1024" height="585" src="/wp-content/uploads/2024/03/Designer-5-1024x585.webp" alt="" class="wp-image-14127" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/Designer-5-1024x585.webp 1024w, https://virtuallyfun.com/wp-content/uploads/2024/03/Designer-5-300x171.webp 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/Designer-5-768x439.webp 768w, https://virtuallyfun.com/wp-content/uploads/2024/03/Designer-5-1536x878.webp 1536w, https://virtuallyfun.com/wp-content/uploads/2024/03/Designer-5-500x286.webp 500w, https://virtuallyfun.com/wp-content/uploads/2024/03/Designer-5-jpg.webp 1792w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">A man, his best friend and a time machine! &#8211; Microsoft Sydney</figcaption></figure>



<p class="wp-block-paragraph">Thankfully I had that 4.1c BSD image still up on <a href="https://sourceforge.net/projects/bsd42/" target="_blank" rel="noreferrer noopener">sourceforge</a>, aptly named: <a href="https://sourceforge.net/projects/bsd42/files/4BSD%20under%20Windows/v0.4/4.1c%20BSD.7z/download" target="_blank" rel="noreferrer noopener">4.1c BSD.7z</a>, so I could follow my old instructions to create the tap file and start working with 8086 C, going back from 1985.  And in no time, I had re-built the compiler, and assembler up and running.  But I wanted more, as much fun as 4.1BSD is, I wanted to run everything natively on Windows.</p>



<p class="wp-block-paragraph">At this point I&#8217;d remembered that this setup is a bit odd in that the object files that the assembler produces are OMAGIC (type 0407) <a href="https://en.wikipedia.org/wiki/A.out">a.out</a> files.  Thinking back to my old project of <a href="https://sourceforge.net/projects/linux011/" target="_blank" rel="noreferrer noopener">building Ancient Linux on Windows using vintage tools</a>, it also uses OMAGIC a.out files! It&#8217;s not that unexpected as the original GNU ld linker from 1986 has hooks for both old magic &amp; new magic (OMAGIC/NMAGIC) files, as this would be consistent from the era.  Thinking this was my out, I might have a way of migrating the build process off of the VAX.</p>



<p class="wp-block-paragraph">The first pass was to try to pull in all the VAX includes into my native Visual C++ 1.0, and get it to build with Microsoft C/C++ 8.0.  The next thing to do of course, is look for where it&#8217;s doing anything with binary files and make sure it&#8217;s all set to O_BINARY/&#8221;rb&#8221;/&#8221;wb&#8221; where appropriate as MS-DOS/Win32/OS2 all handle text files differently from binary data.  There is also fights with mktemp along with procedure name creep, like how &#8217;round&#8217; wasn&#8217;t a thing in 1980 but it sure is by 1993!  Before the era of the 486DX/68040/Pentium not everyone had a math co-processor (FPU) so it&#8217;d make sense that a lot of things wouldn&#8217;t have this by default.</p>



<p class="wp-block-paragraph">As a quick refresher the following diagram may be specific to the GNU GCC compiler, but the older PCC compiler uses the same methodology of first pre-processing files, then compiling them, assembling the resulting compiler output, then finally linking to an executable program.  ( See &#8211; &#8220;<a href="/2024/01/08/so-it-turns-out-gcc-could-have-been-available-on-windows-nt-the-entire-time/" target="_blank" rel="noreferrer noopener">So it turns out GCC could have been available on Windows NT the entire time</a>&#8220;)</p>



<figure class="wp-block-image size-large"><a href="/2024/01/08/so-it-turns-out-gcc-could-have-been-available-on-windows-nt-the-entire-time/" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="384" src="/wp-content/uploads/2024/01/gcc-program-flow-1024x384.png" alt="" class="wp-image-13731" srcset="https://virtuallyfun.com/wp-content/uploads/2024/01/gcc-program-flow-1024x384.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/01/gcc-program-flow-300x112.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/01/gcc-program-flow-768x288.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/01/gcc-program-flow-1536x575.png 1536w, https://virtuallyfun.com/wp-content/uploads/2024/01/gcc-program-flow-500x187.png 500w, https://virtuallyfun.com/wp-content/uploads/2024/01/gcc-program-flow.png 1962w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">a rough explanation of how old C compilers work in stages</figcaption></figure>



<p class="wp-block-paragraph">The steps for PCC 8086 are quite similar but to spell them out:</p>



<ul class="wp-block-list">
<li>Pre-process with GNU cpp</li>



<li>Compile with PCC&#8217;s c86</li>



<li>Assemble with PCC&#8217;s a86</li>



<li>Link with GNU&#8217;s ld</li>



<li>Extract the MS-DOS .COM file with cvt86</li>
</ul>



<p class="wp-block-paragraph">There isn&#8217;t much to talk about the pre-processor, so I&#8217;ll skip it, suffice to say from my <a href="https://github.com/neozeed/cl386-research" target="_blank" rel="noreferrer noopener">cl386 research</a>, and porting GCC to OS2/NT, it just worked.</p>



<h2 class="wp-block-heading">Compiling the compiler</h2>



<p class="wp-block-paragraph">Surprisingly getting the compiler running wasn&#8217;t too difficult.  I do remember getting this running before, so seeing it run again wasn&#8217;t too much of a surprise.  The simple C program:</p>



<pre class="wp-block-code"><code>main(){
printf("hi from 8086 pcc\n");
}</code></pre>



<p class="wp-block-paragraph">Gives us the following generated assembly:</p>



<pre class="wp-block-code"><code>        .data
        .text
        .globl  _main
_main:
        push    bp
        mov     bp,sp
        push    si
        push    di
        sub     sp,#LF1
        mov     ax,#L14
        push    ax
        call    _printf
        pop     cx
L12:
        lea     sp,*-4(bp)
        pop     di
        pop     si
        pop     bp
        ret
        LF1 = 0
        .data
L14:
        .byte   104,105,32,102,114,111,109,32
        .byte   56,48,56,54,32,112,99,99
        .byte   10,0</code></pre>



<p class="wp-block-paragraph">So far, so good, right!  Even for fun, I was able to build it using Microsoft C 6.0!  I figured I may as well try to get as much out of that purchase as possible.</p>



<h2 class="wp-block-heading">Strage binary formats in a strange world</h2>



<p class="wp-block-paragraph">One thing that was a constant problem for me is that the assembler generated garbage, it never gave me the a.out OMAGIC file.  Opening it up in a hex editor, Hex Editor Neo, and it showed problem, right away.</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/OMAGIC-assembled-on-the-vax.png"><img loading="lazy" decoding="async" width="683" height="248" src="/wp-content/uploads/2024/03/OMAGIC-assembled-on-the-vax.png" alt="" class="wp-image-14130" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/OMAGIC-assembled-on-the-vax.png 683w, https://virtuallyfun.com/wp-content/uploads/2024/03/OMAGIC-assembled-on-the-vax-300x109.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/OMAGIC-assembled-on-the-vax-500x182.png 500w" sizes="auto, (max-width: 683px) 100vw, 683px" /></a><figcaption class="wp-element-caption">A simple do nothing program, assembled on the VAX</figcaption></figure>



<p class="wp-block-paragraph">The OMAGIC sequence in hex should be written down as <strong>07 01</strong>, but when I looked at the output from my PC port the file was not only too big but it didn&#8217;t have the headder:</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/OMAGIC-assembled-on-the-pc.png"><img loading="lazy" decoding="async" width="650" height="237" src="/wp-content/uploads/2024/03/OMAGIC-assembled-on-the-pc.png" alt="" class="wp-image-14131" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/OMAGIC-assembled-on-the-pc.png 650w, https://virtuallyfun.com/wp-content/uploads/2024/03/OMAGIC-assembled-on-the-pc-300x109.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/OMAGIC-assembled-on-the-pc-500x182.png 500w" sizes="auto, (max-width: 650px) 100vw, 650px" /></a><figcaption class="wp-element-caption">The same program assembled on the PC</figcaption></figure>



<p class="wp-block-paragraph">As you can see it&#8217;s just a bunch of zeros up front.  Later on, I&#8217;d realize this was a &#8216;pad&#8217; so it could be filled in later by the assembler when doing relocations.  The file in question was rel.c which also should have been the hint.  I don&#8217;t know if anyone saw it, but let me highlight it for you:</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/OMAGIC-assembled-on-the-pc-hihglight.png"><img loading="lazy" decoding="async" width="650" height="237" src="/wp-content/uploads/2024/03/OMAGIC-assembled-on-the-pc-hihglight.png" alt="" class="wp-image-14132" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/OMAGIC-assembled-on-the-pc-hihglight.png 650w, https://virtuallyfun.com/wp-content/uploads/2024/03/OMAGIC-assembled-on-the-pc-hihglight-300x109.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/OMAGIC-assembled-on-the-pc-hihglight-500x182.png 500w" sizes="auto, (max-width: 650px) 100vw, 650px" /></a><figcaption class="wp-element-caption">The OMAGIC header is being appended!</figcaption></figure>



<p class="wp-block-paragraph">As you can see, where the file ends on the VAX, on the PC the OMAGIC header is being appended.  I did a simple cut &amp; paste in the editor, and the object file validated just fine.  So why was this happening?  In my rush to just add &#8216;binary&#8217; flags to any file operations I had seen this in rel.c:</p>



<pre class="wp-block-code"><code>		(dout = fopen(Rel_name, "a")) == NULL)</code></pre>



<p class="wp-block-paragraph">I had taken this be an &#8216;append&#8217; for whatever reason it would need to do that kind of thing.  Well maybe that&#8217;s what it means in 1993, but in 1981 it doesn&#8217;t append, instead it just opens it normally.  Is this a bug in the assembler, or a feature of 4.1BSD?  Without debugging it, I just modified it to not append, as this was the only occurrence of an explicit append in the source code I could see.</p>



<pre class="wp-block-code"><code>		(dout = fopen(Rel_name, "wb")) == NULL)</code></pre>



<p class="wp-block-paragraph">And that did the trick, I now had a working assembler running on my PC!</p>



<p class="wp-block-paragraph">But we are not out of the woods yet!</p>



<p class="wp-block-paragraph">Naturally trying to build a much &#8216;larger&#8217; Fibonacci program crashed the assembler.  Luckily debugging it was a snap to find out that it was trying to free a static pointer.  Or so I think.  Today, in the future RAM is cheap, so I just commented out the offending free and now it was off to the linker.</p>



<h2 class="wp-block-heading">When is advanced optimization a bad idea?</h2>



<p class="wp-block-paragraph">When the machine you wrote this for no longer exists.  In the middle of the ld86 linker is this line:</p>



<pre class="wp-block-code"><code>		asm("movc3 r8,(r11),(r7)");</code></pre>



<p class="wp-block-paragraph">I have no idea why it&#8217;s there.</p>



<p class="wp-block-paragraph">I don&#8217;t know what it should be doing.</p>



<p class="wp-block-paragraph">This makes the linker un-portable.</p>



<p class="wp-block-paragraph">However, as I&#8217;d mentioned before I did have the GNU linker that I&#8217;d successfully used to build Linux kernels, so there was hope!</p>



<pre class="wp-block-code"><code>C:\msvc32s\proj\8086pcc&gt;\aoutgcc\bin\ld.exe -X -r -o hi.out crt0.b hi.b ./libc.a
C:\msvc32s\proj\8086pcc&gt;cvt86 hi.out hi.com
C:\msvc32s\proj\8086pcc&gt;msdos hi.com
hello from pcc for 8086!</code></pre>



<p class="wp-block-paragraph">I had now successfully run my first program without using the VAX.  Although I had not mentioned a step yet, cvt86, this utility is described as creating a MS-DOS .COM file from an a.out file.  I didn&#8217;t look into how it accomplishes this, but basically, it&#8217;s another linker.  And this issue would come to complicate things as I had thought that everything was working.</p>



<h2 class="wp-block-heading">libc &amp; the heart of C</h2>



<p class="wp-block-paragraph">Libc, is simply put the central C library for getting everything done.  While crt0 will setup the C environment everything else core from opening files, writing to the screen, and reading keyboard input is done through libc.  So I thought re-building libc would be easy enough.  To build the library you &#8216;archive&#8217; them with the &#8216;ar&#8217; archiver, then index them with &#8216;ranlib&#8217;.  And again, from my a.out adventures building Linux I had both tools, however no matter what I was doing they did not work with cvt86.  I wen&#8217;t back and rebuilt some kernels to verify, and yes it does generate archives but cvt86 was not happy.</p>



<p class="wp-block-paragraph">I still had the SIMH VAX running in case I needed it, so I just broke down and figured I&#8217;d just port the VAX ar/ranlib to the PC.  I don&#8217;t know off hand what the problem was, and I didn&#8217;t feel like spending an eternity to try to correct it, and both of the programs are somewhat portable.  But of course it wasn&#8217;t that simple as ar opens files in strange ways that work on 4.1BSD but yeild chaos on the PC.</p>



<pre class="wp-block-code"><code>#define ARMAG   "!&lt;arch&gt;\n"

#define SARMAG  8

#define ARFMAG  "`\n"</code></pre>



<p class="wp-block-paragraph">&#8216;ar&#8217; has it&#8217;s own magic, a simple !&lt;arch&gt; and a ` followed by a new line.  On any UNIX the \n is 10 in decimal 0xa in hex.  But on the PC it&#8217;s carriage return and linefeed!  And yes despite setting all the opens to binary, it was constantly injecting carriage returns &amp; linefeeds all over the place!  Some-how the file was being opened in text mode.  Thankfully debugging even in old Visual C is great and inspecting the temporary files lead me to find this part:</p>



<pre class="wp-block-code"><code>			f = creat(file, larbuf.lar_mode &amp; 0777);</code></pre>



<p class="wp-block-paragraph">In a few places it uses the <a href="https://linux.die.net/man/2/creat" target="_blank" rel="noreferrer noopener">creat</a> (or create call.  In an interview Dennis Ritchie had mentioned that this was one of his regrets in life, not naming creat create) call, which of course never has to set a mode, as everything is binary in Unix, unlike the PC.  Great.</p>



<p class="wp-block-paragraph">Luckily the fix was very simple after every creat, simply set the file mode to binary.</p>



<pre class="wp-block-code"><code>			setmode(f,O_BINARY);</code></pre>



<p class="wp-block-paragraph">Great!</p>



<h2 class="wp-block-heading">Apple pie!</h2>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/pcc-8086-self-hosting-fib.png"><img loading="lazy" decoding="async" width="979" height="512" src="/wp-content/uploads/2024/03/pcc-8086-self-hosting-fib.png" alt="" class="wp-image-14140" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/pcc-8086-self-hosting-fib.png 979w, https://virtuallyfun.com/wp-content/uploads/2024/03/pcc-8086-self-hosting-fib-300x157.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/pcc-8086-self-hosting-fib-768x402.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/03/pcc-8086-self-hosting-fib-500x261.png 500w" sizes="auto, (max-width: 979px) 100vw, 979px" /></a><figcaption class="wp-element-caption">Fibonacci sequence</figcaption></figure>



<p class="wp-block-paragraph">Now I could re-build libc from source and link it to the Fibonacci program!</p>



<p class="wp-block-paragraph">Yes it&#8217;d take this long to get to the point where I can now easily edit file on a modern machine and have a Win32 native toolchain!  VAX no longer required!  We&#8217;ve successfully extracted everything we needed from the 1980&#8217;s!</p>



<h2 class="wp-block-heading">First contact!</h2>



<p class="wp-block-paragraph">Now it&#8217;s time to look at what brought us on this adventure, MIT PC/IP.</p>



<p class="wp-block-paragraph">The MIT PC/IP (PCIP) does require changes to the libc to work correctly.  Unfortunately, they didn&#8217;t provide the full copy of the libc, but rather some ed scripts.  So, the first question is do I even have the version these are based off of to start?  I don&#8217;t know, so I had guessed, and I had guessed incorrectly.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="800" height="534" src="/wp-content/uploads/2024/03/800px-3com_3c501_front-jpg.webp" alt="" class="wp-image-14148" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/800px-3com_3c501_front-jpg.webp 800w, https://virtuallyfun.com/wp-content/uploads/2024/03/800px-3com_3c501_front-300x200.webp 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/800px-3com_3c501_front-768x513.webp 768w, https://virtuallyfun.com/wp-content/uploads/2024/03/800px-3com_3c501_front-449x300.webp 449w" sizes="auto, (max-width: 800px) 100vw, 800px" /><figcaption class="wp-element-caption">3com 3c501</figcaption></figure>



<p class="wp-block-paragraph">Configuring PCIP is somewhat involved, first you need MS-DOS 2.00 or greater which thankfully in the future is FREE!  The next thing you need is a 3com 3c501 card.  This is going to be a challenge but it&#8217;s just as any good time to mention 86box, and the latest version that I&#8217;ve been using that of course supports this kind of setup!</p>



<figure class="wp-block-image size-large"><a href="https://github.com/86Box/86Box/releases/tag/v4.1.1" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="768" src="/wp-content/uploads/2024/03/V4.1.1_POST-1024x768.webp" alt="" class="wp-image-14149" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/V4.1.1_POST-1024x768.webp 1024w, https://virtuallyfun.com/wp-content/uploads/2024/03/V4.1.1_POST-300x225.webp 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/V4.1.1_POST-768x576.webp 768w, https://virtuallyfun.com/wp-content/uploads/2024/03/V4.1.1_POST-1536x1152.webp 1536w, https://virtuallyfun.com/wp-content/uploads/2024/03/V4.1.1_POST-2048x1536.webp 2048w, https://virtuallyfun.com/wp-content/uploads/2024/03/V4.1.1_POST-400x300.webp 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">New version 4.1.1</figcaption></figure>



<p class="wp-block-paragraph">I can&#8217;t recommend it enough, 86box is like all the inconveniences of old software &amp; hardware without having to spend a fortune for weird combinations, fighting to have space for it.  I naturally setup a 386sx with CGA, 20Mb hard disk and a 3c501 card.  It&#8217;s nice being able to also be very task specific, this doesn&#8217;t have to be a DooM/Quake machine!</p>



<p class="wp-block-paragraph">the first thing you need to do is add the netdev.sys device driver that is created as part of building PCIP from source.  a simple:</p>



<pre class="wp-block-code"><code>DEVICE=\NETDEV.SYS</code></pre>



<p class="wp-block-paragraph">in your config.sys is more than enough.  However, how do you configure it?  Well it&#8217;s the &#8216;custom&#8217; program that binary edit&#8217;s the device driver.</p>



<p class="wp-block-paragraph"><strong>YES, IT EDITS THE DEVICE DRIVER.</strong></p>



<p class="wp-block-paragraph">Setting stuff up is somewhat straight forward, however it displays TCP/IP information in decimal not in hex.  I haven&#8217;t even looked into the how or why.</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/Monitor_1_20240321-164435-259.png"><img loading="lazy" decoding="async" width="640" height="200" src="/wp-content/uploads/2024/03/Monitor_1_20240321-164435-259.png" alt="" class="wp-image-14150" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-164435-259.png 640w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-164435-259-300x94.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-164435-259-500x156.png 500w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a><figcaption class="wp-element-caption">The first page</figcaption></figure>



<p class="wp-block-paragraph">The first page options are kind of banal, it&#8217;s back in the day when people would use finger to find people on the internet and call them up or send emails.  How cute.  1985 was a different world!</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/Monitor_1_20240321-164442-852.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="640" height="200" src="/wp-content/uploads/2024/03/Monitor_1_20240321-164442-852.png" alt="" class="wp-image-14151" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-164442-852.png 640w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-164442-852-300x94.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-164442-852-500x156.png 500w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a><figcaption class="wp-element-caption">hardware options</figcaption></figure>



<p class="wp-block-paragraph">In the hardware options the only thing to check is the I/O base, IRQ &amp; DMA for the Ethernet card.  I just configured the card around 0x300/5/1 as it&#8217;s great being purpose built!</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/Monitor_1_20240321-164500-212.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="640" height="200" src="/wp-content/uploads/2024/03/Monitor_1_20240321-164500-212.png" alt="" class="wp-image-14152" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-164500-212.png 640w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-164500-212-300x94.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-164500-212-500x156.png 500w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a><figcaption class="wp-element-caption">telnet options</figcaption></figure>



<p class="wp-block-paragraph">There is a separate window for telnet options.  Naturally high speed connections frame far too fast for something built from 1985.  I found lowering the TCP windows really helped with pacing.</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/Monitor_1_20240321-164506-586.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="640" height="200" src="/wp-content/uploads/2024/03/Monitor_1_20240321-164506-586.png" alt="" class="wp-image-14153" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-164506-586.png 640w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-164506-586-300x94.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-164506-586-500x156.png 500w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a><figcaption class="wp-element-caption">Site config</figcaption></figure>



<p class="wp-block-paragraph">As I had mentioned the site configuration displays all the information in decimal.  Also, I&#8217;m wasn&#8217;t sure what is going on with the netmask, but looking at the old Windows calculator revealed it was being stored in OCTAL.  It&#8217;s probably why the addresses have commas instead of periods.  Although I had configured DNS it didn&#8217;t work, as it uses UDP port 42. It&#8217;s clearly doing something very early 1980&#8217;s.</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/broken-telnet.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="720" height="350" src="/wp-content/uploads/2024/03/broken-telnet.png" alt="" class="wp-image-14147" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/broken-telnet.png 720w, https://virtuallyfun.com/wp-content/uploads/2024/03/broken-telnet-300x146.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/broken-telnet-500x243.png 500w" sizes="auto, (max-width: 720px) 100vw, 720px" /></a><figcaption class="wp-element-caption">The status CR/LF is broken!</figcaption></figure>



<p class="wp-block-paragraph">So close and yet so far away.  The only thing to do was try to figure out which of the libc stuff was &#8216;newest&#8217; in the pure state and try to figure out where to go from there.</p>



<h2 class="wp-block-heading">Redo!</h2>



<p class="wp-block-paragraph">While I had not configured the libc correctly, I had partial success!  I could actually establish a telnet session! Libc wasn&#8217;t working correctly as every line feed didn&#8217;t generate a carriage return, as you&#8217;d need for MS-DOS leaving it with broken status.</p>



<p class="wp-block-paragraph">But at the same time, despite all the weird &#8216;challenges&#8217; for the most part &#8216;it just worked&#8217;.  Which is pretty cool!</p>



<p class="wp-block-paragraph">It turns out the answer was the 8086_C_19850820 file.  As far as I can tell there was only one thing that didn&#8217;t patch correctly but I was able to build a libc in no time.. that didn&#8217;t work.  In the patch it removes ulrem/auldiv from arith.a86  Not sure why, I haven&#8217;t messed with it.  But that means I had to restructure to build with the non floating point n86c compiler as that&#8217;s the way PCIP is expected to be built.  After rebuilding with this compiler and this seemingly properly patched library I finally had it working!</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/Monitor_1_20240321-155250-479.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="640" height="200" src="/wp-content/uploads/2024/03/Monitor_1_20240321-155250-479.png" alt="" class="wp-image-14146" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-155250-479.png 640w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-155250-479-300x94.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-155250-479-500x156.png 500w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a><figcaption class="wp-element-caption">Ping my local gateway!</figcaption></figure>



<p class="wp-block-paragraph">Instead of a garbled mess, I had something I could read!</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/Monitor_1_20240321-155420-962.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="640" height="200" src="/wp-content/uploads/2024/03/Monitor_1_20240321-155420-962.png" alt="" class="wp-image-14154" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-155420-962.png 640w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-155420-962-300x94.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240321-155420-962-500x156.png 500w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a><figcaption class="wp-element-caption">telnetting to my test BBS</figcaption></figure>



<p class="wp-block-paragraph">Now instead of a garbled mess, I can see it was trying to display the connected IP, and a clock.</p>



<p class="wp-block-paragraph">Sadly it doesn&#8217;t work with SLiRP.  I&#8217;m sure it&#8217;s either classful routing or it really doesn&#8217;t like how SLiRP handles ARP.  I suspect it&#8217;s also trying to do old style classful routing as well, which means you can&#8217;t just load arbitrary subnet masks wherever you want, to try to squeeze the 4 billion IP&#8217;s out of the internet.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="480" height="363" src="/wp-content/uploads/2024/03/fixedmit.gif" alt="" class="wp-image-14162"/><figcaption class="wp-element-caption">The updated telnet client connecting to a test BBS</figcaption></figure>
</div>


<h2 class="wp-block-heading">Final thoughts</h2>



<p class="wp-block-paragraph">I suspect that although there were binaries in the above tar files, going through the effort to rebuild PCIP really wasn&#8217;t all that expected for most people to carry out.  Sadly, there was no shared source &#8216;sites&#8217; online, and we&#8217;re lucky enough someone kept a few tarballs lying around.  I really can&#8217;t blame them for sticking with then current development tools, especially for what you&#8217;d need to build a C compiler back in the early 80&#8217;s.  It&#8217;s a shame the QL or the Macintosh didn&#8217;t have the RAM or the DASD capacity to become that home cross compiler of the 80&#8217;s.</p>



<p class="wp-block-paragraph">Most project just require you to work on that actual project, while this has been a substantially larger undertaking from anything normal, but I guess I&#8217;ve learned a bit along the way with all those &#8220;pointless&#8221; GCC port things I&#8217;d done, well it turns out they are incredibly useful! It&#8217;s been a fun archeological expedition for me, thankfully C is still a thing, I wonder what happened to all the ADA/Perl/Pascal/&#8221;Wave of the future&#8221; stuff that is always disappearing.  At least more and more people work on full system emulation so there is always that!</p>



<p class="wp-block-paragraph">For anyone that curious you can find all the code over on github:</p>



<p class="wp-block-paragraph"><a href="https://github.com/neozeed/8086pcc">https://github.com/neozeed/8086pcc</a></p>



<p class="wp-block-paragraph">Against my better judgement, I&#8217;ve added a <a href="https://github.com/neozeed/8086pcc/releases" target="_blank" rel="noreferrer noopener">binary package on github</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/03/21/building-mit-pc-ip-or-making-apple-pie/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>So, I used to think Lan Manager Domains and early NT Domains were the same thing</title>
		<link>https://virtuallyfun.com/2024/03/18/so-i-used-to-think-lan-manager-domains-and-early-nt-domains-were-the-same-thing/</link>
					<comments>https://virtuallyfun.com/2024/03/18/so-i-used-to-think-lan-manager-domains-and-early-nt-domains-were-the-same-thing/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Mon, 18 Mar 2024 16:55:33 +0000</pubDate>
				<category><![CDATA[netbeui]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[OS/2]]></category>
		<category><![CDATA[virtual networking]]></category>
		<category><![CDATA[Windows NT 3.5]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14112</guid>

					<description><![CDATA[Obviously, this was wrong. And besides the NetBEUI being eaten on the network for no reason I can see, as I&#8217;m sure these machines should be able to talk to each-other this was the end result: And what about not &#8230; <a href="https://virtuallyfun.com/2024/03/18/so-i-used-to-think-lan-manager-domains-and-early-nt-domains-were-the-same-thing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Obviously, this was wrong.</p>



<p class="wp-block-paragraph">And besides the NetBEUI being eaten on the network for no reason I can see, as I&#8217;m sure these machines should be able to talk to each-other this was the end result:</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/Monitor_1_20240318-140229-243.png"><img loading="lazy" decoding="async" width="800" height="600" src="/wp-content/uploads/2024/03/Monitor_1_20240318-140229-243.png" alt="" class="wp-image-14113" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-140229-243.png 800w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-140229-243-300x225.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-140229-243-768x576.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-140229-243-400x300.png 400w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a><figcaption class="wp-element-caption">The OS/2 domain is not a Windows NT domain</figcaption></figure>



<p class="wp-block-paragraph">And what about not trying to create a machine account?</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/Monitor_1_20240318-163516-226.png"><img loading="lazy" decoding="async" width="800" height="600" src="/wp-content/uploads/2024/03/Monitor_1_20240318-163516-226.png" alt="" class="wp-image-14118" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-163516-226.png 800w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-163516-226-300x225.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-163516-226-768x576.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-163516-226-400x300.png 400w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a><figcaption class="wp-element-caption">The domain controller for this domain cannot be located.</figcaption></figure>



<p class="wp-block-paragraph">I should have expected this not to work.</p>



<p class="wp-block-paragraph">Having dumped NetBEUI for TCP/IP, I can see them talk, it&#8217;s not a name resolution issue or anything like that.  On the flip side can LAN Manager join a Windows NT domain?  I&#8217;m not sure on that one either.</p>



<p class="wp-block-paragraph">And not too surprising using the LAN Manager DOS client I can log onto the OS/2 domain just fine.</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/Monitor_1_20240318-113355-293.png"><img loading="lazy" decoding="async" width="640" height="480" src="/wp-content/uploads/2024/03/Monitor_1_20240318-113355-293.png" alt="" class="wp-image-14115" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-113355-293.png 640w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-113355-293-300x225.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-113355-293-400x300.png 400w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></figure>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/Monitor_1_20240318-113503-245.png"><img loading="lazy" decoding="async" width="640" height="480" src="/wp-content/uploads/2024/03/Monitor_1_20240318-113503-245.png" alt="" class="wp-image-14116" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-113503-245.png 640w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-113503-245-300x225.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-113503-245-400x300.png 400w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></figure>



<p class="wp-block-paragraph">Kind of verbose and annoying but yes, it works!</p>



<p class="wp-block-paragraph">However, despite LAN Manager 2.2 providing a TCP/IP stack to connect to both OS/2 and NT servers, there is no winsock interoperability dll.  Do I really have to load more than one NIC and stack at the same time?!</p>



<p class="wp-block-paragraph">The one thing I had been hoping to build up to was using mailslots, a UDP like IPC/RPC mechanism from back in the old dark days of early LAN Manager 1.0  The can be broadcasted to all nodes on the network that are listening by writing to \\*\MAILSLOT\&lt;YOUR LOCAL BOX>.  On the surface these broadcast type things are modern day terrible, we prefer lookup services like DNS, but in the 80&#8217;s it&#8217;s not like people were going to put tens of thousands of machines on a single network&#8230;</p>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2024/03/Monitor_1_20240318-154130-338.png"><img loading="lazy" decoding="async" width="640" height="480" src="/wp-content/uploads/2024/03/Monitor_1_20240318-154130-338.png" alt="" class="wp-image-14117" srcset="https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-154130-338.png 640w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-154130-338-300x225.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/03/Monitor_1_20240318-154130-338-400x300.png 400w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a><figcaption class="wp-element-caption">The Mandelbrot example</figcaption></figure>



<p class="wp-block-paragraph">I cannot thank my Patrons enough for this attempt at doing something multitenant as I really did need <a href="https://archive.org/details/microsoft_c_600-3.5disks" target="_blank" rel="noreferrer noopener">Microsoft C 6</a>, and the <a href="https://archive.org/details/winsdk-30-damaged" target="_blank" rel="noreferrer noopener">Windows 3.0 SDK</a>.  The example from the Lan Manager 2.0 Programmer&#8217;s Toolkit (Why was this stuff never in the base SDK?!) shows an <a href="https://github.com/neozeed/Microsoft_LAN_Manager_2.0_Programmers_Toolkit/tree/main/SAMPLES/MANDEL/SERVER" target="_blank" rel="noreferrer noopener">OS/2 LAN Manager service</a> providing rendering services over the network to render the <a href="https://github.com/neozeed/Microsoft_LAN_Manager_2.0_Programmers_Toolkit/tree/main/SAMPLES/MANDEL" target="_blank" rel="noreferrer noopener">Mandelbrot</a> to the <a href="https://github.com/neozeed/Microsoft_LAN_Manager_2.0_Programmers_Toolkit/tree/main/SAMPLES/MANDEL/CLIENT" target="_blank" rel="noreferrer noopener">Win16 client</a>.  It&#8217;s actually very neat.  It really gives OS/2 that pre-Windows NT feel, with the services as they are not in your face, although at the same time I&#8217;ve found that I had to do an interactive logon to get things started, so maybe LAN Manager OS/2 servers were not &#8220;Lights out&#8221;?  I guess I need to look more into it, as it just feels more and more how NTOS2/ clearly grew out of OS/2 + LAN Manager.</p>



<p class="wp-block-paragraph">Obviously as soon as I see this, thanks to getting my hands on the OS/2 6.78 network client, I also see it&#8217;s not only <a href="https://www.theregister.com/2023/03/13/microsoft_remote_mailslots_out/" target="_blank" rel="noreferrer noopener">obsolete but going to be removed</a>.  If anything, it&#8217;s impressive that an OS/2 feature has remained in NT for so long.</p>



<p class="wp-block-paragraph"><a href="https://github.com/neozeed/Microsoft_LAN_Manager_1.0_SDK" target="_blank" rel="noreferrer noopener">The LAN Manager 1.0 disk sets</a>, actually include headers &amp; libraries, but no examples.</p>



<p class="wp-block-paragraph">I had wanted to do something with TCPIP and mailslots, and I had figured that Windows NT would be the best glue being in that perfect space of OS/2 compatibility and robust TCP/IP, but I wasted far too much time to basically see that if they are not part of the same domain, the mailslot&#8217;s just don&#8217;t work.</p>



<p class="wp-block-paragraph">I haven&#8217;t given up, but I primarily used Netware for PC networking back in the 90&#8217;s so this is all kind of new to me. Looking through resource kits online there doesn&#8217;t seem to be a lot of material about integrating LAN Manager into a NT Domain.</p>



<p class="wp-block-paragraph">I&#8217;ll have to re-think this.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/03/18/so-i-used-to-think-lan-manager-domains-and-early-nt-domains-were-the-same-thing/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Installing NetManage Chameleon on Windows 3.0!</title>
		<link>https://virtuallyfun.com/2024/03/03/installing-netmanage-chameleon-on-windows-3-0/</link>
					<comments>https://virtuallyfun.com/2024/03/03/installing-netmanage-chameleon-on-windows-3-0/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sun, 03 Mar 2024 22:58:36 +0000</pubDate>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[microsoft windows]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[QEMU]]></category>
		<category><![CDATA[telnet]]></category>
		<category><![CDATA[virtual networking]]></category>
		<category><![CDATA[Windows 3.0]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14076</guid>

					<description><![CDATA[After seeing the spotlight on twitter from WinWorld, on NetManage Chameleon, an old TCP/IP stack that supported Windows 3.0! With more details over on the forum. I was inspired to set it up myself. I did go a bit overboard &#8230; <a href="https://virtuallyfun.com/2024/03/03/installing-netmanage-chameleon-on-windows-3-0/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">After seeing the spotlight on <a href="https://twitter.com/winworldpc/status/1762276492396892366">twitter from WinWorld</a>, on NetManage Chameleon, an old TCP/IP stack that supported Windows 3.0!  With more details <a href="https://forum.winworldpc.com/discussion/15081/software-spotlight-getting-windows-3-0-on-the-internet-netmanage-chameleon">over on the forum</a>. I was inspired to set it up myself.<a href="https://www.youtube.com/@neozeed8139"></a></p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Installing NetManage Chameleon on Windows 3.0!" width="584" height="438" src="https://www.youtube.com/embed/aIqdQAb4jP8?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></figure>



<p class="wp-block-paragraph">I did go a bit overboard showing how to install MS-DOS &amp; Windows 3.0 on Qemu.  Maybe it&#8217;ll help someone who wants to try to use Qemu, but is too scared?  Maybe I moved too quickly.</p>



<p class="wp-block-paragraph">One thing I did do differently in this run, is launching the monitor and a serial port as tcp servers so I could telnet into the VM, effectively having a way to share text like a clipboard back and forth.  I&#8217;m kind of surprised I hadn&#8217;t really started using Qemu in this manner much earlier.</p>



<pre class="wp-block-code"><code>qemu.exe -L pc-bios ^
-m 16 ^
-hda apricot.vmdk ^
-net nic,model=pcnet -net user ^
-monitor telnet:127.0.0.1:4000,server,nowait ^
-serial telnet:127.0.0.1:4001,server,nowait ^
-fda yourdisk_here.vfd</code></pre>



<p class="wp-block-paragraph">Surprisingly it went surprisingly well, other than my goof of having the OS/2 driver instead of the MS-DOS driver for the nic.</p>



<p class="wp-block-paragraph">Sadly, the tn3270 program bundled with Chameleon doesn&#8217;t work properly with Hercules.</p>



<p class="wp-block-paragraph">As always I&#8217;ve uploaded it to <a href="https://archive.org/details/apricot-dos4-win3-chameleon3" target="_blank" rel="noreferrer noopener">archive.org: apricot-dos4-win3-chameleon3.7z</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/03/03/installing-netmanage-chameleon-on-windows-3-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Because I hate losing my mind with Apache</title>
		<link>https://virtuallyfun.com/2024/01/12/because-i-hate-losing-my-mind-with-apache/</link>
					<comments>https://virtuallyfun.com/2024/01/12/because-i-hate-losing-my-mind-with-apache/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 12 Jan 2024 23:03:58 +0000</pubDate>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[networking]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=13768</guid>

					<description><![CDATA[I needed to setup another WordPress for something else, and I host it on a server with no https. However of course it&#8217;s fronted by a proxy with https. And WordPress embeddeds the http into the stream, and changing that &#8230; <a href="https://virtuallyfun.com/2024/01/12/because-i-hate-losing-my-mind-with-apache/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I needed to setup another WordPress for something else, and I host it on a server with no https.  However of course it&#8217;s fronted by a proxy with https.  And WordPress embeddeds the http into the stream, and changing that with redirects causes it to ping pong like crazy.</p>



<p class="wp-block-paragraph">So this is by no means the best fix, it is *A* fix.  For me. YMMV.</p>



<p class="wp-block-paragraph">I had to add this into the site config from apache</p>



<pre class="wp-block-code"><code>&lt;Directory /var/www/mynewsite.org/&gt;
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    allow from all
    Require all granted
&lt;/Directory&gt;</code></pre>



<p class="wp-block-paragraph">And does that work? no it sets up mod_rewrite (you did a2enamod it right?! RIGHT?!)</p>



<pre class="wp-block-code"><code>RewriteEngine on
Header always set Content-Security-Policy: upgrade-insecure-requests
RewriteRule ^$ /wordpress &#91;L]
</code></pre>



<p class="wp-block-paragraph">So the big thing here is updating the header.  I had to search a bit to find that part, so yeah that was needed.  The other part is that wordpress really wants to be in /wordpress not in the root, so a simple RewriteRule will put that in it&#8217;s place.</p>



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



<p class="wp-block-paragraph">I should explain my hosting situation more.  I&#8217;ve been forced into some kind of nomadic situation, and thanks to some weird issue on Azure&#8217;s WordPress container thing my site ate itself.  Like it literally destroyed the files.  I had backups of course, and well either being evicted from a data centre because of the Windows CE Nethack scandal, or having hosting companies either go under with no warning, or drop me for being far too much traffic than they signed up for, I&#8217;d taken to not only owning my data but hosting it all myself.</p>



<p class="wp-block-paragraph">I do enjoy the &#8216;nomad&#8217; aspect of it all, but it&#8217;s a little crazy.  I like to think of this as portable stealth hosting as I can blend into user traffic, and I can physically take my data with me.  Of course, I have backups as well!</p>



<p class="wp-block-paragraph">So to describe the setup I guess i need a fine MS Paint style drawing!</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2024/01/how-i-connect.png"><img loading="lazy" decoding="async" width="1024" height="425" src="https://virtuallyfun.com/wp-content/uploads/2024/01/how-i-connect-1024x425.png" alt="" class="wp-image-13772" srcset="https://virtuallyfun.com/wp-content/uploads/2024/01/how-i-connect-1024x425.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/01/how-i-connect-300x124.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/01/how-i-connect-768x319.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/01/how-i-connect-500x207.png 500w, https://virtuallyfun.com/wp-content/uploads/2024/01/how-i-connect.png 1535w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">How the magic works</figcaption></figure>



<p class="wp-block-paragraph">I have been using this kind of setup to some degree going back to when <a href="https://virtuallyfun.com/2017/02/25/personal-altavista-utzoo-reloaded/" target="_blank" rel="noreferrer noopener">I setup the utzoo search engine back in 2017.</a>  I&#8217;d only expanded on it to host everything now.  Working backwards I need to blend into residential traffic, so I need a typical 90&#8217;s like office vpn, which means PPTP.  So going on <a href="https://lowendbox.com/" target="_blank" rel="noreferrer noopener">lowendbox</a>, I get some cheap VPS, install haproxy and PPTP server onto that.  This way I&#8217;m basically renting out a static IP address for less than a Starbucks, but it let&#8217;s me have the freedom to move around and just look like user traffic, as the PPTP connection is bi-directional.</p>



<p class="wp-block-paragraph">On the VPS I use a haproxy much like this:</p>



<pre class="wp-block-code"><code>	bind *:443 ssl crt /etc/haproxy/haproxy.pem
	redirect scheme https code 301 if !{ ssl_fc }
	mode http
	acl cloudflare src 173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 141.101.64.0/18 108.162.192.0/18 190.93.240.0/20 188.114.96.0/20 197.234.240.0/22 198.41.128.0/17 162.158.0.0/15 104.16.0.0/13 104.24.0.0/14 172.64.0.0/13 131.0.72.0/22
	tcp-request content accept if cloudflare
	tcp-request content reject
	acl host_utzoo hdr(host) -i utzoo.superglobalmegacorp.com
	acl host_utzoo hdr(host) -i altavista.superglobalmegacorp.com
	acl super_virt hdr(host) -i virtuallyfun.superglobalmegacorp.com
	acl host_blog hdr(host) -i virtuallyfun.com
	acl host_blog hdr(host) -i unix.superglobalmegacorp.com
	acl host_bow  hdr(host) -i bow.superglobalmegacorp.com
	acl host_blog hdr(host) -i oldlinux.superglobalmegacorp.com
	acl host_blog hdr(host) -i macmint.superglobalmegacorp.com
	acl host_blog hdr(host) -i tuhs.superglobalmegacorp.com
	acl host_nt31 hdr(host) -i winnt31.superglobalmegacorp.com
	acl host_blog hdr(host) -i superglobalmegacorp.com

        acl blog_path path_beg -i /wordpress
        acl blog hdr(host) -i virtuallyfun.com

	redirect prefix https://virtuallyfun.com code 301 if { hdr(host) -i virtuallyfun.superglobalmegacorp.com }

        http-request set-uri %&#91;path,regsub(/wordpress/,/)] if blog_path blog
        redirect code 301 location https://virtuallyfun.com/ if blog_path blog

	use_backend utzoo if host_utzoo
	use_backend lenovo if host_blog
	use_backend nt31 if host_nt31
	use_backend bow if host_bow


backend utzoo
	server zoo1 192.168.23.10:8080

backend lenovo
	server blog1 192.168.23.10:80

backend bow
	server bow1 192.168.23.10:8888

backend nt31
	server apache 192.168.23.5:80</code></pre>



<p class="wp-block-paragraph">This way I can use various backend servers to split up various domains on the same port.  Since cloudflare fronts I don&#8217;t need any weird SSL certificate with combination domains.  I also get to sneak in a redirect for the old <a href="https://virtuallyfun.superglobalmegacorp.com/" target="_blank" rel="noreferrer noopener">virtuallyfun.superglobalmegacorp.com</a>, as google had a major fit about me not having it at the top level domain.  The <a href="https://winnt31.superglobalmegacorp.com/" target="_blank" rel="noreferrer noopener">Windows NT 3.1</a><a href="https://winnt31.superglobalmegacorp.com/"> server</a> is a Qemu virtual machine running on the VPS.  It just has a static page so there wasn&#8217;t much point being all that sophisticated.</p>



<p class="wp-block-paragraph">I then setup a Cloudflare account, and then point my domain directly to the VPS.  This also let&#8217;s me grab a certificate from <a href="https://cloudflare.com/" target="_blank" rel="noreferrer noopener">Cloudflare</a> to load onto the VPS to encrypt the conversation from them to my VPS, just as the PPTP connection is also encrypted.  Another advantage of PPTP over say IPsec is that older OSs like Windows NT 4.0 support it.  Not to mention with tunnels being left up so incredibly long, once again I want to blend in as user traffic, and IPsec or OpenVPN just draws too much attention.  It sure did in China, and sadly that&#8217;s the model I fully expect more and more of the world to be following.</p>



<figure class="wp-block-image size-large"><a href="https://developers.cloudflare.com/ssl/get-started"><img loading="lazy" decoding="async" width="1024" height="386" src="https://virtuallyfun.com/wp-content/uploads/2024/01/ssl-encryption-is-full-1024x386.png" alt="" class="wp-image-13775" srcset="https://virtuallyfun.com/wp-content/uploads/2024/01/ssl-encryption-is-full-1024x386.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/01/ssl-encryption-is-full-300x113.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/01/ssl-encryption-is-full-768x290.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/01/ssl-encryption-is-full-500x189.png 500w, https://virtuallyfun.com/wp-content/uploads/2024/01/ssl-encryption-is-full.png 1236w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Cloudflare Full Encryption</figcaption></figure>



<p class="wp-block-paragraph">The other advantage of Cloudflare is that they do some aggressive caching which makes hosting on a residential connection viable.  In this case over the last 30 days I&#8217;ve only had to &#8216;upload&#8217; 41 of the 158GB of traffic.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2024/01/cloudflare-bandwidth-13-1-2024.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="396" src="https://virtuallyfun.com/wp-content/uploads/2024/01/cloudflare-bandwidth-13-1-2024-1024x396.png" alt="" class="wp-image-13776" srcset="https://virtuallyfun.com/wp-content/uploads/2024/01/cloudflare-bandwidth-13-1-2024-1024x396.png 1024w, https://virtuallyfun.com/wp-content/uploads/2024/01/cloudflare-bandwidth-13-1-2024-300x116.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/01/cloudflare-bandwidth-13-1-2024-768x297.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/01/cloudflare-bandwidth-13-1-2024-500x194.png 500w, https://virtuallyfun.com/wp-content/uploads/2024/01/cloudflare-bandwidth-13-1-2024.png 1516w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">73% of my bandwidth is cached!</figcaption></figure>



<p class="wp-block-paragraph">If something gets popular this can make all the difference!  Again, it&#8217;s key to being stealthy.</p>



<p class="wp-block-paragraph">In the same way it also allows me to host my own Exchange, or any other weird application.  Which then takes me to the Apache config.  I have Windows 10 on the Lenovo, and loaded up WSLv1 so I could have Windows natively integrate with the filesystem.  I also like that it&#8217;s got such low overhead as WSLv1 is just a subsystem, unlike v2 being a lightweight VM, like shades of Win/OS2 back in the day.  My setup takes a big page from <a href="https://virtuallyfun.com/2022/12/08/running-the-swgemu-server-on-wsl/" target="_blank" rel="noreferrer noopener">running SWGEMU on WSLv1</a>, where I use the Win64 version of MariaDB, and the Apache/PHP is in a Linux Ubuntu distro.  The other advantage here is that as my Lenovo PPTP&#8217;s into the VPS, the Apache will by default listen on port 80.  Which then leads to the whole needing to set security on the headers to allow the http to become a seamless https.  </p>



<p class="wp-block-paragraph">I also can have multiple things listening on different ports, just as I use haproxy again locally to split out the utzoo site onto the old Apache server with all the re-write rules, and then finally to the Windows NT 4.0 workstation with the <a href="https://archive.org/details/alta-vista-personal-97-for-95-and-nt" target="_blank" rel="noreferrer noopener">Altavista Personal desktop search</a>.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2024/01/Windows-10-web-server.png"><img loading="lazy" decoding="async" width="830" height="427" src="https://virtuallyfun.com/wp-content/uploads/2024/01/Windows-10-web-server.png" alt="" class="wp-image-13778" srcset="https://virtuallyfun.com/wp-content/uploads/2024/01/Windows-10-web-server.png 830w, https://virtuallyfun.com/wp-content/uploads/2024/01/Windows-10-web-server-300x154.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/01/Windows-10-web-server-768x395.png 768w, https://virtuallyfun.com/wp-content/uploads/2024/01/Windows-10-web-server-500x257.png 500w" sizes="auto, (max-width: 830px) 100vw, 830px" /></a><figcaption class="wp-element-caption">Windows 10 performance with the blog</figcaption></figure>



<p class="wp-block-paragraph">The overall performance on this low end Xeon E3-1225 v2 is quite acceptable.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2024/01/windows-10-performance-details.png"><img loading="lazy" decoding="async" width="581" height="375" src="https://virtuallyfun.com/wp-content/uploads/2024/01/windows-10-performance-details.png" alt="" class="wp-image-13779" srcset="https://virtuallyfun.com/wp-content/uploads/2024/01/windows-10-performance-details.png 581w, https://virtuallyfun.com/wp-content/uploads/2024/01/windows-10-performance-details-300x194.png 300w, https://virtuallyfun.com/wp-content/uploads/2024/01/windows-10-performance-details-465x300.png 465w" sizes="auto, (max-width: 581px) 100vw, 581px" /></a><figcaption class="wp-element-caption">WSLv1 processes are directly exposed.</figcaption></figure>



<p class="wp-block-paragraph">As I had mentioned WSLv1 being a subsystem means that the processes are transparent so task-manager can immediately show yo what is going on.  The opaqueness of Virtual Machines just adds to the time to identify any issues.</p>



<p class="wp-block-paragraph">And all it takes is a scheduled task to dump the MariaDB, and run an xcopy onto my OneDrive, and now I&#8217;ve got a cloud backup.  No plugins needed, no scripts that will break  as cloud API&#8217;s are forever being depreciated and changing. Very nice!</p>



<p class="wp-block-paragraph">I do like the flexibility of this being a somewhat simple setup.  Not to mention being able to have more than one WSL container for various applications, being able to go so far as to break my Apache setup into multiple instances, all being &#8216;l7 routed&#8217; through an instance of haproxy either at home, or in the VPS is very nice.</p>



<p class="wp-block-paragraph">Oh, sure I could mess with self signed certs, and trust myself but I just didn&#8217;t want to deal with the overhead of double encryption.  Maybe it&#8217;s something I&#8217;ll revisit later.</p>



<p class="wp-block-paragraph">Also sorry for the ads.  2024 is starting out&#8230;. interesting.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/01/12/because-i-hate-losing-my-mind-with-apache/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Sun Ray adventures pt1</title>
		<link>https://virtuallyfun.com/2023/12/15/sun-ray-adventures-pt1/</link>
					<comments>https://virtuallyfun.com/2023/12/15/sun-ray-adventures-pt1/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 15 Dec 2023 08:18:30 +0000</pubDate>
				<category><![CDATA[guest post]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SUN]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=13572</guid>

					<description><![CDATA[this is a guest post by night3719 A while back I was looking for a 19in 5:4 screen so I messaged a guy I know that would normally have something like it. When I asked him about it, he said &#8230; <a href="https://virtuallyfun.com/2023/12/15/sun-ray-adventures-pt1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">this is a guest post by night3719</p>



<p class="wp-block-paragraph">A while back I was looking for a 19in 5:4 screen so I messaged a guy I know that would normally have something like it. When I asked him about it, he said he didn&#8217;t have any 19in screens, however, he has this &#8220;14in Sun LCD&#8221;. I was intrigued so I asked him to send pics of it. Lo and behold, this is what he sent me the next day:</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/IMG_1668-e1702629113292.png"><img loading="lazy" decoding="async" width="762" height="1024" src="https://virtuallyfun.com/wp-content/uploads/2023/12/IMG_1668-e1702629113292-762x1024.png" alt="" class="wp-image-13573" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/IMG_1668-e1702629113292-762x1024.png 762w, https://virtuallyfun.com/wp-content/uploads/2023/12/IMG_1668-e1702629113292-223x300.png 223w, https://virtuallyfun.com/wp-content/uploads/2023/12/IMG_1668-e1702629113292-768x1032.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/12/IMG_1668-e1702629113292.png 827w" sizes="auto, (max-width: 762px) 100vw, 762px" /></a></figure>



<p class="wp-block-paragraph">Unfortunately, bad news came. He powered it on and told me it was flickering. Ok fine. These are hard to come by in my country (Vietnam) so I decided to get it anyways. He also cut the price by half, so it was reasonable-ish.</p>



<p class="wp-block-paragraph">When I got home and powered it on&#8230;. yeah. It was flickering. I opened up the menu of the LCD and I quickly noticed something peculiar: the image was flickering but the LCD menu was not. When I opened it up, I made yet another interesting discovery: the whole thing is practically a sun ray duct taped to a normal LCD. The sun ray board is not driving the lcd directly, there&#8217;s a separate controller board (similar to what you would find in a normal standalone display without a sun ray shaped tumor on the back).</p>



<p class="wp-block-paragraph">As it turns out the flickering was caused by a single cap that went bad. I replaced it and the image looks good.<br></p>



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



<p class="wp-block-paragraph"><br>There is a GUI thing I&#8217;ve read that allows you to configure various parameters of the sun ray so I tried to bring it up. No matter what key combo I pressed it didn&#8217;t show up. Once again, bad news came. My sun ray has the non-GUI firmware. The only way to enable it is to flash a GUI firmware or a firmware with GUI enabled (the firmware shipped with SRSS 5.1 and below has separate firmware files for GUI and non-GUI while SRSS 5.2 and later both GUI and non-GUI are a single file, GUI on/off is specified with a flag during flashing).<br><br>Okay then. No big deal, all I have to do is just flash the firmware, right? Well yes but no. I would very quickly find out that I don&#8217;t have the firmware. I had SRSS 5.4 installed and turns out, 5.3 and later stopped including the firmware and that was something you needed MOS for. Great job Larry!<br><br>Okay then. No big deal, all I have to do is just download SRSS 5.2, right? Once again, for the second time, yes but no.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/Pasted_image_20231213232205-cropped.png"><img loading="lazy" decoding="async" width="828" height="335" src="https://virtuallyfun.com/wp-content/uploads/2023/12/Pasted_image_20231213232205-cropped.png" alt="" class="wp-image-13585" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/Pasted_image_20231213232205-cropped.png 828w, https://virtuallyfun.com/wp-content/uploads/2023/12/Pasted_image_20231213232205-cropped-300x121.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/Pasted_image_20231213232205-cropped-768x311.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/12/Pasted_image_20231213232205-cropped-500x202.png 500w" sizes="auto, (max-width: 828px) 100vw, 828px" /></a></figure>



<p class="wp-block-paragraph"><br><em><strong>*cough*</strong></em><br><br>2 days later I got access to edelivery again. I downloaded SRSS 5.2. I uninstalled SRSS 5.4 and installed 5.2, all I have to do now is just flash the firmware right? riiiight??? Once again, for the THIRD time, yes but no. For some reason I was able to flash the firmware with &#8220;utload&#8220; (which has GUI disabled) but I couldn&#8217;t flash it with &#8220;utadm&#8220; despite it being able to connect to my T5220 and start a session just fine. As I would find out after one whole day wasted, I was supposed to use a separate network served by the T5220, and this is what I did:<br>Setup NET1 port as a dedicated interface for Sun Ray</p>



<pre class="wp-block-code"><code><br>-bash-3.2$ sudo utadm -a e1000g1<br>### Warning: DHCP Service is in the maintenance mode<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; There could be a problem with the DHCP configuration<br><br>### It is strongly recommended to fix the problem and then use:<br>### "/usr/sbin/svcadm clear svc:/network/dhcp-server:default"<br>### to get DHCP service out of the maintenance mode before running utadm<br><br>Do you want to Continue?&nbsp; (Y/&#91;N]): y<br>### Configuring /etc/nsswitch.conf<br>### Configuring Service information for Sun Ray<br>### configuring e1000g1 interface at subnet 192.168.128.0<br>&nbsp; Selected values for interface "e1000g1"<br>&nbsp;&nbsp;&nbsp; host address:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 192.168.128.1<br>&nbsp;&nbsp;&nbsp; net mask:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 255.255.255.0<br>&nbsp;&nbsp;&nbsp; net address:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 192.168.128.0<br>&nbsp;&nbsp;&nbsp; host name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t5220-e1000g1<br>&nbsp;&nbsp;&nbsp; net name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SunRay-e1000g1<br>&nbsp;&nbsp;&nbsp; first unit address: 192.168.128.16<br>&nbsp;&nbsp;&nbsp; last unit address:&nbsp; 192.168.128.240<br>&nbsp;&nbsp;&nbsp; auth server list:&nbsp;&nbsp; 192.168.128.1<br>&nbsp;&nbsp;&nbsp; firmware server:&nbsp;&nbsp;&nbsp; 192.168.128.1<br>&nbsp;&nbsp;&nbsp; router:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 192.168.128.1<br>&nbsp; Accept as is? (&#91;Y]/N):<br>### successfully setup "/etc/hostname.e1000g1" file<br>### successfully setup "/etc/inet/hosts" file<br>### successfully setup "/etc/inet/netmasks" file<br>### successfully setup "/etc/inet/networks" file<br>### Disabling Route Advertisement<br>### finished install of "e1000g1" interface<br><br>### Configuring firmware version for Sun Ray<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; All the units served by "t5220" on the 192.168.128.0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; network interface, running firmware other than version<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "4.3_146928-01_2011.06.03.14.41" will be upgraded at their next power-on.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>### Configuring Sun Ray Logging Functions<br><br><br>DHCP is not currently running, should I start it? (&#91;Y]/N): ### Error: unable to start dhcp services.<br>&nbsp;&nbsp;&nbsp; Please restart dhcp manually after utadm has completed.</code></pre>



<p class="wp-block-paragraph">well&#8230; oops. Shouldn&#8217;t&#8217;ve ignored that. One &#8220;svcadm clear dhcp-server&#8220; and one &#8220;svcadm restart dhcp-server&#8220; later&#8230; Let&#8217;s try to flash the firmware.</p>



<pre class="wp-block-code"><code>-bash-3.2$ sudo utfwadm -A -e 00144F6F69CA -n e1000g1 -G force<br>-n interface option ignored.&nbsp; It is no longer required with -e option.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Unit "00144F6F69CA" will be upgraded at its next power-on<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if it is served by host "t5220" and is connected to<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the&nbsp; network and is not already running firmware<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; version "4.3_146928-01_2011.06.03.14.41".<br><br>### stopped DHCP daemon<br>### started DHCP daemon<br>### reinitialized DHCP daemon</code></pre>



<p class="wp-block-paragraph">For those who are wondering what the flags do:</p>



<pre class="wp-block-code"><code>Options:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # add the specified unit(s) to the upgrade list
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # delete the specified unit(s) from the upgrade list
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -P&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # print version information
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-R&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # remove firmware modules from boot directory
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # apply to all units connected to the specific interface
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp; or subnet
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -e enetAddr&nbsp;&nbsp; # apply to the unit given by the six hex bytes
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp; of its ethernet address
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -n intf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # name of a dedicated network interface to enable upgrades&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp; (e.g., hme0, vge1, etc. "all" = all interfaces)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -G option&nbsp;&nbsp;&nbsp;&nbsp; # control enabling of configuration GUI on Sun Rays
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -g option&nbsp;&nbsp;&nbsp;&nbsp; # control disabling of configuration GUI on Sun Rays
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -i filename&nbsp;&nbsp; # append contents of filename to config files
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -N subnetwork # shared subnetwork address to enable upgrades on
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # actively disable firmware download (useful with "-e")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -V&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # only generate version files, do not configure DHCP
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # force firmware load even if downgrading
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -u&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # use frame buffer to do download and decompression
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -f firmware&nbsp;&nbsp; # use the firmware described by the path "firmware"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp; for upgrades on the given network interface(s)</code></pre>



<p class="wp-block-paragraph"> Power cycle with CTRL+Pause+A and&#8230; </p>



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



<p class="wp-block-paragraph">&#8230;success! </p>



<p class="wp-block-paragraph">Fun fact: the firmware is stored temporarily in the framebuffer (iirc at least) The GUI can now be accessed: </p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/IMG_1701-scaled.jpg"><img loading="lazy" decoding="async" width="768" height="1024" src="https://virtuallyfun.com/wp-content/uploads/2023/12/IMG_1701-768x1024.jpg" alt="" class="wp-image-13577" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/IMG_1701-768x1024.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/12/IMG_1701-225x300.jpg 225w, https://virtuallyfun.com/wp-content/uploads/2023/12/IMG_1701-1152x1536.jpg 1152w, https://virtuallyfun.com/wp-content/uploads/2023/12/IMG_1701-1536x2048.jpg 1536w, https://virtuallyfun.com/wp-content/uploads/2023/12/IMG_1701-scaled.jpg 1920w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/12/15/sun-ray-adventures-pt1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Joining NT 4 to a SAMBA Domain Controller</title>
		<link>https://virtuallyfun.com/2023/07/24/joining-nt-4-to-a-samba-domain-controller/</link>
					<comments>https://virtuallyfun.com/2023/07/24/joining-nt-4-to-a-samba-domain-controller/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Mon, 24 Jul 2023 23:46:54 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[DEC Alpha]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[virtual networking]]></category>
		<category><![CDATA[Win64]]></category>
		<category><![CDATA[Windows NT 4.0]]></category>
		<guid isPermaLink="false">http://virtuallyfun.com/?p=13029</guid>

					<description><![CDATA[or the Unbridled rage of living on the trailing edge. I hosted a Porting Party last where where I setup my Dec Alpha as a terminal server allowing people from all over the world to connect in and cross compile &#8230; <a href="https://virtuallyfun.com/2023/07/24/joining-nt-4-to-a-samba-domain-controller/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">or the Unbridled rage of living on the trailing edge.</p>



<p class="wp-block-paragraph">I hosted a Porting Party last where where I setup my Dec Alpha as a terminal server allowing people from all over the world to connect in and cross compile software for the <a href="https://virtuallyfun.com/2023/06/26/axp64-2210-installation-media-reconstruction/" target="_blank" rel="noreferrer noopener">64bit version of Windows for the Dec Alpha</a>.  While many problems were overcome, and many more remain, I have to say the most annoying thing was joining a domain hosted by a SAMBA server.</p>



<p class="wp-block-paragraph">In my mind, I though the easiest way to get files in &amp; out of the Alpha was not to use something like IIS/FTP where it would probably lead to end-less issues with text/binary/active/passive modes, but rather I should rent a VPS, install the OS default SAMBA and just map drives.  The benefit of the VPS is that it has a public address, so no NAT is required.  The VPS had an option for either CentOS (no) or Debian 10.  I went with the Debian, and did an in place upgrade to 11, then 12. Nothing special.</p>



<p class="wp-block-paragraph">I&#8217;d never actually used SAMBA as a domain controller before, but I thought this would be a fun experiment.  So the idea is then that the VPS running SAMBA is the Domain Controller, and my Alpha joins it as a member server.  Everyone else can use Windows or any SAMBA client and map drives, and then copy files to the VPS, and then copy back and forth from the Alpha to the VPS.  This part worked fine.</p>



<p class="wp-block-paragraph">What didn&#8217;t work was SAMBA version 4.</p>



<p class="wp-block-paragraph">I had come up with this config, based on the fragments of the default config, and and hints from <a rel="noreferrer noopener" href="https://wiki.samba.org/index.php/Setting_up_Samba_as_an_NT4_PDC_(Quick_Start)" target="_blank">samba.org</a>. </p>



<pre class="wp-block-code"><code>&#91;global]
    netbios name = PDC
    passdb backend = tdbsam
    server max protocol = NT1
    username map = /usr/local/samba/etc/username.map
    workgroup = ALPHAPARTY
    server string = Samba Server
    security = user
    hosts allow = 127.0.0.1, &lt;&lt;&lt;peoples networks...>>>
    load printers = yes
    log file = /usr/local/samba/var/log.%m
    max log size = 50
    passdb backend = tdbsam
    local master = yes
    os level = 33
    domain master = yes
    preferred master = yes
    domain logons = yes
    wins support = yes
    dns proxy = no
    add user script = /usr/sbin/useradd %u
    add group script = /usr/sbin/groupadd %g
    add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
    delete user script = /usr/sbin/userdel %u
    delete user from group script = /usr/sbin/deluser %u %g
    delete group script = /usr/sbin/groupdel %g
&#91;homes]
    comment = Home Directories
    browseable = no
    writable = yes
&#91;printers]
    comment = All Printers
    path = /usr/spool/samba
    browseable = no
    guest ok = no
    writable = no
    printable = yes
&#91;public]
    comment = share for everyone
    path = /public
    public = yes
    writable = yes
    printable = no
    creaet mask = 0777</code></pre>



<p class="wp-block-paragraph">I had endless issues with the machine account not being either created correctly or not being authenticated. I tried <a rel="noreferrer noopener" href="https://www.dekart.com/howto/howto_logon/howto_logon_samba/trust_acc" target="_blank">manually creating it</a>, to no avail. No matter what I tried it didn&#8217;t work.</p>



<p class="wp-block-paragraph">Working with NT 4.0 must be depreciated or something but no matter what I tried IT JUST DIDN&#8217;T WORK.</p>



<p class="wp-block-paragraph">Feeling outraged, I purged the old Samba, downloaded the source code to 3.6.25, built that, and using the same configuration I had tried to put together, it just worked.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-joining-the-domain.png"><img loading="lazy" decoding="async" width="830" height="330" src="https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-joining-the-domain.png" alt="" class="wp-image-13026" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-joining-the-domain.png 830w, https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-joining-the-domain-300x119.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-joining-the-domain-768x305.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-joining-the-domain-500x199.png 500w" sizes="auto, (max-width: 830px) 100vw, 830px" /></a><figcaption class="wp-element-caption">Dec Alpha joining the SMB Domain</figcaption></figure>



<p class="wp-block-paragraph">Adding users was somewhat straight forward:</p>



<pre class="wp-block-code"><code>
useradd -M -s /bin/bash neozeed
passwd neozeed
/usr/local/samba/bin/smbpasswd -a neozeed
/usr/local/samba/bin/smbpasswd -e neozeed
mkdir /home/neozeed
chown neozeed /home/neozeed/</code></pre>



<p class="wp-block-paragraph">Creating both a Linux user &amp; directory, and the SAMBA credentials.  On the terminal server, all that remains was assigning a local home directory &amp; profile directories, as you really don&#8217;t want those over the WAN.</p>



<p class="wp-block-paragraph">I have no idea if this is a warning to others, or whatever the larger issue is.</p>



<h2 class="wp-block-heading">Porting Party II</h2>



<p class="wp-block-paragraph">At any rate I&#8217;ll be running another porting party this coming weekend.  I can host cross compiling fine, but we need people with the 64bit Whistler beta installed to test.  The best way to get details is over on <a rel="noreferrer noopener" href="https://discord.gg/HMwevcN" target="_blank">discord</a>.  Lately the IRC bridge is down more than it&#8217;s up, and I can&#8217;t effectively send out passwords &amp; get your network block to allow access to the RDP, since I&#8217;m not going to open up worldwide access to a Windows NT 4.0 SP5 machine.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://discord.gg/eCmXBUwx?event=1133184155547615273"><img loading="lazy" decoding="async" width="800" height="600" src="https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-64-porting-party-2.jpg" alt="" class="wp-image-13032" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-64-porting-party-2.jpg 800w, https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-64-porting-party-2-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-64-porting-party-2-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-64-porting-party-2-400x300.jpg 400w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a><figcaption class="wp-element-caption">Porting Party II</figcaption></figure>
</div>


<p class="wp-block-paragraph">So for anyone interested in porting their C/C++ to either the 32bit Alpha Windows, or 64bit Alpha Windows come join us on discord!</p>



<p class="wp-block-paragraph">I&#8217;ll fire up the Alpha on Friday afternoon GMT and expect the event to run all weekend!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/07/24/joining-nt-4-to-a-samba-domain-controller/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Connecting NT 4.0 clients to a SAMBA 4.17.9-Debian server</title>
		<link>https://virtuallyfun.com/2023/07/16/connecting-nt-4-0-clients-to-a-samba-4-17-9-debian-server/</link>
					<comments>https://virtuallyfun.com/2023/07/16/connecting-nt-4-0-clients-to-a-samba-4-17-9-debian-server/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sun, 16 Jul 2023 14:15:15 +0000</pubDate>
				<category><![CDATA[netbeui]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[Windows NT 4.0]]></category>
		<guid isPermaLink="false">http://virtuallyfun.com/?p=12993</guid>

					<description><![CDATA[This is a brief but annoying thing. I want to have an internet server that people can map drives to, for copying data in/out for the upcoming Dec Alpha AXP64 building extravaganza! I wan tot use my Dec Alpha for &#8230; <a href="https://virtuallyfun.com/2023/07/16/connecting-nt-4-0-clients-to-a-samba-4-17-9-debian-server/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">This is a brief but annoying thing.</p>



<p class="wp-block-paragraph">I want to have an internet server that people can map drives to, for copying data in/out for the upcoming Dec Alpha AXP64 building extravaganza!  I wan tot use my Dec Alpha for building since it&#8217;s got a gigabyte of RAM.  One of the hard parts is that NT 4 is beyond obsolete, and twice as much on the DEC Alpha.  I was figuring renting a VPS, and using it as a SAMBA server so people can simply map a drive from home, copy files to the VPS, terminal server to the Alpha, and copy files to &amp; from the internet.  Easy right?!</p>



<p class="wp-block-paragraph">I was non stop getting this error:</p>



<pre class="wp-block-code"><code>System error 1326 has occurred.

Login failure: unknown user name or bad password.</code></pre>



<p class="wp-block-paragraph">Except I knew the username &amp; password was correct.</p>



<p class="wp-block-paragraph">The key part involved a few parameters to get it working.  Although many people reported success by simply setting the protocol level, for me I had to set that and the lanman/ntlm auth to yes.  Trying to enable NT4 compatible encryption didn&#8217;t work either.</p>



<pre class="wp-block-code"><code>&#91;global]
   workgroup = WORKGROUP
   server min protocol = NT1
   client min protocol = NT1
   lanman auth=yes
   ntlm auth=yes</code></pre>



<p class="wp-block-paragraph">I&#8217;m not sure if it&#8217;s all that helpful to the world at large, or if it&#8217;s just super common knowledge, but I haven&#8217;t setup SAMBA in like forever.  I guess I could go one further and join it to the domain but that doesn&#8217;t seem like it&#8217;s all that needed or all that smart.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/07/16/connecting-nt-4-0-clients-to-a-samba-4-17-9-debian-server/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
