guybrush2012 Posted May 21, 2021 Share Posted May 21, 2021 Hi, wie kann ich in Unraid udev regeln setzen? Normalerweise erstelle ich in de Linux Welt eine Datei z.B. /etc/udev/rules.d/91-usb.rules. Wie mache ich das mit Unraid? Wie mache ich es mit dem Stick? Hab nichts deutsches gefunden 😞 Quote Link to comment
saber1 Posted May 22, 2021 Share Posted May 22, 2021 (edited) Hier gab es dazu bereits eine Anfrage: https://forums.unraid.net/topic/52300-usb-hotplugging-with-udev-rules/ Und hier die deutsche Übersetzung der wohl für Dich entscheidenden Antwort: Das liegt daran, dass dieser Speicherort im RAM liegt (wie fast alles, was nicht unter /mnt liegt). Wenn Du möchtest, dass die Regeln einen Neustart überleben, müssen Kopien der Dateien auf dem USB-Stick erstellt werden und in der "go"-Datei Anweisungen hinzugefügt werden, um sie beim nächsten Systemstart an den gewünschten Ort zu kopieren. Edited May 22, 2021 by saber1 Quote Link to comment
SimonF Posted May 22, 2021 Share Posted May 22, 2021 (edited) # Copy the rules file cp /boot/rules/91-usb.rules /etc/udev/rules.d/ chmod 644 -R /etc/udev/rules.d/91-usb.rules 2> /dev/null # reload udev rules udevadm control --reload-rules Edited May 22, 2021 by SimonF 1 Quote Link to comment
ich777 Posted May 22, 2021 Share Posted May 22, 2021 Hey @SimonF! Thank you for your answer, I would recommend doing this for further Unraid versions: udevadm control --reload 2>/dev/null && udevadm trigger --action=add 2>/dev/null (This would be also handy for your USBIP plugin ) EDIT: @guybrush2012 schau dir mal die Lösung von @SimonF an, setzt aber voraus das du die Datei: "/boot/rules/91-usb.rules" anlegst und befüllst. 2 Quote Link to comment
guybrush2012 Posted May 22, 2021 Author Share Posted May 22, 2021 Vielen Dank. Da ich nicht extra eine Datei im Stick machen wollte, habe ich es anders aber im Prinzip gleich gelöst. /boot/config/go # create and reload udev-rules cat << UDEVRULES >> /etc/udev/rules.d/91-usb.rules SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{serial}=="Reader 1CF6976", SYMLINK+="Reader1", MODE="0666" SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{serial}=="Reader 5gf6976", SYMLINK+="Reader2", MODE="0666" SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{serial}=="Reader 7hs6247", SYMLINK+="Reader3", MODE="0666" UDEVRULES udevadm control --reload udevadm trigger --action=add Lg 1 Quote Link to comment
ich777 Posted May 22, 2021 Share Posted May 22, 2021 25 minutes ago, guybrush2012 said: Da ich nicht extra eine Datei im Stick machen wollte, habe ich es anders aber im Prinzip gleich gelöst. Ich wollte das gleiche oder zumindest mit "echo" vorschlagen aber @SimonF kam mir mit dem Post zuvor... Das mit der Datei wäre aber auch nicht schlecht da die "go" Datei ein wenig übersichtlicher bleiben würde, speziell wenn du mehr einfügen würdest... 1 Quote Link to comment
luckyheiko Posted May 25, 2021 Share Posted May 25, 2021 On 5/22/2021 at 11:45 AM, guybrush2012 said: # create and reload udev-rules cat << UDEVRULES >> /etc/udev/rules.d/91-usb.rules SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{serial}=="Reader 1CF6976", SYMLINK+="Reader1", MODE="0666" SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{serial}=="Reader 5gf6976", SYMLINK+="Reader2", MODE="0666" SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{serial}=="Reader 7hs6247", SYMLINK+="Reader3", MODE="0666" UDEVRULES udevadm control --reload udevadm trigger --action=add Lg Hallo erst mal danke für die Infos die haben mir erst mal sehr geholfen. Leider habe ich dennoch ein Problem, das die Daten zwar im /dev ankommen, aber ich diese im Doker nicht sehen kann Liegt das an der Verknüpfung? oderwie kann ich das ändern das im Doker (ioBroker) das USBHAUS angezeigt wird? würd mich über einen Tipp sehr freuen. Quote Link to comment
guybrush2012 Posted May 25, 2021 Author Share Posted May 25, 2021 1 hour ago, luckyheiko said: Hallo erst mal danke für die Infos die haben mir erst mal sehr geholfen. Leider habe ich dennoch ein Problem, das die Daten zwar im /dev ankommen, aber ich diese im Doker nicht sehen kann Liegt das an der Verknüpfung? oderwie kann ich das ändern das im Doker (ioBroker) das USBHAUS angezeigt wird? würd mich über einen Tipp sehr freuen. Hast du die devices in docker durchgereicht? Wenn ja versuch mal "MODE="0777" Lg Quote Link to comment
Ford Prefect Posted May 25, 2021 Share Posted May 25, 2021 1 hour ago, luckyheiko said: Leider habe ich dennoch ein Problem, das die Daten zwar im /dev ankommen, aber ich diese im Doker nicht sehen kann Liegt das an der Verknüpfung? oderwie kann ich das ändern das im Doker (ioBroker) das USBHAUS angezeigt wird? Ich würde zunächst versuchen herauszufinden, wie der unRaid Kernel das Device standardmässig nennt....das muss eben nicht "ttyUSB" sein. Evtl. nummeriert er sie ja auch, trotz Deiner UDEV Regeln anders? -> Gerät am USB abziehen -> Syslog öffnen ("log", oben rechts im UnRaid-Menü) -> Gerät wieder anstecken -> was steht im Syslog (ttyS0, ttyA???, ....) was passiert...gibt es ein ttyXXXX?? ...dann dieses Device (/dev/ttyXXX) im Docker verwenden, entweder als Eintrag wenn vorgesehen/erstellt oder einfacher, in der Docker Konfig unter "Extra-Parameters" dann "--device=/dev/ttyXXXX" Quote Link to comment
luckyheiko Posted May 25, 2021 Share Posted May 25, 2021 46 minutes ago, guybrush2012 said: Hast du die devices in docker durchgereicht? Wenn ja versuch mal "MODE="0777" Lg wie man auf dem einen Bild sieht, sehe ich im iOBroker die USB Anschlüße Privilegierte Rechte sind aktiviert (vorher habe ich gar nichts gesehen) 777 werde ich gleich mal testen. 13 minutes ago, Ford Prefect said: Ich würde zunächst versuchen herauszufinden, wie der unRaid Kernel das Device standardmässig nennt....das muss eben nicht "ttyUSB" sein. Evtl. nummeriert er sie ja auch, trotz Deiner UDEV Regeln anders? -> Gerät am USB abziehen -> Syslog öffnen ("log", oben rechts im UnRaid-Menü) -> Gerät wieder anstecken -> was steht im Syslog (ttyS0, ttyA???, ....) was passiert...gibt es ein ttyXXXX?? ...dann dieses Device (/dev/ttyXXX) im Docker verwenden, entweder als Eintrag wenn vorgesehen/erstellt oder einfacher, in der Docker Konfig unter "Extra-Parameters" dann "--device=/dev/ttyXXXX" das verstehe ich nicht ganz. ich habe im dev (unraid) die ttyUSB0 (1) stehen, wenn ich den privilegierten modus anmache sehe ich die beiden USB auch im dev (Docker) die beiden USB Ports funktioneren auch (die Smartmeter) können ausgelesen werden. habe nur das Problem, das bei einem Neustart nicht immer USB0 = USB0 ist und ich dann wieder die Einstellungen bei den Smartmetern anpassen muss. Und dieses wollte ich verhindern indem ich 'feste' Namen vergebe. Quote Link to comment
luckyheiko Posted May 25, 2021 Share Posted May 25, 2021 selbst mit 777 ist der USB nicht im Docker zu sehen. root@d:/opt/iobroker# cd /dev/ root@d:/dev# dir aer_inject hidraw0 loop4 port sdc1 tty0 tty2 tty30 tty41 tty52 tty63 vcs3 vcsu1 bsg hidraw1 loop5 ppp sdd tty1 tty20 tty31 tty42 tty53 tty7 vcs4 vcsu2 btrfs-control hpet loop6 ptmx sdd1 tty10 tty21 tty32 tty43 tty54 tty8 vcs5 vcsu3 bus hwrng loop7 ptp0 sg0 tty11 tty22 tty33 tty44 tty55 tty9 vcs6 vcsu4 core input loop-control pts sg1 tty12 tty23 tty34 tty45 tty56 ttyS0 vcsa vcsu5 cpu kmem mapper random sg2 tty13 tty24 tty35 tty46 tty57 ttyUSB0 vcsa1 vcsu6 cpu_dma_latency kmsg mcelog rtc0 sg3 tty14 tty25 tty36 tty47 tty58 ttyUSB1 vcsa2 vfio dri kvm md1 sda shm tty15 tty26 tty37 tty48 tty59 urandom vcsa3 vga_arbiter fb0 loop0 mem sda1 stderr tty16 tty27 tty38 tty49 tty6 usb vcsa4 vhci fd loop1 mqueue sdb stdin tty17 tty28 tty39 tty5 tty60 vcs vcsa5 vhost-net full loop2 net sdb1 stdout tty18 tty29 tty4 tty50 tty61 vcs1 vcsa6 vsock fuse loop3 null sdc tty tty19 tty3 tty40 tty51 tty62 vcs2 vcsu zero im Unraid dev sind beide Einträge vorhanden. Log beim abziehen sieht so aus May 25 18:36:34 d kernel: cp210x 1-11:1.0: cp210x converter detected May 25 18:36:34 d kernel: usb 1-11: cp210x converter now attached to ttyUSB0 Quote Link to comment
Ford Prefect Posted May 25, 2021 Share Posted May 25, 2021 20 minutes ago, luckyheiko said: das verstehe ich nicht ganz. ich habe im dev (unraid) die ttyUSB0 (1) stehen, wenn ich den privilegierten modus anmache sehe ich die beiden USB auch im dev (Docker) ...mit dem durchreichen per "--device=....." ist der priviligierte Modus nicht nötig....mir war nicht klar, wie der Docker an die Geräte rankommt. 20 minutes ago, luckyheiko said: die beiden USB Ports funktioneren auch (die Smartmeter) können ausgelesen werden. habe nur das Problem, das bei einem Neustart nicht immer USB0 = USB0 ist und ich dann wieder die Einstellungen bei den Smartmetern anpassen muss. Und dieses wollte ich verhindern indem ich 'feste' Namen vergebe. ....das ist ja auch i.O....die UDEV Regel sollte das lösen...klappt das denn nicht? Wenn die Namen bekannt/fix sind, kannst Du es ja mal mit der "traditionellen" Methode versuchen. Dann sollten die auch im Docker immer gleich heissen. 1 Quote Link to comment
luckyheiko Posted May 25, 2021 Share Posted May 25, 2021 <- wie man sieht 'sehr' neu in der Materie. Dachte eigentlich das ich bei Unraid nicht so viel 'C&P' machen muss (bin geborener Mausschupser) ich habe nun mal Extra Parameter: --no-healthcheck --device=/dev/ttyUSB0 --device=/dev/ttyUSB1 und das scheint zu klappen ohne die priviliegierten Rechte. wenn ich aber das Versuche --no-healthcheck --device=/dev/ttyUSBPV --device=/dev/ttyUSBHAUS root@d:/dev# dir core fd full mqueue null ptmx pts random shm stderr stdin stdout tty ttyUSBHAUS ttyUSBPV urandom zero dann habe ich nun auch Zugriff Vielen Dank für die Hilfe. Es klappt nun. 1 Quote Link to comment
Ford Prefect Posted May 25, 2021 Share Posted May 25, 2021 50 minutes ago, luckyheiko said: <- wie man sieht 'sehr' neu in der Materie. Dachte eigentlich das ich bei Unraid nicht so viel 'C&P' machen muss (bin geborener Mausschupser) Ja, über die manuelle Direktkonfig war es einfacher mit Dir zu testen. Jetzt, wo Du weisst, wie es geht...probier mal das im Konfig-Editor für Deinen Docker...sollte eigentlich auch gehen: 1 Quote Link to comment
luckyheiko Posted August 8, 2023 Share Posted August 8, 2023 muss das alte gekrutsche noch mal hochholen. mir ist ein TTL Kopf vom Smartmeter kaputt gegangen. nun der 'neue' will nicht mehr (oder vielmehr ich bekomms nicht hin) der alte gibt bei udevadm info --query=all --name=/dev/ttyUSB1 mitunter, das aus: E: ID_SERIAL=Silicon_Labs_CP2104_USB_to_UART_Bridge_Controller_0061D6A6 E: ID_SERIAL_SHORT=0061D6A6 hier dazu der eintrag in der GO (der eintrag ist aus der GO entfernt) SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{serial}=="0061C5CE", SYMLINK+="ttyUSBHAUS1", MODE="0666" der neue udevadm info --query=all --name=/dev/ttyUSB0 hat keinen Serial_Short E: ID_REVISION=0264 E: ID_SERIAL=1a86_USB_Serial E: ID_TYPE=generic nun wollte ich den neuen so Ansprechen SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{serial}=="1a86_USB_Serial", SYMLINK+="USBHAUS", MODE="0666" klappt aber irgendwie nicht. kann mir bitte jemand sagen wie ich das hinbekommen kann? root@der-ripper:~# udevadm info --query=all --name=/dev/ttyUSB0 P: /devices/pci0000:00/0000:00:01.3/0000:02:00.0/usb1/1-8/1-8:1.0/ttyUSB0/tty/ttyUSB0 N: ttyUSB0 S: serial/by-id/usb-1a86_USB_Serial-if00-port0 S: serial/by-path/pci-0000:02:00.0-usb-0:8:1.0-port0 E: DEVLINKS=/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 /dev/serial/by-path/pci-0000:02:00.0-usb-0:8:1.0-port0 E: DEVNAME=/dev/ttyUSB0 E: DEVPATH=/devices/pci0000:00/0000:00:01.3/0000:02:00.0/usb1/1-8/1-8:1.0/ttyUSB0/tty/ttyUSB0 E: ID_BUS=usb E: ID_MODEL=USB_Serial E: ID_MODEL_ENC=USB\x20Serial E: ID_MODEL_FROM_DATABASE=CH340 serial converter E: ID_MODEL_ID=7523 E: ID_PATH=pci-0000:02:00.0-usb-0:8:1.0 E: ID_PATH_TAG=pci-0000_02_00_0-usb-0_8_1_0 E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller E: ID_PCI_INTERFACE_FROM_DATABASE=XHCI E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller E: ID_REVISION=0264 E: ID_SERIAL=1a86_USB_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: USEC_INITIALIZED=22208704 kann es sein das das ding gar keine Seriennummer hat? (oder nur die 0?) root@der-ripper:~# sudo lsusb -vs 001:002 Bus 001 Device 002: ID 1a86:7523 QinHeng Electronics CH340 serial converter Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 255 Vendor Specific Class bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x1a86 QinHeng Electronics idProduct 0x7523 CH340 serial converter bcdDevice 2.64 iManufacturer 0 iProduct 2 USB Serial iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0027 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 98mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 1 bInterfaceProtocol 2 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0020 1x 32 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0020 1x 32 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 1 Device Status: 0x0000 (Bus Powered) Vielen Dank schon mal Quote Link to comment
luckyheiko Posted August 8, 2023 Share Posted August 8, 2023 hab es so erst mal ans laufen gebracht SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="USBHAUS", MODE="0666" denke aber wenn dann der zweite ausfällt, habe ich ein Problem (habe zwei 'gleiche' TTL Adapter) Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.