Personally, I’ve never used any MIPS workstations with Windows NT, I’ve been lucky to have used the PowerPC build for IIS (it was cool in that intel hacks wouldn’t work.. It’s too bad it didn’t live long from Microsoft’s end) and of course SQL server on the Dec Alpha. I also used a Dec Alpha as a workstation (the Multia!) at the time I recall it was cool as it could decode MP3’s in real-time! Sadly, my Multia died the day Microsoft killed the port.
Anyways while I was searching around hoping the Qemu forum had come alive (it is!) I came across this post:
Hello,
I wanted to let you know that I succeeded to run MS Windows NT/MIPS in the Qemu emulator.
As far as I know, Qemu is the first emulator to be able to run Windows NT non i386/x64.
Some screenshots:
http://hpoussineau.free.fr/qemu/arc20081202-nt350-4.png
http://hpoussineau.free.fr/qemu/arc20090315_nt4.png
Code needs to be cleaned up and will be contributed upstream.
Herve
What is this? Well click the links! It is what it sounds like, Herve got Windows NT running on the MIPS emulation for Qemu!!
I’ve tested a 3.51 workstation CD to no avail – It hangs checking the hard disk. I also have a 3.1 CD with the win32 SDK & it doesn’t work either. However, 4.0 works fine! I should also add, this gave me a chance to install Microsoft Visual C++ 2.0 for the MIPS, and to try SQL 4.21 for the MIPS out.
One of the first thing you’ll find out, is that the Dec Alpha was popular non intel machine to run because of FX!32. This program from Dec, allowed for dynamic translation of 32bit binaries on the Alpha. So that you could run Office 97 for the i386 on the Alpha. And on the 2nd run it was effectively a native copy as it had been translated at that point. Nothing like this existed for the MIPS. Thus, native applications are RARE if any. Another thing contributing to the lack of MIPS stuff, is that right after sp1 for Windows NT 4.0 came out, a week later all support for the MIPS ended. Shockingly, there is a bare port of Internet explorer 3, but nothing else from any of those resulting projects: Which is really sad. I *think* there may still be some copies floating out there for the PowerPC, but it was killed around the time of the service pack 3 release.
Anyways if you want to run this, I did find thru a little digging around the win32 exe is available on Herve’s site.
Download both of these files:
And go ahead and unzip them. In the setup.zip you will have found a file called NTPROM.RAW, rename it mipsel_bios.bin .
Now we are ready to go!
Create a 2GB disk like this:
qemu-img create -f qcow2 nt4.disk 2G
Then run the emulator
qemu-system-mips64el.exe -hda nt4.disk -M magnum -L . -net nic -net user-cdrom winnt40wks_sp1_en.iso
Your system will initialize and just run thru the quick setup – Keep the display at 800×600 as the mouse will actually work at that resolution! Also set the date to the correct date and ensure the MAC address for your Ethernet is not all zeros. You can make up any address you want.
Then to install NT you have to run 2 programs:
cd:\mips\arcinst
This will install a system partition, and setup the ARC bootloader. A 5MB partition is all you need, it’ll format it, and just exit arcinst.
cd:\mips\setupldr
This will kick off the install. It will look & act like every other copy of Windows NT 4.0 that you have installed. Keep in mind that you will create a 2nd partition, and install in there. I’d recommend you skip the exhaustive disk scan as that seems to always screw up for me. The install is pretty straight forward, I’d recommend you select an easy password, and you will probably want to setup an automatic logon.
From there you are on your own. I’ve seen Exchange 4.0 available for the MIPS, and some old versions of SQL Server, SNA Server out there. I’ve never seen Microsoft Word for NT & Microsoft Excel for NT. They were 32bit versions released prior to Office 95, and I *THINK* they had i386/MIPS/PowerPC/Alpha versions.. But I’m really not that sure. I think internet explorer 2.0 is the ONLY web browser for the MIPS and no, Windows CE MIPS stuff will NOT run on the MIPS NT. So don’t be all that disappointed as this isn’t too useful, but it may be interesting to see what all those MIPS directories were all about!
I was able to install Windows NT 3.51 Server (MIPS, Build 1057) on Qemu (0.12.4). You need to create a 5 MB FAT System partition using the NT4 ARCINST.EXE, then directly(!) run the NT 3.51 SETUPLDR.
If it hangs, retry (race condition?). But for me it worked. [Debian/squeeze x86_64 Intel Core 2 host]
Do not install the NT 3.51 Service Pack 5; it will hang at the blue boot screen reporting memory and OS version.
For me, the Windows NT 4.0 setup hangs at the "initializing setup" screen. The text-based parts works flawlessly.
Booting a prepared image works, as does the SP1. (There's no NT4-SP2 for MIPS, right?)
Thats good to know… Yes there never was a service pack 2 for NT 4.0/MIPS. At this point it was clear that Intel was able to compete in the CPU market place, and the CISC wall that everyone had predicted was utter nonsense as the Pentium CPU blew this all away… (Yes, even though the Pentium & above are more hybrid CISC/RISC).
I've found that the only version of Qemu that can install NT 4.0 all the way is the Original version from Hervé.
Thanks for the heads up on 0.12.4!
There is a version of Internet explorer for NT mips, you can download it here…
ftp://papa.indstate.edu/mirror/msie/
So I installed everything from scratch and even used someone else’s pre-built installation of NT4 on MIPS, but it consistently uses 100% CPU usage that I can’t do anything on it! Do you know how to solve this issue?
Thanks beforehand.
the MIPS has no idle function. So, unfortunately it will run at 100% . Your only option is using another program to limit its cpu time… on linux, its cpulimit. I dont know of any windows one.
Of course it’s possible to do something; DOS (and Windows 95?) on x86 has the same problem.
You “just” need to run a program that qemu knows is idle; on x86 this is a loop with the “hlt” instruction. On mips it would be a similar instruction or an emulator trap of some sort … hmmm.
Well, it looks like Linux uses it when you run a mips32 image on “qemu-system-mips64 -M malta -cpu 5Kc”. So you need to do whatever Linux is doing there.
NB: In my Linux test udev does something stupid (as usual) running “mtd_probe” hundreds of times. It boots eventually and you can “sudo chmod -x /lib/udev/mtd_probe” to STFU it.