How to Upgrade Printing in Puppy 4.3.1

Problems and successes with specific brands/models of printers
Post Reply
Message
Author
User avatar
rcrsn51
Posts: 13096
Joined: Tue 05 Sep 2006, 13:50
Location: Stratford, Ontario

How to Upgrade Printing in Puppy 4.3.1

#1 Post by rcrsn51 »

Puppy 4.3.1 still uses the old CUPS 1.1.23 and its driver installation procedures. There are several advantages to upgrading to CUPS 1.3.11. It has improved hardware detection and can auto-install many printers. The main steps are described below.

--------------------------

Upgrading CUPS

1. Install CUPS 1.3.11 from here. Just select the three default items 1,2 and 5.

2. Install the foomatic-filters-4.0.4-i486.pet from the attachments below.

3. Right-click on the folder /tmp and check its properties. Make sure that it is writable for all users. (The CUPS installer appears to change this setting.)

Steps 2 and 3 are not required by all printer drivers, But do them now, just to be sure.

Note: if you have installed Puppy on a flash drive, read this thread, starting at page 2.

To confirm that your CUPS upgrade was successful, use these commands:

Code: Select all

cups-config --version
/etc/init.d/cups status
[Update] The CUPS 1.3.11 installer adds an entry into the Puppy menu structure. If you try to install the package on a Pupplet that uses a window manager other than JWM, bad things may happen.

---------------------------

Installing a Printer

1. Download one of the printer driver packages below or get a driver from here or here or here.

2. You don't need to use the Puppy Printer Wizard to install a printer. Just launch your web browser and go to the CUPS interface at:

Code: Select all

localhost:631
3. Open the Administration tab and select Find New Printers. If your printer is auto-detected, install it and run a test page. If not, use the Add Printer procedure.

---------------------------

HP Printer Drivers

[Update] If you are already using lluamco's HPLIP package, do NOT install the following HPIJS driver. The two packages conflict with each other. However, to make HPLIP work with CUPS 1.3.11, go here and get #11 - the Foomatic-rip-hplip-patched script PET.

Install the hpijs-3.10.6-dynppd.pet from below. This package just contains basic printer drivers - no scanners, faxes or toolkits. Make sure that you have also installed the foomatic-filters upgrade.

Be aware that some drivers in the package, like the LJ1000 series, require additional components.

A good program for printing digital photos is GQview. Get it from the Puppy Package Manager. To print on 4x6 photo paper, you may need to change some settings in CUPS. Look under Set Printer Options for items like Media Size or Printout Mode.

Another useful tool for manipulating your photos is RPhoto.

--------------------------

HP Scanner Drivers

To add scanner support, install the hplip-3.9.12-scan.pet. This package contains the standard scanner driver used by many HP units. Install it and run Xsane from the Graphic menu. Your scanner should be auto-detected.

If you close the Xsane Preview window, it won't open in the next scanning session until you enable it again from the Windows tab.

After a scanning session, some HP units may need to be rebooted before printing will work again.

---------------------------

Gutenprint Drivers [updated 2010-03-12]

The Gutenprint package contains drivers for many brands of printer. The gutenprint-5.2.5-i486.pet from here will create the PPD files dynamically (unlike the Printer Wizard). Just install it and go directly to CUPS at localhost:631.

----------------------------

Other Scanner Drivers

If you have an Epson multi-purpose unit, read here for a scanner driver. If you have a Canon unit, read here.

----------------------------

Printing from Applications

Most Puppy application software is CUPS-aware. When you open the Print dialog in a program, you see a list of installed printers. This is especially handy if you have several printers on your system. Unfortunately, CUPS 1.3.11 disables this feature in a few programs like Geany and Gnumeric, and no printers are displayed.

As a work-around, install the setdefprn-1.0.pet from below. Now the printer list includes the item "Print to LPR". This option sends the print job to the default CUPS printer (so make sure you have declared one).

The package also adds a menu item to the System category named "Set Default Printer". This utility lets you select a temporary printer that will override the CUPS default. Now "Print to LPR" will send the print job to whatever device you chose.

The program works by storing the name of the target printer in the file /etc/cups/lpoptions. If you choose "Restore the CUPS Default", this file is deleted and CUPS returns to its normal operation.

-----------------------------

Networked Printers

In Windows, a networked printer is identified by its NETBIOS name. So a Windows client can always find the printer even if its IP address changes. However, CUPS configures its printers by IP address only. If you reset your network and the printer's IP address changes, you will have to reinstall the printer.

One solution is to give the printer a static IP address. Another possibility is discussed at the end of the thread here.

---------------------------------

Connecting to a Windows Shared Printer

Before starting, move the printer to your Puppy machine and install it as a local printer. That way, you can identify the correct driver to use. Then move it back to the Windows machine and delete the local Puppy printer.

1. Go to your Windows machine and locate its computer name and the name of the shared printer.

Find the computer name under Control Panel > System > Computer Name > Full Computer Name

The printer name is the one-word identifier assigned by Windows. Look for it under the Sharing tab of the printer's properties.

