Line
Link Here
|
0 |
-- Makefile |
0 |
++ Makefile |
Lines 20-25
Link Here
|
20 |
PREFIX=/usr |
20 |
PREFIX=/usr |
21 |
PREFIX=$(DESTDIR)/usr |
21 |
PREFIX=$(DESTDIR)/usr |
22 |
|
22 |
|
|
|
23 |
# USB_PRINTERID is also installed there because it is needed by the FWloader |
24 |
FWLOADERDIR=$(DESTDIR)/sbin |
25 |
FIRMWAREDIR=$(DESTDIR)/lib/firmware |
26 |
|
23 |
# Pathnames for this package... |
27 |
# Pathnames for this package... |
24 |
BIN=$(PREFIX)/bin |
28 |
BIN=$(PREFIX)/bin |
25 |
SHAREZJS=$(PREFIX)/share/foo2zjs |
29 |
SHAREZJS=$(PREFIX)/share/foo2zjs |
Lines 661-681
Link Here
|
661 |
fi; \ |
665 |
fi; \ |
662 |
done |
666 |
done |
663 |
# foo2zjs Firmware files (if any) |
667 |
# foo2zjs Firmware files (if any) |
664 |
$(INSTALL) $(LPuid) $(LPgid) -m 775 -d $(SHAREZJS)/firmware/ |
668 |
$(INSTALL) $(LPuid) $(LPgid) -m 775 -d $(FIRMWAREDIR)/ |
665 |
for i in sihp1*.img; do \ |
669 |
for i in sihp1*.img; do \ |
666 |
if [ -f $$i ]; then \ |
670 |
if [ -f $$i ]; then \ |
667 |
base=`basename $$i .img`; \ |
671 |
base=`basename $$i .img`; \ |
668 |
./arm2hpdl $$i >$$base.dl; \ |
672 |
./arm2hpdl $$i >$$base.dl; \ |
669 |
$(INSTALL) -c -m 644 $$base.dl $(SHAREZJS)/firmware/; \ |
673 |
$(INSTALL) -c -m 644 $$base.dl $(FIRMWAREDIR)/; \ |
670 |
fi; \ |
674 |
fi; \ |
671 |
done |
675 |
done |
672 |
# foo2xqx Firmware files (if any) |
676 |
# foo2xqx Firmware files (if any) |
673 |
$(INSTALL) $(LPuid) $(LPgid) -m 775 -d $(SHAREXQX)/firmware/ |
677 |
$(INSTALL) $(LPuid) $(LPgid) -m 775 -d $(FIRMWAREDIR)/ |
674 |
for i in sihpP*.img; do \ |
678 |
for i in sihpP*.img; do \ |
675 |
if [ -f $$i ]; then \ |
679 |
if [ -f $$i ]; then \ |
676 |
base=`basename $$i .img`; \ |
680 |
base=`basename $$i .img`; \ |
677 |
./arm2hpdl $$i >$$base.dl; \ |
681 |
./arm2hpdl $$i >$$base.dl; \ |
678 |
$(INSTALL) -c -m 644 $$base.dl $(SHAREXQX)/firmware/; \ |
682 |
$(INSTALL) -c -m 644 $$base.dl $(FIRMWAREDIR)/; \ |
679 |
fi; \ |
683 |
fi; \ |
680 |
done |
684 |
done |
681 |
# foo2oak ICM files (if any) |
685 |
# foo2oak ICM files (if any) |
Lines 818-823
Link Here
|
818 |
UDEVDIR=$(DESTDIR)/etc/udev/rules.d |
822 |
UDEVDIR=$(DESTDIR)/etc/udev/rules.d |
819 |
RULES=hplj10xx.rules |
823 |
RULES=hplj10xx.rules |
820 |
install-udev: |
824 |
install-udev: |
|
|
825 |
[ -d $(FWLOADERDIR) ] || install -d -m 755 $(FWLOADERDIR)/ |
826 |
install -c -m 755 foo2zjs-loadfw $(FWLOADERDIR)/ |
821 |
[ -d $(UDEVDIR) ] || install -d -m 755 $(UDEVDIR)/ |
827 |
[ -d $(UDEVDIR) ] || install -d -m 755 $(UDEVDIR)/ |
822 |
install -c -m 644 $(RULES) $(UDEVDIR)/11-$(RULES) |
828 |
install -c -m 644 $(RULES) $(UDEVDIR)/11-$(RULES) |
823 |
|
829 |
|
824 |
-- foo2zjs-loadfw |
830 |
++ foo2zjs-loadfw |
Line 0
Link Here
|
0 |
-- hplj1000 |
1 |
#!/bin/sh |
|
|
2 |
|
3 |
# foo2zjs-loadfw: |
4 |
# |
5 |
# Hotplug script for 100[05],1018,1020,P100[5678],P1505,P1505n |
6 |
# USB laser printers. The model number |
7 |
# that this script deals with is determined from the udev env. |
8 |
# |
9 |
# Used to download firmware automatically into the printer when it |
10 |
# is powered up or plugged into the USB port. |
11 |
# |
12 |
# The inspiration fo this script is from: |
13 |
# Oscar Santacreu. Alicante-Spain (2002) |
14 |
# Mike Morgan (2004) |
15 |
# Modified by Stefan Schweizer (2005) to work as a udev-RUN-script |
16 |
|
17 |
# |
18 |
# Directory to find downloadable HP firmware files sihpMMMM.dl |
19 |
# |
20 |
FWDIR=/lib/firmware |
21 |
|
22 |
# |
23 |
# Program used to determine USB printer id information |
24 |
# |
25 |
USBID=/bin/usb_printerid |
26 |
|
27 |
# |
28 |
# Timeout to load firmware |
29 |
# |
30 |
TIMEOUT=6 |
31 |
|
32 |
# |
33 |
# Figure out how to log our messages |
34 |
# |
35 |
if [ -t 1 ]; then |
36 |
# Running from a tty... |
37 |
log() { |
38 |
echo "$0: $@" |
39 |
} |
40 |
elif [ -x /usr/bin/logger ]; then |
41 |
# Have logger... |
42 |
log() { |
43 |
logger -t "$0" -- "$@" |
44 |
} |
45 |
else |
46 |
# No logger... |
47 |
log() { |
48 |
echo "$0: $@" >> /var/log/messages |
49 |
} |
50 |
fi |
51 |
|
52 |
# |
53 |
# Figure out the model number from the argument of this script |
54 |
# |
55 |
MODELNAME='' |
56 |
FWMODEL='' |
57 |
case "$1" in |
58 |
P1005) |
59 |
MODEL=P1005 |
60 |
;; |
61 |
P1006) |
62 |
MODEL=P1006 |
63 |
;; |
64 |
P1007) |
65 |
MODEL=P1007 |
66 |
FWMODEL=P1005 |
67 |
;; |
68 |
P1008) |
69 |
MODEL=P1008 |
70 |
FWMODEL=P1006 |
71 |
;; |
72 |
P1505) |
73 |
MODEL=P1505 |
74 |
;; |
75 |
P1505n) |
76 |
MODEL=P1505n |
77 |
FWMODEL=P1505 |
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 |
;; |
90 |
1020) |
91 |
MODEL=1020 |
92 |
;; |
93 |
*) |
94 |
log "Only HP LaserJet 100[05],1018,1020,P100[5678],P1505,P1505n are supported" |
95 |
log "You need to supply one of these on the cmdline: $0 10**" |
96 |
exit |
97 |
;; |
98 |
esac |
99 |
: ${MODELNAME:="HP LaserJet $MODEL"} |
100 |
: ${FWMODEL:="$MODEL"} |
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$FWMODEL.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 "$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 |
fi |
145 |
else |
146 |
log "No supported printer found." |
147 |
fi |
148 |
else |
149 |
log "HP LaserJet $MODEL firmware was not downloaded..." |
150 |
log "...couldn't find $USBID" |
151 |
fi |
|
|
152 |
++ hplj1000 |
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 |
42 |
-- hplj10xx.rules |
42 |
++ hplj10xx.rules |
Lines 1-36
Link Here
|
1 |
#Own udev rule for HP Laserjet 1000 |
1 |
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \ |
2 |
KERNEL=="lp*", BUS=="usb", SYSFS{idVendor}=="03f0", \ |
2 |
ATTRS{idProduct}=="3d17", RUN+="/sbin/foo2zjs-loadfw P1005 $tempnode" |
3 |
SYSFS{product}=="hp LaserJet 1000", NAME="usb/%k", \ |
3 |
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \ |
4 |
SYMLINK+="hplj1000-%n", MODE="0666", RUN+="/etc/hotplug/usb/hplj1000" |
4 |
ATTRS{idProduct}=="3e17", RUN+="/sbin/foo2zjs-loadfw P1006 $tempnode" |
5 |
#Own udev rule for HP Laserjet 1005 |
5 |
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \ |
6 |
KERNEL=="lp*", BUS=="usb", SYSFS{idVendor}=="03f0", \ |
6 |
ATTRS{idProduct}=="4817", RUN+="/sbin/foo2zjs-loadfw P1007 $tempnode" |
7 |
SYSFS{product}=="hp LaserJet 1005 series", NAME="usb/%k", \ |
7 |
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \ |
8 |
SYMLINK+="hplj1005-%n", MODE="0666", RUN+="/etc/hotplug/usb/hplj1005" |
8 |
ATTRS{idProduct}=="4917", RUN+="/sbin/foo2zjs-loadfw P1008 $tempnode" |
9 |
#Own udev rule for HP Laserjet 1018 |
9 |
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \ |
10 |
KERNEL=="lp*", BUS=="usb", SYSFS{idVendor}=="03f0", \ |
10 |
ATTRS{idProduct}=="3f17", RUN+="/sbin/foo2zjs-loadfw P1505 $tempnode" |
11 |
SYSFS{product}=="HP LaserJet 1018", NAME="usb/%k", \ |
11 |
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \ |
12 |
SYMLINK+="hplj1018-%n", MODE="0666", RUN+="/etc/hotplug/usb/hplj1018" |
12 |
ATTRS{idProduct}=="4017", RUN+="/sbin/foo2zjs-loadfw P1505n $tempnode" |
13 |
#Own udev rule for HP Laserjet 1020 |
13 |
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \ |
14 |
KERNEL=="lp*", BUS=="usb", SYSFS{idVendor}=="03f0", \ |
14 |
ATTRS{idProduct}=="0517", RUN+="/sbin/foo2zjs-loadfw 1000 $tempnode" |
15 |
SYSFS{product}=="HP LaserJet 1020", NAME="usb/%k", \ |
15 |
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \ |
16 |
SYMLINK+="hplj1020-%n", MODE="0666", RUN+="/etc/hotplug/usb/hplj1020" |
16 |
ATTRS{idProduct}=="1317", RUN+="/sbin/foo2zjs-loadfw 1005 $tempnode" |
17 |
#Own udev rule for HP Laserjet P1005 |
17 |
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \ |
18 |
KERNEL=="lp*", BUS=="usb", SYSFS{idVendor}=="03f0", \ |
18 |
ATTRS{idProduct}=="4117", RUN+="/sbin/foo2zjs-loadfw 1018 $tempnode" |
19 |
SYSFS{product}=="HP LaserJet P1005", NAME="usb/%k", \ |
19 |
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \ |
20 |
SYMLINK+="hpljP1005-%n", MODE="0666", RUN+="/etc/hotplug/usb/hpljP1005" |
20 |
ATTRS{idProduct}=="2b17", RUN+="/sbin/foo2zjs-loadfw 1020 $tempnode" |
21 |
#Own udev rule for HP Laserjet P1006 |
21 |
|
22 |
KERNEL=="lp*", BUS=="usb", SYSFS{idVendor}=="03f0", \ |
|
|
23 |
SYSFS{product}=="HP LaserJet P1006", NAME="usb/%k", \ |
24 |
SYMLINK+="hpljP1006-%n", MODE="0666", RUN+="/etc/hotplug/usb/hpljP1006" |
25 |
#Own udev rule for HP Laserjet P1007 |
26 |
KERNEL=="lp*", BUS=="usb", SYSFS{idVendor}=="03f0", \ |
27 |
SYSFS{product}=="HP LaserJet P1007", NAME="usb/%k", \ |
28 |
SYMLINK+="hpljP1007-%n", MODE="0666", RUN+="/etc/hotplug/usb/hpljP1007" |
29 |
#Own udev rule for HP Laserjet P1008 |
30 |
KERNEL=="lp*", BUS=="usb", SYSFS{idVendor}=="03f0", \ |
31 |
SYSFS{product}=="HP LaserJet P1008", NAME="usb/%k", \ |
32 |
SYMLINK+="hpljP1008-%n", MODE="0666", RUN+="/etc/hotplug/usb/hpljP1008" |
33 |
#Own udev rule for HP Laserjet P1505 |
34 |
KERNEL=="lp*", BUS=="usb", SYSFS{idVendor}=="03f0", \ |
35 |
SYSFS{product}=="HP LaserJet P1505", NAME="usb/%k", \ |
36 |
SYMLINK+="hpljP1505-%n", MODE="0666", RUN+="/etc/hotplug/usb/hpljP1505" |