• Welcome to OS2World OLD-STATIC-BACKUP Forum.
 

News:

This is an old OS2World backup forum for reference only. IT IS READ ONLY!!!

If you need help with OS/2 - eComStation visit http://www.os2world.com/forum

Main Menu

Samba server printer not working over network

Started by vbien, 2012.05.03, 14:55:00

Previous topic - Next topic

vbien

Following through from http://svn.netlabs.org/samba I downloaded all the WPI and the few associated supplementary zip files and I installed the ver 3.3.x version of the server on my OS/2 ver 4.52 computer.
  After suitably editing the config.sys including putting in two LIBPATH spots where the Samba packge is installed, suitably editing boot drive\IBMCOM\protocol.ini removing the tcpbeui lines and rebooting I got connection!
  This is confirmed for all three Windows computers: XP SP3, Vista laptop and the new 64 bit Windows 7 I'm working up to replace the XP.
Connecting to the OS/2 disks/volumes is 100%.  I test copied a folder with over 2000 files occupying about 25 MB and it came across in a jiff.
  However I can't print to the printers from any of the Windows computers.  When I do a test print you can see a brief Samba message popup saying various things are happening but no job appears in the OS/2 printer window; the printer light blinks hopefully but nothing prints.
  I used the appropriate Windows printer driver in the XP computer but a close model in the Win 7 computer which did not have the exact driver.  My printer is a Lexmark Optra E310.  With the LAN manager arrangement, which prints normally, I use the same driver and print to the IBM Null driver on the OS/2 computer.
  The installation gives one the option of creating a new Samba configuration from scratch or porting over one's IBM LAN Manager settings.  I chose the latter.
   I have not manually edited the smb.conf file which the installation produced.  Looking at it, from what I know and read up on, it looks correct.
   Can this problem be fixed?  It is almost a case of so near yet so far.  I'm thinking of a work around - installing a pdf create virtual printer and copying the pdf file so generated over to the OS/2 computer and using the OS/2 Acrobat to print from there.  Very inconvenient but a work around I can live with for a while.

melf

#1
I can't help you with the Samba print, but as a better work around (till you get proper help) you could install a SLPR port (eCS) and print to your computers IP-number. My setting, printing form an eCS machine looks like in the picture (the properties window for the SLPR port is opened) . In windows it's called "Print over TCPIP" or something, where you can choose "LPR " and IP and printer name. I use it from both win and os2 machines. Added a pic from win.
/Mikael

herwigb

Basically the scenario you describe has been tested and does work.

Everything you did seems appropriate, however there's one sentence, I don't quite understand:

>> My printer is a Lexmark Optra E310.  With the LAN manager arrangement, which prints normally, I use the same driver and print to the IBM Null driver on the OS/2 computer. <<

The Samba concept for printers is quite simple: Samba takes any (printer specific) file from a client and sends it to the local printer object, the printer object on the server must me configured properly with the appropriate driver. On the client you also must have a printer object with the appropriate driver.

The IBM Null driver does not fit into the picture here...
Kind regards,
HerwigB.

RobertM

Quote from: herwigb on 2012.05.04, 15:59:01
...The IBM Null driver does not fit into the picture here...

Actually, I've used a similar method in the past as well. If I need a print queue that is available to other systems, but does no printer-specific translation, I'll use the IBM Null driver as a simple pass-through. Never played with Samba for such things, so I don't know if it is applicable - but I have used such where I've had a mixed system infrastructure running different drivers or driver levels that didn't like co-existing.


|
|
Kirk's 5 Year Mission Continues at:
Star Trek New Voyages
|
|


RobertM

Here's mention of a specific-case example where it comes in handy - again though, never played with Samba in conjunction to such uses.

http://tech.groups.yahoo.com/group/os2wp/message/498


|
|
Kirk's 5 Year Mission Continues at:
Star Trek New Voyages
|
|


vbien

Quote from: herwigb on 2012.05.04, 15:59:01
>Basically the scenario you describe has been tested and does work.

>Everything you did seems appropriate, however there's one sentence, I don't quite understand:

>>> My printer is a Lexmark Optra E310.  With the LAN manager arrangement, which prints normally, I use the same driver and print to the IBM Null driver on the OS/2 computer. <<

