coper Napisano Listopad 12, 2011 Zgłoszenie Share Napisano Listopad 12, 2011 Witam, Mam problem, zrobiłem małe urządzenie sterowane przez port LPT. Działa ok. Problem mam kiedy włączę drukarkę (brother hl-2030) podłączoną po usb. Drukarka jest motowane do /dev/usb/lp0 i resetuje mi moje małe urządzenie. Czy jest jakaś metoda aby drukarka była montowana na /dev/usb/lp1 ? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
3k_PL Napisano Listopad 13, 2011 Zgłoszenie Share Napisano Listopad 13, 2011 Wydaje mi się że powinieneś się zainteresować udev. Dzięki temu będziesz mógł wyznaczyć reguły podłączania Twojej drukarki i/lub urządzenia. Choć osobiście radziłbym aby to Twoje urządzenie dostało unikalny plik, dzięki temu zawsze w niego trafisz np. /dev/usb/moje_wspaniale_cudo_ktore_przejmie_wladze_nad_swiatem Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
coper Napisano Listopad 13, 2011 Autor Zgłoszenie Share Napisano Listopad 13, 2011 próbowalem napisac regule do udev niestety bez sukcesu ;( Czy moze wiesz jak powinna wygladac ? Moje urzadzenie nie dziala na urzadzeniach z /dev/.... Do sterowania uzywam ioportutils który pracuje bezposrednio na przerwaniach. Czy ktos wie czy na przyklad mozna jakos zablokowac dla systemu /dev/lp0 (np. przez wirtualna drukarke czy poprostu zablokowanie lp0)? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
3k_PL Napisano Listopad 13, 2011 Zgłoszenie Share Napisano Listopad 13, 2011 Reguly dopisujesz do /etc/udev/rules.d/ . Zdarzenia jakie sie dzieja sledzisz poprzez udevadm monitor wiecej info o urzadzeniu (vendor, product, serial) uzyskujesz poprzez udevadm info --query=all --path= gdzie sciezka wskazuje na podlaczone urzadzenie. Zatem po zdobyciu koniecznych informacji tworzysz w rules.d plik 99-moja-regula.rules, a w nim ATTR{idVendor}=="TERMINATOR", ATTR{idProduct}=="T1000", RUN+="/bin/touch /tmp/plik-zniszczenia" Oczywiscie potrzebujesz to dostosowac do swoich potrzeb, ja przed chwila zrobilem cos takiego i dziala. Mozesz to chyba tak dostosowac by kazda drukarka w systemie byla ladowana jako inny plik. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
coper Napisano Listopad 13, 2011 Autor Zgłoszenie Share Napisano Listopad 13, 2011 Coś chyba nie tak zrobiłem (taki trochę pierdołowaty jestem). Udało mi się ustalić idVendor idProduct kernel: [ 401.368043] usb 4-1: new full speed USB device number 2 using uhci_hcd udevd[476]: seq 2048 queued, 'add' 'usb' kernel: [ 401.563063] usb 4-1: New USB device found, idVendor=04f9, idProduct=0027 kernel: [ 401.563072] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 kernel: [ 401.563079] usb 4-1: Product: HL-2030 series kernel: [ 401.563085] usb 4-1: Manufacturer: Brother kernel: [ 401.563090] usb 4-1: SerialNumber: L6J294227 utworzyłem plik /etc/udev/rules.d/39-moja-regula.rules ATTR{idVendor}=="04f9", ATTR{idProduct}=="0027", RUN+="/bin/touch /tmp/plik-zniszczenia" Niestety ;( pomimo wczytania pliku nadal na złączu LPT pojawia się reset wszystkich pinów ;( tail -f /var/log/messages kernel: [ 401.368043] usb 4-1: new full speed USB device number 2 using uhci_hcd udevd[476]: seq 2048 queued, 'add' 'usb' kernel: [ 401.563063] usb 4-1: New USB device found, idVendor=04f9, idProduct=0027 kernel: [ 401.563072] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 kernel: [ 401.563079] usb 4-1: Product: HL-2030 series kernel: [ 401.563085] usb 4-1: Manufacturer: Brother kernel: [ 401.563090] usb 4-1: SerialNumber: L6J294227 udevd[476]: seq 2048 forked new worker [2149] udevd[2149]: seq 2048 running udevd[2149]: device 0x208e9a30 has devpath '/devices/pci0000:00/0000:00:1d.2/usb4/4-1' udevd[2149]: no db file to read /run/udev/data/c189:385: No such file or directory udevd[2149]: RUN '/bin/touch /tmp/plik-zniszczenia' /etc/udev/rules.d/39-moja-regula.rules:1 udevd[2149]: device 0x208e9c38 has devpath '/devices/pci0000:00/0000:00:1d.2/usb4' udevd[476]: seq 2049 queued, 'add' 'usb' udevd[2149]: device 0x208ea0b0 has devpath '/devices/pci0000:00/0000:00:1d.2' udevd[2149]: device 0x208ea260 has devpath '/devices/pci0000:00' udevd[2149]: IMPORT 'usb_id --export /devices/pci0000:00/0000:00:1d.2/usb4/4-1' /lib/udev/rules.d/40-libgphoto2.rules:11 udevd[2150]: starting 'usb_id --export /devices/pci0000:00/0000:00:1d.2/usb4/4-1' usb_id[2150]: custom logging function 0x213ef008 registered udevd[2149]: 'usb_id --export /devices/pci0000:00/0000:00:1d.2/usb4/4-1'(out) 'ID_VENDOR=Brother' udevd[2149]: 'usb_id --export /devices/pci0000:00/0000:00:1d.2/usb4/4-1'(out) 'ID_VENDOR_ENC=Brother' udevd[2149]: 'usb_id --export /devices/pci0000:00/0000:00:1d.2/usb4/4-1'(out) 'ID_VENDOR_ID=04f9' udevd[2149]: 'usb_id --export /devices/pci0000:00/0000:00:1d.2/usb4/4-1'(out) 'ID_MODEL=HL-2030_series' udevd[2149]: 'usb_id --export /devices/pci0000:00/0000:00:1d.2/usb4/4-1'(out) 'ID_MODEL_ENC=HL-2030\x20series' udevd[2149]: 'usb_id --export /devices/pci0000:00/0000:00:1d.2/usb4/4-1'(out) 'ID_MODEL_ID=0027' udevd[2149]: 'usb_id --export /devices/pci0000:00/0000:00:1d.2/usb4/4-1'(out) 'ID_REVISION=0100' udevd[2149]: 'usb_id --export /devices/pci0000:00/0000:00:1d.2/usb4/4-1'(out) 'ID_SERIAL=Brother_HL-2030_series_L6J294227' udevd[2149]: 'usb_id --export /devices/pci0000:00/0000:00:1d.2/usb4/4-1'(out) 'ID_SERIAL_SHORT=L6J294227' udevd[2149]: 'usb_id --export /devices/pci0000:00/0000:00:1d.2/usb4/4-1'(out) 'ID_BUS=usb' udevd[2149]: 'usb_id --export /devices/pci0000:00/0000:00:1d.2/usb4/4-1'(out) 'ID_USB_INTERFACES=:070102:' udevd[2149]: 'usb_id --export /devices/pci0000:00/0000:00:1d.2/usb4/4-1' [2150] exit with return code 0 udevd[2149]: MODE 0664 /lib/udev/rules.d/50-udev-default.rules:55 udevd[2149]: GROUP 7 /lib/udev/rules.d/50-udev-default.rules:65 udevd[2149]: PROGRAM 'mtp-probe /sys/devices/pci0000:00/0000:00:1d.2/usb4/4-1 4 2' /lib/udev/rules.d/69-libmtp.rules:765 udevd[2151]: starting 'mtp-probe /sys/devices/pci0000:00/0000:00:1d.2/usb4/4-1 4 2' mtp-probe: checking bus 4, device 2: "/sys/devices/pci0000:00/0000:00:1d.2/usb4/4-1" mtp-probe: bus: 4, device: 2 was not an MTP device udevd[2149]: 'mtp-probe /sys/devices/pci0000:00/0000:00:1d.2/usb4/4-1 4 2'(out) '0' udevd[2149]: 'mtp-probe /sys/devices/pci0000:00/0000:00:1d.2/usb4/4-1 4 2' [2151] exit with return code 0 udevd[2149]: device 0x208e9c38 filled with db file data udevd[2149]: no node name set, will use kernel supplied name 'bus/usb/004/002' udevd[2149]: creating device node '/dev/bus/usb/004/002', devnum=189:385, mode=0664, uid=0, gid=7 udevd[2149]: preserve file '/dev/bus/usb/004/002', because it has correct dev_t udevd[2149]: set permissions /dev/bus/usb/004/002, 020664, uid=0, gid=7 udevd[2149]: creating symlink '/dev/char/189:385' to '../bus/usb/004/002' udevd[2149]: created db file '/run/udev/data/c189:385' for '/devices/pci0000:00/0000:00:1d.2/usb4/4-1' udevd[2152]: starting '/bin/touch /tmp/plik-zniszczenia' udevd[2149]: '/bin/touch /tmp/plik-zniszczenia' [2152] exit with return code 0 udevd[2149]: passed -1 bytes to netlink monitor 0x208e9970 udevd[476]: seq 2048 done with 0 udevd[476]: passed 298 bytes to netlink monitor 0x208db1f8 udevd[2149]: seq 2048 processed with 0 udevd[2149]: seq 2049 running udevd[2149]: device 0x208ecb50 has devpath '/devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0' udevd[2149]: no db file to read /run/udev/data/+usb:4-1:1.0: No such file or directory udevd[2149]: device 0x208ecc58 has devpath '/devices/pci0000:00/0000:00:1d.2/usb4/4-1' udevd[2149]: device 0x208e9a88 has devpath '/devices/pci0000:00/0000:00:1d.2/usb4' udevd[2149]: device 0x208ed048 has devpath '/devices/pci0000:00/0000:00:1d.2' udevd[2149]: device 0x208ea9f0 has devpath '/devices/pci0000:00' udevd[2149]: RUN 'udev-configure-printer add %p' /lib/udev/rules.d/70-printers.rules:2 udevd[2149]: device 0x208ecc58 filled with db file data udevd[2149]: RUN '/sbin/modprobe -bv $env{MODALIAS}' /lib/udev/rules.d/80-drivers.rules:5 udevd[2149]: created db file '/run/udev/data/+usb:4-1:1.0' for '/devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0' udevd[2153]: starting 'udev-configure-printer add /devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0' udevd[2149]: 'udev-configure-printer add /devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0' [2153] exit with return code 0 udevd[2155]: starting '/sbin/modprobe -bv usb:v04F9p0027d0100dc00dsc00dp00ic07isc01ip02' udevd[2149]: '/sbin/modprobe -bv usb:v04F9p0027d0100dc00dsc00dp00ic07isc01ip02'(out) 'insmod /lib/modules/3.1.0-7.fc16.i686.PAE/kernel/drivers/usb/class/usblp.ko ' udevd[476]: seq 2050 queued, 'add' 'module' udevd[476]: seq 2050 forked new worker [2156] udevd[2156]: seq 2050 running udevd[2156]: device 0x208eace8 has devpath '/module/usblp' udevd[2156]: no db file to read /run/udev/data/+module:usblp: No such file or directory udevd[2156]: passed -1 bytes to netlink monitor 0x208e9ee0 udevd[2156]: seq 2050 processed with 0 udevd[476]: seq 2050 done with 0 udevd[476]: seq 2051 queued, 'add' 'usb' udevd[476]: seq 2052 queued, 'add' 'drivers' udevd[2149]: '/sbin/modprobe -bv usb:v04F9p0027d0100dc00dsc00dp00ic07isc01ip02' [2155] exit with return code 0 udevd[476]: passed 123 bytes to netlink monitor 0x208db1f8 udevd[2156]: seq 2052 running udevd[2156]: device 0x208eace8 has devpath '/bus/usb/drivers/usblp' udevd[2149]: passed -1 bytes to netlink monitor 0x208e9970 kernel: [ 402.391264] usblp0: USB Bidirectional printer dev 2 if 0 alt 0 proto 2 vid 0x04F9 pid 0x0027 kernel: [ 402.391317] usbcore: registered new interface driver usblp udevd[2149]: seq 2049 processed with 0 udevd[476]: seq 2049 done with 0 udevd[2156]: no db file to read /run/udev/data/+drivers:usblp: No such file or directory udevd[2156]: device 0x208e9a98 has devpath '/bus/usb/drivers' udevd[2156]: device 0x208e9bf8 has devpath '/bus/usb' udevd[476]: passed 188 bytes to netlink monitor 0x208db1f8 udevd[2149]: seq 2051 running udevd[2149]: device 0x208ec8a0 has devpath '/devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0/usb/lp0' udevd[2156]: no db file to read /run/udev/data/+subsystem:drivers: No such file or directory udevd[2156]: passed -1 bytes to netlink monitor 0x208e9ee0 udevd[2149]: no db file to read /run/udev/data/c180:0: No such file or directory udevd[2156]: seq 2052 processed with 0 udevd[2149]: device 0x208ed5d8 has devpath '/devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0' udevd[476]: seq 2052 done with 0 udevd[2149]: device 0x208ed6d0 has devpath '/devices/pci0000:00/0000:00:1d.2/usb4/4-1' udevd[2149]: device 0x208ed2d0 has devpath '/devices/pci0000:00/0000:00:1d.2/usb4' udevd[2149]: device 0x208ecc58 has devpath '/devices/pci0000:00/0000:00:1d.2' udevd[2149]: device 0x208eca30 has devpath '/devices/pci0000:00' udevd[2149]: GROUP 7 /lib/udev/rules.d/50-udev-default.rules:62 udevd[2149]: LINK 'usblp0' /lib/udev/rules.d/50-udev-default.rules:62 udevd[2149]: GROUP 7 /lib/udev/rules.d/50-udev-default.rules:63 udevd[2149]: RUN 'udev-configure-printer add %p' /lib/udev/rules.d/70-printers.rules:4 udevd[2149]: device 0x208ed5d8 filled with db file data udevd[2149]: no node name set, will use kernel supplied name 'usb/lp0' udevd[2149]: creating device node '/dev/usb/lp0', devnum=180:0, mode=0660, uid=0, gid=7 udevd[2149]: preserve file '/dev/usb/lp0', because it has correct dev_t udevd[2149]: set permissions /dev/usb/lp0, 020660, uid=0, gid=7 udevd[2149]: creating symlink '/dev/char/180:0' to '../usb/lp0' udevd[2149]: creating link '/dev/usblp0' to '/dev/usb/lp0' udevd[2149]: creating symlink '/dev/usblp0' to 'usb/lp0' udevd[2149]: created db file '/run/udev/data/c180:0' for '/devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0/usb/lp0' udevd[2157]: starting 'udev-configure-printer add /devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0/usb/lp0' udevd[2149]: 'udev-configure-printer add /devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0/usb/lp0' [2157] exit with return code 0 udevd[2149]: passed -1 bytes to netlink monitor 0x208e9970 udevd[2149]: seq 2051 processed with 0 udevd[476]: seq 2051 done with 0 hp[2165]: io/hpmud/pp.c 627: unable to read device-id ret=-1 ^^^^^^^^^^^^^^^^^^^^^^^^^^ |||||||||||||||||||||||||||||||||||||||||| W tym miejscu mniej więcej następuje reset portu LPT. Ponieważ moje urządzonko steruje zasilaniem do peryferii (między innymi włącza drukarkę) to po resecie wszystkie peryferia zostają wyłączone ;( Czy masz jakiś pomysł ? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Listopad 13, 2011 Zgłoszenie Share Napisano Listopad 13, 2011 [...] udevd[2157]: starting 'udev-configure-printer add /devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0/usb/lp0' udevd[2149]: 'udev-configure-printer add /devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0/usb/lp0' [2157] exit with return code 0 [...] Nie znam sie na tym, ale tu az sie prosi, zeby korzystajac z udev-configure-printer wsadzic drukarke na jakies ".../usb/lp1". Pewnie mozna to uzyskac stosujac odpowiednia regule udev. Obejrzalbym tez plik, który widac w listingu: /lib/udev/rules.d/70-printers.rules Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
coper Napisano Listopad 13, 2011 Autor Zgłoszenie Share Napisano Listopad 13, 2011 Proszę bardzo, oto zawartośćpliku /lib/udev/rules.d/70-printers.rules # Low-level USB device add trigger ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="07", ATTR{bInterfaceSubClass}=="01", TAG+="udev-configure-printer", RUN+="udev-configure-printer add %p" # usblp device add trigger (needed when usblp is already loaded) ACTION=="add", KERNEL=="lp*", TAG+="udev-configure-printer", RUN+="udev-configure-printer add %p" # Low-level USB device remove trigger ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="*:0701*:*", RUN+="udev-configure-printer remove %p" Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Listopad 13, 2011 Zgłoszenie Share Napisano Listopad 13, 2011 Wiem jaka jest zawartość Pisałem, że warto się przyjrzeć i wyciągnąć wnioski, pogooglać itp Popatrzeć na opcję "RUN+=..." Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
coper Napisano Listopad 13, 2011 Autor Zgłoszenie Share Napisano Listopad 13, 2011 (edytowane) Sorry ale nie wiem (przegrzebalem googla i nic madrego nie wymyslilem), poprosze o wyluszczenie jak krowie na miedzy. Tak grzebiac u wujka googla powoli dochodze do wniosku ze zmiana lp0 na lp1 nic nie da problemem chyba jest samo macanie portu LPT (jak sie doszukalem na porcie pojawia sie sygnal gotowosci czyli sygnal na pin 3) przez udev w czasie podlaczania drukarki po usb i generowaniu /dev/usb/lp0. Próbowalem wylaczyc port lpt z udev ale bez sukcesu. Jak ktos ma pomysl to bardzo prosze o pomoc. ps. tylko nie piszcie abym zapytal wujka googla bo od wczoraj nic innego nie robie. Edytowane Listopad 13, 2011 przez coper Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
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ę