Difference between revisions of "Installing NeXTSTEP on Qemu"

From Computer History Wiki
Jump to: navigation, search
m
(Updated download links since so many things are dead)
 
(56 intermediate revisions by the same user not shown)
Line 1: Line 1:
Please note that Im not going to build an 'accelerated' version of qemu, im trying to keep this build as 'stable' as possible. I'm going to assume you know how to use vi.  I would recommend trying the 0.8.0 before you try a snapshot.  The snapshot may
+
This is my notes on installing [[NeXTSTEP]] onto Qemu.  I had originally posted this on bsdnexus, however the links I had used for the graphics are nolonger working.
not work, or it may behave eradicaly.  It is worth nothing that my pentium 3 cannot start the GUI portion.  I really dont know why. (I did try -O1 for CFLAGS)
 
  
Also with regard to the nextstep part I'm using ISO images. I have just had too many problems with the physical media.
+
Please note that I’m not going to build an 'accelerated' version of [[Qemu]], I’m trying to keep this build as 'stable' as possible. I'm going to assume you know how to use vi. I would recommend trying the 0.9.0 before you try anything else.  0.8.0 seems somewhat unstable, and the busmouse driver doesn't work on 0.9.1 .
  
download the following to c:\install\qemu-build
+
I've tried to keep links to QEMU up to date, but official site no longer carries the old stuff so it'll probably fall into disrepair eventually.
 +
 
 +
It is worth nothing that my Pentium 3 cannot start the GUI portion.  I really don’t know why. (I did try -O1 for CFLAGS)
 +
 
 +
Also with regard to the NeXTSTEP part I'm using ISO images. I have just had too many problems with the physical media.
 +
 
 +
== Required Downloads ==
 +
 
 +
Download the following to c:\install\qemu-build
 +
 
 +
=== MinGW ===
  
 
from http://www.mingw.org/download.shtml
 
from http://www.mingw.org/download.shtml
  