OK that's a bit too terse.  Since WinOS2 days, even to the present in my case, Windows print requests are processed by its own printer drivers, the Optra E310 in my case, and sent to the Null driver which just passes all the bytes through to the printer like the physical ports.  I have experimented and tried linking the Windows printer to the OS/2 Optra printer driver and you just finish up with gibberish.  One uses the Optra driver from OS/2 programs to print to the Optra.  If one prints from an OS/2 program to the Null driver printer you get gibberish.

>The Samba concept for printers is quite simple: Samba takes any (printer specific) file from a client and sends it to the local printer object, the printer object on the server must me configured properly with the appropriate driver. On the client you also must have a printer object with the appropriate driver.

>The IBM Null driver does not fit into the picture here...

  Up to now with LAN Manager I have only shared the IBM Null printer for the reasons above.  When Samba did not work similarly. I tried adding the OS/2 Optra printer as a second share and linking the Windows driver to that.  That does not print either.  That setup is the one which causes the printer light to blink but despite that fails to print as I mentioned in the initiating post.  Printing to the Samba shared Null driver printer does not produce any reaction at all.

   For now I have tracked down a free print to pdf driver which I have setup to print to a temp folder on OS/2.  Then I just go over to the OS/2 machine and run the Acrobat 5 there to physically print.  Not too painful.


Andi

I use the LPT3.os2 (or similar) port in WinOS2 to print over a LAN manager shared printer. In my case it's a Xerox postscript printer which is shared over the LAN and attached to LPT3 on the clients on login. In WinOS2 I've installed an Apple ColorLaser (postscript) on LPT3.os2 which works flawless. But maybe this is all that easy with postscript printers only ...


RobertM

#7
Quote from: Andi on 2012.05.07, 13:48:23
I use the LPT3.os2 (or similar) port in WinOS2 to print over a LAN manager shared printer. In my case it's a Xerox postscript printer which is shared over the LAN and attached to LPT3 on the clients on login. In WinOS2 I've installed an Apple ColorLaser (postscript) on LPT3.os2 which works flawless. But maybe this is all that easy with postscript printers only ...

Yes, generally, such ease only exists with Postscript printers (and even then, usually only ones without lotsa options, such as 27 paper drawers, special duplexers, etc). But of course, there are some limitations then as well, such as problems (with various combinations) with changing paper size definitions, or handling of certain fonts, etc.

On various PCL printers with similar features, one can sometimes get away with a "close enough" driver - but that often (due to the nature of PCL) will cause weird output issues (ie: the printed page doesn't look right, isn't the resolution it is supposed to be, images aren't printed properly, certain print resolutions don't work at all, etc).



The reason, for those who are curious, is (on the Postscript side), other than a few printer specific control codes (which are generally the same across models from a certain vendor), Postscript is postscript, and very device independent.

