Using Samba servers with OS/2 Warp
Notice: I have made a patch for Samba which
fixes a couple of small problems that OS/2 users have encountered. The
problem is that the patch is for an old version of Samba. I hope to update
the patch for Samba 2.0.x and then submit the patch for inclusion in the
general distribution.
Index
-
Accessing Unix machines: your options
-
Configuring Warp 4 or Warp Connect to access Samba
servers
-
Using Warp 4 or Warp Connect to access Samba servers
-
Known bugs/limitations
-
Acknowledgements
-
Author
Note: most of this information is also valid for accessing Windows
NT machines with the "NetBIOS over TCP/IP" protocol! That's because Samba
is more or less a freeware 'NT clone' for Unix machines...
An
excellent homepage on accessing Windows NT from a Warp client has been
made by Robert 'RokNroB' Thomas.
Deutsch: Thomas Baumann's FAQ
für OS/2 Peer Netze mit WARP Connect 3 und WARP 4
Note2: this webpage is mainly towards using Warp 4 with Samba
because that's what I have. I need to add some specific Warp 3 Connect
things where there are differences between the two versions. Bug me if
you need these!!! Try to get it working with the Warp Connect you already
have. But if you bump into a problem caused by a bug or a missing feature,
I suggest you take a look at the Cincinatti
Team OS/2 Master Update List. There you can download several Megabytes
of Fixpaks which should bring the networking support on par with that of
Warp 4. BTW, I agree with you that all these fixpaks look very confusing...
Back to "Using Samba with DOS or OS/2"
Accessing Unix machines: your options
So you are using Warp 4 or Warp Connect and you want to access your files
and use the printers on a Unix server? As you know (and if not, reread
the first two answers of my SMB networking
Q&A), the Samba software suite allows you to do this. But before we
dig into configuring Warp 4 or Warp Connect, I'd like to mention some alternatives
which might or might not be easier for you. The Samba server is most likely
a Unix machine, so there are alternative ways to access that machine.
Warp Connect and especially Warp 4 come with several tools which allow
you to access these resources, even without using a Samba server. For instance:
-
Use TELNET.EXE or SSH to login on the Unix machine and execute
Unix commands from the prompt.
-
Use FTP.EXE (or any other FTP client) to connect to the Unix machine,
and upload/download files. Warp 4 has an "FTP Folder" (see OS/2 System->
Templates-> Templates for Internet -> FTP-Host) which integrates the files
on the Unix machine onto your desktop. But it will not be possible to assign
drive letters to FTP hosts, so the usage of the FTP Folder is a bit limited.
-
Samba lets the Unix server talk the "network language" of the PC world:
SMB. But the reverse is also possible: you can also let your PC talk the
"network language" of the Unix world, NFS. There are some drawbacks to
this, though. For one, IBM NFS for OS/2 is quite expensive. It is also
a pain to install and maintain. People have reported that it is slower
(this is not the Unix machine's fault) than Samba. Also, the OS/2 NFS client
reportedly does not track symbolic links on the Unix boxes. As the Samba
server resides on the Unix box, symbolic links are resolved by Samba server
and OS/2 clients track the links without realising that they even exist.
Also don't forget you will need the NFS kit on all your PCs. With
Samba, it's the other way around: you install it on the Unix server and
the PCs use the standard networking support included with the OS. You place
the burden of installation and other problems on one place (the Unix server,
and thus the Unix system administrator) and not on all the PCs (and thus
all the users). After all, the sysadmin gets paid for solving networking
problems, and the users don't :-)
Back to top
Configuring Warp 4 or Warp Connect to access Samba servers
Ok, you decided you don't like the alternatives mentioned above, so now
you want to tweak Warp 4 or Warp Connect to access drives and printers
located on Samba servers. The most important thing to note is that Samba
only supports the "NetBIOS over TCP/IP" protocol. If you do a typical (default)
install of Warp 4 or Warp Connect, this protocol is not installed. The
"default installation" of the networking software has improved a lot with
the new versions of Warp, but for installing the "NetBIOS over TCP/IP"
driver you've got to dig deep in the nitty-gritty of low-level configuration
programs such as MPTS.EXE. These instructions will tell you how
to install it.
-
Get IBM Peer and TCP/IP working
To start with, I assume you already have some networking stuff working:
-
You must have TCP/IP correctly installed on your OS/2 machine.
-
The File and Print Client ('IBM Peer') must be installed and working. By
default, only the "NetBIOS over NetBEUI" protocol is installed and used
by it.
All this is textbook stuff, so I won't explain how to do it. Really, it's
in the Warp 4 manual, page 23 (Easy Install) or page 31 (Advanced Install).
The same goes up for the Warp Connect manual. One thing to note is that
a driver for NE2000 clones is not included with the standard Warp CD. You
could try the NS2000 driver for NE2000 clones or the NE2000 driver from
ftp://ftp.cdrom.com/pub/os2/network/ndis/.
The manuals don't deal with installing networking support after
Warp has already been installed. Basically, you need to use the "Selective
Install for Networking" icon in the "System Setup" folder (under Warp 4;
I have to look up the equivalent for Warp Connect). The on-line docs could
be of help, too. As long as you have the relevant information (e.g. from
your system administrator) such as your IP address, NetBIOS name and workgroup
name, you should be fine.
Here are some hints
which may help.
-
Add the "NetBIOS over TCP/IP" protocol to OS/2
In OS/2 Warp 4, the program that controls which protocols are used
on which network adapters is Network Adapters and Protocol Services.
It used to be called MultiProtocol Transport Services, and is still
often referred to by that name's acronym: MPTS.
|
Figure 1 - MPTS
|
Run MPTS (located in the OS/2 System->System Setup folder). I had some
problems running MPTS from the 4OS/2 command window, so I would advise
you to run it from the standard OS/2 command interpreter CMD.EXE.
Click OK to skip past the IBM logo. Then click on the "Configure" button.
Make sure that the "LAN adapters and protocols" radio button is selected
and click on Configure. You should see a window which looks like the one
in Figure 1, with the drivers for various network adapters listed in the
top left list, all the available protocols listed in the top right, and
your currently configured network adapter(s), with the active protocol(s),
in the lower left. In the Figure 1, one network adapter is listed, with
two protocols (NetBIOS over NETBEUI, and TCP/IP) installed. We still need
both these protocols, but we'd like to add a third (IBM OS/2 NETBIOS over
TCP/IP), so highlight that protocol in the top right and click on the Add
button (as illustrated in Figure 1).
|
Figure 2 - Change Number
|
-
Set the "Logical Adapter" number to 1
Now we have a slight problem. There are two NETBIOS entries, both listed
as Adapter 0. How is the File/Print Client or any other NETBIOS program
going to figure out which NETBIOS to use, NETBEUI or TCPBEUI? It cannot
if both are listed as Adapter 0, so you must change the adapter number
for one of these two (preferably NETBIOS over TCP/IP). Highlight "IBM NETBIOS
OVER TCP/IP" under your network adapter and click on "Change number," then
choose number 1 as illustrated in Figure 2. (Even though you may have one
network card, each protocol used can be assigned just about any number
you wish. Any software which needs access to the network can refer to the
protocol by adapter number without being aware of which network card is
actually used for communicating.)
-
Add a list of NetBIOS names to find certain machines
At this stage, you can optionally specify a list of NetBIOS names.
With this list you tell OS/2 under which IP names or IP addresses certain
NetBIOS machines can be found. This is required if such a NetBIOS machine
is not on the local TCP/IP subnet. In that case, normal broadcast
messages will remain on that subnet, and will not reach those NetBIOS machines
(and v.v.). Click here for the details.
You'll also find information there on how you can specify a NetBIOS Nameserver
(NBNS), if your network has one. A Windows NT (WINS) machine can be a NBNS,
and so can Samba or Network Telesystem's Shadow
Server. I believe Warp Server can be one too.
-
Exitting the MPTS program
Click OK to close the LAPS Configuration window. Select NETBIOS
Socket Configuration and click Configure. As I recall there
are no forms to fill in in the original Warp Connect version. Next, simply
click OK. Click Close, Exit etc. as needed to finish
configuring MPTS. It will now update some files, including the CONFIG.SYS.
MPTS will tell you to reboot. DON'T DO THAT, yet.
-
"Reinstalling" MPTS (but not for real!)
If you have Warp 4, goto OS/2 System -> System Setup and double
click on File and Print Client Install/Remove. If you have Warp
Connect, open the OS/2 Peer folder and double click on the Installation
icon. Click OK on the IBM startup screen. Then choose Configure
this workstation. At the dialogue
You have the current version of
MPTS on your workstation - Do you want to re-install?, answer No.
Go through the rest of the dialogues, but don't actually change anything.
When you get to the end, confirm that you want to close the program, letting
it update some configuration files.
I don't know just what circumstances require this step: adding/removing
protocols in MPTS seems to, while simply changing the Names List (through
MPTS.EXE
or through directly editting \IBMCOM\RFCNAMES.LST) doesn't require
it. However, it only takes a minute so better be safe than sorry and go
through this "re-installation" of OS/2 Peer.
-
Check the file \IBMLAN\IBMLAN.INI
The top of this file should be something similar to:
[networks]
net1 = NETBEUI$,0,LM10,34,100,14
net2 = TCPBEUI$,1,LM10,34,100,14
Don't worry if some of the parameters are different. The point I want to
make is that some people (including me) had a problem where the TCPBEUI$
line contained complete rubbish. It looked something like
net2 = TCPB@
4%-.&@!$ *. This is clearly wrong, and probably caused by a bug
in the MPTS.EXE program. If you got something like this, make the second
line look similar to the first one, except with NETBEUI$ changed to TCPBEUI$
and the adapter number (the second parameter after the equal sign) changed
from 0 to 1.
-
Reboot
Now you can reboot OS/2!
-
Install the patch for Samba
Samba has a couple of problems when OS/2 is used as a client. You are
strongly advised to install a patch for Samba which you can find
here,
and then recompile. A later version of Samba will contain this patch. If
you don't have root access to the Samba server, you should ask your system
administrator to install this patch. If they refuse, e.g. for security
reasons, there's no other option than to wait for the new version...
Adding the "NetBIOS over TCP/IP" protocol also introduces some extra startup
and shutdown time. Perhaps it helps if, in MPTS.EXE, you set "NetBIOS over
TCP/IP" to "adapter 0" and "NetBEUI" to "adapter 1", instead of the other
way around (as is the default). This should force OS/2 to look first on
the TCP/IP network for (Samba) servers, and only then on the NetBEUI network.
I haven't actually tried it myself yet. I use a little trick which saves
a couple of seconds at shutdown. When you initiate a shutdown, for instance
from the Workplace menu or the Warp Center, after a while the harddisk
stops spinning. It seems to me that the "NetBIOS over TCP/IP" protocol
is waiting for something on the network or so. Anyway, I then press Ctrl-Alt-Delete
and then the shutdown resumes a bit earlier. There does not seem to be
any side effects on this, but you must be absolutely sure that the harddisk
LED is out.
Back to top
Using Warp 4 and Warp Connect to access Samba servers
-
Now you can start using the Samba server. The first time you want to make
use of the network (file and printer sharing), Warp will show you a logon
window (if I remember correctly, when Warp is installed it puts the logon
program in the Startup folder by default; I didn't like that because most
of the time I don't want to use the network and while the logon program
is starting, you have no access to the computer! So I just left the "Start
File and Print Client" object in the Startup folder, and not the "Workstation
Logon" ).
-
Don't use the "Lan Server Logon" object to logon, but the "File and Print
Client Workstation Logon" object (see Connections -> Network -> Logons).
Be sure that the logon window does not ask for a domain name. If
you try to open the "File and Print Client Resource Browser" without first
logging in, by default it opens the Warp/LAN Server login window. This
is not the one you want! Cancel that window and double click on the "File
and Print Client Workstation Logon" object instead.
(Actually, the "Lan Server Logon" object can be used, but
only when Samba is acting as a domain server. I still have to investigate
this, one thing I noted is a harmless "Your home directory could not be
set up" error).
-
The Samba server(s) should now be visible to your Warp machine.
With "visible" I mean: when you do a NET VIEW or use the Resource
Browser its name should be mentioned in the list of servers you then get.
I wrote "should show up", but if you use a Samba version before 1.9.18
it doesn't. This problem has been fixed by a couple of OS/2 users. You
can find our solution by clicking here.
Browsing means: "scanning the network for other machines". OS/2 and
Windows seem to use different approaches on this. Within a workgroup of
machine, Windows selects one of them as a master browser. This one maintains
a "browse list". Machines who wish to know which other machines are on
the network then consult this browse list. OS/2 machines work in different
way. They regularly (once per 60 seconds or so) send out "announcements"
that they are alive. All other machines listen to and remember these announcements.
So when the user wants to know which machines there are on the network,
this list is produced. Understandably, it may take a little time before
you get to see all machines on the network, so be patient :-).
-
With the patch for Samba installed, the Samba server will now show up in
the Connections -> Network -> File and Print Client Resource Browser
folder under Warp 4. This folder seems to be an imitation of Windows 95's
"Network Neighbourhood", but although the concept of the Resource Browser
is good (it is a folder like any other, thanks to OS/2's object orientedness),
I never quite understood it. For instance, servers that are not available
anymore still show up in the folder. You've got to delete them yourself
if you don't need access to them anymore. This might confuse people, thinking
that they might "delete" all files on this machine. IBM says this is a
feature. Oh well... I even had a problem where the Resource Browser window
closed itself automatically with an error each time. I managed to solve
that by using a file utility and deleting the (probably corrupted) directories
in \DeskTop\Connections\Network\.
-
Under Warp 4, you have an object called Connections -> Network Resources
-> Shared Resources and Network Connections. The equivalent under Warp
Connect can be found as OS/2 Peer -> Sharing and Connecting. You
can do almost all administrative network actions with this one: sharing
out your own resources, selecting resources on other machines, telling
which users may or may not access your machine etc. My only gripe is that
the "listbox" at the top right, showing all the machines it detected on
the network, is too short! I thought the standard OS/2 file dialog window
was bad with only 5 files or so showing at a time, but this one is even
worse...
-
If you prefer to use the OS/2 command line instead, you can use the
NET
command. Examples are:
NET VIEW
NET VIEW \\dadspc
NET USE h: \\dadspc\drivec
NET USE h: /delete
NET USE lpt4 \\momspc\inkjtprn
NET USE com5 \\dadspc\28k8mdm
NET SEND jacco Dinner's ready!
NET HELP
NET HELP xxxxx (where xxxx is a networking command such as USE)
-
Dragging and dropping an object (document) to a
Network Printer object used for a Samba printer does not work! Printing
from the OS/2 command line on the other hand does work... Andreas
Degert (ad@papyrus.hamburg.com)
has taken a look at it but gave
up in dispair. IBM seems to use undocumented calls for printing from
the Desktop, exporting APIs over the network etc. (I guess Microsoft does
the same, but for Windows there are more people outthere who are willing
to reverse engineer what is going on...)
As far as I can tell, there are two workarounds if you need printing
from the Workplace Shell (the Desktop). The first one is the easiest: a
Samba printer is nothing more or less than a Unix lp printer! Both Warp
4 and Warp Connect already come with support for lp printing: LPR.EXE,
LPRM.EXE,
LPRD.EXE
etc., including support for printing from the Desktop to lp printers. Just
drag an object from the Printer template (not the Network Printer template!)
to your desktop. The disadvantage of this approach is that you must know
the name of the Unix machine and the name of the printer queue which deal
with this printer, in advance. You must also know what kind (brand/model)
of printer this is. Open the properties of this new Printer object. Right
click with your mouse on one of the lp printer ports in the 'Output port'
listbox and configure the port. You must also have LPRPORTD.EXE
running. Click on Help for more information when configuring the LP port,
or type:
VIEW TCPCR.HLP
The LPR support in Warp Connect and Warp 4 is broken (slow printing
speed) so in order to get it actually working, you need to install the
bugfix.
The second workaround is a lot less elegant but it may be an option,
for instance if you don't have Warp 4 or Warp Connect (i.e. no lp printing
support). Your computer must have a physical (real) parallel port. If you
have an extra one, say LPT2, which you don't use, that would be even better.
Define a remote printer on the command line with:
NET USE LPT2 \\SAMBASRV\PRINTER
You won't be able to use the physical port itself with this workaround.
Next, use the 'Printer' template (not the 'Network Printer' template!!!),
choose the correct printer driver and use the port you used for the remote
printer, e.g. LPT2. It isn't pretty, but it works. The disadvantage is
that you cannot view the network printer's queue contents from this WPS
printer object, but it might be possible that the OS/2 NET.EXE
command or SMBCLNT.EXE can do this (haven't tried yet).
A third workaround might be to use SMBCLNT.EXE, the OS/2 port
of Samba's client. You'll have connect to the Samba printer with -P
then. See also the Samba/2 webpage.
-
Samba does not support Extended Attributes (EAs). This typically includes
creation date, last revision date, author, file description, and icon associations,
things you mainly specify in "Settings"/"Properties". Extended attributes
can also contain other application-specific data. For instance, PMView
can create thumbnail icons for pictures and stores these in the EAs. OS/2
and many of its applications warn the user whether data is being stored
on a drive that does not support extended attributes. I don't know how
difficult it would be to implement EA support. It doesn't seem to be a
very big limitation though. A simple workaround would be to use OS/2's
standard EAUTIL command. You can use it to extract the EAs from
a file and store it in a seperate file which can be stored on filesystems
that don't support EAs, such as Samba's. And vice versa. Type
HELP
EAUTIL for more on this. A problem is that EAUTIL only works on one
file at a time. You might want to check out utilities such as
EABACKUP,
which can process a whole batch of files.
-
Use the same login IDs and passwords on both the Unix machine as on the
OS/2 machine. That should make life easier for you. Warp 4 seems to require
a password of at least 4 characters. I have had a report which said that
one cannot login on Samba with a password of 3 characters.
Back to top
Known bugs/limitations
-
Copying a WPS folder located on the remote Samba server to another location
on that same server is not supported by Samba. You'll get ERROR 58:
the specified server cannot perform the requested action. This is
because "SMBcopy tree copy" is not (yet) implemented. Ugly workaround:
you can copy the folder first to your local disk and then move/copy it
the new location. The data will be copied twice over the network but as
far as I know DOS/Windows clients do that as well...
-
Domain logons and logon script seem to work (to some extent?) but logging
on takes a long time...
-
I noticed a serious bug in Warp 4 and Warp Connect: they can be crashed
by the Samba client (smbclient/SMBCLNT.EXE) over the network.
Fortunately, I managed to find a workaround. Click here
for more information.
-
Due to a bug in IBM's Software Installer (used by PMMail, Netscape/2, WBI
etc.), you cannot install these products in a Samba share. Or in a Windows
95 share, for that matter. It seems that IBM has discontinued this installer
anyway.
This bug was reported to me by Stefan
Buckmann.
-
Printing by dragging and dropping a document to a Samba printer does not
work, as I mentioned above. You can also find there
some workarounds.
-
I received a report from Bob
Savage that the IBM Peer fixpack IP08401 for Warp 4 is broken. No Samba
servers will show up in the Resource Browser or with NET VIEW, not even
with my patch installed. Apparently, this fixpack is broken. You will have
to install a later version, IP08406
(versions in other languages also available on that site).
-
Samba does not support the SMBmove command from the LANMAN 1.0 protocol.
That means for instance that NET MOVE won't work on a Samba share.
You will get this error: SYS0058: The specified server cannot perform
the requested operation.
Back to top
Acknowledgements
These instructions are largely based on the column that Timothy Sipples
wrote for 32bitsOnline.com Although
in his column he needs the protocol for accessing a Windows NT server,
the routine is the same for accessing Samba servers.
Also, John Summerfield's webpage on his HomeLan
was very helpful. It is quite extensive, so if you are just interested
in setting up Warp to connect to a Samba server, you only have to search
for the keywords
"NETBIOS over TCP/IP".
Bob Firth started the
"OS/2 and Samba FAQ" and I hope he considers this a worthy follow-up.
Robert
Thomas wrote some superb
instructions on interoperability between Warp and several servers,
including Windows NT and Banyan Vines.
Back to top
Back to "Using Samba with DOS or OS/2"
Back to Jacco's homepage
|