Posts by M-Reimer

    PS.: Kann jeder ein GIT Repository dazu pflegen, ist aber vmtl. witzlos wenn im Prinzip keine eigenen Code-Beiträge liefern kann ... :evil:

    Stimmt so nicht. Jeder kann nach belieben auf "Fork" klicken und sich seine eigene schreibbare Kopie ziehen. Und sei es nur um eigene Anpassungen zu testen und später ggf. wieder in Form eines Patches an Klaus zu mailen.

    Gerade diejenigen, die alles in einem Verzeichnis bauen und nicht paketieren könnten aktuell prinzipiell stark davon profitieren den Sourcecode einfach aus dem GIT auszuchecken:


    https://github.com/VDR4Arch/vdr


    Einziger Nachteil ist, dass der eben nicht von Klaus direkt gepflegt wird.


    Sein aktueller "Workflow" würde im Prinzip echt perfekt zu GIT passen. Statt der Patches, die ja auch immer sauber benannt und abgelegt werden müssen, einfach GIT-Commits draus machen und das dann regelmäßig via "git push" der Öffentlichkeit zur Verfügung stellen.


    Wer es wirklich als Patch braucht kann sich die Commits dann ja auch als Patch aus so gut wie jedem gängigen GIT-Webinterface runterladen.


    Für mich ist es, dank Helper-Script, nurnoch Aufwand von wenigen Sekunden um einen Patch zu committen. Allerdings bin ich halt nicht ständig am Rechner und automatisieren will ich das nicht. Ist schon besser da noch einen Blick drauf zu haben.


    Allerdings muss ich schon sagen, dass, trotz des nicht unerheblichen Aufwands für alle, die mehrere Dutzend Patches manuell patchen, mir das so allemal besser gefällt als immer fertige "Releases" die dann zig Änderungen beinhalten. Durch die kleinen Schritte kann man im Fall des Falles tatsächlich über den GIT-Mirror ein bisecting hinbekommen um den Patch zu finden der einen Bug ausgelöst hat.

    Die wesentliche Frage ist aber wie deine "PC-Seitige Software" (sei es nun Kernel oder Usermode) das mit den langen Tastendrücken macht ohne dabei einen Nachlauf zu bekommen? Den müsstest du doch im Prinzip auch dort haben. Ein Tastendruck ist also auch dort mindestens so lang wie nötig um sicher zu wissen das die Taste der Fernbedienung losgelassen ist.

    Wirklich trauen kannst du eigentlich nur Open-Source-Applikationen.


    Ja, auch da gab es in der Vergangenheit komische Fälle von "Sicherheitslücken", die zumindest theoretisch von jemandem absichtlich eingebaut worden sein könnten aber diese Lücken konnten, dank Source, zumindest gefunden und dank Versionsverwaltung auch auf eine Person und einen Zeitpunkt eingeschränkt werden.


    Das Thema fängt eigentlich schon beim Betriebssystem an. Was genau veranlasst einen typischen Microsoft Windows Benutzer all seine Daten Microsoft anzuvertrauen? Gerade mit den diversen "Telemetrie-Funktionen" in Windows 10 die man wohl nicht komplett ausgeschaltet bekommt. "Nutzt halt jeder" ist kein Argument. "Fresst Scheiße. Millionen von Fliegen können nicht irren!"


    Virenscanner sind auch ein immer wieder aufkommendes Thema. Es gab schon mehr als einmal Fälle wo Virenscanner erst das Einfallstor waren oder durch Fehler das ganze Betriebssystem unbrauchbar gemacht haben. Wer einigermaßen weiß was er tut fährt gut ganz ohne Virenscanner. Wer trotzdem einen einsetzen will, der soll doch bitte einfach Microsoft Security Essentials nutzen. Das reduziert die Anzahl an Firmen, denen man vertrauen muss, wenigstens auf eine (Microsoft).


    Ganz vermeiden kann man Closed-Source leider auch unter Linux nicht (Nvidia-Treiber wenn man Spielen will, die Spiele selbst inklusive Steam, ...) aber man kann zumindest die "potentiell nicht vertrauenswürdige Codebasis" deutlich einschränken. Von der übrig bleibenden "nicht ganz vertrauenswürdigen Codebasis" (bei mir alle Spiele) kann man dann wieder weitere Maßnahmen ergreifen. "Zocken" läuft bei mir z.B. komplett in einem eigenen Benutzeraccount auf dem nur gespielt wird. Alles andere (Shopping, E-Mail, Softwareentwicklung, ...) läuft auf meinem Haupt-Account auf dem ich möglichst vermeide Closed-Source-Programme zu starten.

    Wenn ich das richtig verstanden habe, dann verhält sich mein Projekt und das von jrie dann unterschiedlich.


    Während jrie bei jedem IR-Code ein "Press" und ein "Release" schickt warte ich ab ob weitere Codes kommen.

    Eine gedrückt gehaltene Taste erzeugt beim STM32-Projekt also mehrere Press/Release folgen während es bei mir genau ein "Press" und ein "Release" gibt.


    Wie aber löst du das mit den langen Tastendrücken? Solange du nicht gewartet hast ob ein weiterer Code kommt kannst du die Taste doch auch nicht loslassen, oder?

    Das kann man auf zwei Arten interpretieren:

    * Du hast eine echte Tastatur, die Press und Release generiert.

    * Dein Empfänger meldet sich als Tastatur an, aber deine Fernbedienung hat nur Press.

    Je nach dem hat das ganz unterschiedliche Konsequenzen.


    Die IR-Tastatur sendet tatsächlich Release-Codes.

    Worauf ich hinaus wollte, ist, dass ein grundsätzliches "Totschalten" der Wiederholung dann auch die Wiederholung einer IR-Tastatur kaputt machen würde.


    Quote

    Diese Nebenwirkungen können nur von Zusatzsoftware kompensiert werden, weil linux-input nur für echte Tastaturen mit Release gemacht ist.

    Dafür gibt es bei mir entweder stm32kbd2uinput oder den Kernel Treiber.

    Die können die Fernbedienung aber auch nicht überreden "Release-Codes" zu senden.


    Im Prinzip müsste das gleiche Problem auch mit LIRC existieren. Auch da sollte ein "Pressed" zumindest solange stehen bleiben bis es eben zum Timeout kommt.


    Bei der Tastatur kommt da nur dazu, dass eine Tastenwiederholung greifen könnte. Die will ich aber, wenn ich die Taste gedrückt halte, durchaus haben. Auch auf einer Fernbedienung, sofern diese Tastatur-Anschläge sendet.


    Wenn die Tastenwiederholung bei Bedienung mit einer Tastatur Probleme macht, dann muss die Software gefixt werden.


    Was mir besonders bei Kodi aufgefallen ist, ist, dass einige Events nur auf "Release" getriggert werden. Durch Tunen des Timeouts nach unten stört das nicht mehr, aber ich wüsste auch nicht wie ich das über clientseitige Software besser machen sollte wenn ich die Wiederholung an sich doch behalten will.


    Nur aus Spaß habe ich ab einen gewissen Punkt meinen Code für "irmp2keyboard" tatsächlich auf der IR-Tastatur getippt. Geht recht gut :P

    Woher soll das Programm wissen, ob ein Tastendruck vom User gemacht war oder vom Autorepeat erzeugt?

    Woher soll das Programm wissen, ob mehrere einzelne Tastendrücke eigentlich ein langer war?

    Das ist unmöglich.

    Wenn an der Stelle kein Repeat gewünscht ist, dann kann das Programm den ausschalten. Wenn ich in CS die W Taste gedrückt halten, dann stottert man ja auch nicht nach vorne sondern die Bewegungen sind flüssig.

    Stört aber nicht. Entweder die Tastenwiederholungen gehören da hin und das Programm geht passend damit um oder sie sind nicht gewünscht. Dann muss das Programm sich darum kümmern die abzuschalten.

    Die Erwartung, dass ein Fernbedienungsempfänger, der sich als Tastatur anmeldet, alle Probleme löst, haben zwar Viele, aber sie erfüllt sich nicht wirklich.

    Denn ein Tastaturfernbedienungsempfänger ohne Zusatzsoftware hat entweder Nachlauf oder er kommt mit langen Tastendrücken nicht klar.


    Ich war anfangs auch skeptisch aber mittlerweile halte ich es schon für möglich das ein Tastatur-IR-Empfänger vielleicht nicht alle aber schon viele Probleme elegant und dauerhaft löst. Einmal den Empfänger auf eine Fernbedienung programmieren und die zu sendenden Tasten hinterlegen und man braucht auf dem HTPC keinerlei Zusatz-Software mehr. Ich bin bei meinem sogar soweit gegangen und habe eine IR-Tastatur komplett mit angelernt. Für die schnelle YouTube-Suche ist so eine kleine Tastatur für den Schoß echt praktisch.


    Ja, es gibt Nachlauf. Den kann man aber recht gut minimieren. Ich habe in meiner "Anlernsoftware" auch gleich "Benchmarking" für die Wiederholrate drin. So kann man den Wert in der Firmware auf das mögliche Minimum tunen. Zumindest meine Erfahrung ist, dass der bleibende leichte Nachlauf kein Problem darstellt.


    Was die Tastenwiederholung angeht: Das Problem sollte eigentlich gar nicht existieren. Software kann sehr wohl erkennen ob eine Taste gedrückt gehalten wird. Ich spiele unter Linux CS:GO und wenn beim Bewegen via Tastatur die Tastaturwiederholung reinfunken würde, dann wäre das fatal. Geht also definitiv ohne. Wenn das mit VDR ein Problem ist, dann liegt das im lange ungepflegten softhddevice. Hier müsste gepatcht werden um die Tastenwiederholung abzustellen. Ich bin was das angeht aber außen vor. VDR macht bei mir schon lange nirgends mehr direkt die Ausgabe und mit Kodi existiert das Problem nicht.


    Ich würde beim Thema "Tastenwiederholung" sogar soweit gehen, dass alles außer einem "Standard-Tastaturverhalten" ein Fehler wäre. Kein Daemon oder Kernel-Modul sollte die Tastenwiederholung aktiv verhindern. Der Bug ist im Anwendungsprogramm (hier softhddevice) und sollte auch dort gefixt werden. Allerdings habe ich, wie schon erwähnt, halt auch eine echte IR-Tastatur dran und die soll sich möglichst genau so wie eine Tastatur verhalten. Inklusive Wiederholung.

    Wenn's was mit Arduino sein darf, dann evtl. auch mein Projekt:


    https://github.com/M-Reimer/irmp2keyboard


    In der Theorie könnte die Lösung sogar "Plug&Play" sein wenn deine Fernbedienung schon jemand aufgezeichnet und als Vorlage angeboten hätte:


    https://github.com/M-Reimer/ir…board/tree/master/remotes


    Auch in dem Fall muss die Konfiguration noch selber zusammengestellt werden, aber das "Anlernen" wäre entfallen.


    Ich habe aktuell Templates für zwei Programme (Kodi und VDR):

    https://github.com/M-Reimer/ir…ard/tree/master/templates


    Das Kodi-Template funktioniert 100%ig. Das VDR-Template sollte, ist aber noch ungetestet.


    Kleine Besonderheit bei meiner Lösung ist, dass die PS2 kann. Soll heißen das mein Empfänger an jedem PC, der "Boot on Keyboard" im BIOS hat (wohl einige) direkt den PC starten kann ohne das im Inneren gefummelt werden muss.


    Starten durch Einschleusen in den Power-Button ist in meinem Projekt aktuell nicht drin. Zum einen brauche ich es nicht, weil mein eigener Empfänger am PS2-Port hängt. Zum anderen hat noch keiner danach gefragt.


    Läuft an meinem HTPC vollkommen unproblematisch mit Kodi. Inklusive Booten via Fernbedienungs-Taste.

    Zwar etwas Off Topic aber kannst du evtl. die Subdomain "ftp" im HTTP Server so verdrahten, dass die FTP Verzeichnisse via HTTP erreichbar werden (inklusive Directory Listing)?

    Jeder macht mal Fehler. Auch wenn der schon ziemlich peinlich war. Hatte scheinbar wirklich keiner auf dem Radar wie das Ablaufdatum von diesem Zertifikat war. Mir privat auch schon passiert, aber dabei habe ich nur meinen privaten Photovoltaik-Logger lahmgelegt ^^


    Ob du mit einem der Forks glücklicher wirst musst du selbst wissen. Ich würde mich halt nicht allzu sehr auf deren Sicherheit verlassen.