文档库 最新最全的文档下载
当前位置:文档库 › TP-Link_TL-WR703N网络打印服务器

TP-Link_TL-WR703N网络打印服务器

搞了一个TP-LINK TL-WR703N,本来是用来作3G无线路由的,但老断线,实在用不下去了,打算将它改为打印服务器用,本来就是一挺简单的事,但问题就出在HP1018上,这是一台基于主机的打印机,它本身没有Firmware,而是每次打印时由电脑装入打印机的内存中,网上的教程都不是很完善,所以只能一步步试了。
写下本教程以作记录。

1、当然是到openwrt官网去下载固件啦
https://www.wendangku.net/doc/ff1906685.html,/sna ... quashfs-factory.bin
https://www.wendangku.net/doc/ff1906685.html,/sna ... shfs-sysupgrade.bin

2、就是刷机了
>cd /tmp
>wget ftp://192.168.1.115/firmware/squashfs-factory.bin
>mtd -r write squashfs-factory.bin firmware
重启完后:
>cd /tmp
>wget ftp://192.168.1.115/firmware/squashfs-sysupgrade.bin
>sysupgrade -i -n /tmp/squashfs-sysupgrade.bin
>N
>Y
重启就完成整个刷机的过程了,注意,这时候的openwrt并没有web界面,如果要有web界面就要安装luci。

3、安装luci (如果只是用作打印服务器就可以不装)
>opkg update //更新软件源列表
>opkg install luci //安装luci及其关联包
启动luci:
>/etc/init.d/uhttpd enable
>/etc/init.d/uhttpd start

3、安装p910nd打印服务器
>opkg update
>opkg install luci-app-p910nd //如果没有装luci则不用装
>opkg install p910nd
>opkg install kmod-usb-printer
>opkg install libusb //以下两项是为了使用lsusb命令查询 VI/PI/BV串而装的
>opkg install usbutils

4、设置打印服务器
先把打印机插在WR703N上,然后过会可以在/dev/usb/里面看到lp0,如果这玩意都看不到的话,后面什么都不用做了,在/dev/usb/下面用ls指令刷一下目录,看到了lp0之后,进入/etc/config,找到p910nd文件,vi p910nd之后按i,就能修改相关的内容,修改设备为lp0,端口设置为9100,允许启动p910nd,然后按2次esc,输入::wq 回车保存退出。
netstat -an,如果看到一个91XX端口的listen也可以了。为什么说的910x的端口或者说91xx的端口,因为我在设置这个时候,卡了差不多10分钟,因为一直以为在/etc/config/p910nd里面配置的是9100端口,就没有特别去注意具体的监听端口,实际上,p910nd的启动脚本里面是自动设置端口为91xx的,如果你设置的是9100的话,如果是8100,就是81xx。具体的端口只能用netstat -an来判断。
/etc/config/p910nd的内容如下:
config p910nd
option device /dev/usb/lp0 //此处一定要与/dev/usb/的路径一致
option port 9100 //端口基数,实际的端口用netstat -an查
option bidirectional 1 //是否支持双向打印
option enabled 1 //不知道是什么,原来是0,改1就可以了

5、启动p910nd
/etc/init.d/p910nd enable
/etc/init.d/p910nd start

6、获取HP 1018的Firmware文件
做完以上五步,基本上就是一台打印服务器了,但是H

P 1018之类基于主机的打印机还是不能用的,为了让HP 1018可以工作,必须做如下工作来完成将Firmware装载到打印机内存中去。
一直都找不到网上所说的sihp1018.dl这个Firmware文件,最后只好照网上Ubuntu安装HP 1018的方法取得该文件:
1、cd /tmp
2、wget -O foo2zjs.tar.gz https://www.wendangku.net/doc/ff1906685.html,/foo2zjs.tar.gz //下载foo2zjs包
3、tar zxf foo2zjs.tar.gz //解压缩foo2zjs包
4、cd foo2zjs
5、make //编译foo2zjs
6、./getweb 1018 //从HP获取HP 1018的Firmware文件
7、sudo make install //编译Firmware文件,并输出到/usr/share/foo2zjs/firmware中
8、以上七步可以取得HP1018的Firmware,并将该文件放到WR703N的/usr/share/中。

