# Howto for HP LaserJet 1000

## FuzzeX

EDIT (01/23/04): Updated the foo2zjs info to reflect new url and added the link to the support thread.

EDIT (07/28/04): Updated the hotplug script link and added the full script.

 *mod edit wrote:*   

> 
> 
> Due to lack of hardware, FuzzeX can't maintain this howto anymore. If you intend to use it, please notice the following updates:
> 
> - Step 4-6 are changed as foo2zjs is available through Portage. Please run emerge foo2zjs (you might have to unmask it) and use /usr/share/foo2zjs/firmware/sihp1000.dl in step 6. --Earthwings 2005-01-18
> ...

 

If you have one of these printers all is not lost. These are the steps I took to get this printer working with gentoo. The steps are basically the same as the Gentoo Printing Guide with a few extra steps.

For Support: I will try to answer your support questions, but you must post them in the Support Thread.

Howto:

Step 1: Add cups and usb to your use flags as directed by the Gentoo Printing Guide.

Step 2: Emerge cups and foomatic

```
emerge cups

emerge foomatic
```

Step 3: Configure your kernel as directed by the Gentoo Printing Guide for usb support.

Step4: Download the foo2zjs package and compile. The complete directions are at their website (http://foo2zjs.rkkda.com/) but here they are in short: (Note: The foo2zjs driver package now has a tool to download the firmware for the LaserJet 1000 printer. See the driver website for details.)

```
wget http://foo2zjs.rkkda.com/foo2zjs.tar.gz

tar zxf foo2zjs.tar.gz

cd foo2zjs

make

su

make install

```

Step 5: Download the driver for the printer from HP's ftp .  Unzip the firmware from the exe. (If you used the tool in the foo2zjs package to get the firmware, follow the directions on their website and ignore this step.)

```
wget ftp://ftp.hp.com/pub/softlib/software1/lj1488/lj-1145-2/lj1488en.exe

unzip lj1488en.exe sihp1000.img
```

Step 6: Plug in the printer and power it up, convert the firmware to the correct format and download it to the printer.

```
arm2hpdl sihp1000.img > sihp1000.dl

cat sihp1000.dl > /dev/usb/lp0
```

Step 7: Start cupsd and setup the printer as covered in the Gentoo Printing Guide

```
/etc/init.d/cupsd start

foomatic-configure -s cups -p HP-LaserJet_1000 -c file:/dev/usb/lp0 -n laser -d foo2zjs
```

Step 8: Goto the cups admin page and try printing a test page.

You should now be able to print. However, you still have the issue that if you power off the printer you will need to re-cat the firmware to it. I happened to find a solution that uses usb hotplug to do this for you. (http://www.linuxprinting.org/pipermail/hp-list/2004q2/002369.html)

(oldlink: http://www.linuxprinting.org/pipermail/hp-list/2003q1/002376.html)

Here is the script since the link seems to be moving:

```
#! /bin/sh

#####################################################################

#                                                                   #

#   hp1000fw - HP LaserJet 1000 Firmware Uploader                   #

#                                                                   #

#   This program will upload the firmware of the HP LaserJet 1000   #

#   checking if the printer is connected and if the firmware        #

#   has been already uploaded.                                      #

#   (c) 2002 Oscar Santacreu. Alicante-Spain                        #

#   Copyright under GPL                                             #

#                                                                   #

#   This program uses the usb_id_test.c program by Till Kamppeter   #

#   (Thanks, Till). You can found it at                             #

#   http://www.linuxprinting.org/download/printing/usb_id_test.c    #

#   and you can compile it simply with:                             #

#   "gcc -o usb_id_test usb_id_test.c"                              #

#                                                                   #

#####################################################################

# Last modification date: Jan 10 2002 #

#######################################

#

# ======= User Settings ===============

# 1. Where is the firmware file?

firmware=/etc/printer/sihp1000.img

# 2. Where is the usb_id_test executable?

detector=/usr/local/bin/usb_id_test

# ======= End of user Settings ========

#

# logging for diagnostics

#

if [ -t -o ! -x /usr/bin/logger ]; then

    mesg () {

   echo "$@"

    }

else

    mesg () {

   /usr/bin/logger -t $0 "$@"

    }

fi

# End logging for diagnostics

# Check if the configuration is ok

if [ -e $detector ]; then

 if [ -e $firmware ]; then

  candidate_list=`find /dev/usb -name lp*`" "`find /dev -name usblp*` 

  for candidate in $candidate_list; do

   printer_status=`$detector $candidate | grep 'hp LaserJet 1000'`

   if [ "$printer_status" != "" ]; then

    # I have found a hp LaserJet 1000 :-)

    mesg hp LaserJet 1000 detected at $candidate

    firmware_status=`$detector $candidate | grep 'FWVER'`

    if [ "$firmware_status" = "" ]; then

     # The firmware is not loaded. Now we can upload the firmware.

     result=`cat $firmware > $candidate`

     mesg Firmware uploaded to $candidate.

     mesg Now you can print normally with this printer.

    else

     mesg The firmware was already uploaded.

    fi

   fi

  done

 else

  mesg Error: I cannot find the firmware file

  mesg Please check the settings of $0

 fi

else

 mesg Error: I cannot find the usb_find_test program.

 mesg Please check the settings of $0

fi

############### End of program
```

Step 9: Put the firmware and the hp1000fw script in to the usb hotplug folder. 

```
mv sihp1000.dl /etc/hotplug/usb

mv hp1000fw /etc/hotplug/usb

```

Step 10: Download usb_id_test.c, compile it and put it someplace nice. Check the hp1000fw script and make sure that the $firmware (sihp1000.dl) and $detector (usb_id_test) variables are pointing to the right places.

```
wget http://www.linuxprinting.org/download/printing/usb_id_test.c

gcc usb_id_test.c -o usb_id_test

mv usb_id_test /usr/local/bin

```

Step 11: Edit the /etc/hotplug/usb.usermap file to include the following line (it should be one line, but it's kind of long for the forum):

```
hp1000fw               0x0003      0x03f0   0x0517    0x0000       0x0000 

     0x00         0x00            0x00            0x00            0x00    

          0x00               0x00000000
```

You should now be able to power cycle the printer and the firmware will automatically be downloaded (you can tell if the printer makes its start up noises, pauses and then makes them again).

More support info can be found at the following links:

http://www.linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1000

http://foo2zjs.rkkda.com/

https://forums.gentoo.org/viewtopic.php?t=97760

I think that's it. Hope it helps.Last edited by FuzzeX on Wed Jul 28, 2004 6:20 pm; edited 2 times in total

----------

## AlterEgo

I assume you have a HP 1000 yourself.

I saw one a few days ago for an amazingly low price, but was put-off by the comments on linuxprinting.org.

Do you like it  :Confused: 

----------

## FuzzeX

Yes I do have one in my possesion. The comments on linuxprinting.org are there for a reason. When they say it's a very odd printer, they are right (the fact that it won't hold it's firmware after a power cycle being strangest). They have it listed as mostly working and it seems to do text pretty well. I haven't been able to run it through it's paces yet.

I have noticed that gradients seem to step rather than be smooth, but the text is crisp and the resolution is pretty good. I have used (and abused) one of these printers in the past in a win environment and it preformed pretty good for the price (price per sheet is better than injet).

Yeah the price right now can't be beat. I think $150 at some places, which for laser is insane. But if I had my pick I'd go with at least a LaserJet 1300. It has better resolution, better firmware, bigger toner carts, and you can get a hardware printserver to plug into it if you so desire.

----------

## AlterEgo

Thanks FuzzeX,

I was considering the price per page compared to my current Inkjet,

and a cheap laser that is linux-compatible would be really interesting.

I also noticed some really cheap Samsung ML-1210 printers, that seem to be 100% under linux.

----------

## FuzzeX

Browsing Samsung's Website it looks like the ML-1210 is a much nicer printer. It has 8 Mb of on board memory while the LaserJet 1000 only has 1 Mb. It also looks like the ML-1210 understands postscript (or at least something close) while the LaserJet 1000 talks something like zjs, but not quite it would seem.

As far as price per sheet (I think most of these are calculated at 5% converage):

ML-1210 US$.015 (about US$53 for 3500 pages)

HP LJ 1000 US$.025 (about US$60 for 2500 pages, US$80 for 3500 pages)

Average Inkjet ~ US$.06 (about US$30 for 500 pages)(on the low end)

So, if you can find the samsung at a good price I'd say get that over the HP.

----------

## trolley

If anyone is interested, I have posted an ebuild for foo2zjs at http://mark.trolley.ca/ebuilds.

Thanks for the great info, I had been beating my head against the wall over this printer!

----------

## FuzzeX

Glad the info was useful. Thanks for the ebuild, looks great.

----------

## Master_Of_Disaster

FuzzeX, have you ever tried printing multiple pages on one sheet in KDE? My Laserjet 1000 just shoots out empty sheets of paper, and cups log tell me this:

```
I [17/Oct/2003:12:23:05 +0200] Job 87 queued on 'HP_LaserJet_1000' by 'fuero'.

I [17/Oct/2003:12:23:05 +0200] Started filter /usr/lib/cups/filter/pstops (PID 8962) for job 87.

I [17/Oct/2003:12:23:05 +0200] Started filter /usr/lib/cups/filter/cupsomatic (PID 8963) for job 87.

I [17/Oct/2003:12:23:05 +0200] Started backend /usr/lib/cups/backend/usb (PID 8964) for job 87.

W [17/Oct/2003:12:23:06 +0200] [Job 87] Media tray empty!

E [17/Oct/2003:21:52:04 +0200] Scheduler shutting down due to SIGTERM.
```

Printing without this option works flawlessly, and I have psutils installed. 

Any idea?

--Robert

----------

## Vishruth

 *AlterEgo wrote:*   

> I assume you have a HP 1000 yourself.
> 
> I saw one a few days ago for an amazingly low price, but was put-off by the comments on linuxprinting.org.
> 
> Do you like it 

 

I got an HP LaserJet 1010 yesterday. It's wonderful. I found it difficult to install it on WindowsXP. The installer hung at the "detecting connected printers" (or something like that) screen. But on Gentoo, it was a cool breeze! All I had to do was emerge cups and start the server and then add a printer using cups' browser based management system. Now I have added three configurations for 600dpi (maximum/best quality), 300dpi and 150dpi. I never expected this to be so easy on Gentoo.

As far as the price of 1010 is concerned, it cost me less than 1000 (here in India) and it has better features too - 8 mb memory, 12 ppm, very compact (blah blah...). I suggest checking 1010 and 1015 out before buying a laser printer.   :Cool: 

----------

## FuzzeX

Master_Of_Disaster:

Check here for some info on your question:

https://forums.gentoo.org/viewtopic.php?t=97760

----------

## discostu

 :Very Happy:   Thanks for posting this howto! I've been trying to get this printer working under linux for a long time!

----------

## trolley

So after reinstalling my printer no longer works.  I set it up exactly as before, but now every time I send it a job, the top light just flashes green forever.  Anyone here experience this and have a solution?  By the way, this is printing to a shared printer via SMB.  On the windows box it sits in the print queue saying it's printing.

----------

## FuzzeX

If you want to try and get the smb connection to the printer working post your /etc/samba/smb.conf to this thread.

If the windows machine is running XP I would recommend trying to set it up to access cups directly rather than go through samba. You can do this by setting up the printer as an internet printer (enter the url of the priner, something like, http://server:631/printers/printername) and selecting a driver that will print postscript (something like a LaserJet IIIP).

----------

## trolley

I think you have it backwards.  The printer is hooked up to a WinME box and shared via SMB, and I'm trying to print to it from my Gentoo box.  It was working before I reinstalled Gentoo, and I followed the same steps, but now any print jobs from the linux box just sit in the ME print queue...

----------

## FuzzeX

trolly:

Response to your question here

----------

## Ateo

Has anyone successfully installed the HP 1010 LaserJet?

----------

## norty123

I can't explain how great this was.  It should for sure be added to a list of how-to's on the main docs page.

Awesome!

So excited!

Printing everything now  :Wink: 

Cheers!

~Ian

----------

## norty123

I have a Small Weird Problem to report.  After about 5 minutes of inactivity, the printer shuts itself off...  I have to go into CUPS configuration and start it again.  Jobs are held, it says it will accept jobs (and it does) but they won't print until I start the printer again.

Anyone have this problem?

~ian

----------

## bludger

I have a Minolta/QMS magicolor 2300 DL and have just successfully followed your instructions to download and install the foo2zjs driver.  

Is there any reason why this driver is not in portage?  If not, could someone with the skills and time (I have neither) please create an ebuild etc.  Perhaps this info could also be added to the printing howto, if it is not already.

Thanks anyway for the much needed instructions.

----------

## Vishruth

 *-Amoeba- (Posted: Sun Jan 04, 2004 7:38 am) wrote:*   

> Has anyone successfully installed the HP 1010 LaserJet?

 

 *Vishruth (Posted: Sat Oct 18, 2003 8:56 pm) wrote:*   

> I got an HP LaserJet 1010 yesterday. It's wonderful. I found it difficult to install it on WindowsXP. The installer hung at the "detecting connected printers" (or something like that) screen. But on Gentoo, it was a cool breeze! All I had to do was emerge cups and start the server and then add a printer using cups' browser based management system. Now I have added three configurations for 600dpi (maximum/best quality), 300dpi and 150dpi. I never expected this to be so easy on Gentoo.
> 
> As far as the price of 1010 is concerned, it cost me less than 1000 (here in India) and it has better features too - 8 mb memory, 12 ppm, very compact (blah blah...). I suggest checking 1010 and 1015 out before buying a laser printer. 

 

HP 1010's working great here. (2.6.2 kernel, cups 1.1.20) And also, if you're having too much of a tough time setting your printer up, you might want to try gnome-cups-manager.

----------

## berus

I've a problem with Hp LaserJet 1000 on a Win2000 server and my notebook with samba and cups.

I've installed cups and samba at home and a Hp 930c and a Okipage 6e on a Xp server worls fine. Instead, at work when a try to print the "Test Page" on the win2000 printer manager arrive a document but the printer don't print anything. After 10 sec the printer queue is cleaned and cups 'says' "CUPS v1.1.20 is ready to print."

----------

## FuzzeX

berus:

It sounds like the configuration on the linux end is working fine since the document makes it into the print manager. Why the document doesn't print on the windows end is anyone's guess. Unfortunatly I don't live with this printer (or it's owner) any more and so I won't really be able to troubleshoot your problem.

If someone has a suggestion they are more than welcome to post it to the Support Thread.

----------

## thecas

Tnx alot,

I almost gave it up because it didn't seem to work at all.

Here were my problems (and solutions)

I first got stuck on the part you need /dev/usb/lp0

The problem was: It wasn't there, solution: udev+hotplug

The second problem i had was that it kept saying that the tray was empty this was solved after i gave it up pulled the power out of the printer and shut the pc down.

When i booted the pc again suddenly the testpage came out of the printer!

I guess your script that installed the driver every time you power the printer up fixed it.

I really appreciate your great guide and am a happy printing fellow now!

keep on the good work!

----------

## genstef

I have the same problem with "tray empty" on my hplj1005 and I cannot solve it, I do not want to reboot every time if I want to print  :Sad: . Sometimes it prints, sometimes not. Someone should perhabs contact the author and tell him about this.

----------

## FuzzeX

It's been a while since I've posted to this thread, but about the tray empty error:

I've found that if you open the front of the printer where you would insert the toner cart. and then close it, the printer does a self check and will find the paper.

I has been a while since I've had this printer so I don't know if that is the solution in your case.

Power cycling the printer might be an option too.

::shrugs::

----------

## genstef

I have written an ebuild for it and it looks like it works very well. Only printer configuration in the cups-gui is needed after you installed this ebuild. Hotplug and such is made by this ebuild.

```
# Copyright 1999-2004 Gentoo Technologies, Inc.

# Distributed under the terms of the GNU General Public License v2

# $Header: $

DESCRIPTION="Support for printing to ZjStream-based printers"

HOMEPAGE="http://foo2zjs.rkkda.com/"

SRC_URI="http://foo2zjs.rkkda.com/${PN}.tar.gz

    ftp://ftp.minolta-qms.com/pub/crc/out_going/win/m23dlicc.exe

    ftp://ftp.minolta-qms.com/pub/crc/out_going/win2000/m22dlicc.exe

    ftp://ftp.minolta-qms.com/pub/crc/out_going/windows/cpplxp.exe

    ftp://192.151.53.86/pub/softlib/software2/COL2222/lj-10067-2/lj1005hostbased-en.exe

    ftp://ftp.hp.com/pub/softlib/software1/lj1488/lj-1145-2/lj1488en.exe"

RESTRICT="nomirror"

LICENSE="GPL-2"

SLOT="0"

IUSE="cups foomaticdb"

DEPEND="cups? ( >=net-print/cups-1.1.20-r1 )

    foomaticdb? ( >=net-print/foomatic-3.0.1 )"

KEYWORDS="-* ~x86"

S=${WORKDIR}/${PN}

src_unpack() {

    tar xzf ${DISTDIR}/${PN}.tar.gz

    # sed takes out the first entry

    for i in `echo ${A} | sed "s/^.[a-z0-9.]* //"`

    do

        ln -s ${DISTDIR}/${i} ${S}

    done

}

src_compile() {

    emake || die "emake failed"

}

src_install() {

# unpack the firmware

    sed -si "s/.*wget.*//" getweb

    ./getweb 2300   # Get Minolta 2300 DL .ICM files

    ./getweb 2200   # Get Minolta 2200 DL .ICM files

    ./getweb cpwl   # Get Minolta Color PageWorks/Pro L .ICM files

    ./getweb 1005   # Get HP LJ1005 firmware file

    ./getweb 1000     # Get HP LJ1000 firmware file

# install: Fix some Makefile bugs first here

    sed -si "s|PREFIX=\/usr|PREFIX=${D}/usr|" Makefile

    sed -si "s|rm -rf /var/cache/fo|#rm -rf /var/cache/fo|" Makefile

    sed -si "s|.*install-usermap.*|#|" Makefile

    dodir /usr/bin

    use foomaticdb && dodir \

        /usr/share/foomatic/db/source/driver \

        /usr/share/foomatic/db/source/printer \

        /usr/share/foomatic/db/source/opt

    use cups && dodir /usr/share/cups/model

    make \

        MANDIR=${D}/usr/share/man \

        INFODIR=${D}/usr/share/info \

        FOODB=${D}/usr/share/foomatic/db/source \

        MODEL=${D}/usr/share/cups/model \

        USBDIR=${D}/etc/hotplug/usb \

        all install install-hotplug || die

    cat >${D}/etc/hotplug/usb/hplj.usermap<<EOF

# usb module         match_flags idVendor idProduct bcdDevice_lo bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info

hplj1000 0x0003 0x03f0 0x0517 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000

hplj1005 0x0003 0x03f0 0x1317 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000

EOF

}

```

----------

## Master_Of_Disaster

I created another ebuild for foo2zjs, it fixes problems that arise with amd64.

https://bugs.gentoo.org/show_bug.cgi?id=65156

----------

## genstef

I combined mine and your ebuild, always taking the best ideas of both. Can you please test it? It can be found in bugzilla.

----------

## roRisc

I have no /etc/hotplug/usb.usermap file... 

the printer works fine untill I power it off... 

Mandrake linux fixed this issue, how'd they do it?

how can I used the provided ebuild?

.. is there a dumbed-down how-to on this? I downloaded it placed it in ../portaje/net-print/ and don't know what to do next....

many thanks.

----------

## genstef

Search for documentation on overlay and see PROTDIR_overlay in /etc/make.conf

----------

## roRisc

could someone please explain what the ebuild does? ..

can I accomplish the same thing without having the usb.usermap file on my box?

my printer works fine, untill I powercycle it. I'd love to get it all working.  :Smile:  thank you.

----------

## Master_Of_Disaster

You're sure you got the latest version of hotplug installed? This file should be included...

```
fuero@hephaestos ~/tmp/sim-0.9.3 $ qpkg -f /etc/hotplug/usb.usermap

sys-apps/hotplug *
```

----------

## genstef

We do not change usb.usermap as we should not own the same file as hotplug. We have a file /etc/hotplug/usb/hplj.usermap instead. You can help us to improve the usb hotplug function, because as you said it does not work quite well.

----------

## roRisc

I have compiled usb support in the kernel, so that may be the reason why there was no usb.usermap.

however, I emerged hotplug and I have the file now.

how come the printer worked without it?

thanks.

----------

## roRisc

still trying to make this script work.

I noticed 2 lines:

```

# 1. Where is the firmware file?

firmware=/etc/printer/sihp1000.img

# 2. Where is the usb_id_test executable?

detector=/usr/local/bin/usb_id_test 

```

..however, I have no such folder as /etc/printer/

and the firmware was transformed into sihp1000.dl in one of the steps....

how can I check the logger to find out if indeed there's an error comming from 

```

 else

  mesg Error: I cannot find the firmware file

  mesg Please check the settings of $0 

```

thank you.

----------

## Master_Of_Disaster

err... which script are you talking about?

hotplug is supposed to load /etc/hotplug/usb/hplj1000:

```
#

# Directory to find downloadable HP firmware files sihpMMMM.dl

#

FWDIR=/usr/share/foo2zjs/firmware

#

# Program used to determine USB id information

#

USBID=/usr/bin/usb_printerid
```

If it doesn't, make sure you got /etc/hotplug/usb/hplj.usermap. These files should be installed by the foo2zjs ebuild genstef and I created. If you don't have both, please try to reinstall foo2zjs using the newest ebuild you can find in Bugzilla.

----------

## roRisc

I was talking about the initial script on 1st page.

I don't have a clue on how to download your ebuild.

 *genstef wrote:*   

> Search for documentation on overlay and see PROTDIR_overlay in /etc/make.conf
> 
> 

 

I can't find anything on this issue on the forum.. nor google.

please let me know how I can emerge your ebuild?

an RTFM link would be great. ... don't know what to search for....  :Embarassed: 

Thank you.

----------

## genstef

from /etc/make.conf.example 

# PORTDIR_OVERLAY is a directory where local ebuilds may be stored without

#     concern that they will be deleted by rsync updates. Default is not

#     defined.

#PORTDIR_OVERLAY=/usr/local/portage

----------

## herlock

I can't download the firmware:

```
$ wget ftp://ftp.hp.com/pub/softlib/software1/lj1488/lj-1145-2/lj1488en.exe

--22:03:55--  ftp://ftp.hp.com/pub/softlib/software1/lj1488/lj-1145-2/lj1488en.exe

           => `lj1488en.exe'

Rsolution de ftp.hp.com... 192.6.234.8, 192.6.165.119

Connexion vers ftp.hp.com[192.6.234.8]:21...connect.

Ouverture de session en anonymous...Session tablie!

==> SYST ... complt.    ==> PWD ... complt.

==> TYPE I ... complt.  ==> CWD /pub/softlib/software1/lj1488/lj-1145-2 ... complt.

==> PORT ... complt.    ==> RETR lj1488en.exe ... complt.

accept: Connexion termine par expiration du dlai d'attente

Nouvel essai.

--22:03:59--  ftp://ftp.hp.com/pub/softlib/software1/lj1488/lj-1145-2/lj1488en.exe

  (essai: 2) => `lj1488en.exe'

==> CWD n'est pas requis.

==> PORT ... 

```

(sorry but it's in french)

So, where can i get it?

Thanks

----------

## trakon88

hi all

watch out for this: https://forums.gentoo.org/viewtopic-t-276876-highlight-hp1000fw.html

I don't know if udev has been taken care of in the ebuild ...

----------

## GurliGebis

I got this little script for uploading the firmware: (/etc/dev.d/default/hotplug.dev)

```
#!/bin/sh

if [ "$DEVNAME" != "/dev/usb/lp0" ]; then exit; fi

cat /lib/firmware/sihp1000.dl > /dev/usb/lp0
```

I know it's an ugly hack, but it works quiet nice  :Smile: 

----------

