LINUX.ORG.RU

winprinter HP LJ 1000 в Debian Lenny. Не работают udev правила.


0

0

есть принтер hp lj 1000A, тот, который работает, только если ему после подключения скормить бинарную микропрограмму, которая выполняет функции не достающего у него биоса. Последнее время, во многих дистрибутивах принтер работает нормально, если поставить пакет foo2zjs, ну соответственно тянутся дистрибутивные зависимости, и устанавливаются udev правила.

Во всех дистрах особых проблемм небыло, но вот столкнулся с тем, что на debian lenny микропрограмма в него автоматически не посылается. Если вручную запустить скрипт, который должен стартовать из udev правил, то он нормально отрабатывает. Создается впечатление что правила кривые, но точно сказать не могу, т.к. не особо в них силен, да и как проверить толком не знаю...

подскажите куда посмотреть?

anonymous
Ответ на: комментарий от mad_hatter

cat /etc/udev/rules.d/11-hplj10xx.rules

#Own udev rule for HP Laserjet 1000
KERNEL=="lp*", BUS=="usb", SYSFS{idVendor}=="03f0", \
       SYSFS{product}=="HP LaserJet 1000", NAME="usb/%k", \
       SYMLINK+="hplj1000%e", MODE="0666", RUN+="/usr/sbin/hplj1000"
#Own udev rule for HP Laserjet 1005
KERNEL=="lp*", BUS=="usb", SYSFS{idVendor}=="03f0", \
       SYSFS{product}=="HP LaserJet 1005 series", NAME="usb/%k", \
       SYMLINK+="hplj1005%e", MODE="0666", RUN+="/usr/sbin/hplj1005"
#Own udev rule for HP Laserjet 1018
KERNEL=="lp*", BUS=="usb", SYSFS{idVendor}=="03f0", \
       SYSFS{product}=="HP LaserJet 1018", NAME="usb/%k", \
       SYMLINK+="hplj1018%e", MODE="0666", RUN+="/usr/sbin/hplj1018"
#Own udev rule for HP Laserjet 1020
KERNEL=="lp*", BUS=="usb", SYSFS{idVendor}=="03f0", \
       SYSFS{product}=="HP LaserJet 1020", NAME="usb/%k", \
       SYMLINK+="hplj1020%e", MODE="0666", RUN+="/usr/sbin/hplj1020"

anonymous
()
Ответ на: комментарий от anonymous

вот для сравнения гентушные правила:

cat /etc/udev/rules.d/11-hplj10xx.rules

ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \
        ATTRS{idProduct}=="0517", RUN+="/sbin/foo2zjs-loadfw 1000 $tempnode"
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \
        ATTRS{idProduct}=="1317", RUN+="/sbin/foo2zjs-loadfw 1005 $tempnode"
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \
        ATTRS{idProduct}=="4117", RUN+="/sbin/foo2zjs-loadfw 1018 $tempnode"
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \
        ATTRS{idProduct}=="2b17", RUN+="/sbin/foo2zjs-loadfw 1020 $tempnode"

anonymous
()
Ответ на: комментарий от mad_hatter

насколько я понимаю, одиночное = и двойное == совершенно различны. одно присваивание, второе сравнение. Тоесть, мэйентейнеры дебиана тоже не в курсе что ЭТО давно не работает?

ПС. поменял, как ты сказал, ничего не произошло. udev рестартовывал.

anonymous
()
Ответ на: комментарий от anonymous

Что udevinfo говорит (http://reactivated.net/writing_udev_rules.html)?

В документации пишут, что можно смешивать аттрибуты всего дерева, но, к примеру, вебкамы у меня udev тогда не узнает - только по аттрибутам одного элемента.

mad_hatter
()
Ответ на: комментарий от mad_hatter

нифига не понял из вывода udevinfo, но вот вроде нужное выбрал:

udevinfo -a -p /sys/class/usb/lp0

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/class/usb/lp0':
    KERNEL=="lp0"
    SUBSYSTEM=="usb"
    DRIVER==""
    ATTR{dev}=="180:0"

  looking at parent device '/devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0':
    KERNELS=="3-1:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usblp"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{bInterfaceClass}=="07"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bInterfaceProtocol}=="02"
    ATTRS{modalias}=="usb:v03F0p0517d0120dc00dsc00dp00ic07isc01ip02"
    ATTRS{ieee1284_id}=="MFG:Hewlett-Packard_MDL:hp LaserJet 1000_CMD:ZJS_CLS:PRINTER_DES:hp LaserJet 1000_"

  looking at parent device '/devices/pci0000:00/0000:00:1d.2/usb3/3-1':
    KERNELS=="3-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{dev}=="189:258"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="c0"
    ATTRS{bMaxPower}=="  0mA"
    ATTRS{urbnum}=="16"
    ATTRS{idVendor}=="03f0"
    ATTRS{idProduct}=="0517"
    ATTRS{bcdDevice}=="0120"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{speed}=="12"
    ATTRS{busnum}=="3"
    ATTRS{devnum}=="3"
    ATTRS{version}==" 1.10"
    ATTRS{maxchild}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="Hewlett-Packard"
    ATTRS{product}=="hp LaserJet 1000"

anonymous
()
Ответ на: комментарий от anonymous

Теперь попробуй поменять "HP LaserJet 1000" на "hp LaserJet 1000", или вообще заменить на idProduct. Если по-прежнему не работает, убери KERNEL=="lp*".

mad_hatter
()
Ответ на: комментарий от mad_hatter

вот уродство, блин. я в твоем то тексте с трудом понял, в чем отличия, не говоря уже о удевправилах.

ЗАРАБОТАЛО!

капча: hooely

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.