I’ve written about this once <broken link> already. Now, that time the whole thing got a little hectic, which was somewhat related to the promille phenomenon. Anyway, this time it’s gonna be a little simpler.
The instructions presented here are on installing CUPS for Samsung ML-2015. ML-2015 is (basically) the same as ML-2010.
These instructions will also be useful with other Samsung printers, since the printing language (and drivers as a consequence) are disgustingly similar for Samsungs. (How do I know? I don’t. I’m a mockingbird.)
I assume you know how to use pkg_add, portupgrade (my case) or other port managing utility. If not, just ask.
1) Install cups-base. You probably have this. Add to /etc/rc.conf:
enable_cupsd="YES"
(Re)start CUPS. Check localhost:631 if it works. If you try installing a printer in CUPS now, Samsung won’t be listed yet.
2) Install splix.
ports% cat /usr/ports/print/splix/pkg-descr
SpliX is a set of CUPS printer drivers for SPL (Samsung Printer Language)
printers. Below is a non-exhaustive list of currently supported printers. Note
that only SPL2 and SPLc printers are currently supported!
...
At this point if you try installing a printer in CUPS, you will have Samsung listed.
3) Install cups-pstoraster.
ports% cat /usr/ports/print/cups-pstoraster/pkg-descr
...
This distribution is based on GNU Ghostscript and provides the "driver" for
CUPS that supports non-PostScript printer drivers within CUPS.
...
Samsung printers don’t support PostScript, at least to my severely limited knowledge they don’t.
Restart CUPS.
4) Modify ulpt0 permissions.
cd /dev
/dev% ll ulpt0
crw-r--r-- 1 root operator 0, 121 Jun 13 22:00 ulpt0
/dev% sudo chown root:cups ulpt0
/dev% sudo chmod g+w ulpt0
Now for some elaboration. You might wonder why not just add user cups to group operator. The answer is simple: security.
Fact is, cups only needs access to the printer, and that’s it. The operator group, on the other hand, has access to a lot more: other USB devices, hard disk devices, and hell knows what other system files in whichever depths of /usr or /var or /etc.
Now, you just do what you think is better. If you want to add cups to operator – then do it. After all, root is thy lord. I’m just telling what I did.
EDIT: if you don’t take measures, settings to /dev
will be reset on restart.
5) Start the printer if not already done (from CUPS’ administrative interface). Print a test page.
6) If you smoke, have a smoke. If you drink beer, have a beer. If you drink coffee, have another coffee. If you lapdance, have a lapdance. If you fuck children for breakfast – go kill yourself.
Credit:
Wouldn’t have figured this all out without this BSD forums thread and this blog post.