Posts by fred0815

    tldr:

    Cloud-Speicher, Medienserver, Passwort-Manager, VPN, Werbeblocker, Smarthome-Kameras

    Nextcloud, Jellyfin, Vaultwarden, WireGuard, Pi-hole, Home Assistant + lokale Aufzeichnung

    Wobei man dazu sagen sollte, dass man die offenen Ports auch erreichen können muss und zumindest für Nextcloud und Jellyfin eine gute Uploadgeschwindigkeit braucht, sonst macht das keinen Spaß.

    P.S. WireGuard verschleiert die Herkunft ja nicht wirklich, der Vergleich hinkt auch etwas.

    Automatisch übersetzt:

    Der Sommer ist jetzt auf seinem Höhepunkt (in der nördlichen Hemisphäre), aber während die meisten von uns genießen, sich in der Sonne zu sonnen, ist er mit einem inhärenten Risiko verbunden. Die Zahl der Diagnosen von Basalzellkarzinomen, dem häufigsten Hautkrebs, steigt weiter an, während die Fälle von Melanom-Hautkrebs - die gefährlichsten von allen - Rekordhöhen erreichen. "Laut der Skin Cancer Foundation ist Hautkrebs der häufigste Krebs weltweit", sagt die Wissenschaftlerin Tess Watt. "Trotzdem, wenn Melanom in einem frühen Stadium entdeckt und behandelt wird, beträgt seine Fünf-Jahres-Überlebensrate 99%."

    Ein Foto wird von einer Hautläsion mit einer Schnittstelle gemacht, die so benutzerfreundlich wie möglich gestaltet ist.
    Das System ist eine Demonstration von TinyML – Machine Learning, das auf weniger betriebenen, nicht angeschlossenen Geräten läuft

    In diesem Sinne hat Tess, ein Doktorand an der School of Mathematical and Computer Sciences an der Heriot-Watt University in Edinburgh, ein Früherkennungssystem geschaffen. Sie hat eine Reihe von KI-Tools entwickelt, die Hautkrebs und andere Hauterkrankungen mit einem Raspberry Pi 3 Model B-Computer diagnostizieren, der an einer kleinen Kamera befestigt ist. Ziel war es, ein kostengünstiges Gerät zu produzieren, das von Patienten verwendet werden kann, die in abgelegenen Gebieten der Welt leben. Es ermöglicht die Überwachung von Hauterkrankungen von zu Hause aus, ohne dass eine Internetverbindung erforderlich ist.

    Eine Diagnose stellen

    Das System von Tess verwendet maschinelles Lernen, um Bilder von Hautläsionen zu analysieren. "Maschinelles Lernen hat die meisten Herausforderungen bei der Klassifizierung traditioneller Methoden der Hautläsionsklassifizierung überwunden, indem es viele Bilder auf einmal analysiert hat, genauer als menschliche Dermatologen", sagt sie. "Maschinelles Lernen kann dann Muster identifizieren, die das menschliche Auge nicht genauer und objektiver sein kann und kann."

    Tess hat das System in der fortschrittlichen Gesundheits- und Pflegetechnologie-Suite von Heriot-Watt demonstriert

    Um eine Hautbeschwerde zu beurteilen, werden Patienten, die mit einem der Geräte von Tess ausgestattet sind, gebeten, ein Foto des betroffenen Bereichs zu machen. Da die Hautläsionsbilddatensätze auf dem Raspberry Pi-Computer gespeichert sind, ist ihr Programm in der Lage, das Foto in Echtzeit zu analysieren, bevor es mit Tausenden von im Datensatz gespeicherten Bildern verglichen wird. Die Idee ist, dass die Informationen mit einem Hausarzt und einer Entscheidung über eine mögliche Behandlung geteilt werden. "Die derzeitige Gesetzgebung [in Großbritannien] verlangt von einem Arzt, die ausgegebene Diagnose zu validieren", sagt Tess.

    Globale Wirkung

    Tess sieht vor, dass LesionIQ im ländlichen Schottland verwendet wird, und sie ist in Gesprächen mit NHS Scotland, um ethische Zustimmung zu erhalten. Aber es könnte auch ein wichtiges Werkzeug für entlegene Gemeinden auf der ganzen Welt werden, insbesondere wenn Raspberry Pi-Geräte so weit verbreitet und erschwinglich sind. "Ich werde oft gefragt, warum ich mich entschieden habe, mein KI-Modell nicht auf einem Smartphone einzusetzen, und das liegt daran, dass Smartphones teuer sind und in Entwicklungsländern, in denen der Zugang zum Internet ebenfalls eingeschränkt ist, nicht weit verbreitet sind", erklärt sie.

    Tess hat mit Wissenschaftlern an der London South Bank University, der Edinburgh Napier University und der Foundation for Research and Technology – Hellas in Greece zusammengearbeitet

    Das Gerät sieht sicherlich vielversprechend aus. Derzeit erweist es sich als 85% genau bei der Diagnose von Hautkrebs und Tess sagt, dass dies verbessert werden kann. "Ich arbeite mit der kleinen Menge an öffentlich verfügbaren Hautläsionsdatensätzen und arbeite daran, bald neue Datensätze zu erstellen und darauf zuzugreifen, die größer und vielfältiger sind", verrät sie. Das erweist sich jedoch als die größte Herausforderung.

    "Es gibt einen Mangel an verschiedenen Hautläsionsdaten und die Landschaft der klinischen KI steckt noch in den Kinderschuhen", fügt Tess hinzu. "Meine Zukunftspläne sind die Erstellung / Beschaffung verschiedener Daten und die Durchführung einer Studie, um dieses Gerät in einer realen Umgebung zu testen." Sie hofft, dass das Gerät auf dem Weg zur Nutzung durch reale Patienten vor 2030 gut sein wird.

    Auf deutsch (automatisch übersetzt):

    Erstellen Sie Ihr eigenes Cyberdeck

    Es scheint, als ob wir in diesem Jahr nicht in der Lage waren, von Cyberdecks wegzukommen, wobei sich die Maker-Community in diese hausgemachten Maschinen wieder verliebt. An diesem Maker Monday dachten wir, es ist höchste Zeit, dass wir ein Tutorial teilen, das Ihnen hilft, Ihre eigenen zu bauen.

    Was ist ein Cyberdeck? Ist es ein tragbarer Computer, ein Taschencomputer, ein Startmonitor / ein Zentrum für Raketen oder Ballons in großer Höhe oder ein Wissensspeicher für die Zombie-Apokalypse? Die Antwort ist all das oben genannte - und alles andere, was Sie sich vorstellen können. Es ist etwas, das Sie erstellen, um ein Bedürfnis zu lösen, das ein herkömmliches Tablet oder Computer nicht erfüllen kann, oder etwas Persönliches nur für die Hölle zu machen.

    Das komplette Cyberdeck bereit für das netzunabhängige Leben

    Planung/Design-Gedanken

    Es gibt vier Hauptteile zu einem Cyberdeck: Gehirne, Peripheriegeräte, Stromversorgung und Gehäuse. Wir werden uns jeden der Reihe nach ansehen.

    Gehirne

    Zu den Gehirnen eines Cyberdecks gehören seine Verarbeitungseinheit und Langzeitspeicherung. Dinge, über die Sie bei der Auswahl der zentralen Verarbeitungseinheit (CPU) nachdenken sollten, sind Stromverbrauch, Rechenleistung und Größe. Ein Single-Board-Computer (SBC) ist dafür ideal, da sie weniger Leistung verbrauchen als eine herkömmliche PC-CPU. Das Raspberry Pi-Line-up enthält einige gute Optionen für ein Cyberdeck, was es zu einer beliebten Wahl für diese Builds macht. Für den Speicher hat der Raspberry Pi einige Optionen: SD-Karte, USB-Flash-Laufwerk, USB-Festplatte, USB-SSD oder M.2 NVMe-Laufwerk mit einem M.2 HAT, wenn Sie einen Raspberry Pi 5 verwenden.

    Peripheriegeräte

    Peripheriegeräte sind, wie Sie mit dem Cyberdeck interagieren. Sie können Standardelemente wie Tastatur, Maus, Display, Lautsprecher, Kamera usw. sein, oder sie können spezifischer sein, wie sprachgesteuerte Komponenten, Joysticks, ein Encoder für ein Scrollrad, Trigger-Tasten und so weiter. Ein kleiner USB-Hub ist nützlich, wenn Sie viele USB-Geräte anschließen. Je nachdem, wie Sie die SBC-Ports aussetzen, benötigen Sie möglicherweise Panel-Mount-Porterweiterungen.

    Macht

    Das Netzteil muss groß genug sein, um die SBC, die Peripheriegeräte und das Zubehör mit Strom zu versorgen. Um die Größe des benötigten Netzteils zu berechnen, addieren Sie den Leistungsbedarf jedes Geräts. Diese Informationen finden Sie in den Datenblättern oder in den Benutzerhandbüchern.

    Zum Beispiel benötigt ein Raspberry Pi 5 25W; das ist 5V bei 5A, wenn Sie die USB-Anschlüsse mit voller Leistung verwenden möchten (dies ist das Worst-Case-Szenario, bei dem die USB-Anschlüsse vollständig geladen sind). Bei voller Helligkeit zieht Raspberry Pi Touch Display 2 ca. 3W. Daher benötigen Sie eine Stromversorgung von mindestens 28W. Das entspricht ca. 5,6A. Dies wurde mit der Formel I = P/V berechnet, wobei I = Strom (A), P = Leistung (W) und V = Spannung (V); also 5,6A = 28W/5V.

    Zu den Optionen für die Stromversorgung gehören ein Strom- oder USV-HAT, ein DC-zu-DC-Wandlerbrett, das mit Batterien versorgt wird, ein Hilfsnetzteil oder eine Powerbank. Ein Cyberdeck muss nicht mit Batterien betrieben werden.

    Einige Arten von Batterien, insbesondere LiPos und verwandte Typen, können Ihr Leben aus den falschen Gründen interessant machen - behandeln Sie sie sorgfältig, stellen Sie sicher, dass sie korrekt aufgeladen sind, und stellen Sie sicher, dass sie nicht überentlassen werden. Es ist eine gute Idee, eine Sicherung so nah wie möglich an der Batterie zu befestigen und die Zellspannungen der Batterie bei Gebrauch zu überwachen.

    Das Stromsystem, die RTC-Batterie und die Platte zur Montage eines Raspberry Pi werden zuerst auf die Unterseite aufgenommen

    Fall

    Der Fall definiert das Cyberdeck. Frühere Builds haben alte Taschencomputer (einschließlich ihrer ursprünglichen Tastaturen), Aktentaschen, Minzdosen, Holzkisten und Reprop-Repliken verwendet. Ein guter Startkoffer ist ein Hardcase im Pelican-Stil. Diese sind in einer Vielzahl von Größen und Preispunkten weit verbreitet. Sie sorgen für ein robustes Gehäuse, haben normalerweise einen Tragegriff und sind wetterfest.

    Dieses bescheidene Fall im Pelican-Stil kann verwendet werden, um das Cyberdeck Ihrer Träume zu bauen

    Bauwesen

    Ein Gehäuse kann mit schnellen Prototyping-Methoden wie 3D-Druck oder Laserschneiden oder mit Materialien wie Kunststoffschaumplatten, Kunststoffplatten und sogar Karton gebaut werden. Das Gehäuse muss alle Ihre Teile passen - und vergessen Sie nicht die Verkabelung.

    Der Aufbau Ihres Cyberdecks hängt davon ab, auf welche Tools und Services Sie zugreifen können. 3D-Druck und Laserschneiden eignen sich gut für den Aufbau Ihres Cyberdecks, sodass Sie ein individuelles Gehäuse entwerfen können. Mini 10mm extrudiertes Aluminiumprofil bietet eine hervorragende Unterstützung für das Chassis und ist bei Verwendung mit 3D-gedruckten / Laser-Cut-Panels ein starkes, vielseitiges Gehäuse. 3D-Druckerstifte, formbare Kunststoffe, Kunststoffplatten und Sperrholz können verwendet werden, um Platten, Stützen und andere Elemente zu bilden. Einige Unternehmen bieten 3D-Druck- und Laserschneidservices an, wenn Sie nicht selbst auf die Ausrüstung zugreifen können.

    Extras

    Ein wichtiger Teil jedes Cyberdecks sind die Extras. Sie beenden und definieren den Build. Denken Sie an Schalter, LEDs, softwaredefinierte Radios (SDRs), zugängliche I/O-Pins zum Hacken, I2C-Ports zum Hinzufügen von Sensoren und sekundären Displays; oder ein Raspberry Pi Pico, der als zweiter Prozessor fungiert, um diese Schalter und Sensoren zu überwachen, diese sekundäre Anzeige zu steuern, diese LEDs zu steuern ... Plus alles andere, was Sie sich vorstellen können.

    Ihre Teile sammeln

    Für diese Anleitung haben wir folgende Teile ausgewählt, die alle von der Stange erhältlich sind. Einige Lötungen sind erforderlich (oder Sie könnten stattdessen Wago-Blöcke verwenden).

    Raspberry Pi 5 : Dieses Modell des Raspberry Pi ist perfekt für ein Cyberdeck, da es leistungsstark genug für alltägliche Aufgaben ist, andere Raspberry Pi-Projekte steuert und programmiert. Es hat auch gute Konnektivitätsoptionen für Projekte, einschließlich GPIO-Pins.

    Raspberry Pi Flash Drive (128GB:( Diese Flash-Laufwerke sind schneller als eine microSD-Karte, robuster, haben eine größere physikalische Größe (also sind weniger wahrscheinlich, verloren zu gehen) und sind einfach auszutauschen - vor allem, wenn Sie ein anderes Betriebssystem wie ein Media Center oder ein Retro-Gaming-Betriebssystem verwenden möchten.

    Raspberry Pi Touch Display 2 (7′′:( Dieses Display hat eine Auflösung von 1280 × 720 Pixel (Landschaft). Der Touchscreen macht in den meisten Fällen eine Maus überflüssig.

    Rii RK302 Bluetooth Keyboard : Diese Tastatur wurde ausgewählt, weil sie in das Gehäuse passt, das in diesem Tutorial verwendet wird, und hat ein flaches Profil. Da es so konzipiert ist, dass es bei Gebrauch auf einem Tisch sitzt, ist sein Chassis flexibel und muss im Fall unterstützt werden. Es hat den Vorteil, über Bluetooth zu verbinden.

    Die Tastatur kann alles sein, was Sie wollen, solange sie dem Raum entspricht

    Pimoroni Picade Max USB Audio : Dies ist eine kompakte USB-C-Soundkarte mit einem 3W Stereo-Verstärker - eine Ein-Kabel / PCB-Lösung, die den zusätzlichen Bonus hat, den 40-Pin-GPIO-Header frei zu halten. Der Picade Max Encoder wurde auch für Volumensteuerungszwecke integriert.

    Energie : Die Verwendung einer Powerbank vereinfacht Arrangements und ist eine sicherere Option als eine LiPo-Batterie. Dieser Build verwendet jedoch eine LiPo-Batterie mit einer Inline-Sicherung und einem DC-zu-DC-Wandler, der 5V bei 5A über USB-C PD ausgibt. Ein Raspberry Pi 27W USB-C-Netzteil kann verwendet werden, um das Cyberdeck vom Netz aus zu betreiben; Um die Dinge einfach zu halten, wird dieser Build ein externes Ladegerät zum Aufladen des Akkus verwenden, und der Akku wird während des Ladens getrennt.

    Pelican-ähnliches Gehäuse : Dies ist ein CASOMAN 11, [Anzeige]5-Zoll-Wasserkasten. Die Marke Pelican ist bekannt für ihre gut gemachten Koffer und hat sich zum gebräuchlichen Namen für robuste, wasserdichte Boxen (wie Hoover für Staubsauger) geworden.

    Raspberry Pi RTC-Akku : Das Hinzufügen des Akkus zu Raspberry Pi 5 aktiviert den eingebauten RTC, der die Zeit hält, wenn Ihr Cyberdeck netzunabhängig ist. Sie müssen die folgende Zeile zu /boot/firmware/config.txt hinzufügen, damit der Akku geladen werden kann:

    Code
        dtparam=rtc_bbat_vchg=3000000

    USB-Leads : Für die interne Weiterleitung mögen wir die flachen, anpassbaren, bandartigen Kabel, die von Adafruit und The Pi Hut erhältlich sind. Sie können die Enden verwechseln: zum Beispiel einen mikro-HDMI-Schiff in einem Winkel zu einem HDMI-Stecker in voller Größe. Für diesen Build verwenden wir Standard-USB-Kabel und ein 500mm-Display-Flaschenkabel, um den Bildschirm anzuschließen.

    Aufbau Ihres Cyberdecks

    Sammeln Sie die Teile für den Build, brennen Sie Ihr ausgewähltes Betriebssystem auf Ihr Speichergerät (Sie können Raspberry Pi Imager verwenden, um dies zu tun), dann verbinden Sie die Teile miteinander und testen Sie, dass alles funktioniert.

    CAD (in diesem Fall kartongestützte Konstruktion) hilft bei der Prototypisierung des Layouts, beim Sehen, wie die Dinge zusammenpassen und welchen Platz für die Verkabelung benötigt wird.

    Das Cyberdeck mit dem Raspberry Pi und dem Akku aufschichten

    Als nächstes wandeln wir die von Schritt 1 gelernten Erkenntnisse in (traditionelle) CAD-Modelle um. Wir haben die Maker-Version von SOLIDWORKS verwendet, aber andere beliebte Software umfasst Fusion360 und die Open Source FreeCAD.

    Drucken, laserschneiden und bauen Sie Ihre Stützen wie geplant, bereit für die Installation. Sie werden feststellen, dass Sie Ihre Designs anpassen müssen, wenn Sie Ihr Cyberdeck bauen.

    Wenn Sie die Lautsprecher und Audiosysteme auf der Innenseite montieren, müssen Sie keine Löcher bohren

    Beginnen Sie mit dem Deckel und überprüfen Sie, ob die Teile passen. Dann gehen Sie weiter zu den Lautsprechern und dem Picade Max USB Audio; installieren Sie den Verstärker hinter dem Display, oben und den Lautsprechern auf beiden Seiten des Displays hinter den Gittern auf der Frontplatte. Der Lautstärkeregler sitzt hinter der oberen Platte, zentral zum linken Lautsprecher. Der Lautstärkeregler ragt durch die Anzeigeplatte. Als nächstes passen Sie das Display mit doppelseitigem Klebeband oder Schaumstoff in die obere Platte ein, um das Display an Ort und Stelle zu halten, und passen Sie dann die hinteren Klammern an.

    Kleben Sie die Stützen mit einer Heißklebepistole oder einem doppelseitigen Schaumstoffband an Ort und Stelle, nachdem Sie die Passform ein zweites Mal überprüft haben. Schließen Sie die Lautsprecherkabel an die Lautsprecheranschlüsse an, schließen Sie dann das 500mm-Display-Flaschenkabel und die Stromkabel an, die Sie benötigen, um das Stromkabel des Displays zu erweitern. Das Display-Band ist mit einem Stoffband bedeckt, das für den elektrischen Kabelbaum verwendet wird; dies unterstützt das Band und fügt es in den Build ein, passend zu den USB-Kabeln. Ein USB-A-Steckerkabel mit blanken Drähten wird mit dem Stromkabel des Displays verlötet; Verwenden Sie den Schrumpfschlauch, um die Verbindungen abzudecken. Mit einem USB-Kabel werden die Netzpins am 40-poligen GPIO-Header für HATs und Projekte frei. Selbstschneidende Schrauben eignen sich gut zur Befestigung des Displays an den Stützen; andere Optionen sind das Überkleben von Muttern oder die Verwendung von wärmesetzenden Bossen.

    Überprüfen Sie, ob Ihre Stützen und Ihre Platte in die untere Hälfte des Gehäuses passen. Klebe die Stützen an Ort und Stelle. Verbinden Sie Ihren Raspberry Pi mit dem Display, um sicherzustellen, dass er startet und dass das Display funktioniert. Sie könnten einen Rastschalter einsetzen, um die Stromversorgung auf das Display auszuschalten (es müsste mit den Stromeingängen des Displays und der Stromquelle in Reihe sein). Sobald Sie mit der Position des Raspberry Pi zufrieden sind und wissen, dass sowohl das Display als auch die Lautsprecher funktionieren, fixieren Sie Ihren Raspberry Pi an Ort und Stelle. Sie können Kleber oder Klettband verwenden, um Ihre Teile an Ort und Stelle zu halten. Wir haben eine Montageplatte für den Raspberry Pi und den Batteriehalter entwickelt.

    Als nächstes passen Sie die Tastaturgriffe an die Tastaturplatte an. Beheben Sie die Platte nicht, da Sie auf den Raspberry Pi zugreifen können, um ihn nach oben / unten zu betreiben und die Stromquelle zu ändern.

    Eine Platte bedeckt die Elektronik im Inneren, so dass Sie leicht eine Tastatur darauf passen können

    Von hier aus können Sie anpassen. Es gibt ein paar Möglichkeiten, Ihren Build anzupassen. Sie könnten einen Raspberry Pi Pico als zweiten Prozessor verwenden, um ein zusätzliches, kleineres Display zu steuern oder einige LEDs zu fahren - weil Sie nie zu viele LEDs in einem Build haben können. Oder Sie könnten Sensoren hinzufügen, um den Stromverbrauch zu überwachen und Ihren Batteriestand im Auge zu behalten... Die Möglichkeiten sind endlos.

    Cyberdeck Sonderheft des Raspberry Pi Official Magazine

    Dieses Tutorial enthält im Raspberry Pi Official Magazine #168, das ein Cybderdeck-Special war. Sie können es jetzt kostenlos online lesen.

    Auf deutsch (automatisch übersetzt):

    Wir haben kürzlich ein großes Upgrade auf unsere sichere Boot-Provisioning-Software rpi-sb-provisoring veröffentlicht, die die Bereitstellung komplexerer Betriebssystem-Images erleichtert und Raspberry Pi Connect in großem Maßstab bereitstellt.
    In meinen vielen Jahren als Software-Ingenieur fand ich es immer komplizierter, mit einem sicheren Boot zu arbeiten, als es sein sollte. Im Jahr 2024 haben wir die erste Version von rpi-sb-provisorer veröffentlicht: ein System, das Ihnen helfen soll, Ihr Betriebssystem auf Geräten mit sicherer Boot- und vollständiger Festplattenverschlüsselung auf langweilige und vorhersehbare Weise bereitzustellen.
    Seitdem haben wir viel Feedback von Benutzern erhalten, und der Provisioner hat sich erheblich weiterentwickelt - von einer Sammlung von Shell-Skripten und -Tools zu einem System mit einer Fertigungsdatenbank, einem Audit-Protokoll und einer Web-Benutzeroberfläche. Jede Änderung wurde entwickelt, um ein konkretes Benutzerproblem zu lösen.
    Natürlich gibt es mehr, um Raspberry Pi-betriebene Geräte und Projekte zu erstellen, als nur Ihr Betriebssystem auf das System zu bringen; Wir mussten auch rpi-sb-provisore beibringen, mit unseren anderen Tools gut zu spielen.
    Integration von Raspberry Pi Connect
    Benutzer sagen uns weiterhin, wie nützlich sie Raspberry Pi Connect für die Remote-Verwaltung ihrer Geräte finden. Aber wenn Sie Geräte in großem Maßstab bereitstellen, können Sie es sich nicht leisten, jedes einzelne manuell zuzuordnen. Sie möchten auch, dass diese Assoziationen Betriebssystem-Updates, Werksresets usw. überleben.
    Die Version 2.3 von rpi-sb-provisorer nutzt die neue Geräteidentitätsunterstützung in Raspberry Pi Connect für Organisationen, sodass Sie Ihren Geräten automatisch eine unveränderliche Identität verleihen und diese an Ihr Raspberry Pi Connect for Organisations-Konto binden können.
    Flexible Bildbeschreibungsbereitstellung
    Frühere Veröffentlichungen von rpi-sb-provisioner gingen davon aus, dass Sie ein traditionelles Raspberry Pi OS-abgeleitetes Bild mit pi-gen erstellt haben. Nach der ersten Veröffentlichung erhielten wir jedoch eine Reihe von Fragen von Benutzern, die komplexere Layouts bereitstellen oder Bilder ergonomischer erstellen wollten. Um auf beide Bedürfnisse einzugehen, haben wir die Bildbeschreibungsbereitstellung (IDP) in rpi-image-gen eingeführt, die nun in Version 2.3 von rpi-sb-provisorer integriert ist.
    Die Bereitstellung von Bildbeschreibungen verwandelt rpi-sb-provisorier von einem Fixed-Function-Provisor in ein vollständig programmierbares Bereitstellungssystem, mit dem Sie eine breite Palette von Partitionslayouts, -typen und anderen Attributen festlegen können. IDP kann auch zur Bereitstellung von Betriebssystemen verwendet werden, die nicht mit rpi-image-gen erstellt wurden: Wenn Sie es beschreiben können, können Sie es bereitstellen.
    Die rpi-sb-provisorer 2.3 OS-Bildauswahlansicht; IDP-Artefakte haben erweiterte Metadaten, die Ihnen helfen, das richtige Bild auszuwählen und Ihre Annahmen vor der Produktion zu bestätigen
    Nutzung von rpi-fw-crypto
    Mit der Veröffentlichung von rpi-fw-crypto haben Raspberry Pi-Geräte nun einen Mechanismus zur Verwendung von asymmetrischer Kryptographie, ohne den geräteuniniquen privaten Schlüssel, der von rpi-sb-provisorer geschrieben wurde, unangemessen freizulegen. Wir nutzen diese Funktion in zwei Hauptbereichen:
    Zum Verschlüsseln und Binden des Signiermaterials (PEM-Datei oder HSM-PIN) auf dem Provisioning-Server auf dem Provisioning-Server.
    Auf den bereitgestellten Geräten, als Teil des Materials, das zur Berechnung eines vollständigen Festplattenverschlüsselungsschlüssels verwendet wird, entweder über eine bereitgestellte Pre-Boot-Authentifizierungsumgebung oder über eine, die Sie mit rpi-image-gen erstellen.
    Ein Beispielschlüssel, der den Optionen für die Auswahl von rpi-sb-provisorer 2.3-sicheren Bootschlüsseln hinzugefügt wurde; der Schlüssel-Hash- und Verschlüsselungsstatus werden angezeigt, damit Sie bestätigen können, welcher Schlüssel Sie auf die Geräte schreiben
    Mehr zu kommen
    Das rpi-sb-provisore-System wird sich weiter entwickeln, um auf die Bedürfnisse der Benutzer zu reagieren. Das Teilen von Feedback zu dem Tool und wie es für Sie funktioniert hat oder nicht funktioniert hat, oder einfach nur hart verdiente Geschichten von Fertigungsgeräten in großem Maßstab, hilft uns, das System für unsere Kunden besser zu machen - Industrie, eingebettet und Enthusiast gleichermaßen.
    Erfahren Sie mehr über die Bereitstellung von Raspberry Pi Connect in großem Maßstab in unserer Massenbereitstellungsdokumentation.
    rpi-sb-provisorer, rpi-fw-crypto und rpi-image-gen sind alle Open-Source-Projekte auf unserer Software-Quellenseite verfügbar.

    Gibt es eine Gruppe mysql oder vergleichbar, in der der User pi ggf. nicht (mehr) ist?

    Ich kann Unterschiede des Inhalts von /etc/group und dem Backup erkennen, aber nur, dass asterisk in diese Gruppen eingetragen wurde:

    Code
    dialout:x:20:pi,readsb,asterisk
    audio:x:29:pi,pulse,asterisk
    www-data:x:33:asterisk
    asterisk:x:1013:

    Sonst kann ich keinen Unterschied erkennen, mysql steht alleine mysql:x:132:

    Auch die Berechtigungen von mysqld sind identisch.

    asterisk habe ich jetzt aus der Gruppe www-data gelöscht.

    Grafana geht übrigens wieder, keine Ahnung warum, oder was ich gemacht habe. :conf:

    Aber er findet die Verbindung zur MariaDB. :bravo2:

    Jetzt komme ich auch wieder sowohl als root als auch pi mit 127.0.0.1 und localhost über die Konsole auf mysql.

    Könnte u.a. mit dem Befehl zusammengehängt haben:

    GRANT ALL PRIVILEGES ON *.* TO `root`@`127.0.0.1` IDENTIFIED VIA mysql_native_password USING '***' OR unix_socket WITH GRANT OPTION;

    Vielleicht einen restart oder reload vergessen gehabt. :daumendreh2:

    Jetzt fehlt nur noch, das Phpmyadmin wieder läuft.

    Wie oben geschrieben, der Port ist wieder auf, aber ich kann mich nur noch als Benutzer root in der MariaDB anmelden, als pi kommt:

    Code
    pi@server:~ $ mysql --user=root --password=geheim -h localhost mysql
    ERROR 1698 (28000): Benutzer 'root'@'localhost' hat keine Zugriffsberechtigung
    pi@server:~ $ mysql --user=root --password=geheim -h 127.0.0.1 mysql
    ERROR 1698 (28000): Benutzer 'root'@'localhost' hat keine Zugriffsberechtigung

    Als root geht:

    root@server:/home/pi# mysql --user=root --password=geheim -h localhost mysql

    Als root geht nicht:

    Code
    root@server:/home/pi# mysql --user=root --password=geheim -h 127.0.0.1 mysql
    ERROR 1698 (28000): Benutzer 'root'@'localhost' hat keine Zugriffsberechtigung

    Gut das du das erwähnst.

    Ich habe in /etc/mysql/mariadb.conf.d/ noch eine Datei 99-freepbx.conf gefunden, die hat wohl das ganze überschrieben:

    Code
    [mysqld]
    bind-address = 127.0.0.1
    port = 3306
    socket = /run/mysqld/mysqld.sock 

    Datei gelöscht, alle Sensoren übertragen wieder Daten, der Port 3306 ist im Netzwerk wieder offen. :bravo2:

    Also ein Teilerfolg.

    Phpmyadmin und Grafana will aber immer noch nicht.

    Hab mal probiert mit

    GRANT ALL PRIVILEGES ON *.* TO `root`@`127.0.0.1` IDENTIFIED VIA mysql_native_password USING '***' OR unix_socket WITH GRANT OPTION;

    und FLUSH PRIVILEGES;

    Aber nutzt nichts.

    Display Spoiler

    MariaDB [mysql]> select User, Host from mysql.user;
    +-------------------+-----------+
    | User | Host |
    +-------------------+-----------+
    | sensor1 | % |
    | sensor2 | % |
    | sensor3lokalamPi | % |
    | sensor4 | % |
    | sensor5 | % |
    | sensor6amanderenPi | % |
    | asterisk | 127.0.0.1 |
    | asterisk | localhost |
    | mariadb.sys | localhost |
    | mysql | localhost |
    | oc_pi | localhost |
    | root | localhost |
    | user | localhost |
    +-------------------+-----------+

    sensor6anPi2 bringt die Fehlermeldung:

    mysql.connector.errors.DatabaseError: 2003 (HY000): Can't connect to MySQL server on '192.168.0.10:3306' (111)

    nmap sagt, der Port wäre zu:

    Code
    nmap 192.168.0.10 -p 3306
    PORT     STATE  SERVICE
    3306/tcp closed mysql

    Aber er läuft am Pi:

    Code
    netstat -tulpen | grep 3306
    tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      120        17709263   2538829/mariadbd   

    Was mir auch gerade auffällt:

    Als Benutzer pi komme ich nicht als root in mysql, weder mit 127.0.0.1 noch mit localhost.

    Dann wird es als www-data bzw. grafana auch nicht klappen.

    Der lokale BME280 am Raspberry trägt die Werte erfolgreich via Python und mysql.connector in die MariaDB.

    Ein weiterer ESP32 erfolgreich per Internet via PHP und API.

    Die anderen ESP32 im lokalen Netzwerk nicht und auch der zweite Pi nicht.

    Als root:

    Code
    MariaDB [mysql]> show grants for 'root'@'127.0.0.1';
    ERROR 1141 (42000): Für Benutzer 'root' auf Host '127.0.0.1' gibt es keine solche Berechtigung

    Und:

    Code
    MariaDB [mysql]> show grants for 'root'@'localhost';
    Grants for root@localhost                                                                                                                                                 
    GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` IDENTIFIED VIA mysql_native_password USING '***' OR unix_socket WITH GRANT OPTION 
    GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION

    Und:

    Code
    MariaDB [mysql]> SHOW GRANTS FOR CURRENT_USER();
    Grants for root@localhost
    GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` IDENTIFIED VIA mysql_native_password USING '***' OR unix_socket WITH GRANT OPTION
    GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION

    Alle anderen Sensoren haben:

    Code
    GRANT USAGE ON *.* TO `sensor1`@`%` IDENTIFIED BY PASSWORD '***'
    GRANT SELECT, INSERT ON `sensor1`.* TO `sensor1`@`%

    :conf:

    Ich habe dummerweise auf einem Pi4 dieses Script laufen lassen:

    FreePBX-17-for-Armbian-12-Bookworm/install.sh at main · slythel2/FreePBX-17-for-Armbian-12-Bookworm
    One-click installer for Asterisk 22 LTS and FreePBX 17 on Debian 12 for ARM64 - slythel2/FreePBX-17-for-Armbian-12-Bookworm
    github.com

    Das hat mein System ziemlich durcheinander gebracht, aber das meiste habe ich wieder hinbekommen.

    Nur Grafana und Phpmyadmin wollen nicht mehr.

    127.0.0.1 geht mit Apache und PHP bei $servername.

    localhost geht nicht (mehr).

    Display Spoiler

    <?php
    echo "<table style='border: solid 3px black; width:100%; text-align:center;'>";
    echo "<tr><th colspan='4'; style='border: solid 3px black; width:25%; text-align:center;'>Sensor</th></tr>";
    echo "<tr><th style='border: solid 3px grey; width:25%; text-align:center;'>°C</th><th style='border: solid 3px grey; width:25%; text-align:center;'>%</th><th style='border: solid 3px grey; width:25%; text-align:center;'>hPa</th><th style='border: solid 3px grey; width:25%; text-align:center;'>gemessen</th></tr>";

    class TableRows1 extends RecursiveIteratorIterator {
    function __construct($it) {
    parent::__construct($it, self::LEAVES_ONLY);
    }
    function current() {
    return "<td style='border: solid 3px black; width:25%; text-align:center;'>" . parent::current(). "</td>";
    }
    function beginsensor1() {
    echo "<tr style='border: solid 3px black; width:25%; text-align:center;'>";
    }
    function endsensor1() {
    echo "</tr>" . "\n";
    }
    }

    $servername = "127.0.0.1";
    $username = "userxy";
    $password = "geheim";
    $dbname = "userxy";

    try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $conn->prepare("SELECT temperatur, luftfeuchtigkeit, luftdruck, datumzeit FROM daten ORDER BY datumzeit DESC LIMIT 0,1");
    $stmt->execute();
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
    $data = $stmt->fetch();

    if ($data) {
    // Convert UTC time to Europe/Berlin
    $utc_time = new DateTime($data['datumzeit'], new DateTimeZone('UTC'));
    $timezone = new DateTimeZone('Europe/Berlin');
    $utc_time->setTimezone($timezone);
    $formatted_datumzeit = $utc_time->format('Y-m-d H:i:s');

    echo "<tr>";
    echo "<td style='border: solid 3px black; width:25%; text-align:center;'>".$data['temperatur']."</td>";
    echo "<td style='border: solid 3px black; width:25%; text-align:center;'>".$data['luftfeuchtigkeit']."</td>";
    echo "<td style='border: solid 3px black; width:25%; text-align:center;'>".$data['luftdruck']."</td>";
    echo "<td style='border: solid 3px black; width:25%; text-align:center;'>".$data['datumzeit']."</td>";
    echo "</tr>";
    }

    } catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
    }

    $conn = null;
    echo "</table>";
    ?>

    In /tmp habe ich einen Link auf mysqld.sock

    lrwxrwxrwx  1 root     root       23 25. Mai 08:25 mysql.sock -> /run/mysqld/mysqld.sock

    Und in /run/mysqld/:

    Code
    ls -la
    insgesamt 4
    drwxr-xr-x  2 mysql mysql   80 24. Mai 09:48 .
    drwxr-xr-x 45 root  root  1320  1. Jun 08:30 ..
    -rw-rw----  1 mysql mysql    8 24. Mai 09:48 mysqld.pid
    srwxrwxrwx  1 mysql mysql    0 24. Mai 09:48 mysqld.sock

    Wenn ich in Grafana eine Datenquelle hinzufügen möchte kommt immer:

    Error 1045 (28000): Benutzer 'root'@'localhost' hat keine Zugriffsberechtigung (verwendetes Passwort: Ja)

    egal ob ich bei Host 127.0.0.1:3306 eingetragen habe oder localhost und in der Mariadb localhost als Host steht.

    show variables like '%sock%';

    bringt diese Ausgabe:

    Code
    +-----------------------------------------+-------------------------+
    | Variable_name                           | Value                   |
    +-----------------------------------------+-------------------------+
    | performance_schema_max_socket_classes   | 10                      |
    | performance_schema_max_socket_instances | -1                      |
    | socket                                  | /run/mysqld/mysqld.sock |
    +-----------------------------------------+-------------------------+
    3 rows in set (0,003 sec)

    Wenn ich in der Konsole:

    mysql --user=root --password=geheim -h 127.0.0.1 mysql

    eingebe, kommt:

    ERROR 1698 (28000): Benutzer 'root'@'localhost' hat keine Zugriffsberechtigung

    Wenn ich umgekehrt:

    mysql --user=root --password=geheim -h localhost mysql

    eingebe, dann komme ich rein.

    Mit anderen Sensor-Usernamen und deren DB komme ich per Konsole sowohl mit localhost, als auch mit 127.0.0.1 rein, weil Host %

    Aber eingetragen werden die aktuellen Daten von keinem ESP32 mit BME280-Sensor mehr.

    Aber warum komme ich als root jetzt nur noch per Konsole rein ?

    Mit einem anderen Nutzer komme ich sowohl mit 127.0.0.1 als auch mit localhost rein, obwohl in Host nur localhost steht.

    :conf:

    Jemand eine Idee ? :helpnew:

    Aus irgendwelchen Gründen hatte ich eine Fehlermeldung in meiner murmur.log die irgendein Problem mit dem SSL-Zertifikat anprangerte.

    Registration failed: Error while reading: error:0A000413:SSL routines::sslv3 alert unsupported certificate

    Dadurch bin ich auf die Issue-Seite von Github gekommen, wo einem erklärt wird, dass man nur noch heute das Zertifikat erneuern kann, dann wird es wohl ganz kompliziert.

    Der Certbot aus der Paketverwaltung ist aber völlig veraltet, man benötigt einen neueren. Installiert habe ich ihn mit dieser Anleitung:

    Certbot Instructions
    Certbot Instructions
    certbot.eff.org

    Dann kann man ein neues Zertifikat erstellen:

    /usr/local/bin/certbot certonly --preferred-profile tlsclient --apache -d meine-domain.de

    Jetzt ist die Fehlermeldung weg.

    Code
    <W>2026-05-12 09:58:15.737 1 => Registration: Attempting to connect to 12.223.222.34:64738...
    Your certificate is validated by a CA, congratulations!
    Registration updated!

    So ganz verstanden habe ich nicht, warum das jetzt so ist, aber es wohl ganz wichtig sein, dass das jetzt neu gemacht wird und keiner sagt einem Bescheid.