*MinGW-3.1.0-1.exe
+
*[https://archive.org/download/qemuwin32-nextstep-mingw32/MinGW-5.1.4.exe MinGW-5.1.4.exe]
*MSYS-1.0.9.exe
+
*[https://archive.org/download/qemuwin32-nextstep-mingw32/MSYS-1.0.11-rc-1.exe MSYS-1.0.11-rc-1.exe]
*msysDTK-1.0.1.exe
+
*[https://archive.org/download/qemuwin32-nextstep-mingw32/msysDTK-1.0.1.exe msysDTK-1.0.1.exe]
*gcc-core-3.4.5-20060117-1.tar.gz
+
*[https://archive.org/download/qemuwin32-nextstep-mingw32/gcc-core-3.4.5-20060117-3.tar.gz gcc-core-3.4.5-20060117-1.tar.gz]
*gcc-g++-3.4.5-20060117-1.tar.gz
+
*[https://archive.org/download/qemuwin32-nextstep-mingw32/gcc-g++-3.4.5-20060117-3.tar.gz gcc-g++-3.4.5-20060117-1.tar.gz]
*w32api-3.6.tar.gz
+
*[https://archive.org/download/qemuwin32-nextstep-mingw32/w32api-3.13-mingw32-dev.tar.gz w32api-3.13-mingw32-dev.tar.gz]
*mingw-runtime-3.9.tar.gz
+
*[https://archive.org/download/qemuwin32-nextstep-mingw32/mingwrt-3.15.2-mingw32-dev.tar.gz mingwrt-3.15.2-mingw32-dev.tar.gz]
  
http://www.libsdl.org/release/SDL-1.2.9.tar.gz
+
I've tried to mirror as close as I could to the versions that I built with... Since they are newer they may even work on Vista/7..
http://www.zlib.net/zlib-1.2.3.tar.gz
 
http://fabrice.bellard.free.fr/qemu/qemu-0.8.0.tar.gz
 
http://download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/MultiCountry/Enterprise/nextstep/floppyimages/3.3_Beta_Drivers.floppyimage
 
http://download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/MultiCountry/Enterprise/nextstep/floppyimages/3.3_Boot_Disk.floppyimage
 
http://download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/MultiCountry/Enterprise/nextstep/floppyimages/3.3_Core_Drivers.floppyimage
 
  
 +
=== Aditional Dependancies ===
  
*Install MinGW - default options
+
*[https://archive.org/download/qemuwin32-nextstep-mingw32/SDL-1.2.13.tar.gz SDL-1.2.13.tar.gz]
*install msys - defualt options
+
*[https://archive.org/download/qemuwin32-nextstep-mingw32/zlib-1.2.5.tar.gz zlib-1.2.5.tar.gz]
 +
 
 +
=== Qemu ===
 +
 
 +
*[https://archive.org/download/qemuwin32-nextstep-mingw32/qemu-0.8.0.tar.gz qemu-0.8.0.tar.gz]
 +
*[https://archive.org/download/qemuwin32-nextstep-mingw32/qemu-0.9.0.tar.gz qemu-0.9.0.tar.gz]
 +
*[https://archive.org/download/qemuwin32-nextstep-mingw32/qemu/qemu-0.9.1.tar.gz qemu-0.9.1.tar.gz]
 +
 
 +
=== Boot diskette image for NeXTSTEP ===
 +
 
 +
*[https://archive.org/download/qemuwin32-nextstep-mingw32/3.3_Beta_Drivers.vfd 3.3_Beta_Drivers.floppyimage]
 +
*[https://archive.org/download/qemuwin32-nextstep-mingw32/3.3_Boot_Disk.vfd 3.3_Boot_Disk.floppyimage]
 +
*[https://archive.org/download/qemuwin32-nextstep-mingw32/3.3_Core_Drivers.vfd 3.3_Core_Drivers.floppyimage]
 +
 
 +
=== Drivers for NeXTSTEP 3.3 ===
 +
 
 +
*[https://web.archive.org/web/20090817044058/http://www-teaching.physics.ox.ac.uk/NextStep/NE2K_driver.fdd NE2K_driver.fdd]
 +
*[http://www.nextcomputers.org/NeXTfiles/Software/NEXTSTEP/Drivers/nextstep_3.3/released/CL_GD5434.pkg.compressed CL_GD5434.pkg.compressed]
 +
 
 +
== Busmouse patch ==
 +
 
 +
=== For Qemu 0.8.0 ===
 +
[[Qemu-0.8.0-openstep-busmouse-2.diff]]
 +
 
 +
=== For Qemu 0.9.0 ===
 +
[[Qemu-0.9.0-openstep-busmouse-2.diff]]
 +
 
 +
== Installation of the compiler environment ==
 +
=== Installation of MinGW ===
 +
 
 +
*Install MinGW
 +
Choose the 'current' version, then check the following options:
 +
*MinGW Base tools
 +
*G++ compiler
 +
*MinGW make
 +
 
 +
Allow it to instal into c:\MinGW
 +
 
 +
=== Installation of MSYS ===
 +
*install msys - default options
  
 
<pre>
 
<pre>
Line 35: Line 79:
 
Where is your MinGW installation? c:/mingw
 
Where is your MinGW installation? c:/mingw
 
</pre>
 
</pre>
 +
 +
=== Installation of the msysDTK ===
  
 
*install msysDTK - default options
 
*install msysDTK - default options
  
  
 +
=== Installing gcc/g++ 3.4.5 ===
 
Start -> run -> mingw -> msys -> msys
 
Start -> run -> mingw -> msys -> msys
  
 
<pre>
 
<pre>
 
cd /mingw
 
cd /mingw
tar -zxvf /c/install/qemu-build/gcc-core-3.4.5-20060117-1.tar.gz
+
tar -zxvf /c/install/qemu-build/w32api-3.13-mingw32-dev.tar.gz
tar -zxvf /c/install/qemu-build/gcc-g++-3.4.5-20060117-1.tar.gz
+
tar -zxvf /c/install/qemu-build/mingwrt-3.15.2-mingw32-dev.tar.gz
tar -zxvf /c/install/qemu-build/w32api-3.6.tar.gz
 
tar -zxvf /c/install/qemu-build/mingw-runtime-3.9.tar.gz
 
 
</pre>
 
</pre>
  
Line 53: Line 98:
 
<pre>
 
<pre>
 
Reading specs from c:/mingw/bin/../lib/gcc/mingw32/3.4.5/specs
 
Reading specs from c:/mingw/bin/../lib/gcc/mingw32/3.4.5/specs
Configured with: ../gcc-3.4.5/configure --with-gcc --with-gnu-ld --with-gnu-as  
+
Configured with: ../gcc-3.4.5-20060117-3/configure --with-gcc --with-gnu-ld --wi
--host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls  
+
th-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --dis
--enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry  
+
able-nls --enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry --d
--disable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt  
+
isable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt --with
--without-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter  
+
out-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enabl
--enable-hash-synchronization --enable-libstdcxx-debug
+
e-hash-synchronization --enable-libstdcxx-debug
 
Thread model: win32
 
Thread model: win32
gcc version 3.4.5 (mingw special)
+
gcc version 3.4.5 (mingw-vista special r3)
 
</pre>
 
</pre>
 +
 +
== Compilation ==
  
 
With the c compiler looking good, it's time to extract the dependancies for Qemu.
 
With the c compiler looking good, it's time to extract the dependancies for Qemu.
Line 71: Line 118:
 
</pre>
 
</pre>
  
Extract and build SDL.
+
=== SDL ===
 +
 
 +
Extract and build SDL 1.2.13.
 
<pre>
 
<pre>
tar -zxvf /c/install/qemu-build/SDL-1.2.9.tar.gz
+
tar -zxvf /c/install/qemu-build/SDL-1.2.13.tar.gz
cd SDL-1.2.9
+
cd SDL-1.2.13
 
./configure
 
./configure
 
make
 
make
 
make install
 
make install
 
</pre>
 
</pre>
 +
 +
=== zlib ===
  
 
Extract and build zlib
 
Extract and build zlib
Line 89: Line 140:
 
</pre>
 
</pre>
  
Then to compensate for qemu's configure
+
=== Configuring Qemu ===
 +
 
 +
To compensate for qemu's configure, and some oddities in MinGW's handling of /usr/local you'll need to do some fixes..
 +
 
 
<pre>
 
<pre>
 
cd /mingw/include
 
cd /mingw/include
Line 103: Line 157:
 
</pre>
 
</pre>
  
== SNAPSHOT NOTES ==  
+
==== qemu-0.8.0 NOTES ====
Remember the qemu qemu-snapshot-2006-04-15_23.tar.bz2 will be whatever todays date is...!
 
  
 +
Extract Qemu and integrate the [[Qemu-0.8.0-openstep-busmouse-2.diff|patch]].
 
<pre>
 
<pre>
 
cd /usr/src
 
cd /usr/src
bzip2 -dc /c/install/qemu-build/qemu-snapshot-2006-04-15_23.tar.bz2 | tar -xvf -
+
tar -zxvf /c/install/qemu-build/qemu-0.8.0.tar.gz
cd qemu-snapshot-2006-04-15_23
+
cd qemu-0.8.0
 +
cat /c/install/qemu-build/qemu-0.8.0-openstep-busmouse-2.diff | patch -p1
 
</pre>
 
</pre>
  
Ok now we are going to 'hack' a bunch of stuff here. 1st we want the easy one, which is the SoundBlaster 16. 
+
Now configure Qemu
We want it to use irq 7.
 
 
 
 
<pre>
 
<pre>
vi hw/sb16.c
+
./configure --target-list=i386-softmmu
/0x220
+
make
 
</pre>
 
</pre>
  
now we want to chagne the line from
+
==== qemu-0.9.0 NOTES ====
<pre>
 
} conf = {5, 4, 5, 1, 5, 0x220};
 
to
 
} conf = {5, 4, 7, 1, 5, 0x220};
 
</pre>
 
  
Ok now time to run the patch, I know it'll fail, but dont worry, its not that hard to fix.
+
Extract Qemu and integrate the [[Qemu-0.9.0-openstep-busmouse-2.diff|patch]].
<pre>
 
gzip -dc /c/install/qemu-build/qemu-0.8.0-openstep-busmouse-2.diff.gz | patch -p1
 
  
vi hw/ps2.c
 
 
<pre>
 
<pre>
 
+
cd /usr/src
comment out the qemu_add_mouse_event_handler line.
+
tar -zxvf /c/install/qemu-build/qemu-0.9.0.tar.gz
<pre>
+
cd qemu-0.9.0
vi hw/busmouse.c
+
cat /c/install/qemu-build/qemu-0.9.0-openstep-busmouse-2.diff | patch -p1
qemu_add_mouse_event_handler(busmouse_event,s);
 
change that line to:
 
qemu_add_mouse_event_handler(busmouse_event,s,0);
 
 
</pre>
 
</pre>
  
Now let's start the build.
+
Now configure Qemu
 
<pre>
 
<pre>
 
./configure --target-list=i386-softmmu
 
./configure --target-list=i386-softmmu
Line 148: Line 190:
 
</pre>
 
</pre>
  
 +
So far this is the 'best' version of Qemu for NeXTSTEP.
  
== qemu-0.8.0 NOTES ==
+
==== qemu-0.9.1 NOTES ====
  
cd /usr/src
+
I've heard the reason this version will not work on Vista is something trivial:
tar -zxvf /c/install/qemu-build/qemu-0.8.0.tar.gz
+
<pre>
cd qemu-0.8.0
+
My patch to hw/ide.c:
gzip -dc /c/install/qemu-build/qemu-0.8.0-openstep-busmouse-2.diff.gz | patch -p1
 
  
Ok now we are going to 'hack' the sound card here. 1st we want the easy one, which is the SoundBlaster 16.
+
just revert guess_disk_lchs function to the same from 0.9.0'.
We want it to use irq 7.
+
</pre>
  
vi hw/sb16.c
+
== Installing NeXTSETP ==
/0x220
 
 
 
now we want to chagne the line from
 
} conf = {5, 4, 5, 1, 5, 0x220};
 
to
 
} conf = {5, 4, 7, 1, 5, 0x220};
 
 
 
./configure
 
make
 
 
 
 
 
 
 
If you had any issues building qemu you can use the binary here:
 
http://www.vaxenrule.com/NextSTEP%2033/ … -win32.zip
 
  
  
 
Ok now lets start with nextstep. Im going to populate a standalone copy of qemu
 
Ok now lets start with nextstep. Im going to populate a standalone copy of qemu
  
 +
<pre>
 
mkdir /c/install/nextstep
 
mkdir /c/install/nextstep
 +
mkdir /c/install/nextstep/keymaps
 
cp i386-softmmu/qemu /c/install/nextstep
 
cp i386-softmmu/qemu /c/install/nextstep
 +
cp keymaps/* /c/install/keymaps
 
cp /usr/local/bin/SDL.dll /c/install/nextstep
 
cp /usr/local/bin/SDL.dll /c/install/nextstep
 
cp pc-bios/bios.bin /c/install/nextstep
 
cp pc-bios/bios.bin /c/install/nextstep
 
cp pc-bios/vgabios-cirrus.bin /c/install/nextstep
 
cp pc-bios/vgabios-cirrus.bin /c/install/nextstep
 +
</pre>
  
 
Lets create the 2 gig disk image..
 
Lets create the 2 gig disk image..
  
 +
<pre>
 
qemu-img create -f qcow /c/install/nextstep/ns33.qcow 2G
 
qemu-img create -f qcow /c/install/nextstep/ns33.qcow 2G
 +
</pre>
  
 
Ok now here is the iso's that Im going to use in my c:\install directory:
 
Ok now here is the iso's that Im going to use in my c:\install directory:
  
 +
<pre>
 
04/15/2006  09:10 PM      373,764,096 NeXTSTEP 3.3 User (m68k, i386).iso
 
04/15/2006  09:10 PM      373,764,096 NeXTSTEP 3.3 User (m68k, i386).iso
 
04/15/2006  10:04 PM        1,474,560 3.3_Beta_Drivers.floppyimage
 
04/15/2006  10:04 PM        1,474,560 3.3_Beta_Drivers.floppyimage
 
04/15/2006  10:04 PM        1,474,560 3.3_Boot_Disk.floppyimage
 
04/15/2006  10:04 PM        1,474,560 3.3_Boot_Disk.floppyimage
 
04/15/2006  10:04 PM        1,474,560 3.3_Core_Drivers.floppyimage
 
04/15/2006  10:04 PM        1,474,560 3.3_Core_Drivers.floppyimage
 +
</pre>
  
 
Ok lets get started! Im using the cmd.exe so I can paste stuff in & out. Also I copy the disk images ontop of 'disk'
 
Ok lets get started! Im using the cmd.exe so I can paste stuff in & out. Also I copy the disk images ontop of 'disk'
 
because some qemu hosts dont have the ctrl-alt-2 function...  
 
because some qemu hosts dont have the ctrl-alt-2 function...  
  
 +
<pre>
 
cd \install\nextstep
 
cd \install\nextstep
 
copy ..\3.3_Beta_Drivers.floppyimage beta
 
copy ..\3.3_Beta_Drivers.floppyimage beta
Line 203: Line 240:
 
copy ..\3.3_Core_Drivers.floppyimage core
 
copy ..\3.3_Core_Drivers.floppyimage core
 
copy boot disk
 
copy boot disk
 +
</pre>
  
C:\install\nextstep>qemu.exe -L . -m 32 -hda ns33.qcow -cdrom "..\NeXTSTEP 3.3 User (m68k, i386).iso" -fda disk -boot a
+
== Launching Qemu Install ==
  
 +
Now let's run Qemu like this:
 +
<pre>
 +
C:\install\nextstep>qemu.exe -L . -m 32 -hda ns33.qcow -cdrom "..\NeXTSTEP 3.3 User (m68k, i386).iso" -net nic,model=ne2k_pci -net user -soundhw sb16 -fda boot -boot a
 +
</pre>
  
 +
=== Step 1 ===
 +
[[Image:NeXTSTEP install 1.png]]
 +
<pre>
 +
-v (enter)
 +
</pre>
  
 +
I like the verbose booting so I can see what is going on.
  
-v (enter)
 
I like the verbose booting so I can see what is going on.
 
  
 +
=== Step 2 ===
 +
[[Image:NeXTSTEP install 2.png]]
 +
<pre>
 
1 (enter)
 
1 (enter)
 +
</pre>
  
 +
=== Step 3 ===
 +
[[Image:NeXTSTEP install 3.png]]
 +
<pre>
 
1 (enter)
 
1 (enter)
 +
</pre>
  
time to copy the core disk onto 'disk' and press enter to continue.  From a 2nd cmd.exe do a :
+
=== Step 4 ===
 +
[[Image:NeXTSTEP install 4.png]]
 +
 
 +
It's time to copy the core disk onto 'disk' and press enter to continue.  From a 2nd cmd.exe do a :
 +
<pre>
 
copy core disk
 
copy core disk
 
(enter)
 
(enter)
 +
</pre>
  
time to copy the beta disk onto the 'disk' and press enter to continue.  From the 2nd cmd.exe do a:
+
=== Step 5 ===
 +
[[Image:NeXTSTEP install 5.png]]
 +
 
 +
Time to copy the beta disk onto the 'disk' and press enter to continue.  From the 2nd cmd.exe do a:
 +
<pre>
 
copy beta disk
 
copy beta disk
 
(enter)
 
(enter)
 +
</pre>
 +
 +
=== Step 6 ===
 +
[[Image:NeXTSTEP install 6.png]]
  
 
Now this part of the disk is corrupt (its on all the beta 3.3 disks) so we have to select some scsi driver in order to get to the ATAPI.  I choose #2
 
Now this part of the disk is corrupt (its on all the beta 3.3 disks) so we have to select some scsi driver in order to get to the ATAPI.  I choose #2
 +
<pre>
 
2 (enter)
 
2 (enter)
 +
</pre>
 +
 +
=== Step 7 ===
 +
[[Image:NeXTSTEP install 7.png]]
  
Now we can procede to the ATAPI
+
Now we can proceed to the ATAPI
 +
<pre>
 
7 (enter)
 
7 (enter)
 +
</pre>
  
 +
=== Step 8 ===
 +
[[Image:NeXTSTEP install 8.png]]
 +
<pre>
 
2 (enter)
 
2 (enter)
 +
</pre>
  
 +
=== Step 9 ===
 +
[[Image:NeXTSTEP install 9.png]]
 +
<pre>
 
1 (enter)
 
1 (enter)
 +
</pre>
  
 +
=== Step 10 ===
 +
[[Image:NeXTSTEP install 10.png]]
  
 +
NeXTSTEP kernel booting...
 +
 +
[[Image:NeXTSTEP install 11.png]]
 +
 +
NeXTSTEP kernel booting...
 +
 +
=== Step 12 ===
 +
[[Image:NeXTSTEP install 12.png]]
  
 
I like the advanced install. So lets go with #2
 
I like the advanced install. So lets go with #2
 +
<pre>
 
2 (enter)
 
2 (enter)
 +
</pre>
 +
 +
=== Step 13 ===
 +
[[Image:NeXTSTEP install 13.png]]
  
 
We are going to install on the #1 (and only) disk
 
We are going to install on the #1 (and only) disk
 +
<pre>
 
1 (enter)
 
1 (enter)
 +
</pre>
 +
 +
=== Step 14 ===
 +
[[Image:NeXTSTEP install 14.png]]
  
 
Since the ne2000 currently doesnt work, I want a small partition to copy files on & off the vm.
 
Since the ne2000 currently doesnt work, I want a small partition to copy files on & off the vm.
 +
<pre>
 
2 (enter)
 
2 (enter)
 +
</pre>
 +
 +
=== Step 15 ===
 +
[[Image:NeXTSTEP install 15.png]]
  
 
Lets go with 32 megabytes
 
Lets go with 32 megabytes
 +
<pre>
 
32 (enter)
 
32 (enter)
 +
</pre>
 +
 +
=== Step 16 ===
 +
[[Image:NeXTSTEP install 16.png]]
  
 
Ok looks good!
 
Ok looks good!
 +
<pre>
 
3 (enter)
 
3 (enter)
 +
</pre>
  
 +
=== Step 17 ===
 +
[[Image:NeXTSTEP install 17.png]]
 +
<pre>
 
1 (enter)
 
1 (enter)
 +
</pre>
 +
 +
=== Step 18 ===
 +
[[Image:NeXTSTEP install 18.png]]
  
 
Now the disk is being partitioned & formatted.  This could take a minute.
 
Now the disk is being partitioned & formatted.  This could take a minute.
 +
 +
=== Step 19 ===
 +
[[Image:NeXTSTEP install 19.png]]
  
 
files are being copied.
 
files are being copied.
 +
 +
=== Step 20 ===
 +
[[Image:NeXTSTEP install 20.png]]
  
 
Ok we are done here. Press enter
 
Ok we are done here. Press enter
 +
 +
<pre>
 
(enter)
 
(enter)
 +
</pre>
  
 +
=== Step 21 ===
 +
[[Image:NeXTSTEP install 21.png]]
  
 
Now at this point you can kill the emulator.  For the sake of being 'easy' lets copy the core file back ontop of the 'disk'
 
Now at this point you can kill the emulator.  For the sake of being 'easy' lets copy the core file back ontop of the 'disk'
 
Now we re-launch qemu as follows:
 
Now we re-launch qemu as follows:
  
C:\install\nextstep>qemu.exe -L . -m 32 -soundhw sb16 -hda ns33.qcow -cdrom "..\NeXTSTEP 3.3 User (m68k, i386).iso" -fda disk -boot c
+
<pre>
 +
C:\install\nextstep>qemu.exe -L . -m 32 -hda ns33.qcow -cdrom "..\NeXTSTEP 3.3 User (m68k, i386).iso" -net nic,model=ne2kpc -net user -soundhw sb16  -fda core
 +
</pre>
  
 +
=== Step 22 ===
 +
[[Image:NeXTSTEP install 22.png]]
  
 
Again lets boot verbose
 
Again lets boot verbose
 +
<pre>
 
-v (enter)
 
-v (enter)
 +
</pre>
  
 +
=== Step 23 ===
 +
[[Image:NeXTSTEP install 23.png]]
 +
<pre>
 
1 (enter)
 
1 (enter)
 +
</pre>
 +
 +
=== Step 24 ===
 +
[[Image:NeXTSTEP install 24.png]]
  
copy the beta onto disk
+
copy the beta onto disk.
 +
<pre>
 
1 (enter)
 
1 (enter)
 +
</pre>
  
 +
=== Step 25 ===
 +
[[Image:NeXTSTEP install 25.png]]
  
 
+
=== Step 26 ===
 +
[[Image:NeXTSTEP install 26.png]]
 +
<pre>
 
(enter)
 
(enter)
 +
</pre>
  
 
copy core onto disk
 
copy core onto disk
 +
<pre>
 
(enter)
 
(enter)
 +
</pre>
 +
 +
There may be an 'error' that it cannot mount the floppy.. Don't worry, just hit ok and try again and it'll work.
 +
  
 
Click on the monitor (from the top).  We are going to install the VGA driver for now.
 
Click on the monitor (from the top).  We are going to install the VGA driver for now.
Line 287: Line 444:
  
 
Now sleect the mouse button (from the top), then select the "PS/2-Style Mouse (v3.30)".  Click the remove button.
 
Now sleect the mouse button (from the top), then select the "PS/2-Style Mouse (v3.30)".  Click the remove button.
 
Select the system icon from the top (the box with the question mark on it), and then choose the "On-Board Parallel Port (v3.30)" and press the remove button.
 
  
 
Now select the audio icon (the speaker icon from the top) and lets add the "Sound Blaster 16 (v3.30)" driver.
 
Now select the audio icon (the speaker icon from the top) and lets add the "Sound Blaster 16 (v3.30)" driver.
Line 303: Line 458:
 
At this point NeXTSTEP 3.3 is installed.  Pressing enter will sync the disk & reboot the VM.  Next you select your keyboard, and you are good to go.
 
At this point NeXTSTEP 3.3 is installed.  Pressing enter will sync the disk & reboot the VM.  Next you select your keyboard, and you are good to go.
  
As long as my bandwidth doesnt go to hell, here is a copy of the y2k patches and other stuff on an iso.
+
Hopefully this has helped someone out there!
 +
 
 +
== Final Notes ==
 +
 
 +
After you install update #3 the keyboard will not work right.. you need to specify a keymap.
  
http://www.vaxenrule.com/NextSTEP%2033/ns33patches.iso
+
Here is how I like to run Qemu 0.9.0 for NeXTSTEP
  
 +
<pre>
 +
qemu -L . -m 32 -hda ns33.disk -boot c -net nic,model=ne2kpci -net user -soundhw sb16
 +
</pre>
  
Hopefully this has helped someone out there!
+
[[Category:Qemu]]
 +
[[Category:QEMU Tutorials]]

Latest revision as of 22:30, 8 December 2022

This is my notes on installing NeXTSTEP onto Qemu. I had originally posted this on bsdnexus, however the links I had used for the graphics are nolonger working.

Please note that I’m not going to build an 'accelerated' version of Qemu, I’m trying to keep this build as 'stable' as possible. I'm going to assume you know how to use vi. I would recommend trying the 0.9.0 before you try anything else. 0.8.0 seems somewhat unstable, and the busmouse driver doesn't work on 0.9.1 .

I've tried to keep links to QEMU up to date, but official site no longer carries the old stuff so it'll probably fall into disrepair eventually.

It is worth nothing that my Pentium 3 cannot start the GUI portion. I really don’t know why. (I did try -O1 for CFLAGS)

Also with regard to the NeXTSTEP part I'm using ISO images. I have just had too many problems with the physical media.

Required Downloads

Download the following to c:\install\qemu-build

MinGW

from http://www.mingw.org/download.shtml

I've tried to mirror as close as I could to the versions that I built with... Since they are newer they may even work on Vista/7..

Aditional Dependancies

Qemu

Boot diskette image for NeXTSTEP

Drivers for NeXTSTEP 3.3

Busmouse patch

For Qemu 0.8.0

Qemu-0.8.0-openstep-busmouse-2.diff

For Qemu 0.9.0

Qemu-0.9.0-openstep-busmouse-2.diff

Installation of the compiler environment

Installation of MinGW

  • Install MinGW

Choose the 'current' version, then check the following options:

  • MinGW Base tools
  • G++ compiler
  • MinGW make

Allow it to instal into c:\MinGW

Installation of MSYS

  • install msys - default options
Do you wish to continue with the post install? [yn ] y

Do you have MinGW installed? [yn ] y

Please answer the following in the form of c:/foo/bar.
Where is your MinGW installation? c:/mingw

Installation of the msysDTK

  • install msysDTK - default options


Installing gcc/g++ 3.4.5

Start -> run -> mingw -> msys -> msys

cd /mingw
tar -zxvf /c/install/qemu-build/w32api-3.13-mingw32-dev.tar.gz
tar -zxvf /c/install/qemu-build/mingwrt-3.15.2-mingw32-dev.tar.gz

gcc -v should return:

Reading specs from c:/mingw/bin/../lib/gcc/mingw32/3.4.5/specs
Configured with: ../gcc-3.4.5-20060117-3/configure --with-gcc --with-gnu-ld --wi
th-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --dis
able-nls --enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry --d
isable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt --with
out-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enabl
e-hash-synchronization --enable-libstdcxx-debug
Thread model: win32
gcc version 3.4.5 (mingw-vista special r3)

Compilation

With the c compiler looking good, it's time to extract the dependancies for Qemu.

cd /
mkdir -p /usr/src
cd /usr/src

SDL

Extract and build SDL 1.2.13.

tar -zxvf /c/install/qemu-build/SDL-1.2.13.tar.gz
cd SDL-1.2.13
./configure
make
make install

zlib

Extract and build zlib

cd /usr/src
tar -zxvf /c/install/qemu-build/zlib-1.2.3.tar.gz
./configure
make
make install

Configuring Qemu

To compensate for qemu's configure, and some oddities in MinGW's handling of /usr/local you'll need to do some fixes..

cd /mingw/include
ln -s /usr/local/include/zconf.h .
ln -s /usr/local/include/zlib.h .
ln -s /usr/local/include/SDL .
cd /mingw/lib
ln -s /usr/local/lib/libSDL.a .
ln -s /usr/local/lib/libz.a .
cd /bin
ln -s true.exe texi2html.exe
ln -s true.exe pod2man.exe

qemu-0.8.0 NOTES

Extract Qemu and integrate the patch.

cd /usr/src
tar -zxvf /c/install/qemu-build/qemu-0.8.0.tar.gz
cd qemu-0.8.0
cat /c/install/qemu-build/qemu-0.8.0-openstep-busmouse-2.diff | patch -p1

Now configure Qemu

./configure --target-list=i386-softmmu
make

qemu-0.9.0 NOTES

Extract Qemu and integrate the patch.

cd /usr/src
tar -zxvf /c/install/qemu-build/qemu-0.9.0.tar.gz
cd qemu-0.9.0
cat /c/install/qemu-build/qemu-0.9.0-openstep-busmouse-2.diff | patch -p1

Now configure Qemu

./configure --target-list=i386-softmmu
make

So far this is the 'best' version of Qemu for NeXTSTEP.

qemu-0.9.1 NOTES

I've heard the reason this version will not work on Vista is something trivial:

My patch to hw/ide.c:

just revert guess_disk_lchs function to the same from 0.9.0'.

Installing NeXTSETP

Ok now lets start with nextstep. Im going to populate a standalone copy of qemu

mkdir /c/install/nextstep
mkdir /c/install/nextstep/keymaps
cp i386-softmmu/qemu /c/install/nextstep
cp keymaps/* /c/install/keymaps
cp /usr/local/bin/SDL.dll /c/install/nextstep
cp pc-bios/bios.bin /c/install/nextstep
cp pc-bios/vgabios-cirrus.bin /c/install/nextstep

Lets create the 2 gig disk image..

qemu-img create -f qcow /c/install/nextstep/ns33.qcow 2G

Ok now here is the iso's that Im going to use in my c:\install directory:

04/15/2006  09:10 PM       373,764,096 NeXTSTEP 3.3 User (m68k, i386).iso
04/15/2006  10:04 PM         1,474,560 3.3_Beta_Drivers.floppyimage
04/15/2006  10:04 PM         1,474,560 3.3_Boot_Disk.floppyimage
04/15/2006  10:04 PM         1,474,560 3.3_Core_Drivers.floppyimage

Ok lets get started! Im using the cmd.exe so I can paste stuff in & out. Also I copy the disk images ontop of 'disk' because some qemu hosts dont have the ctrl-alt-2 function...

cd \install\nextstep
copy ..\3.3_Beta_Drivers.floppyimage beta
copy ..\3.3_Boot_Disk.floppyimage boot
copy ..\3.3_Core_Drivers.floppyimage core
copy boot disk

Launching Qemu Install

Now let's run Qemu like this:

C:\install\nextstep>qemu.exe -L . -m 32 -hda ns33.qcow -cdrom "..\NeXTSTEP 3.3 User (m68k, i386).iso" -net nic,model=ne2k_pci -net user -soundhw sb16 -fda boot -boot a

Step 1

NeXTSTEP install 1.png

-v (enter)

I like the verbose booting so I can see what is going on.


Step 2

NeXTSTEP install 2.png

1 (enter)

Step 3

NeXTSTEP install 3.png

1 (enter)

Step 4

NeXTSTEP install 4.png

It's time to copy the core disk onto 'disk' and press enter to continue. From a 2nd cmd.exe do a :

copy core disk
(enter)

Step 5

NeXTSTEP install 5.png

Time to copy the beta disk onto the 'disk' and press enter to continue. From the 2nd cmd.exe do a:

copy beta disk
(enter)

Step 6

NeXTSTEP install 6.png

Now this part of the disk is corrupt (its on all the beta 3.3 disks) so we have to select some scsi driver in order to get to the ATAPI. I choose #2

2 (enter)

Step 7

NeXTSTEP install 7.png

Now we can proceed to the ATAPI

7 (enter)

Step 8

NeXTSTEP install 8.png

2 (enter)

Step 9

NeXTSTEP install 9.png

1 (enter)

Step 10

NeXTSTEP install 10.png

NeXTSTEP kernel booting...

NeXTSTEP install 11.png

NeXTSTEP kernel booting...

Step 12

NeXTSTEP install 12.png

I like the advanced install. So lets go with #2

2 (enter)

Step 13

NeXTSTEP install 13.png

We are going to install on the #1 (and only) disk

1 (enter)

Step 14

NeXTSTEP install 14.png

Since the ne2000 currently doesnt work, I want a small partition to copy files on & off the vm.

2 (enter)

Step 15

NeXTSTEP install 15.png

Lets go with 32 megabytes

32 (enter)

Step 16

NeXTSTEP install 16.png

Ok looks good!

3 (enter)

Step 17

NeXTSTEP install 17.png

1 (enter)

Step 18

NeXTSTEP install 18.png

Now the disk is being partitioned & formatted. This could take a minute.

Step 19

NeXTSTEP install 19.png

files are being copied.

Step 20

NeXTSTEP install 20.png

Ok we are done here. Press enter

(enter)

Step 21

NeXTSTEP install 21.png

Now at this point you can kill the emulator. For the sake of being 'easy' lets copy the core file back ontop of the 'disk' Now we re-launch qemu as follows:

C:\install\nextstep>qemu.exe -L . -m 32 -hda ns33.qcow -cdrom "..\NeXTSTEP 3.3 User (m68k, i386).iso" -net nic,model=ne2kpc -net user -soundhw sb16  -fda core

Step 22

NeXTSTEP install 22.png

Again lets boot verbose

-v (enter)

Step 23

NeXTSTEP install 23.png

1 (enter)

Step 24

NeXTSTEP install 24.png

copy the beta onto disk.

1 (enter)

Step 25

NeXTSTEP install 25.png

Step 26

NeXTSTEP install 26.png

(enter)

copy core onto disk

(enter)

There may be an 'error' that it cannot mount the floppy.. Don't worry, just hit ok and try again and it'll work.


Click on the monitor (from the top). We are going to install the VGA driver for now.

Select the Default VGA Adapter (v3.30) and press the 'Add' button

Now sleect the mouse button (from the top), then select the "PS/2-Style Mouse (v3.30)". Click the remove button.

Now select the audio icon (the speaker icon from the top) and lets add the "Sound Blaster 16 (v3.30)" driver.

You will get a warning about an irq conflict, you can close it. (this is why we changed the sb16.c file from irq 5 (the busmouse) to irq7.

Select IRQ 7.

Now press the Done button.

press enter. (enter)

At this point NeXTSTEP 3.3 is installed. Pressing enter will sync the disk & reboot the VM. Next you select your keyboard, and you are good to go.

Hopefully this has helped someone out there!

Final Notes

After you install update #3 the keyboard will not work right.. you need to specify a keymap.

Here is how I like to run Qemu 0.9.0 for NeXTSTEP

qemu -L . -m 32 -hda ns33.disk -boot c -net nic,model=ne2kpci -net user -soundhw sb16