搞了一个TP-LINK TL-WR703N,本来是用来作3G无线路由的,但老断线,实在用不下去了,打算将它改为打印服务器用,本来就是一挺简单的事,但问题就出在HP1018上,这是一台基于主机的打印机,它本身没有Firmware,而是每次打印时由电脑装入打印机的内存中,网上的教程都不是很完善,所以只能一步步试了。
写下本教程以作记录。
1、当然是到openwrt去下载固件啦
/sna ... quashfs-factory.bin
/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.rkkda/ //下载foo2zjs包
3、tar zxf //解压缩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 " >> /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目录(/snapshots/trunk/ar71xx/packages)下载下来,反正用工具下又不麻烦,大小也可以忍受,2971个文件才212M。
/snapshots/trunk/ar71xx/packages
命令行下简单
配置有线和无线
先配置有线
设置lan ip(即访问路由的ip)
01.uci set network.lan.ipaddr=192.168.1.253
pppoe用户
01.uci set network.wan.proto=pppoe //设置wan口类型为pppoe
02.uci set network.wan.username=[上网帐户]
03.uci set network.wan.password=[上网密码] //这两行设置pppoe用户名和密码
如果要挂在上级路由下面就这样
01.uci set network.wan.proto=none //关掉wan,此处要有设置wan端口时才要改
02.uci set network.lan.gateway=192.168.1.1 //网关指向上级路由
03.uci set network.lan.dns=192.168.1.1 //dns指向上级路由
04.uci set dhcp.lan.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]work=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已经可以使用
相关软件包与固件:
163.fm/b00PXkc 提取码:Na7yuIyF
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论