kern/75157: Cannot print to /dev/lpt0 with HP Laserjet 1005 : Device Busy

Hernán Di Pietro hernandp at speedy.com.ar
Thu Dec 16 08:40:29 PST 2004


>Number:         75157
>Category:       kern
>Synopsis:       Cannot print to /dev/lpt0 with HP Laserjet 1005 : Device Busy
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Dec 16 16:40:17 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Hernán Di Pietro
>Release:        FreeBSD 5.3 RELEASE, i386, Generic Kernel
>Organization:
>Environment:
FreeBSD  5.3-RELEASE GENERIC i386
>Description:
Cannot print files to /dev/lpt0 with a Parallel HP Laserjet 1005 after
successfully uploading the HP Laserjet 1005 firmware.

Note that you can't upload anything with interrupt-driven port. If lpt
is set to polled mode with lptcontrol, it's possible to upload the 
firmware to the printer.

Seems that's a timing problem, because the firmware can be successfully
uploaded through the parallel port ONLY when the printer is powering up.
If you leave the printer ON for some seconds after powerup tasks,
sending the firmware with cat will output a Device Busy message.

>How-To-Repeat:
* In interrupt-driven port, just try to send anything to the port, it won't respond.

* Set the port with lptcontrol at boot time to polled mode (-p). Turn off the printer. When the printer is powering up, send the HP 1005 firmware with 

cat Hp1005fw > /dev/lpt0

the firmware is uploaded correctly (you can check this because when you bootup the system the next time it will identify the printer with a string like):

ppc0: HP Laserjet 1005...... 200302xx

When the firmware is not loaded, it will just report the printer name, not any feature or manufacturing date.

Note that in Linux, this firmware uploading is required, and it can be done like in FreeBSD, altough it's possible to send any job to the printer. In FreeBSD, even with the firmware loaded, the printer does not respond. 
>Fix:
The HP Laserjet 1005 firmware can be successfully uploaded to the printer if you set lpt to polling mode (device.hints at loader.conf w/ACPI disabled to avoid ACPI to reset the port to interrupt-driven). After bootup, turn off the printer. Type the command to upload the printer firmware, but do not press ENTER. Just execute the cat hp1005fw>/dev/lpt0 when the printer is doing the powerup tests. THe firmware will be successfully loaded.

After that, it won't respond to printing requests (Device busy error).
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list