📄 hplj1000
字号:
#!/bin/sh# hplj1000:# hplj1005:# hplj1020:## Hotplug script for HP1000/1005 USB laser printers. The model number# that this script deals with is determined from the script name.## Used to download firmware automatically into the printer when it# is powered up or plugged into the USB port.## Also, run this script once with the magic argument "install-usermap"# to create the proper entry in the /etc/hotplug/usb.usermap file.## The inspiration fo this script is from:# Oscar Santacreu. Alicante-Spain (2002)# Mike Morgan (2004)## udev calls us twice on FC4! Just want /dev/usb/lp<N>case "$DEVNAME" in/dev/usb/usb*) exit;;esacPROGNAME="$0"## Set $DEV to, e.g. /dev/usb/lp0, to force the device you want# Else, leave it null to automatically detect the device#DEV=/dev/usb/lp0DEV=""## Directory to find downloadable HP firmware files sihpMMMM.dl#FWDIR=/usr/share/foo2zjs/firmware## Program used to determine USB id information#USBID=/bin/usb_printerid## Figure out how to log our messages#if [ -t 1 ]; then # Running from a tty... log() { echo "$PROGNAME: foo2zjs: $@" }elif [ -x /usr/bin/logger ]; then # Have logger... log() { logger -t "$PROGNAME" -- "foo2zjs: $@" }else # No logger... log() { echo "$PROGNAME: foo2zjs: $@" >> /var/log/messages }fi## Figure out the model number from the name of this script#case "$0" in*1000) MODEL=1000 USB1=0x03f0 #Vendor USB2=0x0517 #Model ;;*1005) MODEL=1005 USB1=0x03f0 #Vendor USB2=0x1317 #Model ;;*1018) MODEL=1018 USB1=0x03f0 #Vendor USB2=0x4117 #Model ;;*1020) MODEL=1020 USB1=0x03f0 #Vendor USB2=0x2b17 #Model ;;*) log "Only HP LaserJet 1000, 1005, 1018, and 1020 are supported" exit ;;esac## The special command line argument "install-usermap" will install# the proper entry into the /etc/hotplug/usb.usermap file#case "$1" ininstall-usermap) if [ "$USB2" != "" ]; then if [ -w /etc/hotplug/usb.usermap ]; then USERMAP=/etc/hotplug/usb.usermap elif [ -d /etc/hotplug/usb/ ]; then USERMAP=/etc/hotplug/usb/foo2zjs.usermap if [ ! -s $USERMAP ]; then echo > $USERMAP fi else log "No /etc/hotplug usermap!" exit fi chmod 664 $USERMAP ex - $USERMAP <<-EOF g/^hplj$MODEL/d \$a hplj$MODEL 0x0003 $USB1 $USB2 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000 . w q EOF else log "I don't know the USB info for this model yet. Please run" log "usb_printerid on the usb device and send the output to:" log "rick.richardson@comcast.net" fi exit 0 ;;esac ## Procedure to load a single device with firmware#load1() { _dev="$1" fw="$FWDIR/sihp$MODEL.dl" if [ ! -f "$fw" ]; then log "Missing HP LaserJet $MODEL firmware file $fw" log "...read foo2zjs installation instructions and run ./getweb $MODEL" return 1 fi log "loading HP LaserJet $MODEL firmware $fw to $_dev ..." # There is a timeout problem with udev and FC4, so spin it off. ( if cat $fw > $_dev; then log "... download successful." else log "... download failed." fi ) & return 0}## OK, now download firmware to any printers that need it#if [ "$DEV" != "" ]; then # # force downloading to a specific device # load1 "$DEV"elif [ -x $USBID ]; then # # Sniff around for printers that need a firmware download # usblps=`find /dev/usb -name lp*`" "`find /dev -name usblp*` for dev in $usblps; do status=`$USBID $dev 2>/dev/null | grep -y "hp LaserJet $MODEL"` if [ "$status" != "" ]; then # This is a LaserJet 100x chmod 0666 $dev status=`$USBID $dev | grep 'FWVER'` if [ "$status" = "" ]; then # Firmware is not yet loaded load1 "$dev" else log "HP LaserJet $MODEL firmware already loaded into $dev" fi fi doneelse log "HP LaserJet $MODEL firmware was not downloaded..." log "...couldn't find $USBID and DEV is not set"fi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -