Skocz do zawartości

Hp Laserjet 1020, Foo2Zjs Z Http://foo2Zjs.rkkda.com, F18 - Ładowanie Firmware Przez Udev


MGo

Rekomendowane odpowiedzi

W nowych wersjach Fedory, gdzie za załadowanie firmware odpowiada udev, system nie ładuje do drukarki firmware po restarcie drukarki.
Opisuję rozwiązanie przetestowane dla 64-bitowej wersji  Fedory 18 i drukarki HP Laserjet 1020:
 
Tworzymy plik /usr/bin/hp1020-load-firmware

#!/bin/sh
LIMIT=9
for printer in /sys/class/usbmisc/lp* ; do
    output=$(udevadm info -a -p $printer | grep 'ATTRS{product}=="HP LaserJet 1020"')
    if [ ! -z "$output" ]; then
            devpath="/dev/usb/${printer:19}"
            echo "found HP1020 on $devpath, uploading firmware"
            cat /usr/share/foo2zjs/firmware/sihp1020.dl > $devpath
    fi
done
exit

Nadajemy uprawnienia:

chmod a+x /usr/bin/hp1020-load-firmware
chown root.root /usr/bin/hp1020-load-firmware

Uruchomienie pliku powinno spowodować naprzemienne miganie lampek drukarki, świadczące o załadowaniu firmware.

Szukamy pliku /lib/udev/rules.d/70-printers.rules, który w Fedorze 18 zawiera:

# Low-level USB device add trigger
ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:0701??:*", TAG+="systemd",ENV{SYSTEMD_WANTS}="configure-printer@usb-$env{BUSNUM}-$env{DEVNUM}.service"
# Low-level USB device remove trigger
ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="*:0701*:*", RUN+="udev-configure-printer remove %p"

Kopiujemy plik do /etc/udev/rules.d/ i modyfikujemy zawartość:

# Low-level USB device add trigger
ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:0701??:*", TAG+="systemd",ENV{SYSTEMD_WANTS}="configure-printer@usb-$env{BUSNUM}-$env{DEVNUM}.service", RUN+="/usr/bin/hp1020-load-firmware"
# Low-level USB device remove trigger
ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="*:0701*:*", RUN+="udev-configure-printer remove %p"

Wyłączamy i włączamy drukarkę, jeśli pojawi się naprzemienne miganie lampek, firmware jest załadowany.
 
Tworzymy plik /etc/systemd/system/loadfirmware.service 

[Unit]
Description=Startup HP LaserJet 1020
[Service]
Type=oneshot
ExecStart=/usr/bin/hp1020-load-firmware
ExecStop=
[Install]
WantedBy=printer.target

Wydajemy polecenie:

 

systemctl enable loadfirmware.service

Uruchamiamy Fedorę od nowa. Naprzemienne miganie lampek drukarki przy starcie systemu sygnalizuje załadowanie firmware.

==Źródło:==
[]http://forums.fedoraforum.org/archive/index.php/t-172284.html]

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...