Making Network Printer with Raspberry Pi
There are hundreds of articles on-line on how to configure CUPS on Raspbian. Why making one more? First, none of the articles worked for me. Second, I want to share my successful experience.
This article might be useful for those who have Samsung CL* printers. Mine one, Samsung CLX-3185, got working after I have done the following.
Things You Would Need
Here is my setup:
- Raspberry Pi 2 Model B (others might work too)
- Samsung CLX-3185 multi-functional printer
- Connection to Pi: I used SSH
Configuring CUPS
We will write "cups" instead of "CUPS" later on.
First of all let's install cups.
Disclaimer On this web site you might read about
or get access to various kinds of software and technology, including but not limited to libraries,
operating systems, software for communications, mobile phones and tablets,
Android software and Linux, even cars and motorcycles, security and penetration testing software,
software used in security research and forensics, some samples of software which can be
used (elsewhere) for malicious or illegal purposes. You will read about or be provided with
the ways to change it, to operate it and to use it. You might find advice and recommendations,
which are only an opinion, and not a legal advice or commercial recommendation..
Bear in mind, please, that everything you do, you do solely at your own risk
and responsibility. In no way the author of this web site, information, graphics
and other materials presented here or related to it can be made liable or
anyhow else responsible for your own actions as well as
actions of any third party and their direct or indirect results or consequences
with or without the use of this information as well as the software,
technology and systems mentioned and/or presented here,
no matter if developed by the author or by any third party.
In no way it is guaranteed that you will meet any suitability for
any particular purpose, safety, security, legality or even simply
functioning of the software and systems described here. You have to make
sure each time yourself, whether what you do, is really what you intend to
do, and that you are ready to be yourself responsible for. All the recommendations
and experiences described here are the opinions of corresponding authors and
are to be taken with care and own full responsibility.
The software provided
on or through this web site, linked to from this web site or anyhow else
related to this web site is provided by the corresponding authors on their
own terms. We provide all the software here as is without any guarantees to you.
You are responsible for deciding whether it is suitable for you or not.
You are also responsible for all direct or indirect consequences of using this
software.
Other web sites linked to from the current one are out of the author's control,
we can not guarantee anything about their content, its quality or even legality. We
can not be liable for any use of the linked to web sites or of the information presented there.
We reasonably try to keep this website running smoothly and to deliver
information to the best of our knowledge corresponding to the state of the art at the times
when the information is composed, usually presented together with the information, and out of good intents.
We can not however guarantee and can not be liable for this website being temporarily or permanently
unavailable, presenting unreliable information or software, or any other similar or not malfunctioning
or functioning not up to your expectations as well as any consequences
which might result from this site's operation.
sudo apt-get update
sudo apt-get install cups
Next, make cups listen to all network interfaces.
sudo nano /etc/cups/cupsd.conf
Edit there the line "Listen localhost:631" to be
Listen 631
Afterwards allow remote administration of cups:
<Location />
Order allow,deny
Allow @local
</Location>
<Location /admin>
Order allow,deny
Allow @local
</Location>
<Location /admin/conf>
&
nbsp; AuthType Default
Require user @SYSTEM
Order allow,deny
Allow @local
</Location>
Restart the service
sudo service cups restart
Make pi user admin, so that you could login and tune cups.
sudo usermod -a -G lpadmin pi
Now you should be able to connect from you regular machine to cups server in Raspberry Pi: http://address_of_your_pi:631/
Use the login name pi and the password you have for this account in Raspbian.
Make sure your printer is connected to Pi and login into the cups interface.
Following the UI you could add a printer now. Make sure that you check the "Share this printer" check box.
After that computers on the same network should locate your printer connected to Pi and you should be able to print.
When selecting the driver, make sure you have the exact model of your printer listed and pick it. It can also be, that you do not have the driver. It was my case exactly. read further on it.
Installing Drivers for Samsung CL* Family
Once you have one of these printers:
Samsung CLP-300, Samsung CLP-310 / 310W, Samsung CLP-315 / 315W, Samsung CLP-325 / 325W, Samsung CLP-360 / 365W, Samsung CLP-600, Samsung CLP-610ND, Samsung CLP-620ND, Samsung CLX-2160, Samsung CLX-3160, Samsung CLX-3175, Samsung CLX-3185, Xerox Phaser 6110 or Xerox Phaser 6110MFP
- you would probably need to install a driver first.
There is a great driver on-line, which worked for me as a charm.
Commands:
wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz
tar zxf foo2zjs.tar.gz
cd foo2zjs
# Get color profiles
# Place you model number instead of 3185
# Reference: http://foo2qpdl.rkkda.com/
./getweb.in 3185
make
make cups
sudo make install
This page contains more details and plenty of useful information on this driver and other drivers as well: http://foo2qpdl.rkkda.com/
You have to add printer in cups after you have installed the driver.
To check that your printer is installed run:
lpstat -a
You should see your printer name in the output.
Now everything must work! Congrats!
Hardening the Setup
A few short security-related remarks.
- Create another user instead of "pi" to not to use sudoer pi to tune cups.
- Disable access to cups admin panel after your settings are ready.
Images copyright information
The first image on this website page was taken from: https://commons.wikimedia.org/wiki/File:Raspberry_PI.jpegIt is licensed under Creative Commons Attribution-Share Alike 4.0 International license
The second image was taken with written permission by Maximilian Hasenauer, Samsung ELECTRONICS AUSTRIA GMBH, from http://images.samsung.com/
The right to reuse it in any form or way is reserved!
Thanks for reading my blog!