7、利用openwrt的hotplug功能将Firmware装载到打印机内存中:
弄一个脚本放到/etc/hotplug.d/usb目录下,自动识别HP打印机,当对号的打印机被接入时,自动传送放在某个目录的打印机固件到打印机。
脚本如下:
# Upload the firmware to the printer

FIRMWARE=/usr/share/sihp1018.dl
//打印机的标识[VendorId/ProductId/BcdVersion(1.00 = 100)],lsusb -v可以获得
if [ "$PRODUCT" = "3f0/2b17/100" ]
then

if [ "$ACTION" = "add" ]
then
sleep 10 //从10.3起到这个版本10.3.1-rc4,hotplug均有问题。
rm /dev/lp0
mknod /dev/lp0 c 180 0
echo "`date` : Sending firmware to printer..." >> /var/log/hp
cat $FIRMWARE > /dev/usb/lp0
echo "`date` : done." >> /var/log/hp1018
fi
fi
复制代码保存为20-hp1018,用winscp把脚本放到/etc/hotplug.d/usb目录里,OK。
这是正确的状态:#ls /dev -la
crw-r--r-- 1 root root 180, 0 Nov 19 20:55 lp0

===============================================================

PS:
一般我们用opkg安装软件有两种
1 是连上网络后从官方网站安装
>opkg update
>opkg install XXX

2 是把软件下载下来,传到路由器tmp目录安装opkg install XXX.ipk,对于1来说,如果路由暂时上不了网,就无法使用,方法2又有些麻烦。
这里提供的方法是:
1、在本机上开ftp,或http服务,随便什么工具
2、修改/etc/opkgconfig,把里边第一行那个网址改成本地服务器放安装包的服务目录;比如ftp://192.168.1.115/
3、从官网下载用需要的软件包放在服务器上/a 目录下
4、这一步很重要,一定要把packages这个文件下载回来放在此/a目录下
5、现在可以像方法1一样使用升级了
6、如果对依赖关系搞不清楚,直接把整个packages目录(https://www.wendangku.net/doc/ff1906685.html,/snapshots/trunk/ar71xx/packages)下载下来,反正用工具下又不麻烦,大小也可以忍受,2971个文件才212M。

opkg.conf原来的内容:
https://www.wendangku.net/doc/ff1906685.html,/snapshots/trunk/ar71xx/packages


命令行下简单

配置有线和无线

先配置有线
设置lan ip(即访问路由的ip)
01.uci set https://www.wendangku.net/doc/ff1906685.html,n.ipaddr=192.168.1.253

pppoe用户
01.uci set network.wan.proto=pppoe //设置wan口类型为pppoe

02.uci set https://www.wendangku.net/doc/ff1906685.html,ername=[上网帐户]

03.uci set network.wan.password=[上网密码] //这两行设置pppoe用户名和密码

如果要挂在上级路由下面就这样
01.uci set network.wan.proto=none //关掉wan,此处要有设置wan端口时才要改

02.uci set https://www.wendangku.net/doc/ff1906685.html,n.gateway=192.168.1.1 //网关指向上级路由

03.uci set https://www.wendangku.net/doc/ff1906685.html,n.dns=192.168.1.1 //dns指向上级路由

04.uci set https://www.wendangku.net/doc/ff1906685.html,n.ignore=1 //关掉lan的dhcp

然后是无线
01.uci set wireless.@wifi-device[0].disabled=0 //打开无线

02.uci set wireless.@wifi-device[0].txpower=17 //设置功率为17dbm 太高会烧无线模块

03.uci set wireless.@wifi-device[0].channel=6 //设置无线信道为6

04.uci set wireless.@wifi-iface[0].mode=ap //设置无线模式为ap

05.uci set wireless.@wifi-iface[0].ssid=Printer //设置无线SSID

06.uci set wireless.@wifi-iface[0].network=lan //无线链接到lan上

07.uci set wireless.@wifi-iface[0].encryption=psk2 //设置加密为WPA2-PSK

08.uci set wireless.@wifi-iface[0].key=Rockhy@78 //设置无线密码

最后应用配置
01.uci commit //应用

02./etc/init.d/network restart //重启网络服务


lsusb不能用的解决:

#opkg install libusb
#opkg install usbutils
如果没有错误安装完成
测试一下
#lsusb
附图:

可以看到lsusb已经可以使用


相关软件包与固件:

http://163.fm/b00PXkc 提取码:Na7yuIyF

相关文档
相关文档 最新文档