古董打印机解锁无线打印技能√

家里有台濒临淘汰的佳能打印机,虽然比较老但还能满足家里平时的打印需求,而且之前囤了不少墨盒,一直也没舍得换掉。唯一缺憾是不能无线打印,在目前这个移动设备越来越主流的趋势下,的确有些不便。恰好手中有一块多年前跟风在kickstarter众筹的UDOO板子(这类单板电脑几乎都发源于树莓派,运行同种Linux发行版时软件层面差别很小,为方便叙述,在不影响准确性的情况下下文均用树莓派通称),放在角落里接灰多年,于是废物利用将这台古董打印机升级成一台无线打印机。

目的:让家中局域网内任何一台设备(电脑、手机)都可以通过无线网络将文件发送到打印机进行打印。
硬件清单:一台普通的usb接口打印机,一个树莓派(Debian系统),无线路由器,一台能联网的电脑。
所需软件:CUPS(Common Unix Printing System通用Unix打印系统)和Samba(将Linux上的打印机共享给Windows)。
升级成本:对于一般用户,可能只有树莓派需要额外购买。因为并不需要很高的计算性能,只是用来升级打印机可以考虑收一块二手树莓派一代,目前某宝上的价格大约60元左右,加上存储卡和USB无线网卡,总价可以轻松控制在100块以内,相比于购买一台wifi打印机来说相当很划算的。

121220065212-raspberry-pi-close-up-story-top_compressed.jpg

树莓派

在正式开始之前,请先到Open Printing确认你的打印机型号在支持的驱动驱动程序列表中,这里先不用担心cpu架构问题,实验证明即使列表中没有写明支持树莓派等ARM架构的电脑,实际在CUPS中的驱动程序也是兼容的。如果你已经找到了,我们就可以动手进行第一步了。

下面从软件说起。

"CUPS 是苹果公司为Mac OS® X 和其他类 UNIX® 的操作系统开发的基于标准的、开源的打印系统。"

CUPS强大易用,可以让Mac OS以及各种Unix-like系统之间的打印机共享无缝衔接,Linux和Windows之间则通过Samba来共享打印机服务,这样就轻松实现了所有平台之间的打印共享。

我们开始动手安装CUPS,确保将树莓派和打印机通过usb接口连接好并将树莓派连入局域网,通过ssh连接到树莓派,之后先进行更新

sudo apt-get update
sudo apt-get upgrade

安装CUPS

sudo apt-get install cups

安装好之后,CUPS会新建一个管理员用户组,将当前用户加入lpadmin这个组中,注意我这里使用的是树莓派的默认用户名pi,请根据实际情况进行修改

sudo usermod -a -G lpadmin pi

备份一下原始配置文件

sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.bak

编辑配置文件

sudo vi /etc/cups/cupsd.conf

# Only listen for connections from the local machine
Listen localhost:631

改为

# Only listen for connections from the local machine
Port 631

找到

# Restrict access to the server...
<Location />
  Order allow,deny
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

修改为

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow @local
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow @local
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow @local
</Location>

之后保存配置文件,重启CUPS服务

sudo /etc/init.d/cups restart

现在我们可以在任意一台连接到局域网的电脑上,通过浏览器来登陆CUPS系统管理树莓派上的打印机了。在路由器中查看树莓派的内网ip地址,并在路由器设置中把树莓派的ip与mac地址绑定,记下这个ip以后直接通过这个固定ip就可以连接到树莓派了。打开电脑上浏览器,转到地址:https://树莓派的内网ip:631 此时会弹出安全提示,点击继续即可进入CUPS系统面板,嗯,这个风格很苹果:D
2017-01-19_222129_compressed.jpg

在 Administration 面板中点击 Add Printer, 此操作需要使用之前加入管理员用户组的账户和密码进行登陆
ad_compressed.jpg

如果你的打印机已经连接到树莓派的话,这里就能看到你的打印机了,我这里是Canon BJC-3000

打印机_compressed.jpg

一路下一步,填写必要的一些信息
2017-01-17_144030_compressed.jpg

这里可以看到可用的驱动程序,选择系统推荐的第一个即可
2017-01-17_144053_compressed.jpg

之后是设置打印机的默认配置
2017-01-17_144104_compressed.jpg

看到此界面即配置成功,记下你的打印机名称(我的例子中是Canon_BJC-3000),后面连接时需要用到
2017-01-17_144205_compressed.jpg

到这里,一台无线打印机就准备了。CUPS还提供了管理打印机以及打印任务等很多功能,可以自己慢慢尝试。如果你使用的是Linux或苹果系统,那么现在已经可以直接搜索到这台打印机并执行打印任务了,但是要从我们最常用的windows系统连接打印机,我们还需要在树莓派上安装Samba服务。

安装Samba

sudo apt-get install samba

修改配置文件

sudo vi /etc/samba/smb.conf

在[global]段落中将以下语句取消注释

wins support = yes

在[printers]段落中将

guest ok = no

修改为

guest ok = yes

在[print$]段落中将path后的值按下面这样修改

path = /usr/share/cups/drivers

如果你使用的是wifi连接树莓派到路由器,还需要修改
####Networking####中的

127.0.0.0/8 eth0

127.0.0.0/8 wlan0

重启Samba服务

sudo /etc/init.d/samba restart

顺便安装avahi-daemon来支持ios系统的Apple's AirPrint

sudo apt-get install avahi-daemon

至此,打印机服务器部分就配置完成了。

下面我们来介绍一下Windows和Android系统如何连接和使用打印机,iOS系统因为有AirPrint,无需额外设置即可在打印选项中调用网络中的打印机。

Windows
首先打开控制面板中的“设备和打印机”选项卡,选择“添加打印机”,如果windows没有找到网络中的打印机,点击“我需要的打印机不在列表中”
2017-01-20_194303_compressed.jpg

还记得之前记下的打印机名称吗,将打印机完整的地址和名称填进去,点击“下一步”
2017-01-20_194716_compressed.jpg

windows系统需要在本地安装打印机驱动,在弹出的对话框中选择对应的驱动,确定之后稍等片刻即可完成安装。
2017-01-20_194817_compressed.jpg

2017-01-20_194932_compressed.jpg

Android(需要4.4以上版本支持)

这里以原生Android 7.1.1系统为例。在Google Play中下载安装CUPS Printing,
2017-01-20_195341_compressed.jpg

在“设置”-->“打印”选项中可以看到刚刚安装的CUPS Print,点击
Screenshot_20170120-200041_compressed.jpg

进入界面后会自动搜寻打印机,当显示出我们的打印机名称时说明已经连成功接到打印机,之后可以随时在打印时使用该打印机了。
Screenshot_20170120-200035_compressed.jpg

无线打印机升级完成。



知识共享许可协议
除非注明,本博客文章均为原创
并采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。转载请以URL链接形式标注源地址。

标签: diy, linux, 树莓派

已有 2 条评论

  1. 胖子 胖子

    请问作者,如果树莓派设置好之后断开网络,无线打印还能实现吗?

    1. 需要有网络连接的,不管是局域网还是广域网。上面的设置不能让手机或电脑直接连接到树莓派,所以还是需要有网络的。如果想不通过网络而是让手机电脑和树莓派近距离直连,恐怕要把树莓派配置为一台无线路由器才需要,这个我就没试过了。

添加新评论