Earlier versions of PCL (haven't looked at newer ones) are a little less device independent, and certain portions of a print job may be rendered specifically for a certain printer. Not to mention vendor/model specific "PCL Enhancements".




On top of that, many older postscript printers shared a common lineage: many such devices were made by a small handful of manufacturers and simply rebranded (or cosmetically altered and rebranded).

As a for instance, in the Xerox real-world example above, various Xerox printers were IBM. Some IBM printers were Xerox. Some Ricoh printers were made by either of those two. Various Apple Laserwriters were rebadged HP Laserjets (or printers from other manufacturers) - during that era, Apple stopped making printers at some point and simply rebranded others'.





Oh, and some Apple Color LaserWriters were pretty much Lexmark/IBM printers - models often also rebranded as Xerox printers (or vice-versa - don't recall which, though Lexmark/IBM claim "designership" of those models). In the 12/600's case, it would be the Optra C or IBM Network Color Printer, if memory serves - though Xerox's designation I cannot recall.

Inotherwords (to Andi), I suspect (depending on what model Xerox you have), that you actually simply picked the exact matching driver - even though the manufacturer name is different (the hardware variances across the rebranding usually were minimal - and largely contained to what options came pre-installed or not).




Best,
Rob


|
|
Kirk's 5 Year Mission Continues at:
Star Trek New Voyages
|
|


Andi

QuoteInotherwords (to Andi), I suspect (depending on what model Xerox you have), that you actually simply picked the exact matching driver - even though the manufacturer name is different (the hardware variances across the rebranding usually were minimal - and largely contained to what options came pre-installed or not).

Not really. The Apple Laserwriter III (?) WinOS2 driver is AFAIK more than 15 years old where my Xerox is only a few years old. It is a low end color laser and the printing engine was made by some Japanes company or maybe Samsung but don't remember anymore. But has absolutely nothing to do with Lexmark/IBM  printers I hope. It was build at least a decade after Apple Laserwriters disappeared.

But as you said, postscript is (nearly) postscript and as long as you do not use special features like duplex or 5 paper cassettes a postscript printer usually works with any postscript driver. So do my Japanes/Korean Xerox with the stone age old Apple Laserwriter driver in postscript mode. Never tried it in PCL but rather sure it would make more troubles.

RobertM

#9
Ah...which one?

http://en.wikipedia.org/wiki/Color_LaserWriter

That bottom one is IBM. Cosmetics and Apple specific comm protocols aside.

The amount of things IBM was either designing, building or rebranding (or some combination of those) for Apple starting in the mid 90's through the late 90's was staggeringly large.

Some of the "secretly" built-for or "rebranded-for" Apple stuff, such as various desktops, even had "built by"s or IBM part numbers numerous places inside - along with other identifiers. Myself and my fellow techs would always get a chuckle out of ripping apart a bunch of Apples and counting how many were "IBMs"


|
|
Kirk's 5 Year Mission Continues at:
Star Trek New Voyages
|
|


vbien

Quote from: melf on 2012.05.03, 17:34:58
I can't help you with the Samba print, but as a better work around (till you get proper help) you could install a SLPR port (eCS) and print to your computers IP-number. My setting, printing form an eCS machine looks like in the picture (the properties window for the SLPR port is opened) . In windows it's called "Print over TCPIP" or something, where you can choose "LPR " and IP and printer name. I use it from both win and os2 machines. Added a pic from win.

I've installed an SLPR port and made the LPD server IP address that of my OS/2 computer (192.168.1.14) and made the LPD printer the IBM Null printer.  This idea effectively makes the OS/2 computer a print server doesn't it?  I was wondering whether that setup could be created.  On a Windows computer when I tried to create a network printer with the above OS/2 computer IP address I get an error saying Windows cannot connect to the printer.  Checking with ping shows the OS/2 computer responds correctly but as a print server it's not working.

So still nothing.  Did I need a restart?  When restarted the WPS would not come back up!  The WPS would hang after the welcoming sound emitted.  Because I have experienced these panic situation before, I have learnt and created a Maintenance partition where I have access to the WPS to run Back Again 2000 and restore the ini files from backup, which I take everyday.  So that installation of an SLPR port wrecked the WPS!!

I am finding it hard to understand the logic of SLPR.  It gets installed as an "Output port" which seems to imply it's for printing from the OS/2 computer to a print server?  Surely what I need is an "Input port" (from the network) to the printers.  So what I want to do is the other way round.  I want my OS/2 computer to be the repository machine for data and for printing from Windows computer essentially as smart terminals.  Was your discussion about using the OS/2 machine as a client?

The non-functioning of the Samba print function is very disappointing and the pdf method works but is very inconvenient.

ALT

Quote from: vbien on 2012.05.11, 10:47:53
I've installed an SLPR port and made the LPD server IP address that of my OS/2 computer (192.168.1.14) and made the LPD printer the IBM Null printer.  This idea effectively makes the OS/2 computer a print server doesn't it?  I was wondering whether that setup could be created. 
I am finding it hard to understand the logic of SLPR.  It gets installed as an "Output port" which seems to imply it's for printing from the OS/2 computer to a print server?  Surely what I need is an "Input port" (from the network) to the printers.  So what I want to do is the other way round.  I want my OS/2 computer to be the repository machine for data and for printing from Windows computer essentially as smart terminals.  Was your discussion about using the OS/2 machine as a client?

You are correct, SLPR is for printing from OS/2 to a network printer server.  It is not relevant to what you are trying to do.

What you want to do is to run LPD on your OS/2 system.  You can configure this through your TCP/IP Configuration GUI but that's such an ugly and cumbersome program to use that I think it's easier to just edit the configuration by hand.

Edit \tcpip\bin\tcpstart.cmd and locate the line "REM start lpd" (around line 26).  Change this line to "detach lpd -c" and save the file.  That'll start LPD whenever the system boots up.  To start it directly without rebooting, just run "detach lpd -c" from a command line.

You should then be able to print to any printer queue defined on OS/2 using TCP/IP (lpr) from another system.  The IP address is the IP address of your OS/2 system, and the print queue name is the "physical name" of the printer object shown on the first page of the printer object's properties notebook.

vbien

Quote from: ALT on 2012.05.11, 13:22:29
Quote from: vbien on 2012.05.11, 10:47:53
I've installed an SLPR port and made the LPD server IP address that of my OS/2 computer (192.168.1.14) and made the LPD printer the IBM Null printer.  This idea effectively makes the OS/2 computer a print server doesn't it?  I was wondering whether that setup could be created. 
I am finding it hard to understand the logic of SLPR.  It gets installed as an "Output port" which seems to imply it's for printing from the OS/2 computer to a print server?  Surely what I need is an "Input port" (from the network) to the printers.  So what I want to do is the other way round.  I want my OS/2 computer to be the repository machine for data and for printing from Windows computer essentially as smart terminals.  Was your discussion about using the OS/2 machine as a client?

You are correct, SLPR is for printing from OS/2 to a network printer server.  It is not relevant to what you are trying to do.

What you want to do is to run LPD on your OS/2 system.  You can configure this through your TCP/IP Configuration GUI but that's such an ugly and cumbersome program to use that I think it's easier to just edit the configuration by hand.

Edit \tcpip\bin\tcpstart.cmd and locate the line "REM start lpd" (around line 26).  Change this line to "detach lpd -c" and save the file.  That'll start LPD whenever the system boots up.  To start it directly without rebooting, just run "detach lpd -c" from a command line.

You should then be able to print to any printer queue defined on OS/2 using TCP/IP (lpr) from another system.  The IP address is the IP address of your OS/2 system, and the print queue name is the "physical name" of the printer object shown on the first page of the printer object's properties notebook.


Still doesn't work.  When you add a network printer, using the Windows add a printer wizard, and you type the IP address of say an HP4000 network printer, and click Next the wizard moves to the next screen that asks you to specify the printer driver you need.  On my OS/2 computer with the lpd -c running and also lptportd running and you do the same you still get the critical stop error message.  It does not seem sufficient to just specify the IP address of the OS/2 machine.  The wizard seems to be asking for the path to the printer but how would you do that which makes sense to the Windows machine?  Typing 192.168.1.14/dos (DOS being the queue name of the OS/2 IBM Null printer driver) doesn't work.  When you look at the DOS printer in the WPS (and all the others) it's actually under D:\Desktop\Connections\Printers\ (D: is my OS/2 boot drive).  I wouldn't think this makes sense to Windows.  I tried typing that path and it also did not work, not surprising.  There is no link between lpd or lprportd and any particular installed printer.


RobertM

That method fails on many versions of Windows - or on many printers. Its a long standing bug over ten years old.

The way that generally works is as follows (yes, as idiotic as this issue) in EVERY version off Windows from XP through Win7:

Choose to create a LOCAL printer (manual route, not auto-detect), then hit the appropriate version to add a new port, select TCP/IP port, add the appropriate IP address, then cancel or continue the printer creation selecting that port. Obviously, if you choose the cancel method (trying to continue sometimes hangs the installation on some versions off Windows) then u must start with the printer creation again. Again, pick LOCAL, and simply select the port you created above.

HTH,
Rob


|
|
Kirk's 5 Year Mission Continues at:
Star Trek New Voyages
|
|


vbien

Quote from: RobertM on 2012.05.13, 00:47:30
That method fails on many versions of Windows - or on many printers. Its a long standing bug over ten years old.

The way that generally works is as follows (yes, as idiotic as this issue) in EVERY version off Windows from XP through Win7:

Choose to create a LOCAL printer (manual route, not auto-detect), then hit the appropriate version to add a new port, select TCP/IP port, add the appropriate IP address, then cancel or continue the printer creation selecting that port. Obviously, if you choose the cancel method (trying to continue sometimes hangs the installation on some versions off Windows) then u must start with the printer creation again. Again, pick LOCAL, and simply select the port you created above.

HTH,
Rob

Still doesn't work.  I followed the above idea and created the new port and created the (local) printer icon with the Lexmark driver but when a test print is done nothing prints.  The job appears, when the icon is opened, but soon an error notice appears for the print job.

By my figuring there would have to be something missing; some linkage missing.  What I mean is that the lpd daemon is a command or process that works at the filesystem level but the print objects are at the WPS level - comparable to the Window's GUI desktop.  The printer objects are specified in the ini files, the equivalent of Windows Registry.  So how does the data stream flowing into lpd get to a printer object?  Or does it go automatically to prn?  The catch is that in my case the printer is not connected to the parallel port; it is connected to an USB port.  Can prn be redirected from LPT1 (the parallel port) to the USB port?  How would one do that?