Important! CUPS cannot deal with a printer name if it contains spaces. You have two choices. Rename the printer in the Windows Sharing dialog. Or replace the spaces with the code %20 when you enter the name in CUPS.

2. Locate the file /etc/opt/samba/smb.conf and change its properties to all-readable.

3. Launch CUPS and start adding a printer. (Windows printers are not auto-detected.)

4. At the bottom of the Device list, select "Windows Printer via Samba".

5. Enter the device URI as: smb://COMPUTERNAME/PRINTERNAME

6. Select your printer manufacturer and model as usual.

[Update] Some users have reported success using the Windows computer's IP address instead of its name in the URI. If you continue to have trouble accessing the printer, check your Windows firewall or security software. They may be blocking network activity.

---------------------------

Sharing your Puppy Printer with Other Windows or Linux Machines

Step 1:

Start the CUPS web interface and open the Printers page.
Note that each printer has a Publish/Unpublish button.
By default, all printers are published, but are not yet visible to your network.

Write down the name of the printer you want to share.
For example: Canon_i560_USB_1

Open the Administration page and look at the Server section.
Select the option "Share published printers connected to this system".
Click on Change Settings. You will be asked to authenticate.
Use "root" and the password "woofwoof".
Exit out of CUPS.

For the next step, you will need the IP address of your Puppy machine.
Run: ifconfig

Step 2A: Setting up a Windows Client

Boot up the Windows machine and start the Add Printer wizard.
Select Network Printer and URL.
Enter: http://puppy.machine.ip.address:631/pri ... rintername

For example: http://192.168.2.10:631/printers/Canon_i560_USB_1

For the printer make and model, choose HP Color Laserjet PS

Check Properties > Printing Preferences > Paper/Quality and verify that it is set on Color (if you need it).

Print a test page.

But how can this work unless you own an actual HP laser printer? The clue is the PS, which indicates that this printer is Postscript-capable. So Windows formats its print job using the Postscript printer language and sends it across the network to your Puppy machine. This is exactly what the CUPS server expects to receive from a client, Postscript being the standard printer language for Linux. CUPS then formats the job using its own Canon driver and queues it to the printer.

The next time you reboot your Puppy computer, it will automatically start CUPS in sharing mode. But wait a few seconds before booting a client machine or it may not immediately detect CUPS' presence on your network.

If the Puppy computer has changed its IP address, you will need to update the Windows printer. With XP Home, you must reinstall it. If you have XP Pro or NT, try the following procedure:

Locate your Windows hosts file in c:/windows/system32/drivers/etc
Add the line: puppy.machine.ip.address puppy
Install the printer using the URL: http://puppy:631/printers/printername

Then if the Puppy server gets a new IP address, you need only update the Windows hosts file.

Step 2B. You may find that the Windows Postscript driver is less functional than the official driver that came with your printer. If so, there is an alternate procedure.

Create a second, "raw" Puppy printer. It will accept a print job from Windows and send it directly to the printer without any additional formatting. You can create it from the command line with:

Code: Select all

lpadmin -p NAME -E -v URI
Use a different name than the local name of the printer. Use the exact same URI as given to the local printer. (You can copy/paste the URI from the CUPS web interface into the command line with the middle-click technique.)

Restart CUPS with

Code: Select all

/etc/init.d/cups restart
and verify that the printer has been created as a raw device.

In Windows, install the raw printer using Step 2A, but use the Windows driver instead of Postscript.

Be aware that some Windows drivers won't work this way because they need to contact their printer directly as a local device.

Step 3: Setting up a Linux Client

This is easy! If the client machine is also running CUPS, it should automatically detect your shared printer and list it. No other installation is required. You may find that a Linux client takes a little longer than Windows to detect the printer.
Attachments
setdefprn-1.0.pet
(932 Bytes) Downloaded 1365 times
foomatic-filters-4.0.4-i486.pet
(41.31 KiB) Downloaded 1695 times

Montchalin
Posts: 20
Joined: Thu 08 May 2008, 22:24

#2 Post by Montchalin »

My HP G85 seems oblivious to anything CUPS commands.

And CUPS seems oblivious to the fact that the G85 is not listening or printing.

CUPS believes all is well and the job was printed. But, it wasn't.


First boot of Wary Puppy 510, which has CUPS 3.11.


I installed
foomatic-filters-4.0.4-i486 (Foomatic filters for Cups), then
foo-hplip-3.0 (#11 from Patriot's post), then
hpijs-3.10.6-dynppd (HPIJS printer Drivers)

I just checked tmp to make sure that everyone can write to it, and they can.

Any pointers would be greatly appreciated!

I have also tried to get this printer working in Lupu 510 and Puppy4.1.2. The G 85 only works in XP for me.

User avatar
rcrsn51
Posts: 13096
Joined: Tue 05 Sep 2006, 13:50
Location: Stratford, Ontario

#3 Post by rcrsn51 »

You are installing stuff into Wary that is bound to cause conflicts. You need to be reading here.

At this point, you have installed conflicting packages. All you should need to install is the hpijs-3.11.1-dynppd.pet. You may need a fresh install of Puppy to clean up this mess.

BTW, Puppy already has a Gutenprint driver for the Officejet G85. Did you try it?

Post Reply