Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
Debian ver 9.9, jądro 4.9.0-9-686-pae
Potrzebuję podłączyć dwa urządzenia (czytnik 1-Wire i ATMEGA) włączane przez przejściówki USB-UART. Każde z urządzeń pracuję prawidłowo, jednak po restarcie przypisanie do portów ttyUSB0 I ttyUSB1 jest losowe.
Gdzie to mogę na sztywno przypisać, aby zawsze 1-Wire było na ttyUSB0?
Pozdr.
Robert
Offline
Trzeba by naskrobać regułki udeva, żeby te adresy ogarnąć na stałe.
Rzuć okiem na to:
https://dug.net.pl/drukuj/278/oswajanie_sie_z_udeve … dla_urzadzen/
Na początek jednak radzę fruwać na Debiana 10 i przy okazji migrować z i686 na x86_64 popularnie znane jako amd64.
Odpadnie wtedy masą błędów pojawiających się w umierającej praktycznie platformie 32 bitowej x86.
Ostatnie procki x86 nie obsługujace trybu 64 bitowego były produkowane chyba z 15 lat temu,
dlatego dzisiaj są raczej eksponatami historycznymi.
Pozdro
Ostatnio edytowany przez Jacekalex (2020-02-26 14:30:51)
Offline
Ja tam mam takie zwrotki w konfiguracji udev'a:
ACTION=="add", KERNEL=="ttyUSB?", SUBSYSTEM=="tty", \ ENV{ID_VENDOR_ID}=="12d1", \ ENV{ID_MODEL_ID}=="15b6", \ ENV{ID_USB_INTERFACE_NUM}=="00", \ SYMLINK+="huawei-E3372-0" ACTION=="add", KERNEL=="ttyUSB?", SUBSYSTEM=="tty", \ ENV{ID_VENDOR_ID}=="12d1", \ ENV{ID_MODEL_ID}=="15b6", \ ENV{ID_USB_INTERFACE_NUM}=="01", \ SYMLINK+="huawei-E3372-1" ACTION=="add", KERNEL=="ttyUSB?", SUBSYSTEM=="tty", \ ENV{ID_VENDOR_ID}=="12d1", \ ENV{ID_MODEL_ID}=="15b6", \ ENV{ID_USB_INTERFACE_NUM}=="02", \ SYMLINK+="huawei-E3372-2"
I to urządzenie zawsze ma unikalne interfejsy. xD
Offline
Dzięki poczytam. Ten system chodzi na małym terminalu HP więc wolę się trzymać starszych systemów, które jeszcze na tym dają radę pracować.
Edit.
Jednak coś muszę dopytać.
/etc/udev/udev.conf u mnie jest pusty. Podobnie jak katalog rules.d. W rules.d umieściłem:
root@hp:/etc/udev/rules.d# ls -l
razem 4
-rw-r--r-- 1 root root 396 lut 26 16:48 01usb.rules
root@hp:/etc/udev/rules.d# cat 01*
ACTION=="add", KERNEL=="ttyUSB?", SUBSYSTEM=="tty", \
ENV{ID_VENDOR_ID}=="1a86", \
ENV{ID_MODEL_ID}=="7523", \
ENV{ID_USB_INTERFACE_NUM}=="00", \
SYMLINK+="HL-340 USB-Serial adapter"
ACTION=="add", KERNEL=="ttyUSB?", SUBSYSTEM=="tty", \
ENV{ID_VENDOR_ID}=="0403", \
ENV{ID_MODEL_ID}=="6001", \
ENV{ID_USB_INTERFACE_NUM}=="01", \
SYMLINK+="FT232 Serial (UART) IC"
przeładowałem UDEVA
# udevadm control --reload
i nadal urządzenia przydziela losowo :(
Ostatnio edytowany przez R0bby (2020-02-26 17:05:09)
Offline
Te linki pewnie powinny być bez spacji, a w nazwie pliku to xx-nazwa.rules. I jak robisz własne reguły to dawaj numerek tak z 99. xD
Ostatnio edytowany przez morfik (2020-02-26 17:16:16)
Offline
Zmieniłem tak jak pisałeś. Niestety bez efektu. Logi od UDEV też niczego nie pokazują. I druga sprawa. Odkąd zacząłem grzebać w UDEV, nawet gdy system powiąże właściwe urządzenie z właściwym USB, często pojawiają się błędy przy dostępie do portu error 8, error 23, które same znikają. Czary :(
Ostatnio edytowany przez R0bby (2020-02-26 19:48:33)
Offline
Feb 26 19:39:54 hp systemd[1]: Starting udev Coldplug all Devices... Feb 26 19:39:54 hp systemd[1]: Started udev Coldplug all Devices. Feb 26 19:39:54 hp systemd[1]: Starting udev Kernel Device Manager... Feb 26 19:39:54 hp systemd[1]: Started udev Kernel Device Manager. Feb 26 19:39:54 hp kernel: [ 2.145666] random: systemd-udevd: uninitialized urandom read (16 bytes read) Feb 26 19:39:54 hp kernel: [ 2.145975] random: systemd-udevd: uninitialized urandom read (16 bytes read) Feb 26 19:39:54 hp kernel: [ 2.152415] random: udevadm: uninitialized urandom read (16 bytes read) root@hp:/var/log# udevadm info --name /dev/ttyUSB0 P: /devices/pci0000:00/0000:00:13.3/usb5/5-2/5-2:1.0/ttyUSB0/tty/ttyUSB0 N: ttyUSB0 S: serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 S: serial/by-path/pci-0000:00:13.3-usb-0:2:1.0-port0 E: DEVLINKS=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 /dev/serial/by-path/pci-0000:00:13.3-usb-0:2:1.0-port0 E: DEVNAME=/dev/ttyUSB0 E: DEVPATH=/devices/pci0000:00/0000:00:13.3/usb5/5-2/5-2:1.0/ttyUSB0/tty/ttyUSB0 E: ID_BUS=usb E: ID_MM_CANDIDATE=1 E: ID_MODEL=USB2.0-Serial E: ID_MODEL_ENC=USB2.0-Serial E: ID_MODEL_FROM_DATABASE=HL-340 USB-Serial adapter E: ID_MODEL_ID=7523 E: ID_PATH=pci-0000:00:13.3-usb-0:2:1.0 E: ID_PATH_TAG=pci-0000_00_13_3-usb-0_2_1_0 E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller E: ID_PCI_INTERFACE_FROM_DATABASE=OHCI E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller E: ID_REVISION=0254 E: ID_SERIAL=1a86_USB2.0-Serial E: ID_TYPE=generic E: ID_USB_CLASS_FROM_DATABASE=Vendor Specific Class E: ID_USB_DRIVER=ch341 E: ID_USB_INTERFACES=:ff0102: E: ID_USB_INTERFACE_NUM=00 E: ID_VENDOR=1a86 E: ID_VENDOR_ENC=1a86 E: ID_VENDOR_FROM_DATABASE=QinHeng Electronics E: ID_VENDOR_ID=1a86 E: MAJOR=188 E: MINOR=0 E: SUBSYSTEM=tty E: TAGS=:systemd: E: USEC_INITIALIZED=10306679 root@hp:/var/log# udevadm test /devices/pci0000:00/0000:00:13.3/usb5/5-2/5-2:1.0/ttyUSB0/tty/ttyUSB0 calling: test version 232 This program is for debugging only, it does not run any program specified by a RUN key. It may show incorrect results, because some values may be different, or not available at a simulation run. === trie on-disk === tool version: 232 file size: 8858328 bytes header size 80 bytes strings 1854656 bytes nodes 7003592 bytes Load module index Found container virtualization none timestamp of '/etc/systemd/network' changed timestamp of '/lib/systemd/network' changed Parsed configuration file /lib/systemd/network/99-default.link Created link configuration context. timestamp of '/etc/udev/rules.d' changed Reading rules file: /lib/udev/rules.d/39-usbmuxd.rules Reading rules file: /lib/udev/rules.d/40-usb-media-players.rules Reading rules file: /lib/udev/rules.d/40-usb_modeswitch.rules Reading rules file: /lib/udev/rules.d/50-firmware.rules Reading rules file: /lib/udev/rules.d/50-udev-default.rules Reading rules file: /lib/udev/rules.d/55-Argyll.rules /lib/udev/rules.d/55-Argyll.rules:129: IMPORT found builtin 'usb_id --export %p', replacing Reading rules file: /lib/udev/rules.d/55-dm.rules Reading rules file: /lib/udev/rules.d/60-block.rules Reading rules file: /lib/udev/rules.d/60-cdrom_id.rules Reading rules file: /lib/udev/rules.d/60-crda.rules Reading rules file: /lib/udev/rules.d/60-drm.rules Reading rules file: /lib/udev/rules.d/60-evdev.rules Reading rules file: /lib/udev/rules.d/60-fuse.rules Reading rules file: /lib/udev/rules.d/60-libgphoto2-6.rules Reading rules file: /lib/udev/rules.d/60-libsane.rules Reading rules file: /lib/udev/rules.d/60-persistent-alsa.rules Reading rules file: /lib/udev/rules.d/60-persistent-input.rules Reading rules file: /lib/udev/rules.d/60-persistent-storage-dm.rules Reading rules file: /lib/udev/rules.d/60-persistent-storage-tape.rules Reading rules file: /lib/udev/rules.d/60-persistent-storage.rules Reading rules file: /lib/udev/rules.d/60-persistent-v4l.rules Reading rules file: /lib/udev/rules.d/60-serial.rules Reading rules file: /lib/udev/rules.d/61-gnome-settings-daemon-rfkill.rules Reading rules file: /lib/udev/rules.d/64-btrfs.rules Reading rules file: /lib/udev/rules.d/64-xorg-xkb.rules Reading rules file: /lib/udev/rules.d/65-libwacom.rules Reading rules file: /lib/udev/rules.d/69-cd-sensors.rules Reading rules file: /lib/udev/rules.d/69-libmtp.rules Reading rules file: /lib/udev/rules.d/69-wacom.rules Reading rules file: /lib/udev/rules.d/70-debian-uaccess.rules Reading rules file: /lib/udev/rules.d/70-mouse.rules Reading rules file: /lib/udev/rules.d/70-power-switch.rules Reading rules file: /lib/udev/rules.d/70-printers.rules Reading rules file: /lib/udev/rules.d/70-touchpad.rules Reading rules file: /lib/udev/rules.d/70-uaccess.rules Reading rules file: /lib/udev/rules.d/71-seat.rules Reading rules file: /lib/udev/rules.d/73-seat-late.rules Reading rules file: /lib/udev/rules.d/73-special-net-names.rules Reading rules file: /lib/udev/rules.d/73-usb-net-by-mac.rules Reading rules file: /lib/udev/rules.d/75-net-description.rules Reading rules file: /lib/udev/rules.d/75-probe_mtd.rules Reading rules file: /lib/udev/rules.d/77-mm-cinterion-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-dell-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-ericsson-mbm.rules Reading rules file: /lib/udev/rules.d/77-mm-fibocom-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-haier-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-huawei-net-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-longcheer-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-mtk-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-nokia-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-pcmcia-device-blacklist.rules Reading rules file: /lib/udev/rules.d/77-mm-qdl-device-blacklist.rules Reading rules file: /lib/udev/rules.d/77-mm-sierra.rules Reading rules file: /lib/udev/rules.d/77-mm-simtech-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-telit-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-ublox-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-usb-device-blacklist.rules Reading rules file: /lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules Reading rules file: /lib/udev/rules.d/77-mm-x22x-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-zte-port-types.rules Reading rules file: /lib/udev/rules.d/78-sound-card.rules Reading rules file: /lib/udev/rules.d/80-debian-compat.rules Reading rules file: /lib/udev/rules.d/80-drivers.rules Reading rules file: /lib/udev/rules.d/80-ifupdown.rules Reading rules file: /lib/udev/rules.d/80-iio-sensor-proxy.rules Reading rules file: /lib/udev/rules.d/80-libinput-device-groups.rules Reading rules file: /lib/udev/rules.d/80-mm-candidate.rules Reading rules file: /lib/udev/rules.d/80-net-setup-link.rules Reading rules file: /lib/udev/rules.d/80-udisks2.rules Reading rules file: /lib/udev/rules.d/84-nm-drivers.rules Reading rules file: /lib/udev/rules.d/85-hdparm.rules Reading rules file: /lib/udev/rules.d/85-hwclock.rules Reading rules file: /lib/udev/rules.d/85-nm-unmanaged.rules Reading rules file: /lib/udev/rules.d/85-regulatory.rules Reading rules file: /lib/udev/rules.d/90-alsa-restore.rules Reading rules file: /lib/udev/rules.d/90-console-setup.rules Reading rules file: /lib/udev/rules.d/90-libgpod.rules Reading rules file: /lib/udev/rules.d/90-libinput-model-quirks.rules Reading rules file: /lib/udev/rules.d/90-pulseaudio.rules Reading rules file: /lib/udev/rules.d/95-cd-devices.rules Reading rules file: /lib/udev/rules.d/95-upower-csr.rules Reading rules file: /lib/udev/rules.d/95-upower-hid.rules Reading rules file: /lib/udev/rules.d/95-upower-wup.rules Reading rules file: /lib/udev/rules.d/97-hid2hci.rules Reading rules file: /lib/udev/rules.d/99-systemd.rules Reading rules file: /etc/udev/rules.d/99-usb.rules rules contain 393216 bytes tokens (32768 * 12 bytes), 35595 bytes strings 30908 strings (250198 bytes), 27074 de-duplicated (218438 bytes), 3835 trie nodes used PROGRAM 'usb_modeswitch --symlink-name /devices/pci0000:00/0000:00:13.3/usb5/5-2/5-2:1.0/ttyUSB0/tty/ttyUSB0 1a86 7523 ' /lib/udev/rules.d/40-usb_modeswitch.rules:10 starting 'usb_modeswitch --symlink-name /devices/pci0000:00/0000:00:13.3/usb5/5-2/5-2:1.0/ttyUSB0/tty/ttyUSB0 1a86 7523 ' Process 'usb_modeswitch --symlink-name /devices/pci0000:00/0000:00:13.3/usb5/5-2/5-2:1.0/ttyUSB0/tty/ttyUSB0 1a86 7523 ' succeeded. GROUP 20 /lib/udev/rules.d/50-udev-default.rules:26 IMPORT builtin 'hwdb' /lib/udev/rules.d/60-serial.rules:7 IMPORT builtin 'usb_id' /lib/udev/rules.d/60-serial.rules:8 /sys/devices/pci0000:00/0000:00:13.3/usb5/5-2/5-2:1.0: if_class 255 protocol 0 IMPORT builtin 'hwdb' /lib/udev/rules.d/60-serial.rules:8 IMPORT builtin 'path_id' /lib/udev/rules.d/60-serial.rules:15 LINK 'serial/by-path/pci-0000:00:13.3-usb-0:2:1.0-port0' /lib/udev/rules.d/60-serial.rules:17 IMPORT builtin skip 'usb_id' /lib/udev/rules.d/60-serial.rules:19 LINK 'serial/by-id/usb-1a86_USB2.0-Serial-if00-port0' /lib/udev/rules.d/60-serial.rules:24 handling device node '/dev/ttyUSB0', devnum=c188:0, mode=0660, uid=0, gid=20 preserve permissions /dev/ttyUSB0, 020660, uid=0, gid=20 preserve already existing symlink '/dev/char/188:0' to '../ttyUSB0' found 'c188:0' claiming '/run/udev/links/\x2fserial\x2fby-id\x2fusb-1a86_USB2.0-Serial-if00-port0' creating link '/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0' to '/dev/ttyUSB0' preserve already existing symlink '/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0' to '../../ttyUSB0' found 'c188:0' claiming '/run/udev/links/\x2fserial\x2fby-path\x2fpci-0000:00:13.3-usb-0:2:1.0-port0' creating link '/dev/serial/by-path/pci-0000:00:13.3-usb-0:2:1.0-port0' to '/dev/ttyUSB0' preserve already existing symlink '/dev/serial/by-path/pci-0000:00:13.3-usb-0:2:1.0-port0' to '../../ttyUSB0' created db file '/run/udev/data/c188:0' for '/devices/pci0000:00/0000:00:13.3/usb5/5-2/5-2:1.0/ttyUSB0/tty/ttyUSB0' .ID_PORT=0 ACTION=add DEVLINKS=/dev/serial/by-path/pci-0000:00:13.3-usb-0:2:1.0-port0 /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 DEVNAME=/dev/ttyUSB0 DEVPATH=/devices/pci0000:00/0000:00:13.3/usb5/5-2/5-2:1.0/ttyUSB0/tty/ttyUSB0 ID_BUS=usb ID_MM_CANDIDATE=1 ID_MODEL=USB2.0-Serial ID_MODEL_ENC=USB2.0-Serial ID_MODEL_FROM_DATABASE=HL-340 USB-Serial adapter ID_MODEL_ID=7523 ID_PATH=pci-0000:00:13.3-usb-0:2:1.0 ID_PATH_TAG=pci-0000_00_13_3-usb-0_2_1_0 ID_PCI_CLASS_FROM_DATABASE=Serial bus controller ID_PCI_INTERFACE_FROM_DATABASE=OHCI ID_PCI_SUBCLASS_FROM_DATABASE=USB controller ID_REVISION=0254 ID_SERIAL=1a86_USB2.0-Serial ID_TYPE=generic ID_USB_CLASS_FROM_DATABASE=Vendor Specific Class ID_USB_DRIVER=ch341 ID_USB_INTERFACES=:ff0102: ID_USB_INTERFACE_NUM=00 ID_VENDOR=1a86 ID_VENDOR_ENC=1a86 ID_VENDOR_FROM_DATABASE=QinHeng Electronics ID_VENDOR_ID=1a86 MAJOR=188 MINOR=0 SUBSYSTEM=tty TAGS=:systemd: USEC_INITIALIZED=10306679 Unload module index Unloaded link configuration context.
root@hp:/var/log# lsusb | grep 340 Bus 005 Device 002: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Ostatnio edytowany przez R0bby (2020-02-27 07:49:39)
Offline
Powinno być FT232=>USB0, CH340=>USB1. A jest na odwrót. Dodatkowo w /dev/ powstaje symlink FT232->USB1 ale do CH340 już symlinka nie ma.
Nie zawracałbym takimi pierdołami sobie głowy ale te urządzenia sterują mi nagrzewaniem ciepłej wody i po jakimś przypadkowym restarcie znowu się rozsypie, a nie zawsze jestem w domu żeby to skorygować.
Krótko mówiąc moje małżeństwo wisi na włosku ;)
Offline
Krótko mówiąc moje małżeństwo wisi na włosku ;)
Jazda z Debianem i konwerterami USB-serial, żeby wodę w bojlerze zagrzać?
Ja używam termostatu i wyłącznika czasowego, w związku z tym rozwód mi raczej nie grozi... xD
Ostatnio edytowany przez Jacekalex (2020-02-27 18:52:34)
Offline
Serwer robi kilka innych rzeczy. A skoro może przy okazji zarządzać kilkoma domowymi urządzeniami to dlaczego miałbym tego nie wykorzystać. Przez jakiś czas używałem do tego celu AVR i ESP8266 ale i tak Debian uczestniczył w procesie sterowania przy agregacji danych i jako interfejs WWW, więc próbuję uprościć system. Starsze komputery miały port drukarkowy który wspaniale się nadawał do sterownia urządzeniami ale współczesne już go nie posiadają.
Offline
Rozwiązałem problem. Prowizorycznie. Usunąłem wpisy w /etc/udev, po starcie usuwam załadowane moduły jądra i następie je ładuje w oczekiwanej kolejności. Nie lubię takich rozwiązań ale nic sensowniejszego nie przychodzi mi do głowy. Oczywiście rozwiązanie działa, dopóki urządzenia są na różnych czipsetach.
Edit - może komuś się przyda. Zmieniłem strukturę wpisów i teraz tworzą się oba wymagane symlinki w /dev:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", KERNEL=="ttyUSB*", SYMLINK+="CH-341" SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", KERNEL=="ttyUSB*", SYMLINK+="FT-232"
Ostatnio edytowany przez R0bby (2020-03-04 17:34:35)
Offline