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.

Samba now!

Index

  1. Accessing Unix machines: your options
  2. Configuring Warp 4 or Warp Connect to access Samba servers
  3. Using Warp 4 or Warp Connect to access Samba servers
  4. Known bugs/limitations
  5. Acknowledgements
  6. 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.
  1. Get IBM Peer and TCP/IP working

  2. 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.
     

  3. Add the "NetBIOS over TCP/IP" protocol to OS/2

  4. 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
  5. Set the "Logical Adapter" number to 1

  6. 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.)
     
  7. Add a list of NetBIOS names to find certain machines

  8. 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.
     
  9. Exitting the MPTS program

  10. 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.
     
  11. "Reinstalling" MPTS (but not for real!)

  12. 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.
     

  13. Check the file \IBMLAN\IBMLAN.INI

  14. 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.
     
  15. Reboot

  16. Now you can reboot OS/2!
     
  17. Install the patch for Samba

  18. 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

  1. 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" ).
  2. 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.

  3. (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).
  4. 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.

  5. 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 :-).
  6. 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\.
  7. 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...
  8. If you prefer to use the OS/2 command line instead, you can use the NET command. Examples are:
  9. 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)
  10. 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...)

  11.  

     
     
     
     
     

    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.

  12. 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.
  13. 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