script You currently have JavaScript disabled. This site requires JavaScript to work properly.
For more details on how this site uses JavaScript see the JavaScript page.
 
MARS_NWE Notes - zxnet

Menu:

NetWare
Clients
Client Software
Server Patches & Notes
Add-On Server Products
Novell DR-DOS Patches
Y2K Support

Unknown

End of Support

Unknown

System Requirements

Linux or BSD with the IPX kernel module installed

MARS_NWE

MARS_NWE is a NetWare Emulator for Linux and BSD written by Martin Stover (MARtin Stovers NetWare Emulator). The most recent version on the alternate FTP server is 0.99pl12 from 23 July 1998. Given the website doesn't seem to have been updated since around then its possible this is the last version Martin released. There is a newer version (0.99pl23 of 6 November 2013) floating around on the internet but that fork appears to also be unmaintained now.

Contents

Current Status

MARS_NWE appears to be abandoned today. The last version (0.99pl20) from its original author, Martin Stover, was released on 1 September 2000. Its mailing list is now gone as is the downloads section of its original website.

Since then two people have briefly picked it up and done a little maintenance but there has been nothing done in nearly a decade at this point:

Thanks to Mario Fetkas work MARS_NWE builds and runs OK on modern linux distros provided you've got the IPX kernel module installed but there are probably still bugs, missing features and incomplete work (eg namespace services) left over since the late 90s.

MARS_NWE currently only implements a subset of the NCP calls implemented by a real NetWare 3.11 server (prior to v0.98pl17 it claimed to be NetWare 2.15). It does not support NDS so clients or software requiring that (likely just the Macintosh one) won't work. It does not implement NetWare/IP (NCP over IPX over UDP) or Native IP (NCP over UDP) so all clients and servers must have IPX installed.

IPX Requirement

MARS_NWE requires kernel support for IPX. This was removed from Linux in v4.18 so if you're running that version or anything newer you'll need to build the kernel module yourself. Someone is maintaining a copy of the kernel module for newer versions of Linux at https://github.com/pasis/ipx. At the time of writing (February 2022) there are instructions for building it using DKMS here.

Installing MARS_NWE

These instructions are written for version 0.99pl23. Older versions are probably going to be more difficult. If you run into trouble, see Chris Lendermans guide.

  1. Install build dependencies. If you're on a Debian/Ubuntu/Raspbian:
    sudo apt install install libgdbm-dev cmake
  2. Download MARS_NWE:
    wget https://ftp.disconnected-by-peer.at/ncpfs/mars_nwe-0.99.pl23.tar.bz2
    If that link doesn't work you can grab it from my FTP server: https://ftp.zx.net.nz/pub/archive/novell/mars_nwe_dist/mars_nwe-0.99.pl23.tar.bz2
  3. Extract the archive you downloaded:
    tar -xjf mars_nwe-0.99.pl23.tar.bz2
  4. And then build and install it:
    cd mars_nwe-0.99.pl23
    cmake .
    make
    sudo make install

MARS_NWE should now be installed but not configured and it won't start automatically with the system.

Configuration

The MARS_NWE configuration file is divided into a number of sections a few of which will require some minor changes. Its worth reading through the comments in the config file as you do this as there may be other things you want to change while you're there.

  1. Edit the config file:
    sudo nano /usr/local/etc/mars_nwe/nwserv.conf
  2. Section 1: Optionally, add the O flag to the SYS volume to support long filenames. For example:
     1       SYS             /var/mars_nwe/SYS/                ktO   711 600
    See these notes for more information.
  3. Section 2: Give your server a name, for example:
    2       MARS
  4. Section 3: Some people may need to comment this out. On my test system (a Raspberry Pi 4) I have to leave this section uncommented otherwise I just get a fatal error in the log file and it refuses to start.
  5. Section 12: Give the SUPERVISOR user a password ("top-secret"):
    12  SUPERVISOR   root top-secret
  6. Edit the login script:
    sudo nano /var/mars_nwe/SYS/public/net\$log.dat
    And replace its contents with:
    MAP INS S1:=SYS:PUBLIC
    This prevents you from getting a pile of errors when you login. You may want to take a backup of this file before changing it.
  7. To make MARS_NWE start up with the system:
    sudo nano /etc/rc.local
    And insert the following above exit 0:
    mkdir -p /var/log/mars_nwe
    mkdir -p /var/run/mars_nwe
    nwserv
  8. Finally, reboot:
    sudo reboot

