Samsung ML-1210 printer not working in Gentoo

Q I'm getting on surprisingly well with the installation I made of Gentoo, but I can't get my USB printer to print. I've gone through the Gentoo Printing Guide and other USB documentation most carefully. I've checked (and triple-checked) my kernel config options and I'm sure I've included everything I need. I've tried compiling with the USB parameters compiled into the kernel or as loadable modules and neither works. Neither does genkernel, so I don't believe it's a kernel issue.

The printer is a Samsung ML-1210. It's a discontinued host-based printer, but it serves my needs adequately and has always worked fine with Linux. And it prints fine from Ubuntu Edgy from another partition on the same machine using the same USB port, so neither CUPS per se nor the hardware is the problem. If I open the Gnome Print Manager app, the printer is autodetected and the wizard offers me the same CUPS driver as other distros, but when I go to print a test page, nothing comes out the other end. The same happens when I use OpenOffice.org. OOo seems to think it has printed a document, but nothing appears. Doing lsusb shows:

'Bus 002 Device 003: ID 04e8:300c
Samsung Electronics Co., Ltd ML-1210 Printer'.

I checked /var/log/cups/error_log, and it showed nothing untoward that I can see.

A The first thing to do when encountering CUPS problems is to turn up the logging level. Edit /etc/cups/cupsd.conf by changing LogLevel from 'info' to 'debug'; then restart CUPS. In this case, there is a clue in the logs you supplied. You are using GPL Ghostscript, which doesn't properly support the binary drivers needed by a GDI printer (aka WinPrinter) like your Samsung. So unmerge ghostscript-gpl and emerge ghostscript-esp, which has better printer support, like this:

emerge --unmerge ghostscript-gpl
emerge --oneshot ghostscript-esp

It is also probable you need the openslp package, even though this is supposed to be an optional dependency of CUPS. SLP (Service Locator Protocol) is useful for other programs too, so add it to your USE flags in etc/make.conf. It is also worth adding foomaticdb, which doesn't affect CUPS directly but increases the level of printer support for some programs. Now rebuild any packages that make use of your changed flags, including CUPS, with

emerge --newuse --deep --verbose --ask world

This will display a list of packages that will be updated or installed thanks to your changed USE flags, which should include CUPS and OpenSLP. Press Enter to install them and restart CUPS when it has finished. USE flags are an important part of Gentoo and they are all described in /usr/portage/profiles/use.desc and /usr/portage/profiles/use.local.desc. Or you may find it easier to emerge Profuse and search, browse or set them in a GUI.

Back to the list