Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 263494 | Differences between
and this patch

Collapse All | Expand All

(-)foo2zjs/foo2zjs-loadfw (+153 lines)
Line 0 Link Here
1
#!/bin/sh
2
3
#	foo2zjs-loadfw:
4
#
5
#	Hotplug script for HP1000/1005/1020 USB laser printers. The model number
6
#	that this script deals with is determined from the udev env.
7
#
8
#	Used to download firmware automatically into the printer when it
9
#	is powered up or plugged into the USB port.
10
#
11
#	The inspiration fo this script is from:
12
#		Oscar Santacreu. Alicante-Spain (2002)
13
#		Mike Morgan (2004)
14
#	Modified by Stefan Schweizer (2005) to work as a udev-RUN-script
15
16
#
17
# Directory to find downloadable HP firmware files sihpMMMM.dl
18
#
19
FWDIR=/lib/firmware
20
21
#
22
# Program used to determine USB id information
23
#
24
USBID=/bin/usb_printerid
25
26
#
27
# Timeout to load firmware
28
#
29
TIMEOUT=6
30
31
#
32
#	Figure out how to log our messages
33
#
34
if [ -t 1 ]; then
35
    # Running from a tty...
36
    log() {
37
	echo "$0: $@"
38
    }
39
elif [ -x /usr/bin/logger ]; then
40
    # Have logger...
41
    log() {
42
	logger -t "$0" -- "$@"
43
    }
44
else
45
    # No logger...
46
    log() {
47
	echo "$0: $@" >> /var/log/messages
48
    }
49
fi
50
51
#
52
#	Figure out the model number from the name of this script
53
#
54
case "$1" in
55
P1005)
56
    MODEL=P1005;
57
    MODELNAME="hp LaserJet $MODEL"
58
    ;;
59
P1006)
60
    MODEL=P1006;
61
    MODELNAME="hp LaserJet $MODEL"
62
    ;;
63
P1007)
64
    MODEL=P1005;
65
    MODELNAME="hp LaserJet P1007"
66
    ;;
67
P1008)
68
    MODEL=P1006;
69
    MODELNAME="hp LaserJet $MODEL"
70
    ;;
71
P1505)
72
    MODEL=P1505;
73
    MODELNAME="hp LaserJet $MODEL"
74
    ;;
75
P1505n)
76
    MODEL=P1505n;
77
    MODELNAME="hp LaserJet $MODEL"
78
    ;;
79
1000)
80
    MODEL=1000
81
    MODELNAME="hp LaserJet $MODEL"
82
    ;;
83
1005)
84
    MODEL=1005
85
    MODELNAME="hp LaserJet $MODEL"
86
    ;;
87
1018)
88
    MODEL=1018
89
    MODELNAME="HP LaserJet $MODEL"
90
    ;;
91
1020)
92
    MODEL=1020
93
    MODELNAME="HP LaserJet $MODEL"
94
    ;;
95
*)
96
    log "Only HP LaserJet 1000, 1005, 1018 and 1020 are supported"
97
    log "You need to supply one of these on the cmdline: $0 10**"
98
    exit
99
    ;;
100
esac
101
102
if [ -n "$2" ]; then
103
    DEVNAME=$2
104
elif [ -n "$DEVNAME" ]; then
105
    log 'using $DEVNAME'
106
else
107
    log "You need to either have $DEVNAME set in the environment or supply it on the cmdline, like:"
108
    log "$0 10** /dev/usb/lp0"
109
    exit 1
110
fi
111
112
#
113
#	Procedure to load a single device with firmware
114
#
115
load1() {
116
    fw="$FWDIR/sihp$MODEL.dl"
117
    if [ ! -f "$fw" ]; then
118
	log "Missing HP LaserJet $MODEL firmware file $fw"
119
	log "...read foo2zjs installation instructions and run ./getweb $MODEL"
120
	return 1
121
    fi
122
123
    log "loading HP LaserJet $MODEL firmware $fw to $DEVNAME ..."
124
    if cat $fw > $DEVNAME; then
125
	sleep $TIMEOUT
126
	log "... download successful."
127
    else
128
	log "... download failed."
129
    fi
130
    return 0
131
}
132
133
#
134
#	OK, now download firmware to any printers that need it
135
#
136
if [ -x $USBID ]; then
137
	if $USBID $DEVNAME | grep -i "$MODELNAME" 2> /dev/null; then
138
	    # This is a LaserJet 100x
139
	    if $USBID $DEVNAME | grep 'FWVER' 2> /dev/null; then
140
		log "HP LaserJet $MODEL firmware already loaded into $DEVNAME"
141
	    else
142
		# Firmware is not yet loaded
143
		load1 "$DEVNAME"
144
		sleep 6
145
		rmmod usblp
146
	    fi
147
	else
148
	    log "No supported printer found."
149
	fi
150
else
151
    log "HP LaserJet $MODEL firmware was not downloaded..."
152
    log "...couldn't find $USBID"
