hp p1008
摘要:
实验室大家打印文件的时候,要么去打印机旁的电脑上打印,要么通过网络邻居将任务发送到打印机旁边的计算机上。为了腾出这台计算机,同时让每个人能在自己的计算机通过网络打印。我们想到用树莓派来代替这台计算机,实现实验室的网络打印机环境搭建。
环境介绍:
我所使用的树莓派型号是:Raspberry Pi 2 Model B V1.1。这款树莓派不带无线网口,但是有一个以太网口。
我所使用的打印机是HP LaserJet P1008。
准备工作:
1.准备树莓派的环境
我们先对树莓派烧录系统,系统下载:https://www.raspberrypi.org/downloads/raspbian/ 我选择的是 Raspbian Stretch with desktop,可以根据自己的需要进行选择。
使用读卡器,插上TF卡,连接PC。可以使用SD Card formatter先对TF卡进行格式化。然后使用USB Image Tool烧录下载的系统。附上USB Image Tool使用教程链接:http://shumeipai.nxez.com/2013/08/31/usb-image-tool.html
格式化和烧录工具很多都可以,我只是比较习惯这两款。
树莓派插上TF卡,连接好HDMI显示屏,接上无线鼠标和键盘,连接以太网,连接打印机,上电。
完成系统开启工作。
2.树莓派网络环境准备
检测是否连接互联网:命令行输入:
ping www.baidu.com
查阅网络环境,即树莓派的IP地址:
我们可以知道树莓派的IP:192.168.137.87
MAC地址:B8-27-EB-0B-F1-9F
安装ssh和配置ssh开机启动,以备远程登录使用。
sudo apt-get install openssh-server
检查ssh服务是否开启
ps -e | grep ssh
如果列表只有ssh-agent,没有sshd表示没有开启,那么开启ssh服务:
sudo /etc/init.d/ssh start
此时再次检查ssh服务,会发现列表已经存有sshd了。
使用putty工具即可远程登录树莓派了,如下图:
设置开机启动ssh服务:打开/etc/rc.local文件
sudo gedit /etc/rc.local
#没有gedit编辑器 可以使用vi vim 或者 sudo apt-get install gedit
在末尾 exit 0的前一行,添加开启ssh服务代码
/etc/init.d/ssh start
此时,开机启动后ssh服务便开启,可以使用远程登录树莓派了。
3.设置树莓派静态IP
编辑dhcp配置文件
sudo gedit /etc/dhcpcd.conf
末尾内容添加如下:
interface eth0
#etho是以太网卡名字 192.168.1.65是树莓派IP
#routers是路由器IP domain_name_servers是DNS服务器IP
static ip_address=192.168.1.65/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
最后sudo reboot重启生效即可。
正式搭建工作
- 安装惠普hp打印机驱动,此安装会同时安装cups服务,cups服务是我们搭建网络打印机的基础服务,关于cups服务参考:https://baike.baidu.com/item/CUPS/13007261"2">
- 将用户添加入lpadmin,我的用户名是pi。如果不添加,之后添加网络打印机,会报错:Unable to add printer forbidden。
sudo usermod -a -G lpadmin pi
- 修改cups配置环境,为了安全起见,cups服务默认是只能本地用户localhost访问的。现在我们需要远程访问,需要修改配置文件/etc/cups/cupsd.conf。在修改配置文件前,先关掉cups服务,然后再开启。
sudo service cups stop #关掉服务
sudo gedit /etc/cups/cupsd.conf #开始编辑
sudo service cups start #开启服务
编辑内容修改为:
# Only listen for connections from the local machine.
#Listen localhost:631
Listen 0.0.0.0:631 #此行是修改行,并注释上一行
...
...
...
# restrict access to the server…
<Location />
order allow,deny
Allow from @Local #此行是添加行
</Location>
# Restrict access to the admin pages…
<Location /admin>
Order allow,deny
Allow from @Local #此行是添加行
</Location>
...
# Restrict access to configuration files…
<Location /admin/conf>
AuthType Default
require user @SYSTEM
Order allow,deny
Allow from @Local #此行是添加行
</Location>
一共有四处修改,如果不修改,远程登录网页访问不了,记得重新开启cups服务。
- 如果是其他打印机,就可以进行远程打印了,但是HP LaserJet P1008还需要一下操作:安装foo2xqx: a linux printer driver for XQX stream protocol。
cd ~ #进入用户目录
#开始下载foo2zjs.tar.gz
sudo wget http://foo2zjs.rkkda.com/foo2zjs.tar.gz
#解压
tar zxf foo2zjs.tar.gz
#进入解压目录
cd foo2zjs
#执行以下操作:
sudo make #编译
sudo ./getweb P1008
sudo make install
sudo make install-hotplug
sudo make cups
- 如果以上工作没问题,可以通过cups服务添加网络打印机设置了。打开同一局域网下计算机的浏览器,输入树莓派IP + :613。例如我的树莓派IP是192.168.137.87,那么输入192.168.137.87:631。
选择菜单栏条目【AdMinistration】, 进而选择【Printer】下的【Add Printer】按钮。选择继续不安全网页,进去。这是电脑的防病毒问题,不需要,继续点击【Add Printer】按钮。弹出一个表单,输入树莓派的用户名和密码。
设置网络打印机名字,描述【可选】,然后勾选share,如下:
添加好PPD文件,关于这个PPD文件,提供下载链接:https://download.csdn.net/download/windsnow1/10980586
设置打印设置:
此时便配置成功了。可以打印一下测试页。
说明:
路由器的IP是:192.168.1.1, 我已经设置树莓派的静态IP是192.168.1.65。
HP LaserJet P1008的网络地址是:http://192.168.1.65:631/printers/Printer406
现在以windows 10系统为例:
打开【控制面板】----【查看设备和打印机】
点击【添加打印机】
点击【我所需的打印机未列出】----勾选【按名称选择共享打印机】----输入网络打印机地址:http://192.168.1.65:631/printers/Printer406,切记协议是http,不是https。
选择厂商是HP 打印机是HP LaserJet P1008,如果没有可以选择HP LaserJet P1008之后的版本,例如P1015n等等,高版本向下兼容。
点击,确定即添加打印机成功。恭喜你,现在可以使用这款打印机进行网络打印了。
最后,倒腾了一天半的时间,感谢各路网路大咖,谢谢他们博文的分享,同时感谢我心中的男神对我的帮助。欢迎大家有问题指出,技术在于分享,欢迎大家交流问题,有问题,可以在下留言,我会一一回复。
参考链接:
https://blog.csdn.net/qq813480700/article/details/71597808
https://www.cnblogs.com/taojintianxia/p/6026225.html
https://blog.csdn.net/nullpointer2008/article/details/79664253
相关阅读
故障排除 树莓派网络有问题,首先尝试关闭和重启网络断开。最简单的工具:ifup和ifdown。网络连接正常,但不能正常工作。如,ifconfig后
在PHP语言中默认设置的是标准的格林威治时间(即采用的零时区) 更改PHP语言中的时区设置有两种方法: (1)修改php.ini文件中的设置,找
https://lab.wallarm.com/rce-in-php-or-how-to-bypass-disable-functions-in-php-installations-6ccdbf4f52bb 需要翻译,我自己看
PHP的函数支持创建,读取,上传以及编辑文件操作。常见文件操作错误有:1.编辑错误的文件2.被垃圾数据填满硬盘3.意外删除文件内容文件
gd库写的验证码上传到服务器后显示不出来了bug1出现上面的情况,最基本的一个错误就是你很可能在php里面忘记安装gd模块了。window