Skocz do zawartości

[F16] Jak Zmienić Drukarkę Z Lp0 Na Lp1


coper

Rekomendowane odpowiedzi

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

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

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

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

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

[...]
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

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

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 przez coper
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ę...