/
mars_nwe_setup.txt
251 lines (205 loc) · 8.79 KB
/
mars_nwe_setup.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
==================================================
Introduction
==================================================
This procedure will take you through setting up a Mars NWE server on a Raspberry Pi,
as well as setting up an MS-DOS NetWare Client
In order for Mars NWE to work, it's necessary to use an "older kernel version" on the
Raspberry Pi that supports IPX.
Additionally, you will want to use a wired ethernet interface for the Raspberry Pi
and any connecting clients. This procedure uses a virtual machine for the NetWare client,
but even so, a wired interface is required there.
This procedure will demonstrate how to build and install an older Raspbian Linux kernel,
as well as how to build/install and configure Mars NWE
==================================================
Prerequisites
==================================================
You have set up a Raspberry Pi and enabled SSH.
See my instructions here for an example: https://github.com/cml37/dos-utils/blob/master/config/my_raspberrypi_setup_instructions.txt
Also, be sure to set up "Wait for network" at boot!
For the client, find and download the following:
AMD PCNet network card client drivers (lan-amd-pc-net.zip): https://github.com/cml37/dos-utils/blob/master/config/resources/lan-amd-pc-net.zip
-- unzip to folder named lan
AMD PCNet client32 drivers (client32-Novell-Drivers.zip) (we will only need this for an updated version of lsl.com): https://github.com/cml37/dos-utils/blob/master/config/resources/client32-Novell-Drivers.zip
-- unzip to folder named client32
Xircom PE3 Drivers (pe3drv.exe) (we will only use this to get a copy of netx and ipxodi): http://vogonsdrivers.com/getfile.php?fileid=1829&menustate=0
Also, locate your licensed copy of MS-DOS 6.22 install disks
==================================================
Build Linux Kernel 4.14.X
==================================================
WARNING: This part of the procedure takes considerable wallclock time to perform.
Plan on having a long running SSH session!!
Before installing Mars NWE, we need to install a compatible kernel.
The last known kernel version to support IPX was 4.14.
As such, that's what we will be building here. Here are the steps:
git clone https://github.com/raspberrypi/linux.git --single-branch --branch rpi-4.14.y
cd linux
# Note - the below assumes Raspberry Pi Model 3B+.
# For different models, your config options may be different
# (please see https://www.raspberrypi.org/documentation/linux/kernel/building.md)
make bcm2709_defconfig
sudo apt-get install libncurses-dev
make menuconfig
Networking Support <enter>
Networking Options <enter>
(Press the Page Down Key around Six times :-))
The IPX Protocol => (press spacebar to make "M" appear)
Exit
Exit
Exit
Yes
make -j4 zImage modules dtbs
sudo make modules_install
sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
sudo cp arch/arm/boot/zImage /boot/kernel7-ipx.img
sudo nano /boot/config.txt
Add this line:
kernel=kernel7-ipx.img
Reboot the Raspberry pi and verify new kernel version
sudo reboot
uname -r
Should get back: 4.14.114-v7+ (or some variant of 4.14.x)
==================================================
Build Mars NWE from Source
==================================================
Install support libraries
sudo apt-get install libgdbm-dev cmake
Download and build Mars NWE
wget http://ftp.disconnected-by-peer.at/ncpfs/mars_nwe-0.99.pl23.tar.bz2
bunzip2 mars_nwe-0.99.pl23.tar.bz2
tar xf mars_nwe-0.99.pl23.tar
cd mars_nwe-0.99.pl23
cmake .
make
sudo make install
Configure Mars NWE
sudo nano /usr/local/etc/mars_nwe/nwserv.conf
Change section 1 to read like this (basically, change the umask. Not required but does relax permissions)
1 SYS /var/mars_nwe/SYS/ kt 777 777
Completely comment out section 3 (internal nets will break routing unfortunately)
Change section 4 to read like this, comment out any extra lines (see commentary below for rationale)
4 0x22 eth0 802.3 1
Change section 7 to read like this (this allows unsecure passwords)
7 8
Change section 9 to read like this, comment out any extra lines (basically, change the umask. Not required but does relax permissions)
9 0777 0777
Change section 12 to read like this (this gives a password for the supervisor user of top-secret)
12 SUPERVISOR root top-secret
If you want extra debugging on the netware server (nwserv), change this line in section 101
101 99 # debug NWSERV
Some commentary on configuration:
* Although Novell uses 802.2 for NetWare 3.12, I found, at least when running as a virtual machine, that file copies, etc. are
unreliable and time out, and as such, switched to 802.3, which seems to have cleared up the problem.
* Additionally, since there is no "flag" command like in proper NetWare, I found that relaxing the UMASK make things easier
for accessing files after installation (if security is a concern for you, well, then you probably shouldn't be using this
in the first place, but I digress..)
* And regarding the internal nets concept, the only explanation I have here is that Mars NWE is ancient and this is probably
a compatibility issue with modern kernels. I beat my head against the wall for several hours figuring this one out.
Add these lines to /etc/rc.local above the exit 0 line to support startup of Mars NWE on system reboot
sudo nano /etc/rc.local
add the following above exit 0
mkdir -p /var/log/mars_nwe
mkdir -p /var/run/mars_nwe
nwserv
At this point, reboot the Rasbperry Pi
sudo reboot
Troubleshooting
Have a look at routes here, if more than two routes, there may be issues
sudo cat /proc/net/ipx/route
Have a look at logs here
cat /var/log/mars_nwe/nw.log
Run ifconfig and look for ipx bindings. Is it bound to eth0?
ifconfig | grep -B5 ipx
Killing nwserv and associated processes (there may be a better way)
sudo pkill -9 ncpserv
sudo pkill -9 nwserv
sudo pkill -9 nwbind
sudo pkill -9 nwconn
==================================================
Setting up a NetWare DOS Client
==================================================
Create a new VirtualBox VM
New
Name: Novell Client
Type: Other
Version: DOS
Memory size: 16MB
Hard Disk: Create a virtual hard disk now
Hard disk file type: VMDK (this is important so that WinImage can open your hard disk file!!)
Storage on physical hard disk: Dynamically allocated
File location and size: defaults are fine
Once created
Settings
Network
Adapter 1
Enable Network Adapter
Attached to: Bridged Adapter
Name: <choose your wired network card adapter>
Insert the MS-DOS 6.22 install disk 1 into the disk drive
Select Virtual Machien
Click Settings
Storage
Add disk 1 as a floppy
Ok
Start the virtual machine
MS-DOS 6.22 Setup
Enter
Configure Unallocated Disk Space
Enter
Enter to restart
Enter to select "The settings are correct"
Enter to select C:\DOS
Insert Disks as prompted and press enter
When requested, remove the floppy disk and press enter
Press Enter to restart
Power down the Novell Client virtual machine
At this point, it's time to inject some files into the image
Using WinImage
-- Open the vmdk file (C:\users\<your user name\VirtualBox VMS\Novell Client.vmdk)
-- From lan\netware\dos, inject pcntnw.com into a directory named net
-- Click on \ folder
-- Image | Create Folder | net
-- Click on net
-- Image | Inject | pcntnw.com | Yes
-- from client32, inject lsl.com into a directory named net
-- Click on net
-- Image | Inject | lsl.com | Yes
-- inject pe3drv.exe into a directory named pe3drv
-- Click on \ folder
-- Image | Create Folder | pe3drv
-- Click on pe3drv
-- Image | Inject | pe3drv.exe | Yes
Close WinImage
Start up the Netware Client
Set up ipxodi and netx drivers
cd \pe3drv
pe3drv
keep pressing "y" until extraction is done
copy odi\ipxodi.com C:\net
copy odi\netx.exe C:\net
Configure the Netware Client
cd \
dos\edit autoexec.bat
add the following lines to the bottom of the file:
PATH=C:\net;%PATH%
lsl
pcntnw
ipxodi
netx
F:
Save and exit
dos\edit C:\net\net.cfg
add the following lines:
Link Driver PCNTNW
Frame ETHERNET_802.3
Save and exit
Reboot the virtual machine
From there you should be able to change to drive F: and login as supervisor!!
F:
login supervisor
password: top-secret (or another password if you happened to change it in the config file)
What's next? It's up to you:
Clone the virtual machine to have multiple clients?
Install some network shareable programs (WordPerfect 5.1? Something else?)
Call it a day?