I just packaged hplip 3.13.5 for MEPIS 12 (now in beta). Printing & Scanning work fine with it. The problem comes when booting up.
On bootup, /lib/udev/rules.d/56-hpmud.rules calls /usr/bin/hp-config_usb_printer with my printer's usb device id - so far so good.
The problem is that after setting up my local printer, hp-config_usb_printer keeps looping through the other 2 samba shared printers on my local network until udev times it out. Heres the output if I run the command with debugging turned on:
root@M12b1-32:/home/tim# /usr/bin/hp-config_usb_printer -l debug 004:002
hp-config_usb_printer[3509]: debug: param=004:002
hp-config_usb_printer[3509]: debug: Trying USB with bus=004 dev=002...
hp-config_usb_printer[3509]: debug: Found: hp:/usb/psc_1200_series?serial=MY324120VT5H
hp-config_usb_printer[3509]: debug: hp:/usb/psc_1200_series?serial=MY324120VT5H: back_end:hp is_hp:True bus:usb model:psc_1200_series serial:MY324120VT5H dev_file: host: zc: port:1
hp-config_usb_printer[3509]: debug: Cache miss: psc_1200_series
hp-config_usb_printer[3509]: debug: Reading file: /usr/share/hplip/data/models/models.dat
hp-config_usb_printer[3509]: debug: Searching for section [psc_1200_series] in file /usr/share/hplip/data/models/models.dat
hp-config_usb_printer[3509]: debug: Found section [psc_1200_series] in file /usr/share/hplip/data/models/models.dat
hp-config_usb_printer[3509]: debug:
Setting up device: hp:/usb/psc_1200_series?serial=MY324120VT5H
hp-config_usb_printer[3509]: debug: hp:/usb/psc_1200_series?serial=MY324120VT5H: back_end:hp is_hp:True bus:usb model:psc_1200_series serial:MY324120VT5H dev_file: host: zc: port:1
hp-config_usb_printer[3509]: debug: hp:/usb/psc_1200_series?serial=MY324120VT5H: back_end:hp is_hp:True bus:usb model:psc_1200_series serial:MY324120VT5H dev_file: host: zc: port:1
hp-config_usb_printer[3509]: debug: scheduler is running
hp-config_usb_printer[3509]: debug: device for Brother_MFC-7220: ipp://192.168.0.111:631/printers/Brother_MFC-7220
device for Photosmart_C3100: ipp://192.168.0.145:631/printers/Photosmart_C3100
device for psc_1200: hp:/usb/psc_1200_series?serial=MY324120VT5H
hp-config_usb_printer[3509]: debug: udev_serial_no[MY324120VT5H] serial[MY324120VT5H] udev_back_end[hp] back_end[hp]
hp-config_usb_printer[3509]: debug: ['psc_1200']
hp-config_usb_printer[3509]: debug: device for Brother_MFC-7220: ipp://192.168.0.111:631/printers/Brother_MFC-7220
device for Photosmart_C3100: ipp://192.168.0.145:631/printers/Photosmart_C3100
device for psc_1200: hp:/usb/psc_1200_series?serial=MY324120VT5H
hp-config_usb_printer[3509]: debug: udev_serial_no[MY324120VT5H] serial[MY324120VT5H] udev_back_end[hpfax] back_end[hp]
hp-config_usb_printer[3509]: debug: []
hp-config_usb_printer[3509]: debug: device for Brother_MFC-7220: ipp://192.168.0.111:631/printers/Brother_MFC-7220
device for Photosmart_C3100: ipp://192.168.0.145:631/printers/Photosmart_C3100
device for psc_1200: hp:/usb/psc_1200_series?serial=MY324120VT5H
hp-config_usb_printer[3509]: debug: udev_serial_no[MY324120VT5H] serial[MY324120VT5H] udev_back_end[hp] back_end[hp]
hp-config_usb_printer[3509]: debug: ['psc_1200']
hp-config_usb_printer[3509]: debug: send_message() entered
hp-config_usb_printer[3509]: debug: send_message() returning
hp-config_usb_printer[3509]: debug: device for Brother_MFC-7220: ipp://192.168.0.111:631/printers/Brother_MFC-7220
device for Photosmart_C3100: ipp://192.168.0.145:631/printers/Photosmart_C3100
device for psc_1200: hp:/usb/psc_1200_series?serial=MY324120VT5H
hp-config_usb_printer[3509]: debug: udev_serial_no[MY324120VT5H] serial[MY324120VT5H] udev_back_end[hpfax] back_end[hp]
hp-config_usb_printer[3509]: debug: []
hp-config_usb_printer[3509]: debug: device for Brother_MFC-7220: ipp://192.168.0.111:631/printers/Brother_MFC-7220
device for Photosmart_C3100: ipp://192.168.0.145:631/printers/Photosmart_C3100
device for psc_1200: hp:/usb/psc_1200_series?serial=MY324120VT5H
hp-config_usb_printer[3509]: debug: udev_serial_no[MY324120VT5H] serial[MY324120VT5H] udev_back_end[hp] back_end[hp]
hp-config_usb_printer[3509]: debug: ['psc_1200']
hp-config_usb_printer[3509]: debug: device for Brother_MFC-7220: ipp://192.168.0.111:631/printers/Brother_MFC-7220
device for Photosmart_C3100: ipp://192.168.0.145:631/printers/Photosmart_C3100
device for psc_1200: hp:/usb/psc_1200_series?serial=MY324120VT5H
hp-config_usb_printer[3509]: debug: udev_serial_no[MY324120VT5H] serial[MY324120VT5H] udev_back_end[hpfax] back_end[hp]
hp-config_usb_printer[3509]: debug: []
hp-config_usb_printer[3509]: debug: device for Brother_MFC-7220: ipp://192.168.0.111:631/printers/Brother_MFC-7220
device for Photosmart_C3100: ipp://192.168.0.145:631/printers/Photosmart_C3100
device for psc_1200: hp:/usb/psc_1200_series?serial=MY324120VT5H
hp-config_usb_printer[3509]: debug: udev_serial_no[MY324120VT5H] serial[MY324120VT5H] udev_back_end[hp] back_end[hp]
hp-config_usb_printer[3509]: debug: ['psc_1200']
^Cerror: User exit
hp-doctor does give this:
Checking for Configured Queues....
error: PPD /etc/cups/ppd/Brother_MFC-7220.ppd file not found
warning: Brother_MFC-7220 is not HP Device.
warning: Fail to read ppd=/etc/cups/ppd/Brother_MFC-7220.ppd file
warning: Device Brother_MFC-7220 is not HPLIP installed. Device must use the hp: or hpfax: to function in HPLIP.
warning: Brother_MFC-7220 is not HP Device.
error: PPD /etc/cups/ppd/Photosmart_C3100.ppd file not found
warning: Photosmart_C3100 is not HP Device.
warning: Fail to read ppd=/etc/cups/ppd/Photosmart_C3100.ppd file
warning: Device Photosmart_C3100 is not HPLIP installed. Device must use the hp: or hpfax: to function in HPLIP.
warning: Photosmart_C3100 is not HP Device.
Queue(s) configured correctly using HPLIP.
I know I haven't set up local ppd files for the samba shared printers, but that shouldn't keep hp-config_usb_printer looping over them.
After a further look, I see it's a section in hp-config_ usb_printer designed to remove unused printer queues - but it takes 1min 5 sec (12 loops with a wait 5 in each) to finish and it blocks udev - at least until udev times it out.
Using nohup to keep it from blocking udev seems to work - printer is set up correctly, log file in /var/log/hp looks right & udev doesn't hang anymore.
Patch to /lib/udev/ rules.d/ 56-hpmud. rules
15c15 test}== "yes", PROGRAM="/bin/sh -c 'logger -p user.info loading HP Device $env{BUSNUM} $env{DEVNUM}'", RUN+="/bin/sh -c 'if [ -f /usr/bin/systemctl ]; then /usr/bin/systemctl --no-block start hplip-printer@ $env{BUSNUM} :$env{DEVNUM} .service; else /usr/bin/ hp-config_ usb_printer $env{BUSNUM} :$env{DEVNUM} ; fi'" test}== "yes", PROGRAM="/bin/sh -c 'logger -p user.info loading HP Device $env{BUSNUM} $env{DEVNUM}'", RUN+="/bin/sh -c 'if [ -f /usr/bin/systemctl ]; then /usr/bin/systemctl --no-block start hplip-printer@ $env{BUSNUM} :$env{DEVNUM} .service; else /usr/bin/nohup /usr/bin/ hp-config_ usb_printer $env{BUSNUM} :$env{DEVNUM} ; fi'"
< ENV{hp_
---
> ENV{hp_