153
fi
(-)foo2zjs/hplj10xx.rules (-39 / +21 lines)
Lines 1-39 Link Here
1
#
1
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \
2
#       hplj10xx.rules.old: udev equal or after 1.30
2
   ATTRS{idProduct}=="3d17", RUN+="/sbin/foo2zjs-loadfw P1005 $tempnode"
3
#
3
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \
4
#Own udev rule for HP Laserjet 1000
4
   ATTRS{idProduct}=="3e17", RUN+="/sbin/foo2zjs-loadfw P1006 $tempnode"
5
KERNEL=="lp*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="03f0", \
5
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \
6
	ATTRS{product}=="hp LaserJet 1000", NAME="usb/%k", \
6
   ATTRS{idProduct}=="4817", RUN+="/sbin/foo2zjs-loadfw P1007 $tempnode"
7
	SYMLINK+="hplj1000-%n", MODE="0666", RUN+="/etc/hotplug/usb/hplj1000" 
7
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \
8
#Own udev rule for HP Laserjet 1005
8
   ATTRS{idProduct}=="4917", RUN+="/sbin/foo2zjs-loadfw P1006 $tempnode"
9
KERNEL=="lp*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="03f0", \
9
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \
10
	ATTRS{product}=="hp LaserJet 1005 series", NAME="usb/%k", \
10
   ATTRS{idProduct}=="3f17", RUN+="/sbin/foo2zjs-loadfw P1505 $tempnode"
11
	SYMLINK+="hplj1005-%n", MODE="0666", RUN+="/etc/hotplug/usb/hplj1005" 
11
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \
12
#Own udev rule for HP Laserjet 1018
12
   ATTRS{idProduct}=="4017", RUN+="/sbin/foo2zjs-loadfw P1505n $tempnode"
13
KERNEL=="lp*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="03f0", \
13
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \
14
	ATTRS{product}=="HP LaserJet 1018", NAME="usb/%k", \
14
   ATTRS{idProduct}=="0517", RUN+="/sbin/foo2zjs-loadfw 1000 $tempnode"
15
	SYMLINK+="hplj1018-%n", MODE="0666", RUN+="/etc/hotplug/usb/hplj1018" 
15
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \
16
#Own udev rule for HP Laserjet 1020
16
   ATTRS{idProduct}=="1317", RUN+="/sbin/foo2zjs-loadfw 1005 $tempnode"
17
KERNEL=="lp*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="03f0", \
17
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \
18
	ATTRS{product}=="HP LaserJet 1020", NAME="usb/%k", \
18
   ATTRS{idProduct}=="4117", RUN+="/sbin/foo2zjs-loadfw 1018 $tempnode"
19
	SYMLINK+="hplj1020-%n", MODE="0666", RUN+="/etc/hotplug/usb/hplj1020" 
19
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \
20
#Own udev rule for HP Laserjet P1005
20
   ATTRS{idProduct}=="2b17", RUN+="/sbin/foo2zjs-loadfw 1020 $tempnode"
21
KERNEL=="lp*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="03f0", \
21
22
	ATTRS{product}=="HP LaserJet P1005", NAME="usb/%k", \
23
	SYMLINK+="hpljP1005-%n", MODE="0666", RUN+="/etc/hotplug/usb/hpljP1005" 
24
#Own udev rule for HP Laserjet P1006
25
KERNEL=="lp*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="03f0", \
26
	ATTRS{product}=="HP LaserJet P1006", NAME="usb/%k", \
27
	SYMLINK+="hpljP1006-%n", MODE="0666", RUN+="/etc/hotplug/usb/hpljP1006" 
28
#Own udev rule for HP Laserjet P1007
29
KERNEL=="lp*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="03f0", \
30
	ATTRS{product}=="HP LaserJet P1007", NAME="usb/%k", \
31
	SYMLINK+="hpljP1007-%n", MODE="0666", RUN+="/etc/hotplug/usb/hpljP1007" 
32
#Own udev rule for HP Laserjet P1008
33
KERNEL=="lp*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="03f0", \
34
	ATTRS{product}=="HP LaserJet P1008", NAME="usb/%k", \
35
	SYMLINK+="hpljP1008-%n", MODE="0666", RUN+="/etc/hotplug/usb/hpljP1008" 
36
#Own udev rule for HP Laserjet P1505
37
KERNEL=="lp*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="03f0", \
38
	ATTRS{product}=="HP LaserJet P1505", NAME="usb/%k", \
39
	SYMLINK+="hpljP1505-%n", MODE="0666", RUN+="/etc/hotplug/usb/hpljP1505" 
(-)foo2zjs/hplj1000 (-1 / +1 lines)
Lines 35-41 Link Here
35
#
35
#
36
# Directory to find downloadable HP firmware files sihpMMMM.dl
36
# Directory to find downloadable HP firmware files sihpMMMM.dl
37
#
37
#
38
FWDIR=/usr/share/foo2zjs/firmware
38
FWDIR=/lib/firmware
39
39
40
#
40
#
41
# Program used to determine USB printer id information
41
# Program used to determine USB printer id information

Return to bug 263494