Archives for posts with tag: printer

After some struggle, I finally managed to set up my Slitaz 2.0 to print on my Canon LBP2900.

The most important lesson I learned, was to check for kernel modules! Slitaz has a very good hardware detection software, but it did not reckognize my usb printer. So, first step is to load the module. If you don’t do this, the device mount point won’t be created by udev.

# modprobe usblp

Connects printer with usb and issue (lsusb is not available yet in Slitaz):

# cat /proc/bus/usb/devices

Verify that /dev/usblp0 or /dev/usb/lp0
has been created. This is your device, and ensures that udev is working. The number may vary if you have several printers connected.

Unfortunately, the driver Canon offer demands an EULA. Current version (today) is v1.8. Go their website and accept the license and download (external link to canon).

Read their manual – it’s actually correct.

The downloaded package needs to be un-tar’d. It contains both .deb and .rpm packages. They should pretty much be equal, so use the one that fits your system the best. Slitaz has its own packagemanager which does not nativily support neither of the two formats. However, both deb and rpm should be supported for installation by dpkg and rpm respectively. I used the rpm packa


So – the real kicker! Do this – don’t hesitate! The hints are picked up from several forums and own knowledge.

# tazpkg get-install cups

Verify that it works by browsing: http://localhost:631. I created a little script for the rest.

#Install Canon LBP2900 on Slitaz
#rpm -i common
#rpm -i capt
echo -n "add usblp as a module on boot"
echo -n "add cupsd and ccpd as a daemon at boot"

modprobe usblp
/etc/init.d/cupsd stop
/etc/init.d/cupsd start


mkdir /usr/share/ppd
cd /usr/share/cups/model
chmod 555 -R /usr/share/cups/model   # modified from chmod a+rX $PPDFILE
cp /usr/share/cups/model/$PPDFILE /usr/share/ppd/ # this should not be necessary

mkdir /var/ccpd
mkdir /var/captmon
mkfifo /var/ccpd/fifo0
chmod 777 /var/ccpd/fifo0

lpadmin -p $PNAME -m $PPDFILE -v cpp:/var/ccpd/fifo0 -E -u allow:tux,root
ccpdadmin -p $PNAME -o /dev/usb/lp0

/etc/init.d/ccpd start

Note the -u allow:tux,root. This can be modified later in cups.

You can also monitor the printer. It is also a good way of checking that everything is in order. I got several error messages which needed to addressed. Restarting the ccpd daemon is sometimes necessary.

# /usr/local/ccpd/captstatusui -P canon

I have struggled for a long time with the correct papersize. CUPS printer settings is set to default value A4, and /etc/papersize also is ‘a4’. However, when printing in Evince, the papersize is set to letter. Of course, I could change this manually, but why on earth was this option set as my default setting already?

Then I came over a question regarding the same issue in Is says that applications tend to get their settings from your local settings – the language settings – more specific the LC_paper. Below is the star-comment from launchpad, posted by Pascal De Vuyst:

This is because evince uses the value of the LC_PAPER locale setting, for en_US.UTF-8 this defaults to letter. You can override this setting by using an LC_PAPER environment variable, if you want to do the change system wide you can add LC_PAPER=”en_GB.UTF-8″ (defaults to A4) to /etc/environment and log out and back into GNOME.

Now – of course you’ll need the the selected language in your locale settings – you may need to run

sudo dpkg-reconfigure locales

and add “en_GB.UTF-8” and any other language you would like support for.

This howto sets up my LBP2900. A couple of easy steps – and voila.


The ccpd-deamon keeps crashing if the printer is not turned on. I just need to restart the daemon from the command-line for printing to work.

$ sudo /etc/init.d/ccpd start