Ankündigung

Einklappen
Keine Ankündigung bisher.

Edomi in Proxmox LXC container.

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Ich komme nach einem arg arbeitsreichen Jahr endlich dazu, den im Februar begonnen Server-Umzug zu fortzuführen und hoffentlich bald abzuschließen; das Meiste ist jetzt erfolgreich umgezogen, der kleine Rest wehrt sich aber noch...

    Vorher: Ubuntu-Server mit 2xUSB-Anschluss: 1-Wire Busmaster DS2490 + APC USV. 1-wire (owfs) direkt im Ubuntu installiert, NUT für die USV via Docker -> Container. Hat mit den beiden USB-Geräten über lange Zeit problemlos und verlässlich funktioniert.

    Jezt: Proxmox -> LXC und habe offenbar 2 generelle Probleme mit USB-Geräten
    LXC (mit Ubuntu-Server und durch gereichten USB-Geräten): Für 1-wire OWFS wie es bisher schon auf dem bare-metal jahrelang funktionierte. Für APC entweder direkt im LXC oder darin wieder als Docker-Container (über die Sinnhaftigkeit von Docker in LXC gibt es sicher unterschiedliche Meinungen)

    A) Ich scheitere an der Übergabe der USB-Geräte an LXC, weil man in der CONF nur feste BUS/PORT-Kombinationen übergeben kann, aber die Reihenfolge der USB-Geräte offenbar zufällig ist und nach jedem reboot variieren kann. (Oder habe ich da eine falsche Wahrnehmung?) Daher hilft z.B.
    Code:
    lxc.mount.entry: /dev/bus/usb/001/004 dev/bus/usb/001/004 none bind,optional,create=file
    wenig, wenn die USV morgen an /001/005 hängt.
    Ich habe versucht, per udev die USV auf z.B. dev/APC zu legen
    Code:
    SUBSYSTEMS=="usb", KERNEL=="hiddev*", ATTRS{idVendor}=="051d", ATTRS{idProduct}=="0002", SYMLINK+="APC", MODE="0666", GROUP="dialout"
    und so zu übergeben. Technisch scheint es zu funktionieren, weil
    Code:
    ls -al /dev/APS
    im LXC funktioniert. Aber dort scheitert
    Code:
    lsusb -D /dev/APC
    (und auch NUT), obwohl z.B.
    Code:
    lsusb -D /dev/bus/usb/001/004
    funktioniert (auch für NUT) - nur eben nach dem nächsten Reboot manchmal nicht mehr.

    Fragen zu A)
    • Bei den VMs kann man die USB-Geräte offenbar nach Vendor:Product übergeben. Geht das auch für LXC und ich habs' nur noch nicht gefunden?
    • Oder kann man (via udev?) sicherstellen, dass ein USB-Gerät eine verlässliche/feste Bus/Port-Kombination hat? Oder war der obige udev-Weg grundsätzlich richtig, aber ich habe einen Fehler gemacht?
    • Kann man NUT ein konkretes USB-Gerät festlegen, damit es nicht (erfolglos) suchen muss, sondern direkt findet? z.B. /dev/APC? In der ups.conf der "port = /dev/APC" hat nicht funktioniert, weil es wohl auch kein Device-Parameter, sondern eben ein Port-Paramter ist?
    • Gibt es andere Dienste statt NUT, die das vielleicht besser können (für APC).
    • Andere Lösung außer NUT auf dem Host zu installieren? Weil den wollte ich gerne so pur wie möglich lassen; ich denke, dass jede Änderung am Host die Stabilität potentiell gefährdet und daher auf das Nötigste begrenzt werden sollte. Wie habt Ihr das gelöst?
    Links: https://forum.proxmox.com/threads/usb-pass-through-in-lxc-container.73742/ | https://forum.proxmox.com/threads/pr...through.61988/

    B) Der 1-wire-Busmaster DS2490 scheint am Proxmox nicht zu funktionieren. In lsusb wird er mir angezeigt als
    Code:
    Port 3: Dev 3, If 0, Class=Vendor Specific Class, Driver=DS9490R, 12M
    aber schon auf dem Host liefert mir lsusb nach einiger Zeit gar nichts mehr (lsusb läuft endlos). Ein strace lsusb endet mit
    Code:
    [...]
    openat(AT_FDCWD, "/sys/bus/usb/devices/usb1/speed", O_RDONLY|O_CLOEXEC) = 7
    fcntl(7, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE)
    fstat(7, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
    read(7, "480\n", 4096) = 4
    close(7) = 0
    openat(AT_FDCWD, "/sys/bus/usb/devices/usb1/descriptors", O_RDONLY|O_CLOEXEC) = 7
    read(7,
    Nach reboot des Proxmox-Hosts ist's eine Weile wieder ok - aber natürlich keine Lösung. Die Geräte-Infos zum Gerät schien mir sehr dürftig gegenüber z.B. der Ausgabe des APC (ID_VENDOR,...)
    Code:
    udevadm info --query=all --name=/dev/bus/usb/001/003
    P: /devices/pci0000:00/0000:00:14.0/usb1/1-3
    N: bus/usb/001/003
    L: 0
    E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-3
    E: DEVNAME=/dev/bus/usb/001/003
    E: DEVTYPE=usb_device
    E: DRIVER=usb
    E: PRODUCT=4fa/2490/2
    E: TYPE=255/255/255
    E: BUSNUM=001
    E: DEVNUM=003
    E: MAJOR=189
    E: MINOR=2
    E: SUBSYSTEM=usb
    Grundsätzlich scheint ein Treiber ja da zu ein:
    Code:
    lsmod | grep ds2490
    ds2490 20480 0
    wire 45056 5 regmap_w1,w1_ds2413,max1721x_battery,ds2490,w1_the rm
    Fragen zu B)
    • Muss man in Proxmox für das USB-Geräte 1-wire-Busmaster etwas installieren, damit es sauber funktioniert?
    • Wie habt Ihr es gelöst?

    Nach 24h an dem Thema bin ich ratlos. Bin gespannt, wie Ihr es geschafft habt und wo ich mich vielleicht nur verrannt habe...
    Wenn der Server-Umzug geschafft ist, kann ich endlich auch den edomi-Umzug auf 2.02 fortsetzen und endlich mal wieder visu und LBS machen...
    Zuletzt geändert von saegefisch; 21.12.2020, 14:10.

    Kommentar


      Die apc geht auch mit apcusbd aber die schaff ich nicht an die syn weiterzureichen.
      den 1wire busmaster samt Sensoren finde ich in proxmox. Bin aber zu blöd zum weiterreichen und ka ob das im containee geht oder man eine vm braucht. Nervt echt schon das ding. Hat da wer eine brauchbare lösung? Sonst kauf/ bau ich einen knx/ 1wire adapter für die 10 sensoren an meinen Kollektor

      Kommentar


        Danke für Deine Rückmeludng.
        Mit apcupsd war ich gerade tatsächlich erfolgreich mit dem "selbst gemachten" udev-Device /dev/APC. Werte kamen damit. Dann ist NUT wohl für mich auch tot - sofern nicht jemand anderes hier doch noch erfolgreich auch NUT im LXC zum laufen brachte. Ich fand NUT prinzipiell eigentlich netter, weil universeller (falls beim nächsten Mal kein APC), aber wenn es universell im LXC nicht geht, dann lieber non-universell, aber mit Funktion...

        Wenn Dein Syno das nicht akzeptiert, mag es am Namen liegen. Ich habe seit jeher qnap und da MUSS die USV nicht apc oder sonstwie heißen, sondern exakt "qnapups". Anders wird sie nicht erkannt. Das ist bei syno vielleicht entsprechend?

        Was meinst Du mit
        Zitat von uzi10 Beitrag anzeigen
        1wire busmaster samt Sensoren finde ich in proxmox
        ? Host? Oder im LXC?

        Zum 1-wire-Busmaster bin ich weiter ratlos.
        Zuletzt geändert von saegefisch; 21.12.2020, 18:06.

        Kommentar


          Hmm naja das die syn den futro mit proxmox und anhehängter apc erkennt, muss ja snmp funktionieren oder? Da bin ich jetzt lang drsn gehangen. Bekomm paar Werte raus aber nicht alles und Syn findet keine Usv. Früher konnte man ja den Apcusbd client drauf installieren. Geht glaub ich aber nicht mehr.
          bräuchte eine funktionierende Snmp Anleitung bzw Config.
          andere Möglichkeit wäre ev. Noch die Usv mit Wake Up Lan runterzufahren.
          sag bescheid, sobald du schlauer bist.
          dache auch NUT auf Proxmox läuft und die Syn ist dann NUT Client oder umgekehrt. Aber so viel Zeit hatte ich noch nicht. Und die Netzwerkkarten sind schweineteuer

          Kommentar


            ich muss zugegen...deine Nachricht ist inhaltlich nicht ganz leicht zu verstehen... die Idee ist grundsätzlich, dass der USV-Master der entsprechende Dienst ist und meine 2 NAS und in Zukunft hoffentlich auch proxmox (damit habe ich mich noch nicht beschäftigt) die Slaves. Das hat über Jahre gut geklappt, beide NAS haben hatten Batt.Kapa, Restlaufzeit und sind auch korrekt runter gefahren, wenn die Zeit vorbei war. Ebenso konnte ich die Werte in influxDB bringen und in grafana visualisieren (Batterie%, RLZ, Status,....). Mit NUT...wenn jetzt halt apcupsd, dann sollte das wieder klappen, ich werde berichten...
            Aber wieso sollte ich die USV runterfahren? Per LAN? Wofür Netzwerkkarte? Damit kann ich Dir nicht folgen...

            Kommentar


              Update zum 1-wire-Busmaster: Nach dem Erfolg mit /dev/APC bin ich wieder zuversichtlicher und baue darauf, erst einmal udev für den Busmaster hin zu bekommen. Mir scheint, dass bei udev für den DS2490 ein anderer KERNEL nötig ist; "hiddev*" scheint falsch zu sein, weil ich den Vendor 04fa nicht finde mit
              Code:
              udevadm info --attribute-walk --name=/dev/usb/hiddev0 | grep 04fa
              udevadm info --attribute-walk --name=/dev/usb/hiddev1 | grep 04fa
              Daher greift udev für das Gerät auch nicht. Wie bekommt man heraus, was der richtige Kernel ist für udev des Busmasters?

              Kommentar


                Will das auch alles mit Edomi und Grafana visualisieren.
                Aber ich möchte auch ab einen gewissen Akkustand den Proxmox Server und ev. Vorher den Syn Fileserver schon runterfahren. Restkapazität soll dann noch für die Knx Installation da sein.
                nur wie sag ich denen Geräten wann und qiw sie runterfahren. Per Apcusbd kann man ja für den Master das sagen aber wie steuert man den Syn Slave an?

                Kommentar


                  Nach meinem Verständnis muss jeder Slave einzeln konfiguriert werden; in meinen qnap wähle ich "USV-Slave" und die Minuten, nach denen der NAS runter fahren soll nach Verlust der Spannungsversorgung. Einer fährt nach 5 min runter, der andere nach 15min. Das hat über Jahre gut funktioniert (tatsächlich auch getestet)

                  Proxmox habe ich noch nicht eingerichtet, aber es wird dort vermutlich ähnlich sein. Die Parameter beim Master wirken nach meinem Verständnis nur für den Master selber. Wie das bei einem LXC wirkt, weiß ich nicht, vermute aber es wirkt nur auf den LXC-Container, proxmox wird davon nicht herunter gefahren, wenn nicht entweder A) selber Master ist oder B) als Slave entsprechend konfiguriert wurde.

                  Kommentar


                    Zitat von saegefisch Beitrag anzeigen
                    Zum 1-wire-Busmaster bin ich weiter ratlos.
                    Beim ESXI lässt sich mein DS9490 auch nicht an eine VM durchreichen. Habe es nur stabil hinbekommen, indem ich die komplette USB PCIe Karte an die VM durchgereicht habe. Falls du das also irgendwie doch noch hinbekommst, dann wäre ich auch an einer Lösung interessiert, denn dann hätte ich wieder einen PCIe Slot in meinem Server frei.

                    Kommentar


                      Muss probieren aber ich glaube der fährt die ganze Maschine(vorher alle Container) runter, was mir auch schon so passt! Bei Synology sehe ich aber keine Parameter zum einstellen. Und wenn die als Slave fungieren soll, dann als NUT oder Snmp denke ich. und Deswegen wäre es ev. leichter mit einer Netzwerkkarte oder proxmox schickt eine Nachricht aus oder Edomi könnte auch eine aussenden(zumindest wake on, in dem Fall off Lan)..
                      Muss da auch noch probieren und spielen.

                      da war mein Thread:
                      https://knx-user-forum.de/forum/%C3%...00i-und-server

                      Oder man machts so. Man liest die SYN aus! Nur Apcusbd könnte mehr Werte auslesen!
                      Und dann schickt wie johannes2912 es meint einen Shell Befehl an die Proxmox und fährt alles samt Edomi runter!
                      Nur da habe ich das Problem, dass ich die Syn schon viel früher runterfahren mag, und dann bekomm ich keine Daten mehr!

                      Kommentar


                        Zitat von jonofe Beitrag anzeigen
                        die komplette USB PCIe Karte an die VM durchgereicht
                        Könnte man das nicht auch mit einem USB-onboard Host machen? Will ich gerne mal versuchen, wie hast Du das gemacht in der .conf?

                        Mein Tagesfazit ist leider recht niederschmetternd:
                        • Ich weiß wieder, warum ich NUT genommen habe, statt APCUPSD: Die qnaps-NASe gehen nur mit NUT...
                          --> bleibt die Frage: Wie kann man NUT ein USB-Device /dev/APC andienen, damit NUT es auch nimmt - APCUPSD kann das doch auch?!?
                          --> jemand eine Idee?
                        • Den 1-wire-Busmaster habe ich auf 100 verschieden Weisen versucht zu übergeben an LXC.
                          Code:
                          SUBSYSTEMS=="usb", ATTRS{idVendor}=="04fa", ATTRS{idProduct}=="2490", SYMLINK+="DS2490", MODE="0666", GROUP="owfs"
                          schien recht positv, weil
                          Code:
                          ls -l /dev/DS2490
                          	lrwxrwxrwx 1 root root 15 Dec 21 18:47 DS2490 -> bus/usb/001/005
                          gut in den LXC zu bringen war und auf die jeweils richtige BUS/DEV-Kombi verwiesen hat. Nur leider auch hier vermochte ich owfs via owfs.conf nicht, das Device im LXC auch anzudienen.
                          --> jemand eine Idee?
                        • Eigentlich habe ich vorhin auch noch verschwiegen.. mir ging es wie Otto damals.. "da waren sie wieder...meine 3 Probleme..." Denn neben NUT und 1-wire ist wireguard das einzige, was meinem finalen Server-Umzug noch im Wege steht und ich den alten abschalten kann. Wireguard kann wohl auch nicht in LXC...

                        Aber da kam mir dann doch noch eine wohl möglich gute Idee: Neben den ganzen LXE könnte ich ja ein "echte" VM legen und dort meine 3 "Problemzonen" gesammelt lösen: NUT, 1-Wire, wireguard. Da reicht ja was kleines mit wenig RAM und Platte. Das ist mir allemal lieber, als stattdessen extra HW. Und da soll nach Proxmox-Wiki USB super-easy durchzureichen sein:. Für APC und 1-Wire wäre das nur schön leicht mit Vendor:Product auf der host-shell:
                        Code:
                        qm set 10020 -usb0 host=051d:0002
                        qm set 10020 -usb1 host=04fa:2490
                        bzw. in der conf
                        Code:
                        nano /etc/pve/qemu-server/10020.conf
                        usb0: host=051d:0002
                        usb1: host=04fa:2490
                        und in der VM ist dann bestimmt alles einfach - wäre vielleicht auch eine Lösung für Dich, André...

                        Da mach ich doch "kurz mal rasch" meine erste VM in Proxmox - wird ja kein Thema sein, wo LXC so geschmeidig geht. Aber noch eine Pleite: Ich habe auch in 6 Versuchen es nicht geschafft, eine VM mit 20.04-Ubuntu-Server.ISO oder 20.04-minimal.ISO einzurichten, die auch problemlos mehrfach(!) startet, rebootet oder runter fährt, ohne den Node neu zu starten. Es gibt unendliche Probleme..."TASK ERROR: timeout waiting on systemd" oder "TASK ERROR: can't lock file '/var/lock/qemu-server/lock-10020.conf' - got timeout" oder "TASK ERROR: VM quit/powerdown failed" oder oder oder ARGH!, unflushable! Was'n Mist! In seitenlangen Foren lernt man, dass VM offenbar nicht einfach ist mit Proxmox: Besser UEFI-BIOS, besser mit QEMU-Agent, besser ohne Balloning und Daumen drücken - damit wurde es besser, aber nie gut...andere haben derlei Probleme auch. Andererseits schien es ja auch viele doch hinzu bekommen - vielleicht bin ich auch nur zu doof dafür...Und ich dachte 2020 wäre VM einfach...

                        Nachtrag: Ich war offenbar mit dem USB-Durchreichen nach dem Wiki zu früh/optimistisch: Die VM fahren mit den obigen Parametern recht verlässlich hoch (in Proxmox) und runter (allerdings nur sauber per SSH), das ist schon ok so und auch über mehrere Zyklen. Fügt man aber einen USB-Port mit Vendorevice hinzu, starte die VM nicht mehr.

                        Nun bin ich dankbar für Antworten auf meine LXC-Frage, aber auch, wie man brauchbar die USB-Geräte in die VM übergeben kann (Proxmox 6.3-3; alle Updates), um das eigentliche USB-Thema dann mal testen und als Lösungsalternative bewerten kann...
                        Zuletzt geändert von saegefisch; 22.12.2020, 05:45. Grund: Nachtrag

                        Kommentar


                          Zitat von jonofe Beitrag anzeigen
                          Beim ESXI lässt sich mein DS9490 auch nicht an eine VM durchreichen...
                          ...wäre ich auch an einer Lösung interessiert, denn dann hätte ich wieder einen PCIe Slot in meinem Server frei.
                          Ich weiss nicht ob das eine Loesung fuer dich darstellen wuerde, aber ich habe einen DS2490 an einem ESXi seit Jahren problemlos in Betrieb (an einer USB2 Buchse des Mainboards), dahinter haengt (noch) ein CommunityGate das damit arbeitet.

                          Kommentar


                            Das wären ja sehr gute Nachrichten, Michael. Wie bekommst du denn das USB-Gerät in die LXC übergeben? Oder hast Du den owfs auf dem host installiert?

                            Kommentar


                              Hi,

                              also ich habe mir für meine 1-Wire Sensoren eine Vm mit Ubuntu 19.10 eingerichtet und die USB Adapter dann unter Hardware fest eingebunden. Klappt bisher Problemslos bei mir.
                              Angehängte Dateien

                              Kommentar


                                skyacer Dank Dir, Jascha. Das ist schon mal gut zu wissen, dass die Strategie an sich gut funktioniert und das durchaus ein Lösungsweg ist!
                                Aber eine Frage noch dazu: Bleibt bei Dir Port/Device stabil nach jedem Reboot? Ich habe 3 USB-Geräte eingesteckt und die wechseln schon mal nach einem Reboot untereinander. Ist das bei Dir nicht so?

                                André, wenn Michaels Weg bei Dir nicht klappen sollte, funktioniert der VM-Lösung vielleicht bei Dir.

                                Warum bei mir die VMs reproduzierbar nicht mehr starten, sobald ich eine USB-Gerät in der HW aufnehme (egal, ob per Vendor/Device oder per Port/Device), versteh' ich nicht. Ich neige zu glauben, dass es ein (Treiber?)Problem schon auf Host-Ebene ist. Weil immer mal wieder nach diesen Versuchen funktioniert selbst in der Host-Shell "lsusb" nicht mal mehr und nur ein Node-Reboot zieht das wieder gerade.. Vielleicht fehlt da irgend etwas für Proxmox auf dem recht neuen NUC...?

                                Um dem auf den Grund zu gehen - vielleicht hat jemand eine Idee, wie ich ein solches Problem auf den Grund gehen kann. Mir liefert strace lsusb einen Trace, der mittendrin einfach aufhört und nicht zum Ende kommt:
                                Code:
                                [...]
                                close(7) = 0
                                openat(AT_FDCWD, "/sys/bus/usb/devices/1-3/speed", O_RDONLY|O_CLOEXEC) = 7
                                fcntl(7, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE)
                                fstat(7, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
                                read(7, "12\n", 4096) = 3
                                close(7) = 0
                                openat(AT_FDCWD, "/sys/bus/usb/devices/1-3/descriptors", O_RDONLY|O_CLOEXEC) = 7
                                read(7,
                                Wie findet man in Linux die Ursache für derlei Verhalten?

                                Nachtrag: Habe mal einen Blick ins BIOS geworfen. Dort hatte ich "USB Legacy" damals aktiviert. Nach dem deaktivieren kann ich der VM nun offenbar zumindest das APC-USB-Geräte hinzufügen und die VM startet damit auch... bei dem 1-wire-Busmaster hängt er wieder... also besser, aber nicht gelöst, gleiches Verhalten bei lsusb wie oben beschrieben... es bleibt die Frage, wie man derlei nach der Ursache erforscht...
                                Zuletzt geändert von saegefisch; 22.12.2020, 14:38. Grund: Nachtrag

                                Kommentar

                                Lädt...
                                X