Wstyd się przyznać, ale nie śledziłem ostatnio trendów w tym temacie i nie byłem świadom, że
udev już całkowicie zastąpiło
/etc/hotplug (myślałem, że nadal działają równocześnie). Na swoje pocieszenie dodam, że developerzy pakietu
foo2zjs też chyba nie są tego świadomi, bo to właśnie ten pakiet stworzył
/etc/hotplug i umieścił w nim skrypty inicjujące drukarkę (które oczywiście są "martwe").
Cóż... musiałem sam napisać skrypty, które będą wysyłać do drukarki HP1018 firmware i umieścić je w /udev/rules.d.
Dla zainteresowanych, podaję poniżej zawartość (skrypty oprócz wysyłania firmware'u, mają także zapobiegać kilkukrotnemu uruchamianiu się w pętli - stąd "locker").
cat /udev/rules.d/hp_1018.rules
Code: Select all
#!/bin/bash
# Wysyła firmware po wykryciu drukarki HP1018
# Atrybuty urzadzenia mozna uzyskac wydajac polecenie:
# udevadm info -a -p /sys/class/usbmics/lp0
ACTION=="add", ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="4117", ATTRS{serial}=="KP3KW7X", RUN+="/home/user/.skrypty/hp_1018_firmware"
ACTION=="remove", ENV{ID_MODEL}=="HP_LaserJet_1018", RUN+="/home/user/.skrypty/hp_1018_rm_locker"
cat /home/user/.skrypty/hp_1018_firmware
Code: Select all
#!/bin/bash
LOCKER='/tmp/hp1018.lock';
FIRMWARE='/usr/share/foo2zjs/firmware/sihp1018.dl';
DRUKARKA='/dev/usb/lp0';
LOG='/tmp/hp1018.log';
if [ -e $LOG ]; then
echo "`date` : Skrypt wywoływany jest po raz kolejny" >> $LOG;
else
touch $LOG;
chmod 777 $LOG;
chown robert.users $LOG;
fi
sleep 3;
if [ -e $LOCKER ]; then
echo "`date` : Odmowa. Firmware zostal juz wyslany" >> $LOG;
sleep 3;
break;
else
if [ -e $DRUKARKA ]; then
echo "`date` : Wykryto urzadzenie drukarki. Za 2 sekundy wysle firmware do drukarki." >> $LOG;
sleep 2;
echo "`date` : Wysylam..." >> $LOG;
cat $FIRMWARE > $DRUKARKA;
echo "`date` : Firmware zostal wyslany" >> $LOG;
sleep 4;
touch $LOCKER && chmod 777 $LOCKER && chown robert.users $LOCKER;
break;
else
echo "`date` : Nie wykryto jeszcze urzadzenia drukarki" >> $LOG;
fi
fi
cat /home/user/.skrypty/hp_1018_rm_locker
Code: Select all
#!/bin/bash
rm -f /tmp/hp1018.lock;
rm -f /tmp/hp1018.log;
Free as a bird...