新兵上阵
- 注册时间
- 2009-7-2
- 金币
- 7 个
- 威望
- 0 个
- 荣誉
- 0 个
尚未签到
|
本帖最后由 nina1234 于 2009-7-5 20:49 编辑
打印机也有固件(Firmware),但不是所有的固件都装在打印机里面的。以HP为例,P1008之类千元级打印机就是不带固件的,它们的固件是在开机时由PC的驱动灌入的。因此,只有打印机本身就带固件的型号才被支持。P1008一旦关闭电源,固件也就消失了。
解决办法:
总体思路是-〉把固件存在盒里,然后通过Linux命令灌入P1008。
用telnet登录,然后输入
cat /mnt/USBZIP-BOOT/sihpP1006.dl > /dev/usb/lpusb0
lpusb0就是打印机,确保电源开着,否则当然是灌不进去的。完成后会听到类似开机的转动声,然后就可以网络打印了。
改进:
上述解决办法需要记忆Linux命令,即每次开打印机都得用telnet灌一遍固件。更简单的办法是用Hotplug Script自动灌固件。打印机一开就监测到设备接入,然后执行script。下面的代码(特别说明,不是我写的)可以参考:
#!/bin/sh
# Printer monitoring script
while sleep 60
do
isdaemon=`ps | grep -v grep | grep -c p9100`
if [ $isdaemon == 0 ]; then
# No daemon running
# Start daemon if printer is attached
if [ -e /dev/usb/lpusb0 ]; then
/opt/bin/p910nd -b -f /dev/usb/lpusb0 0
sleep 1
cat /mnt/USBZIP-BOOT/sihpP1006.dl > /dev/usb/lpusb0
fi
else
if [ ! -e /dev/usb/lpusb0 ]; then
# No Printer attached but daemon running
# Kill daemon
process=`pidof p9100d`
kill $process
fi
fi
done
我不熟悉Linux的那套玩意儿,会搞的朋友可以搞搞定。随便玩玩,多多包涵! |
|