If you have trouble getting MARS_NWE to work it may be worth commenting out section 3. For me commenting it out breaks it, for other

From here you should be able to login to your server as supervisor, password top-secret. Install a NetWare client if you haven't already. If you're using DOS and this is the only NetWare server on your network, once the client has started up you should be able to go:

    F:
    login supervisor

If you already have another NetWare server on your network you'll need to specify the server name.

Long Filename Support

MARS_NWE supports long filenames on any volumes with the O flag set, but the implementation is a bit different from real NetWare.

For DOS clients, real NetWare takes a similar approach to Windows. Given two files, "long_file_name" and "long_file_name_too" DOS clients will see the two files "LONG_FIL" and "LONG_FI0". So no tilde and numbering doesn't start until the second file but otherwise similar to what you get on Windows..

MARS_NWE appears to do things differently here. It seems to just pretend the files with long names don't exist. You can't see them on DOS machines at all. After searching what remains of the mailing list archives and browsing the source code this appears to be a missing feature - MARS_NWE has no 8.3 name mangling support so it just hides files that would have invalid filenames from DOS clients. One of the places (the place?) this appears to happen is build_dos_name(DIR_BASE_ENTRY*, uint8*, int) in namspace.c.

On Windows NT (tested with client 4.11a) long filenames work normally. On Windows 9x you may need to modify the registry as by default it does not support long filenames on NetWare 3.11 (which is what MARS_NWE claims to be).

The following registry import file may enable it (from the FAQ):

        REGEDIT4
        [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\NWREDIR]
        "SupportLFN"=hex:02
        

If that doesn't work you may also need to add the following to system.ini (also from the FAQ):

        [nwredir]
        SupportLFN=2

Troubleshooting

Windows NT and OS/2 can not see the server, refuse to connect/login

I was able to login to MARS_NWE fine from DOS and Windows 9x but OS/2 and Windows NT couldn't see the server and wouldn't let me login if I typed it in. To fix this I had to alter section 4 of the config file changing it from

        4   0x22    eth0    ethernet_ii  1
        4   0x0     *       AUTO         1

To

       4   0x46FA55AA   eth0   802.3   1
       4   0x60779D95   eth0   802.2   1

This is configuring MARS_NWE to use the same frame types and network numbers as my existing NetWare 4.11 and 3.12 servers. Possibly the problem was caused by MARS_NWE and my other NetWare servers being on different IPX networks. The IPX Network Number is similar to a subnet in TCP/IP - without a router routing traffic between the two IPX networks hosts on different networks can't communicate.

Windows for Workgroups v3.1 and MSIPX.COM: Failure to attach to server

If you install Windows for Workgroups version 3.1 with NetWare support windows will install (an old version of) the NETX client using MSIPX.COM (kind of like IPXODI.COM but for NDIS drivers). This allows the NetWare client to run alongside the Windows Network by sharing its NDIS drivers. It seems to work ok with NetWare 3.12 and 4.11 though an AppNote from Novell does note a number of issues. For DOS 6.22 compatibility you have to upgrade to NETX 3.32 after installing WFW 3.1.

The problem here appears when there is a MARS_NWE server present on the LAN. When NETX starts it will fail to attach to any server even if the preferred server is not MARS_NWE. You'll just get repeated "SHELL-332-76: Network Error on Server x. Error receiving from network. Abort, Retry?" errors. NETX using IPXODI.COM doesn't seem to have this problem. I've not tested versions of NETX older than 3.32PTF.

My existing NetWare servers (3.2 and 4.11) are using both 802.2 and 802.3 frame types. Having MARS_NWE listening on 802.3 at all seems to cause the problem - forcing it to use 802.2 only (in section 4 of the config file) makes the problem go away. Reconfiguring WFW 3.1 to use ODI drivers and an appropriate shim would probably also solve the issue.

Other Notes

More Information

Todo

Disclaimer & Comments

I'm not a netware expert, don't have any of those fancy novell certifications and have never administred a netware network; I've just played with it at home occasionally since 2004 or so. Email me if you've got any suggestsions or corrections for this page or any extra information you think is worth including here. My address is david at this websites domain name (without the www bit of course).