Beiträge von Dirgi2

    Vorwort:

    Die Landschaft für klassische (überwiegend für den Audio Betrieb gedachte) DLNA Server ist doch recht dünn bzw. etwas unübersichtlich gesäht, will man nicht so umfangreiche Programme wie Kodi, Logitech Media Server oder nicht ganz kostenfreie wie Plex, Twonky u.a. etc. auf seinem RasPi laufen lassen.

    Wenn man danach sucht wird man hie und da fündig und entdeckt da u.A. MiniDLNA, Gerbera oder vielleicht sogar Minimserver. Es gibt natürlich noch einige andere, aber entweder sind sie für das RasPi Betriebssystem nicht verfügbar, sind ggf. kommerziell, verlangen mehr Einarbeitung oder haben schlicht nicht den passenden Funktionsumfang. Wie dem auch sei, ich habe mit ein paar DLNA Servern experimentiert. Bei Gerbera scheiterte ich immer wieder daran, es auf dem RasPi zum laufen zu bringen und MiniDLNA - Eigentlich ein sehr guter DLNA Server und im Prinzip meine erste Wahl scheiterte nach einer Zeit daran, dass es in seinem Programmcode eine Limitierung gibt und er bei größeren Musiksammlung an seine Grenzen stoßen kann. Was es genau war, weiß ich jetzt nicht mehr - Ich glaube aber, wenn eine gewisse Datenmenge eine gewisse Grenze überschritten hatte, wurde sie zwar noch in der Datenbank erfasst, allerdings wurde bei Zugriff auf den DLNA Server von diesem nicht mehr alles zur Anzeige übertragen - Es fehlte also "die Hälfte", obwohl es vorhanden war. Da der Quellcode offen liegt können das sicherlich versierte Linuxuser (wie ich aber keiner bin) abändern und neu kompilieren etc.

    Wer also mit dem MiniDLNA Server zufrieden ist, kann/sollte den behalten. Wer merkt, dass der Server bei der Datenskalierung und Abbildung an seine Grenzen stößt (die Datenmengen müssen schon größer sein ;) , für den ist der Minimserver evtl. eine Alternative. Ich habe mich nach einigen Tests für den doch relativ unbekannten Minimserver (Java basiert) entschieden. Er ist zwar recht einfach gestrickt, läuft aber auf dem Raspberry Pi (und auch noch auf meinem Synology NAS als Backup) bei mir schon einige Zeit sehr flott und zuverlässig und funktioniert bestens und ohne Limit als UPnP DLNA Server in meinem Netzwerk. Außerdem wird er nach wie vor von seinem Programmierer supported und upgedated. Mögliches K.O. Kriterium könnte jedoch evtl. für den Ein- oder Anderen eine nur eingeschränkte Auto-Rescan Funktion sein und/oder vielleicht doch dessen Einfachheit. Dazu weiter unten mehr im Text.

    Zum Minimserver:

    Er ist ein UPnP AV DLNA Musik Server und läuft auf verschiedenen Betriebssystemen wie:

    Windows (x86/x64), Mac, Linux (x86, x64, ARMv5, ARMv6, ARMv7, ARMv8 and PowerPC), QNAP, Synology, Raspberry Pi, ASUSTOR, Melco und NETGEAR ReadyNAS (ältere Modelle).

    Folgende Formate/Playlists kann er abpielen:

    • .aac Audio Data Transport Stream (ADTS) files containing Advanced Audio Coding (AAC) audio data, with no tags
    • .aif .aiff Audio Interchange File Format (AIFF) files, with ID3v2.2, ID3v2.3 or ID3v2.4 tags
    • .dff Direct Stream Digital Interchange File Format (DSDIFF) files, with no tags
    • .dsf DSD Stream Format files, with ID3v2.2, ID3v2.3 or ID3v2.4 tags
    • .flac Free Lossless Audio Codec (FLAC) files, with Vorbis Comment tags
    • .mp3 MPEG-1, MPEG-2 or MPEG-2.5 files (Layers I, II and III), with ID3v2.2, ID3v2.3 or ID3v2.4 tags
    • .mp4 .m4a .m4b MPEG-4 Audio files containing either Advanced Audio Coding (AAC) or Apple Lossless (ALAC) audio data, with MPEG-4/iTunes tags
    • .ogg Ogg/Vorbis files, with Vorbis Comment tags
    • .wav Waveform Audio File Format files, with ID3v2.2, ID3v2.3 or ID3v2.4 tags

    Playlists

    • .m3u Standard or extended M3U playlists using the Windows-1252 or ISO 8859-1 character set
    • .m3u8 Standard or extended M3U playlists using the UTF-8 character set

    Meine RasPi Hardware:

    Als Server benutze ich einen Raspberry Pi 4, der mir ausreichend Geschwindigkeit bietet, einen 1GBit LAN Netzwerk hat und vor allem USB 3.0. Denn mein Raspberry Pi hat sein Betriebssystem und seine komplette Musikdatenbank auf einer SSD Festplatte, welche an einem der 2 USB 3.0 Ports angeschlossen ist, darüber bootet und recht schnell ist. Teilweise schneller, und vor allem sparsamer, leiser und natürlich günstiger als diverse herkömmliche NAS Server (im niedrigeren 3 stelligen € Bereich) in denen dann 2,4 oder noch mehr HDD Platten rund im die Uhr in Betrieb stehen und bei denen meist der Chipsatz + der Arbeitsspeicher der Flaschenhals bei schnelleren Datenprozessen ist, die ein aktueller und günstiger RasPi schon überbietet.

    Natürlich könnte man auch ein älteres Raspberry Pi Modell < 4 nehmen, allerdings sind die USB Schnittstellen um einiges langsamer, sowie das LAN bei höchstens 100MBit. Das merkt man schon, wenn man beispielsweise von einem 3er RasPi auf einen 4er wechselt. Außerdem läuft mein RasPi OS (komplett ohne SD Karte) auf der SSD Festplatte, welche dafür um einiges besser geeignet ist im Dauerbetrieb zu stehen, als die Standard (micro)SD Kartenlösung.

    Vorraussetzung:

    Ich setze Voraus, dass Dein RasPi bereits in Betrieb ist und Deine Musikdatensammlung bereits auf dem Raspberry Pi zur Verfügung steht (durch eine an- bzw. eingehängte Festplatte oder auf der SD Karte). Ebenso, dass Du als Benutzer "pi" angemeldet bist (das ist der Standardnutzer bei der Installation). Auf diesen beziehe ich mich und wenn es hier Änderungen gibt, musst Du das ggf. anpassen. Außerdem solltest Du wissen, wie Du ggf. von "außerhalb" mit Deinem RasPi per PuTTY oder WinSCP kommunizieren kannst und auch mit dem Texteditor NANO bereits Erfahrungen gesammelt hast.

    Ziel:

    Das Ziel wird sein,

    a) den Minimserver auf dem Raspberry Pi zu installieren, diverse Einstellungen zu machen, so daß Deine Musiksammlung im Netzwerk über DLNA zur Verfügung steht und

    b) (optional) Du noch als Administrator in einem Netzwerk z.B. von einem Windows Rechner per SMB (Netzwerk) auf den RasPi Zugreifen kannst (Stichwort Samba Server), um Deine Musiksammlung zu verwalten.

    In eigener Sache:

    Ich bin ein Linux bzw. RasPi "Gelegenheits-Teilzeit Nutzer", der sich vor allem Linuxtechnisch nicht so gut auskennt. Ich erkläre es so gut es geht, wie ich es zum Laufen gebracht habe. Mögliche Vereinfachungen, bessere Lösungswege oder evtl. falsche Behauptungen, möge man mir nachsehen.

    _______________________________________________________________________________________________________

    Minim UPNP DLNA Server aufsetzen:

    1. Ist JAVA vorhanden? - Wenn nein, wird es installiert

    Um zu prüfen, ob Java bereits installiert ist (denn das wird vorausgesetzt), logge mich nun z.B. über PuTTY auf dem RasPi als Benutzer ein. Ich prüfen nun mit der Eingabe:

    java --version

    ob Java bereits installiert ist. Wenn ja, folgen einige Angaben zur installierten Version. Wenn nicht kommt hier eine Fehlermeldung und Du machst mit 1a) weiter. Ansonsten kannst Du diesen Punkt überspringen.

    1.a) JAVA wird installiert:

    Zunächst sollten wir dafür sorgen, das unser RaspPi aktuell ist. Das erreichen wird durch die Aktualisierungsbefehle:

    sudo apt-get update und sudo apt-get upgrade

    Fragen mit y bestätigen. Wenn der Update Prozess fertig ist, das kann je nach Umfang einige Zeit dauern, wird nun Java installiert. Dies erfolgt mit dem Befehl:

    sudo apt install default-jdk

    Mögliche Fragen mit y beantworten. Wenn der Prozess fertig ist, kann durch erneute Angaben von java --version geprüft werden ob Java nun korrrekt installiert wurde.

    2. DLNA MinimServer Herunterladen

    Ich setzte voraus, das Du Dich an einem anderen Rechner befindest (Windows Rechner etc.) und Dich bereits mit PuTTY bzw. WinSCP auskennst. Beides Programme um ferngesteuert hervorragend auf den RasPi zugreifen zu können, außerdem sollte dein RasPi OS auf aktuellem Stand sein. Wenn Du natürlich direkt auf dem RasPi arbeitest, ist es für Dich sogar ggf. etwas einfacher.

    Den Minimserver beziehen wir von folgender Seite: https://minimserver.com/

    Es gibt dort 2 Versionen, die ältere 0.8 Version und die Version 2.0. Wir interessieren uns für die Version 2.0. Der Minimserver kann auch erworben werden mit einer Lizenz. Es gibt ihn aber auch Lizenzfrei in einer abgespeckten Version, der Starter Edition, die für unsere Zwecke absolut ausreichend und funktionell ist.

    Um nun die für uns (unsere Hardware) passende Version herunterzuladen, gehen wir zu den Downloads und in den Tabellenbereich MinimServer downloads.

    Hier gehen wird zur Linux Reihe und wählen dort die Version (für den RasPi) ARM hard float aus und laden sie herunter (Download Tip: Entweder direkt über die grafische Oberfläche des Raspi und dann (über den Browser) herunterladen, oder mit Deinem Windows Rechner und dann mit WinSCP rüberkopieren. Einen direkten download link konnte ich hier leider nicht veröffentlichen, das dieser sich ändern kann und hinter einem Button versteckt ist.).

    Achtung nicht verwechseln mit der weiter unten abgebildeten Version von MinimWatch. Der Dateiname sollte in etwa so aussehen: MinimServer-2.0.16-linux-armhf.tar.gz.

    Die Datei entpacken wir noch nicht und da der Dateiname recht lange ist, empfehle ich ihn der Einfachheit halber einfach in ms.gz umzubenennen.

    Auf dem RasPi sind wir als (normaler) Benutzer: pi angemeldet (nicht als Superuser oder Admin). Die Datei ms.gz wird nun auf dem RasPi in das Verzeichis /home/pi verschoben oder kopiert. Unter Windows empfehlen ich hierfür WinSCP. Ich logge mich nun z.B. über PuTTY auf dem RasPi als (normaler) Benutzer ein (nicht als Superuser oder Admin. Wenn das benötigt wird, werde ich das per SUDO im Befehl einbauen. Wenn nicht könnte es ggf. später beim Autostart Probleme geben, dass er nicht richtig ausgeführt wird.). Normalerweise sollte ich automatsch in meinem Home Verzeichnis landen, wenn nicht wechsle ich dorthin mit

    cd /home/pi

    3. DLNA MinimServer Datei einpacken:

    Unsere Datei ms.gz sollte sich nun hier befinden und hier packen wir sie nun auch aus, mit dem Befehl:

    tar xf ms.gz

    Unser MinimServer wird hier heraus aus dem Home Verzeichnis des Benutzers pi betrieben und er wurde gerade hier entpackt in das eigene Verzeichnis: minimserver

    4. a) DLNA MinimServer, erstes Setup durchführen:

    Wir tippen den Befehl:

    minimserver/bin/setup

    ein und bestätigen die (3) Fragen alle mit JA.

    4. b) Erster DLNA MinimServer Start:

    Wir starten den Server das erste Mal mit:

    sudo minimserver/bin/startc

    Wenn wir mit dem SUDO Befehl gearbeitet haben, kommt nach kurzer Zeit ein # Raute Symbol und erwartet eine weitere EIngabe von uns, nämlich den Pfad zu unseren Musikdaten.

    Ich treffe nun folgende Übereinkunft und beziehe mich darauf. Sollte es bei Euch anders sein. Müsst ihr das ggf. für Euch abändern. Meine Musikdaten befinden sich auf einer Festplatte. Diese Festplatte ist bereits im RasPi eingebunden (gemountet) Der Pfad zu meinem Musikdaten lautet in diesem Falle: /media/ntfs/musik. Dieses trage ich nun neben der Raute ein. Es sieht dann wie folgt aus:

    # /media/ntfs/musik

    Ich bestätige meine Eingabe. Der MinimServer läuft bereits in Hintergrund und ich befinde mich nach wie vor in seinem Menü. Durch Eingabe von help, bekomme ich weitere Möglichkeiten angezeigt.exit kann ich den Server verlassen. Dummerweise stoppt der Server auch sofort wieder. Aber dazu kommen wir noch. Mit der Eingabe von

    sudo minimserver/bin/startd kann der Server wieder gestartet werden.

    4. c) Der DLNA Server bekommt einen Namen im Netz:

    Damit der Server später als DLNA Server einen aussagekräftigen Namen bekommt, geben wir ihm jetzt einen mit Hilfe des NANO Texteditors

    sudo nano /home/pi/minimserver/data/default.profile

    Hier sollte nun in der ersten Zeile bereits der Pfad zu unseren Musikdaten eingetragen sein, welchen wir eben erst angegeben hatten. In unserem Beispiel: /media/ntfs/musik .In der zweiten Zeile steht der Servername. Wenn dort nichts steht, können wir hier unseren Servernamen eintragen. Dieser erscheint dann, wenn ich nach dem DLNA Server suche. Ein möglicher Name bzw. Eintrag sieht z.B. wie folgt aus:

    displayName = RasPi MinimServer

    Wenn ich das gemacht habe, speichere und beende ich den Nano Texeditor mit

    <STRG> + O speichern und mit <STRG> + X verlassen.

    4. d) Autostart für den DLNA Server einrichten, damit er beim booten wieder automatisch startet.

    Wir geben folgenden Befehl ein:

    sudo nano /etc/init.d/minimserver

    Sollte hier bereits Text stehen, was durchaus der Fall sein wird, da aufmerksame User sich vielleicht daran erinnern können, dass wird dem Autostart bereits zugestimmt haben, löschen wir den Text komplett. Leider funktionierte der hier abgebildete Programmcode bei mir nicht. Wir müssen hier nun einen alternativen Code einfügen. Sollte hier nicht stehen - Auch gut. Der folgende Text wird hier nun hineingeschrieben oder kopiert:

    Wenn ich das gemacht habe, speichere und beende ich den Nano Texeditor mit

    <STRG> + O speichern und mit <STRG> + X verlassen.

    Zur Sicherheit gebe ich noch die richtigen Lese/Schreibrechte an:

    sudo chmod 755 /etc/init.d/minimserver

    Damit das Script noch beim Booten aufgerufen wird, bringe ich es in den Autostart mit:

    sudo update-rc.d minimserver defaults

    Wenn es irgendwann wieder aus dem Autostart raus soll, mache ich das mit der Eingabe von:

    sudo update-rc.d -f minimserver remove wieder rückgängig.

    Der Minimserver sollte nun automatisch wieder starten, wenn der RasPi z.B. rebootet.

    5. Den DLNA MinimServer über den Browser erreichen (ReScan durchführen):

    Wenn der Minimserver nun richtig läuft - Hier nochmal wie man ihn startet:

    sudo /etc/init.d/minimserver start

    oder stoppt:

    sudo /etc/init.d/minimserver stop,

    sollte er auch über einen Browser erreichbar sein. Dein MinimServer ist auf dem Raspberry (mit Portangabe 9790) wie folgt über den Browser zu erreichen:

    http://xxx.xxx.xxx.xxx:9790/

    Wenn der Server läuft, kommst Du auf die recht minimalistische MinimServer Oberfläche und, wenn es das erste Mal ist, mußt Du noch diverse Zustimmungen machen. Du kannst Dich hier mal durchklicken, ansonsten solltest/brauchst Du hier eigentlich nichts ändern. Du kannst a) sowieso nicht viel ändern hier und b) könnte Änderungen hier den Server beeinflussen. Wozu die Seite aber ganz brauchtbar ist: Wenn sie funktioniert weißt Du, dass Dein Server in Betrieb ist und vor allem kannst Du hier manuell einen Daten ReScan ausführen, wenn Du z.B. Daten geändert hast. denn leider überwacht der MinimServer aktuell noch keine Datenänderungen. Wenn Du auf Status gehst, kannst Du den Status einsehen und diesen ggf. mittels Refresh status erneuern. Hier gibt es dann auch den Rescan button. Auf diesen kannst Du klicken, wenn Du Änderungen getätigt hast. Aber Achtung: Ein Rescan bedeutet, ein komplett neues Erstellen der Datenbank und je nach Größe Deiner Sammlung kann es durchaus einige Minuten dauern, bis wieder alles komplett erfasst ist. Nur die Änderungen zu erfassen ist leider nicht vorgesehen.

    6. Anpassen der Bezeichnungen der Verzeichnisse im DLNA Betrieb (optional)

    Der DLNA Server erscheint im Netzwerk, wenn er in Betrieb ist und kann eingebunden werden. Bei der Namensgebung der Verzeichnisse können Änderungen vorgenommen werden. Dies geht wie folgt. Auf dem RasPi gehe ich in das Verzeichnis /home/pi/minimserver/etc z.B. durch Eingabe von:

     cd /home/pi/minimserver/etc mit der EIngabe von ls oder ls -la bekomme ich eine gute Übersicht über die Dateien, die sich in dem Verzeichnis befinden.

    Tip: Mit WinSCP gestaltet sich das wesentlich übersichtlicher.

    Ich sehe in diesem Verzechnis nun verschiedene Vorgaben und kann diese öffnen und/oder bearbeiten. Wenn wir z:b. die Datei ServerBundle_de.defaults über

     sudo nano ServerBundle_de.defaults

    öffnen, können wir Änderungen an den einzelnen Bezeichnungen vornehmen. Diese sollten eigentlich selbsterklärend sein. Wichtig ist: ALLE ZEILEN, die ich nicht ändern möchte, müssen mit einer Raute auskommentiert werden also in der ersten Zeile wird dann z.B. aus: text.album = {0,number,#} Album ein #text.album = {0,number,#} Album.

    Wenn ich meine Änderungen getätigt habe, speichere ich diese nun unter neuem Namen:

    Mit <STRG> + O öffne ich das Speichern Menü und benenne die Datei nun: ServerBundle_de.properties mit anderen Dateien verfahre ich analog bein der Umbenennung, wenn benötigt.

    Wenn ich meine Korrektur des Dateinamens gemacht und die EIngabe bestätigt habe, bestätige ich anschließend noch mit Ja und schließe mit <STRG> + X

    7. DLNA MinimServer Rescan (automatisieren):

    Wie bereits oben erwähnt, macht der aktuelle MinimServer leider von sich aus keinen automatischen Rescan, wenn Daten geändert wurden. Wir müssen das entweder per Kommandozeilen-Befehl in die Wege leiten, oder aber über die Homepage des Servers (siehe oben). Es gibt jedoch eine Möglichkeit dies einigermaßen zu automatisieren - allerdings unabhängig davon, ob Daten geändert wurden oder nicht - nämlich einen zeitgesteuerten Rescan der Daten automatisiert per (im RasPi OS bereits eingebauten) Cron-Job ablaufen zu lassen. Dies geht wie folgt:

    Wir öffnen mit dem nano Editor die passende CroTab Datei:

    sudo nano /etc/crontab

    In dieser Datei kann u.U. schon einiges an Einträgen vorhanden sein. Wir bewegen uns nun ganz nach unten und fügen nun eine neue Zeile von uns ein. Im nachfolgenden Beispiel die Ansicht meiner CronTab Datei. Die letzte Zeile nach dem Raute Zeichen wurde von mir hinzugefügt:

    Wenn man einmal das Prinzip verstanden hat, ist es eigentlich ganz einfach. Mein Eintrag besagt:

    Jeden 2.ten (= */2) Tag morgens um 4.00h (= 0 4) wird ein rescan als root aufgerufen,

    angefangen nach dem letzten Reboot (be dem sowieso automatisch ein Rescan durchgeführt wird (meines Wissens nach)) und dann alle 2 Tage, morgens um 4Uhr ein Rescan der Daten vollzogen wird. Dadurch sollte keiner um diese Uhrzeit gestört werden, wenn die Datenbank neu aufgebaut wird und alle 2 Tage sollte akzeptabel sein um Änderungen zu übernehmen. Mann kann hier natürlich alles selbst festlegen. Oben drüber ist es ganz gut erklärt und wem das nicht reicht, kann zB im Netz nachschlagen, wie man die Angaben hier richtig setzt. Hier ist das z.B. ganz gut erklärt, oder hier. Sind wir fertig, speichern und beenden wir mit:

    <STRG> + O speichern und mit <STRG> + X verlassen.

    Der Cronjob ist nun eingerichtet und wird seine Arbeit automatisch durchführen. Möchte man das jedoch erst einmal testen, ob es funktioniert, Kann ich ja mal einen Testlauf so einstellen, das z.B. zur nächsten vollen Stunde, der Rescan startet. Direkt bekomme ich davon zwar nichts mit, allerdings sehe ich das zeitnah, wenn ich von extern auf den DLNA Server zugreife und sehe, wie die Datensätze in meiner Player Oberfläche immer mehr werden, oder ich gehe auf die Homepage und überprüfe den Status, dort steht es normalerweise.

    _______________________________________________________________________________________________________

    Samba Server aufsetzen (optional):

    Wer seinen Raspberry Pi nur als DLNA Server betreiben möchte, ohne über ein "klassisches" Windows (SMB) Netztwerk darauf zugreifen möchte, ist hier jetzt fertig. Als DLNA Server ist er bereits jetzt voll funktionsfähig und kann im Metzwerk aufgerufen werden. Wer jedoch (zusätzlich) über das Netzwerk auf die Daten als Gast oder Administrator zugreifen möchte, sollte hier noch weiterlesen. Damit das RasPi im Windows Netzwerk auf die gewohnte Art zugegriffen werden kann (über SSH (PuTTY) bzw. SCP (WinSCP) haben wir ja vielleicht schon darauf zugegriffen), benotigen wird noch einen SMB Server. Der wohl bekannteste und populärste ist der "Samba" Server. Dieser verbindet den RasPi über das weit verbreitete SMB Protokoll u.a. mit einem Windows Netzwerk. Vielleicht beutzt Du ihn bereits und/oder hast ihn bereits installiert, weißt es aber nicht. Das prüfen wir doch einmal, indem wir die Samba Version erfragen.

    smbd -v

    Sollte Samba bereits existieren, kommt hier eine vernünftige Auskunft, wenn nicht eine Fehlermeldung.

    1. Samba Server installieren (optional):

    Ich gehe davon aus, Du hast bereits vorher den RasPi auf den letzten Stand gebracht, ansonsten hole das bitte nach, wie Eingangs unter 1.a) JAVA wird installiert erklärt wurde.

    Nun installieren wir den Samba Server über den Befehl:

    sudo apt-get install samba samba-common-bin

    Wenn bei der Installation nach DHCP über WINS gefragt wird (normalerweise erstes Fenster), dann mit JA antworten. Danach ist Samba auch schon installiert.

    Zu Samba selbst ist zu sagen, irgendwie ist es ganz einfach und logisch und irgendwie aber auch sehr Komplex bzw. kompliziert für Anfänger. Ich habe bei dem Thema festgestellt, das wohl viele Wege nach Rom führen können oder aber nicht. Ich zeige hier einen Weg auf, den ich für mich als gut empfunden habe. Es mag andere, bessere und einfachere geben. Ich bitte, mir das nachzusehen.

    Noch etwas zum Verständis:

    Samba stellt die Verbindung ins Netz her und erlaubt mir als Administrator genau das einzustellen, was und wie im Netzwerk erscheinen soll. Grob unterteilen sich die Nutzer die aus dem Netztwerk zugreifen dürfen in Personen, die nur "schauen" dürfen ohne jegliche Änderungen vornehmen zu können und Benutzer, die die Daten auch ändern dürfen. Das bedeutet: In dem Moment, wo ich definiere, das Benutzer X sich auch als solcher ausweisen muss z.B. per Name und Passwort, dann kann ich ihm auch Rechte einräumen. In unserem Fall ist wichtig zu Wissen. Ein Benutzer, der sich an dem Raspberyy Pi anmelden kann, Kann sich noch lange nicht über den Samba Server mit dem Raspi Verbinden, er muss hier explizit also auch noch einmal als Benutzer registriert sein. Ebenso muss ein Benutzer bereits auf dem Pi existieren, damit ich ihn auch bei Samba anmelden kann (später nochml etwas dazu).

    Als Beispiel: Bin ich als Benutzer Pi im Raspberry registriert, kann ich mich zwar innerhalb vom Raspberry "frei" bewegen, will ich aber über das z.B. Windows Netztwerk auf den Raspberry zugreifen, verweigert mir das Samba, weil ich bei ihm (noch) nicht registriert bin.

    2.Samba Settings Einstellungen:

    Es wird davon ausgegangen, das meine "Musik Festplatte" oder mein "Musik Verzeichnis" bereits eingebunden (gemountet) ist unter dem Bespielpfad: /media/ntfs/musik

    Jetzt müssen wir noch ein paar Settings in den Samba-Einstellungen machen. hierzu machen wird von der Original Settingsdatei zur Sicherheit erst einmal ein Backup mit:

    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup

    Nun öffnen wir die Settings Datei über:

    sudo nano /etc/samba/smb.conf

    Wir scrollen bis ans Ende der Datei. In ihr sollte bereits einiges an Einträgen vorhanden sein.

    Was wir nun machen: Wir erstellen nach außen hin ins Netztwerk zwei verschiedene Ordner, die dann die Netzwerk Benutzer sehen können. Ein Ordner, auf den Jeder im Netztwerk darauf zugreifen kann, aber nur Lesenzugriff hat und ein zweiter Ordner, der Lese und Schreibzugriff (für Administratoren) bietet. Intern handelt es sich allerdings um ein und den

    selben Verzeichnispfad und Ordner, bloß mit anderen Zugriffsrechten.

    Ich erwähne hier nochmal den Hauptordner auf unserer Festplatte unter dem die ganze Musik liegt und bereits am RasPi eingebunden ist.

    Als Beispiel: /media/ntfs/musik

    unterhalb der Ordners ..../musik liegt dann alles was jeder Sehen kann wie z.B. in dem nachfolgenden Schema verdeutlicht

    Den Nachfolgenden Code trage wir nun komplett am Ende der Datei ein:

    Code
    [RasPi-DLNA-Admin]
    comment = RasPi4-Musik-DLNA-Server-Verzeichnis
    path= /media/ntfs/musik
    browseable=Yes
    writeable=yes
    guest ok = no
    public= no
    valid users = pi,admin

    Samba bietet uns die Möglichkeit den Ordner musik nach außen hin nochmal komplett neu und anders zu benennen. Ich nenne ihn hier:

    RasPi-DLNA-Admin (Dies erscheint später im Netzwerk als Ordnername) .D.h. Der Name des Ordners im Netzwerk, wird in die eckigen Klammern [] geschrieben.

    Unter path= tragen wir den Pfad auf dem RaspBerryPi zu den Musikdaten ein.

    Browseable & writeable: Der Pfad kann später durchsucht werden und Lesen und Schreibrechte werden vergeben.

    guest ok= no Für Gäste oder Personen, dies sich nicht anmelden können, bleibt der Ordner gesperrt.

    Personen, die sich anmelden können und müssen haben dann auch Schreibrechte. Diese werden unter

    valid users aufgeführt. Sollen es mehrere sein, werden sie durch Komma getrennt erfasst. (In diesem Beispiel pi und admin)

    Das war es schon.

    Das gleiche machen wir nun für Jedermann, indem wir den nächsten Block unten einfügen.

    Er erscheint im Netzwerk als Ordner: RasPi-DLNA-Public

    Es kann also Jeder die Ordner sehen und darauf zugreifen, allerdings weder etwas hinzufügen, löschen, ändern etc. Eben "nur Leserechte".

    Code
    [RasPi-DLNA-Public]
    comment = RasPi4-Musik-DLNA-Server-Verzeichnis
    path= /media/ntfs/musik
    browseable=Yes
    writeable=no
    only guest=no
    create mask=0555
    directory mask=0555
    public=yes

    Wenn wir fertig sind, wie gewohnt:

    <STRG> + O speichern und mit <STRG> + X verlassen.

    3. Zugriff im Netzwerk:

    Damit die eben gemachten Einstellungen auch sofort im Netztwerk zur Verfügung stehen, Können wir dem ganzen ein wenig vorgreifen, indem wir den Samba Server neu starten:

    sudo service smbd restart

    sudo service nmbd restart

    Im Netztwerk sollte nun der Raspberry Pi erscheinen, oder er kann (etwas schneller) in der Adresszeile des Windows Explorers durch Eingabe der IP Adresse geöffnet werden.

    Bsp: \\xxx.xxx.xxx.xxx

    Darin sollten nun beide obigen Ordner sichtbar sein. Den RasPi-DLNA-Public Ordner könne wir sofort öffnen, aber wie gewollt darin nichts verändern und beim RasPi-DLNA-Admin Ordner...?? - Ups, stimmt, da war noch was. Da dürfen nur angemeldet User darauf Zugreifen (in unserem Falle pi und admin), aber wir haben die Benutzer bei Samba ja noch garnicht angemeldet.

    Das holen wir jetzt noch nach.

    4. Neue Benutzer zu Samba hinzufügen:

    Wir haben ja beschlossen, dem Benutzer pi und dem Benutzer admin auch Zugriffsrechte auf dem Samba Server einzuräumen. Der Benutzer pi ist ja bereits auf dem Raspberry angemeldet, somit muss ich ihn nur noch bei Samba anmelden, das geschieht mit der folgenden Eingabe:

    sudo smbpasswd -a BENUTZERNAME

    in unserem Beispiel also:

    sudo smbpasswd -a pi

    Der Benutzer wird in Samba angelegt und es wird ein Passwort verlangt. Wir geben dem Nutzer pi ein Passwort, mit dem er aus dem SMB Netz auf den Raspi zugreifen kann. Aus Sicherheitsgründen sollten man hier ggf. ein anderes Passwort wählen, als das, mit welchem sich der gleiche Benutzer am Raspbery Pi anmeldet.

    Nun folgt noch der Benutzer admin.

    Im Gegensatz zum Benutzer pi, existiert dieser noch gar nicht auf dem Raspberry. Ich muss ihn also erst einmal am Raspberry anmelden

    sudo adduser admin

    Anschließen müssen wir ihn nun auch noch beim Samba Server anmelden.

    sudo smbpasswd -a admin

    Das war es und ich starte den Samba Server neu:

    sudo service smbd restart

    sudo service nmbd restart

    Nun sollte der jeweilige Benutzer sich auch bei RasPi-DLNA-Admin anmelden können. Hier kann er nun auch Daten ändern. Wer möchte kann die Netzwerkadresse aich gleich bei Windows als Laufwerk eintragen lassen und wenn man Windows erlaubt, dass Paswort zu merken, Ist das Laufwerk in Zukunft automatisch unter Windows eingetragen und man hat sofort Zugriff darauf.


    Viel Spaß :thumbup::thumbup::)

    Gruß, Dirk

    Ja und theoretisch ja. :) Wie ich oben schon geschrieben habe, wäre das meine Theorie dazu. Ich habe das nie gemacht und kann dir nicht versichern das es funktioniert. Ich wüsste aber nicht, warum es nicht funktionieren sollte, wenn beim übertragen nichts schief läuft. Ein Backup wäre aber ein gute Idee.

    Gut - OK, bei einem Linux System habe ich das nie probiert - Aber bei einem Windows System wäre das so nie gegangen (Ist schon eine Ewigkeit her, als ich solche Experimente gemacht hatte) . Da hätten dann irgendwelche Zeiger nicht nicht mehr gestimmt oder relevante EInträge im MBR etc.

    Ich bin mal gespannt auf was RTFM raus will.

    Aber, wenn hier Deine These keiner wiederlegen kann, werde ich das zumindest einmal probieren. Bevor ich die Standardinstallationsvariante wähle - denn gelöscht ist schnell. Aber ein paar 100GB der NTFS jedes Mal rüberzuschieben, nervt.

    Da fehlen aber die beiden Partitionen.

    Servus !

    Die hatte ich doch schon bereits gepostet.

    Hier nochmal:

    Die FAT Bootpartition

    Disk /dev/sda1: 256 MiB, 268435456 bytes, 524288 sectors

    Units: sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 33553920 bytes

    Disklabel type: dos

    Disk identifier: 0x00000000

    Die RaspiOS EXT4 Partition (wurde vergrößert)

    Disk /dev/sda2: 9,8 GiB, 10485760000 bytes, 20480000 sectors

    Units: sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 33553920 bytes

    Hier die NTFS:

    Disk /dev/sda3: 921,5 GiB, 989445750784 bytes, 1932511232 sectors

    Units: sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 33553920 bytes

    Disklabel type: dos

    Disk identifier: 0x00000000

    und hier das auf die NTFS kopierte RaspiOS image:

    Disk /media/ntfs/RaspiOS.img: 3,6 GiB, 3821010944 bytes, 7462912 sectors

    Units: sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disklabel type: dos

    Disk identifier: 0x58ce116e

    Das Imagefile, das Du auf die SSD P1 und P2 installieren willst.

    Wenn Du remote (z.B. CIFS) keinen Zugriff hast, dann kopiere das .img auf die NTFS Partition Nr.3 der SSD.

    Servus !

    Ok, das wäre letztendlich das jungfräuliche RaspiOS Image (2020-08-20-raspios-buster-armhf.img).

    Habe es mal auf die NTFS Partition geschoben und mit fdsisk abgefragt.

    Das würde dann so aussehen:

    Disk /media/ntfs/RaspiOS.img: 3,6 GiB, 3821010944 bytes, 7462912 sectors

    Units: sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disklabel type: dos

    Disk identifier: 0x58ce116e

    Ich denke schon. Du möchtest doch die letzte Partition (NTFS) nicht anfassen und nur die ersten beiden (/boot - FAT und / EXT4) für die "komplette Neuinstallation" benutzen. Das heruntergeladene aktuelle RaspberryPi OS Image ist ja immer (soweit mir bekannt) die Grundlage und einzige Möglichkeit für eine Neuinstallation. Sprich, wenn du die Daten von diesem Image kopierst, hast du das aktuelle RaspberryPi OS "installiert". Beim Booten sollte die Grundkonfiguration auftauchen, bzw. gemacht werden und dann das übliche apt update/dist-upgrade.

    Ja genau die boot FAT und die OS EXT4 ersetzen.

    Du meinst also (als Beispiel), ich lasse mir mit Etcher eine neue zweite SD (SD2) o.ä. erstellen.

    Anschliesend lösche ich den kompletten Inhalt des alten RaspiOS auf der ersten SD (SD1), also der FAT und der EXT4.

    Danach kopiere ich den Inhalt aus FAT und EXT4 der SD2 in die eben gelöschten SD1 FAT und EXT4 Partitionen

    Richtig? - Ob das geht und das System startet ?

    Wie ist denn die Ausgabe von

    fdisk -l /dev/DeineSSD

    fdisk -l /Pfad/zum/ImageFile

    Was für ein Imagefile?

    Das RaspiOS Image file liegt auf meiner Windows HD und das kann ich mit fdisk nicht ansprechen.

    Oder meinst Du die RaspiOS Partitionen SDA1 & SDA2?

    die wären hier:

    Die FAT Bootpartition

    Disk /dev/sda1: 256 MiB, 268435456 bytes, 524288 sectors

    Units: sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 33553920 bytes

    Disklabel type: dos

    Disk identifier: 0x00000000

    Die RaspiOS EXT4 Partition (wurde vergrößert)

    Disk /dev/sda2: 9,8 GiB, 10485760000 bytes, 20480000 sectors

    Units: sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 33553920 bytes


    Hier meine dritte große (NTFS) Partition.

    Disk /dev/sda3: 921,5 GiB, 989445750784 bytes, 1932511232 sectors

    Units: sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 33553920 bytes

    Disklabel type: dos

    Disk identifier: 0x00000000


    Hier die Zusammenstellung:

    Device Boot Start End Sectors Size Id Type

    /dev/sda1 8192 532479 524288 256M c W95 FAT32 (LBA)

    /dev/sda2 532480 21012479 20480000 9,8G 83 Linux

    /dev/sda3 21012480 1953523711 1932511232 921,5G 7 HPFS/NTFS/exFAT

    Hi repa1971,

    das löst aber glaube ich nicht meine Frage - Oder?

    Ich möchte ein Raspi OS auf einen Datenträger installieren, auf dem zwar genug nicht zugewiesener Speicherplatz ist, aber ebenso bereits eine existierende Partition, die nicht angerührt werden sollte.

    Eine Partition vergrößeren/verkleinern war nie das Problem, sondern wie bekomme ich ein RaspiOS auf einen Datenträger ohne daß dabei vorhandene Partitionen zerstört werden.

    Meine Theorie dazu ist (man möge mich berichtigen). Den Datenträger mit den drei Partitionen an ein Linux System anschliessen. Das aktuelle RaspberryPi OS Image auf das Linux System laden und mounten (ich hoffe das geht?). Dann die beiden (/boot und /) Partitionen auf Dateiebene (mit z.B. cp) auf den Datenträger mit den drei Partitionen kopieren.

    Aber das wäre doch letztendlich ein Backup - Oder verstehe ich das falsch?

    Ein Backup würde in dem Falle aber nichts bringen, wenn das Betriebsystem bereits "beschädigt" ist. Höchstens natürlich man erzeugt immer wieder Backups und sichert diese, um dann im "Notfall" wieder zurückspielen zu können. Dummerweise wären 1:1 Backups aber dann glaube ich immer wieder so groß wie die (vergrößerte) Partition (auch wenn dort viele Bereiche noch leer sind). Es sei den beim Backup wird gepackt - Ein Packer xxxzip dürfte den leeren Bereich rausrechnen)

    Zitat

    RaspberryPi OS hat noch einen Mechanismus, welcher beim (nur?) ersten Start versucht die Root Partition an das Ende des Datenträgers auszudehnen. Falls der anschlägt, wäre ggf. die dritte Partition weg. Für den Fall muss man Gegenmassnahmen treffen

    Weiß ich jetzt nicht aus dem Stehgreif, aber ich glaube der Raspi mach es nicht automatisch, man muss es schon in der raspi-config anstoßen (oder so). Ich erweitere die EXT4 Partition immer extern mit gparted unter Ubuntu. Damit erstelle ich dann auch gleich meine dritte Partition.

    Gehen tut das schon. Aber nicht unter Windows.

    Und die beiden Zielpartitionen müssen vorher entsprechend eingerichtet (partitioniert) sein.

    Hi, RTFM - Ist mir klar, daß Windows dazu ungeeignet sein können - War ja nur ein Vergleich. Die Partitionen kann ich vorher partitionieren. Würde zB mit gparted aus einer Ubuntu Umgebung einer VM gehen.

    Zitat

    Eine andere Methode (Holzhammermethode) wäre den sichtbaren Speicherbereich der SSD auf die Installationsgrösse des Imagefiles einzuschränken, und nach flashen mit Etcher und Berichtigung der Partitionstabelle wieder auszudehnen

    Aber das wäre ja das Problem - meines Wissens nach, machen Programme wie Etcher alles Auf dem Speichermedium "platt" - Also zumindest dürften die Partitionstabellen gelöscht werden. Somit auch meine dritte Partition, die ja erhalten bleiben soll. Habe es zwar noch nicht probiert, aber natürlich könnte ich die Raspi Partitionen FAT und EXT4 auflösen, so das ein Etcher den freien Bereich wieder zur installation nutzen kann - Aber wie oben erwähnt, meine ich mich zu erinnern, das Etcher alles "platt" macht.

    Hallo, ich hoffe ich habe im richtigen tread platziert.

    Ich hätte gerne gewusst, ob ich ein RaspiOS auf eine SD (bzw. SSD (spielt ja keine Rolle)) aufspielen kann, ohne das mit bei der Installation der ganze Datenträger gelöscht wird.

    Konkret habe ich auf meiner SSD 3 Partitionen - Die FAT und EXT4 für das RaspiOS und noch eine weitere, in diesem Falle eine NTFS - Spielt aber eigentlich keine Rolle.

    Wie kann ich bei einer kompletten Neuinstallation des RaspiOS eine Partition auf der Festplatte und somit die Daten darauf unberührt lassen?

    Mit dem Standard "Balena Etcher" geht das ja nicht, der killt immer den kompletten Datenträger.

    Kann ich das RaspiOS Image irgendwie zerlegen und jeweils in eine FAT bzw EXT4 Partition selbsständig kopieren - und...vermutlich muss ich dann noch die FAT Partition bootfähig machen - oder gibt es da andere Lösungen dafür, die nicht so kompliziert und arbeitsintensiv sind?

    Hat Jemand hierfür eine Lösung? - Wenn ich mir ein Windows installiere muss ich ja auch nicht automatisch alle Partitionen auf der Platte löschen, nur damit sich das Betriebssytem in ein bis zwei eigenen, neuen Partitionen anlegt.

    Über Sinn und Zweck kann man natürlich streiten - Allerdings probiere ich gerne aus und bin mit Linux nicht so bewandert, das ich mir immer mal wieder Fehler reinziehe, die ich aktuell nicht anders gelöst bekomme, als ein Betriebssystem wieder neu aufzuspielen.

    Freue mich auf eine Antwort, Gruß Dirk

    Konfiguration des GPIO mit Raspbian Jessie und Raspberry Pi 3

    Nachdem ich mich damit beschäftigt habe mein GPS Modul am Raspberry Pi 3 zum Laufen zu bringen,
    stieß ich zunächst auf einige Hindernisse. Die meisten Anleitungen zu dem Thema basierten noch auf
    älteren Pi Modellen und/oder des Raspian Wheezy Betriebsystems. Leider kam ich hier nicht weiter.
    :helpnew:
    Dann stieß ich auf einer englischen Seite auf eine tolle Erklärung über die Unterschiede des neuen
    Betriebssystems Jessie in Zusammenarbeit mit dem Raspberry Pi 3. Was sich geändert hat, wo die
    Probleme liegen und wie man sie löst. Ich habe mir nun die Arbeit gemacht diese ins Deutsche zu
    übersetzten und auch hier für andere User zu posten. Im Zweifelsfall oder für Updates sollte man natürlich
    auch mal auf der Originalseite vorbeischauen, ob der Author etwas neues gepostet hat.

    Hier also der Artikel und meine Übersetzung dazu:

    Author:                                      
    Jon Watkins am 29. Mai 2016 in Raspberry Pi
    :danke_ATDE:


    Übersetzt aus dem Englischen von:  
    Dirgi2
    Original Link:                            
    http://spellfoundry.com/2016/05/29/con…including-pi-3/


    Inhalt:

    • Geschichte
    • Benutzung des seriellen Ports mit anderer Hardware
    • Raspberry Pi 3

    Aktivierung

    • Serielle Aliases
    • Vertauschen der seriellen Ports auf dem Raspberry Pi 3

    Früher war das relativ einfach, allerdings hat sich mit der Umstellung des Betriebssystems von
    Wheezy auf Jessie einiges geändert. Hinzu kommt noch die neue Hardware des Radspberry Pi 3
    mit der eingebauten Bluetooth Unterstützung. Plötzlich wurde es recht verwirrend. Nachdem
    ich damit viel Zeit verbracht habe, habe ich hier einmal alles niedergeschrieben, was ich zu
    wissen glaube. Mit etwas Glück sind dies genau die Informationen die Du brauchst um den
    GPIO erfolgreich anzusprechen und auch parallel zu Bluetooth zu betreiben und dies nicht nur
    für den aktuellen Raspberry Pi 3, sonder auch ältere Modelle.

    Hinweis:
    Du brauchst dafür die aktuelle Firmware Mai 2016 (2016.05.10) oder höher
    um damit zu arbeiten. Sollte sich hier etwas ändern, werde ich diesen Beitrag wieder aktualisieren.
    (Anmerkung: Folge hierzu dem Original Link)


    Geschichte:
    Bevor ich tiefer in die Konfiguration einsteige, lohnt sich ein kleiner Ausflug in die Geschichte
    des Raspberry Pi. Wenn Du ein noch ein wenig der alten Schule angehörst, würdest Du erwarten
    einen Header mit dem Namen COM1 o.ä. vorzufinden. Im Rasperry Pi/Linux Land findest Du
    dies äquivalent an den Pins 14 und 15 des GPIO Headers vor.

    Dieser nennt sich hier: /dev/ttyAMA0 .Im Raspberry Pi Land kannst Du den seriellen Port dazu
    benutzen um mit ihm eine Terminal Verbindung herzustellen, welche z.B. nützlich sein kann, sollte
    keine Netzwerk Verbindung möglich sein. Du kannst einen anderen Computer über den seriellen Port
    verbinden um damit zu kommunizieren. Standardmäßig verwendet der Raspberry Pi den seriellen
    Port für diesen "Konsolen" login über ein Software-Service namens "getty". D.h. im Originalzustand
    des Betriebssystems ist der Port bereits so ausgelegt, dass man die Terminalsteuerung nutzen könnte.

    Benutzung des seriellen Ports mit anderer Hardware:
    Dies ist also die normale Konfiguration der seriellen Schnittstelle. Aber serielle Schnittstellen sind
    nun einmal nützliche Dinge. Was würde passieren, wenn wir die serielle Schnittstelle dafür benutzen
    wollen um z.B. GPS-Daten auszulesen, oder mit einem Arduino kommunizieren möchten? -
    Es geht dann nicht. Somit müssen wir zunächst die Konsolenfunktion am seriellen Port abschalten
    um für unsere Belange darauf Zugriff zu bekommen - Richtig? - Ja/Nein. Es steht hier zunächst ein
    großer Elefant im Weg mit dem Namen Raspberry Pi.

    Bevor wir also mit dem seriellen Port kommunizieren können müssen wir über den Raspberry Pi 3
    sprechen, welcher uns zunächst einen großen Strich durch die Rechung macht. Zumindest was den
    seriellen Port anbelangt.


    Raspberry Pi 3:
    RasPi 3's sind großartige kleine Biester mit eingebauter Bluetooth Unterstützung. Wie dem auch sei.
    Um die Bluetooth Funktion einzubinden hat man den /dev/ttyAMA0 vom GPIO Header kurzerhand
    "gestohlen" und im gleichen Atemzug ergänzt durch einen zweiten minderwertigeren Port. Der
    /dev/ttyAMA0 ist ein Hardware Serial Port (UART) mit einer hohen Performance. Der zweite Port,
    teilweise software basierend, ist nicht so performant. Aufgrund dessen wurde der qualitativ bessere
    Port für Bluetooth "abgezweigt". Viele "ältere" Software & Hardware Applikationen wissen dies nicht
    und machen nun Probleme.

    Die nun zweite serielle Schnittstelle auch als "Mini UART" bezeichnet liegt nun am seriellen Port:
    /dev/ttyS0
    . Der Mini UART kalkuliert sein BIT Timing über die CPU Core Frequenz und wenn die CPU
    eine hohe Rechenauslastung hat, kann dies einen negativen Einfluss auf die serielle Kommunikation an
    diesem Anschluss haben. Dies ist wahrlich nicht gut.
    Um diese Problematik zu ungehen, setzten viele Anwender die Core Frequenz (meist auf 250MHz)
    herab, damit die serielle Schnittstelle wieder stabil läuft. Dies führt logischer Weise zu einem leichten
    Leistungsverlust, welchen man allerdings meist nicht bemerkt. Ich beschreibe später wie man das macht.
    Wie dem auch sei, die Änderungen an der seriellen Schnittstelle haben nicht nur ihre negativen Seiten.
    Die Arduino IDE beispielsweise erwartet eine serielle Kommunikation an der /dev/ttyS0. Somit hättest
    Du damit keine Arbeit mehr diese dort abzubilden.

    Um es nochmal zusammenzufassen. Die aktuelle unveränderte Belegung des Paspberry Pi 3 an der
    seriellen Schnittstelle sieht wie folgt aus:

    An: /dev/ttyAMA0 liegt die Bluetooth Kommunikation an
    An: /dev/ttyS0 liegt die GPIO serielle Schnittstelle an.
    (Anmerkung am Rande: AMA0 und S0 ist jeweils eine NUll und kein Buchstabe O)


    Aktivieren:
    Es gibt noch eine kleine Falle vor der Benutzung der seriellen Schnittstelle. Diese ist von Haus aus noch
    deaktiviert (Stand Jessie Mai 2016). Um die Schnittstelle zu aktivieren, kann Du entweder den Weg über
    die grafische Oberfläche gehen, oder den Eintrag dierekt in der config.txt Datei vornehmen. Beide Wege
    führen zum gleichen Ziel.

    Zunächst Aktivierung über die GUI Oberflache: (siehe Bild)

    Gehe zu Einstellungen/Raspberry-Pi-Konfiguration und zum Reiter Schnittstelle. Aktiviere dort
    Seriell
    und bestätige mit OK. Danach musst Du das System neu starten.

    Alternativ: Aktiverung über config.txt:
    1. Öffne die Konsole
    2. Öffne die config Datei durch Eingabe von:

    Code
    sudo nano /boot/config.txt

    3. Bewege dich ganz nach unten und mache dort den Eintrag:

    Code
    enable_uart=1

    4. Speichere nun die Datei mit der Tastenkombination STRG+O und schließe sie danach mit STRG+X
    5. Nun musst Du das System neu starten durch die Eingabe von:

    Code
    sudo reboot

    Anschließend ist nun die serielle Schnittstelle aktiviert. Seit Mai 2016 hat sich damit auch automatisch
    die Core Frequenz auf 250MHz fixiert
    . Somit musst Du dann eigentlich nichts mehr beachten. Wenn
    Du hierbei auf Nummer sicher gehen möchtest, füge der Datei config.txt noch folgenden manuellen
    Eintrag an: Vorgehensweise wie oben bereits genannt:

    Code
    core_freq=250

    Somit steht einer stabilen Kommunikation über die serielle Schnittstelle für die meisten Anwendugen nichts
    mehr im Wege.


    Serielle Aliases:
    Auf dem Raspberry Pi 3 heißt der zweite serielle Port /dev/ttyS0 (wie bereits erwähnt) und ist standardgemäß
    den GPIO PINs 14 & 15 zugewiesen. Wenn Ihr (besonders ältere) Sofware habt, greift diese standardgemäß
    auf den ersten Port zu, welcher hier der /dev/ttyAMA0 ist. Ihr werdet also Probleme bekommen und die
    Software wird nicht funktionieren. Natürlich könntet Ihr nun den Software Code überabeiten und jeweils
    AMA0
    durch S0 ersetzen. Allerdings kann es vielleicht sein, dass Ihr gar keinen Zugriff auf die
    Softwareprogrammierung habt und/oder ihr die Software beispielsweise über eine SD-Karte bei dem RasPi 3
    und gleichzeitig anderen Modellen verwenden möchtet. Dann habt Ihr hier ein Problem.

    Um das Problem zu umschiffen hat die Raspberry Pi Foundation (Mai 2016) den Serial Port Alias eingeführt.
    Dadurch erhält das System die serielle Ports serial0 und serial1 (nur beim RasPi3). Der Raspberry Kernel stellt
    fest, auf welchem Raspberry Modell ihr Euch befindet und verweist demenstprechend darauf. Der serial0 auf
    einem RasPi 3 verweist somit auf die GPIO PINS 14 & 15 und beutzt dabei den Mini-UART, also den
    /dev/ttyS0
    während bei anderen Modellen auf den Hardware UART /dev/ttyAMA0 verwiesen wird.

    Um auf Euerem Raspberry Pi einmal festzustellen worauf der Kernel verweisst, könnt Ihr einmal folgenden
    Befehl in die Konsole eingeben:

    Code
    ls -l /dev

    In dem darauffolgenden Listing (ihr müsst Euch im Listing etwas aufwärts bewegen) werdet Ihr nun hierzu
    vermutlich folgende Einträge sehen:


    Standard Raspberry PI 3 serielle Port-Aliases


    Standard Raspberry PI 2 serielle Port-Aliases

    Damit ergibt sich folgendes: Wo es auch immer möglich sollte, wenn man den seriellen Port ansprechen möchte
    sollte auf den serial0 verwiesen werden. Dann sollte die Software unter allen bisherigen System laufen und um den
    Rest kümmert sich der Raspberry Pi.


    Deaktivieren der Konsole:
    Wenn Du die serielle Schnittstelle für etwas anderes als die Konsole benutzen möchtest
    (ich erwähnte dies Eingangs schon), muss Du natürlich die Konsolenfunktion zwingend abschalten sonst wird
    Deine serielle Schnittstelle so für Deine Zwecke nicht funktionieren. Für nicht Raspberry Pi 3 Modelle denke daran,
    es ist der /dev/ttyAMA0 der mit dem getty Konsolendienst verbunden ist.

    Folgende Befehle muss Du in der Konsole (Terminalfenster) eingeben um den Konsolendienst über die serielle
    Schnittstelle zunächst zu stoppen und beim erneuten Hochfahren des Raspberry Pi eine erneute Einbindung zu
    verhindern:

    Code
    sudo systemctl stop serial-getty@ttyAMA0.service
     sudo systemctl disable serial-getty@ttyAMA0.service

    Bei dem Raspberry Pi 3 ist der Befehl ähnlich, alledings wie oben gelernt auf den /dev/ttyS0 referenziert:

    Code
    sudo systemctl stop serial-getty@ttyS0.service
     sudo systemctl disable serial-getty@ttyS0.service

    Zu guter Letzt musst Du auch noch eine Änderung in der cmdline.txt Datei vornehmen, damit die Änderung
    Bestand hat. Hierzu öffnest Du den Terminal und wechselst zunächst in Verzeichnis der Datei:

    Code
    cd /boot

    Mache dann am besten gleich eine Sicherheitskopie im gleichen Verzeichnis mit dem Befehl:

    Code
    sudo cp cmdline.txt cmdline.txt.old

    Öffnen nun die Datei mit:

    Code
    sudo nano cmdline.txt

    Suche nun nach folgendem Eintrag (o.ä.)
    console=serial0,115200
    und lösche ihn. Bei mir sieht dass dann wie folgt aus:
    Vorher:

    Code
    dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes root wait

    Nachher:

    Code
    dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes root wait

    Speichere nun die Datei mit der Tastenkombination STRG+O und schließe sie danach mit STRG+X
    Nun musst Du das System neu starten durch die Eingabe von:

    Code
    sudo reboot


    Vertauschen der seriellen Ports auf dem Raspberry Pi 3:
    Was wäre, wenn Du Bluetooth gar nicht benötigst und stattdessen dem Raspberry Pi die volle Leistung
    des Hardware Serial Ports /dev/ttyAMA0 am GPIO gönnen möchtest? - Also die Belegungen tauschen?
    Das kannst Du natürlich machen und zwar über ein Device overlay mit Namen: pi3-miniuart-bt.
    Du nutzt dann den Hardware Serial Port für Dich und Bluetooth läuft dann über den mini-UART
    /dev/ttyS0. Natürlich ist dann die Performance für Bluetooth nicht mehr so gut, aber vielleicht
    reicht es Dir ja aus, solltest Du Bluetooth weiterhin benötigen. Ebenso könntest Du natürlich
    Bluetooth komplett abschalten mit einem anderen Device overlay Names: pi3-disable-bt.
    In beiden Fällen erhältst Du weitere Informationen darüber in der Readme Datei unter:
    /boot/overlays/README
    .

    Hier der Auszug der relevanten Teile aus der README Datei:

    Name: pi3-disable-bt
    Info: Disable Pi3 Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15
    N.B. To disable the systemd service that initialises the modem so it
    doesn't use the UART, use 'sudo systemctl disable hciuart'.
    Load: dtoverlay=pi3-disable-bt
    Params: <None>

    Name: pi3-miniuart-bt
    Info: Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore
    UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum
    usable baudrate.
    N.B. It is also necessary to edit /lib/systemd/system/hciuart.service
    and replace ttyAMA0 with ttyS0, unless you have a system with udev rules
    that create /dev/serial0 and /dev/serial1, in which case use
    /dev/serial1 instead because it will always be correct. Furthermore,
    you must also set core_freq=250 in config.txt or the miniuart will not
    work.
    Load: dtoverlay=pi3-miniuart-bt
    Params: <None>

    Wie dem auch sei. Wenn Du also die Ports vertauschen möchtest, gehst Du wie folgt vor: Öffne
    wieder die config.txt Datei über die Konsole mit:

    Code
    sudo nano /boot/config.txt

    und füge folgenden Befehl am Ende hinzu:

    Code
    dtoverlay=pi3-miniuart-bt

    speichere und schließe wieder die config.txt Datei. Um zu sehen, ob alles soweit OK ist reboote
    den Raspberry Pi erneut (siehe oben). Wenn Du Dir nun erneut eine Übersicht über die Belegung
    anzeigen lässt mit dem Befehl:

    Code
    ls -l /dev

    dann sollte in Deinem Listing folgende Aussage erscheinen:

    Wir vergleichen nun noch einmal mit vorher:

    und, wie wir sehen können wurden die Ports nun vertauscht.
    Aus der oben genannten Readme erfahren wir allerdings, dass es damit evtl. noch nicht getan ist.
    Denn: Sollte ein Programmierer mittlerweile in seinem Programm die Problematik berücksichtigen und die
    Ports über serial0 bzw. serial1 ansprechen stimmt dies nun nicht mehr. Du musst also folgende Datei öffnen:

    Code
    sudo nano /lib/systemd/system/hciuart.service

    und die darin enthaltenen Bzeichnungen: ttyAMA0 ttyS0 ersetzen. Speichern mit STRG+O, schließen
    mit STRG+X. Sollten in der Datei keine ttyAMA0 Bezeichnungen gestanden sein, war/ist vermutlich
    Deine Bluetooth Schnittstelle hier gar nicht aktiv gewesen. Dies kannst Du einfach auf der grafischen
    Oberfläche sehen ob das Bleutooth Icon in der Systemleiste ausgegraut ist. Dann braucht Du hier natürlich
    keine Einträge machen. Solltest Du Änderungen gemacht haben, muss Du natürlich noch lt. README den
    CORE Frequency Takt Eintrag in der config.txt Anpassen. Du ruft also die config.txt auf mit:

    Code
    sudo nano /boot/config.txt

    und fügst folgenden Text an:

    Code
    core_freq=250

    Das war's,
    viel Spaß und ich hoffe die Belegung der Ports unter dem rasPi3 mit Jessie ist nun etwas verständlicher. :thumbs1:

    Konfiguration des GPIO mit Raspbian Jessie und Raspberry Pi 3

    Nachdem ich mich damit beschäftigt habe mein GPS Modul am Raspberry Pi 3 zum Laufen zu bringen,
    stieß ich zunächst auf einige Hindernisse. Die meisten Anleitungen zu dem Thema basierten noch auf
    älteren Pi Modellen und/oder des Raspian Wheezy Betriebsystems. Leider kam ich hier nicht weiter.
    :helpnew:
    Dann stieß ich auf einer englischen Seite auf eine tolle Erklärung über die Unterschiede des neuen
    Betriebssystems Jessie in Zusammenarbeit mit dem Raspberry Pi 3. Was sich geändert hat, wo die
    Probleme liegen und wie man sie löst. Ich habe mir nun die Arbeit gemacht diese ins Deutsche zu
    übersetzten und auch hier für andere User zu posten. Im Zweifelsfall oder für Updates sollte man natürlich
    auch mal auf der Originalseite vorbeischauen, ob der Author etwas neues gepostet hat.

    Hier also der Artikel und meine Übersetzung dazu:

    Author:                                      
    Jon Watkins am 29. Mai 2016 in Raspberry Pi
    :danke_ATDE:


    Übersetzt aus dem Englischen von:  
    Dirgi2
    Original Link:                            
    http://spellfoundry.com/2016/05/29/con…including-pi-3/


    Inhalt:

    • Geschichte
    • Benutzung des seriellen Ports mit anderer Hardware
    • Raspberry Pi 3

    Aktivierung

    • Serielle Aliases
    • Vertauschen der seriellen Ports auf dem Raspberry Pi 3

    Früher war das relativ einfach, allerdings hat sich mit der Umstellung des Betriebssystems von
    Wheezy auf Jessie einiges geändert. Hinzu kommt noch die neue Hardware des Radspberry Pi 3
    mit der eingebauten Bluetooth Unterstützung. Plötzlich wurde es recht verwirrend. Nachdem
    ich damit viel Zeit verbracht habe, habe ich hier einmal alles niedergeschrieben, was ich zu
    wissen glaube. Mit etwas Glück sind dies genau die Informationen die Du brauchst um den
    GPIO erfolgreich anzusprechen und auch parallel zu Bluetooth zu betreiben und dies nicht nur
    für den aktuellen Raspberry Pi 3, sonder auch ältere Modelle.

    Hinweis:
    Du brauchst dafür die aktuelle Firmware Mai 2016 müssen (2016.05.10)
    oder höher
    um damit zu arbeiten. Sollte sich hier etwas ändern, werde ich diesen Beitrag
    wieder aktualisieren. (Anmerkung: Folge hierzu dem Original Link)


    Geschichte:
    Bevor ich tiefer in die Konfiguration einsteige, lohnt sich ein kleiner Ausflug in die Geschichte
    des Raspberry Pi. Wenn Du ein noch ein wenig der alten Schule angehörst, würdest Du erwarten
    einen Header mit dem Namen COM1 o.ä. vorzufinden. Im Rasperry Pi/Linux Land findest Du
    dies äquivalent an den Pins 14 und 15 des GPIO Headers vor.

    Dieser nennt sich hier: /dev/ttyAMA0 .Im Raspberry Pi Land kannst Du den seriellen Port dazu
    benutzen um mit ihm eine Terminal Verbindung herzustellen, welche z.B. nützlich sein kann, sollte
    keine Netzwerk Verbindung möglich sein. Du kannst einen anderen Computer über den seriellen Port
    verbinden um damit zu kommunizieren. Standardmäßig verwendet der Raspberry Pi den seriellen
    Port für diesen "Konsolen" login über ein Software-Service namens "getty". D.h. im Originalzustand
    des Betriebssystems ist der Port bereits so ausgelegt, dass man die Terminalsteuerung nutzen könnte.

    Benutzung des seriellen Ports mit anderer Hardware:
    Dies ist also die normale Konfiguration der seriellen Schnittstelle. Aber serielle Schnittstellen sind
    nun einmal nützliche Dinge. Was würde passieren, wenn wir die serielle Schnittstelle dafür benutzen
    wollen um z.B. GPS-Daten auszulesen, oder mit einem Arduino kommunizieren möchten? -
    Es geht dann nicht. Somit müssen wir zunächst die Konsolenfunktion am seriellen Port abschalten
    um für unsere Belange darauf Zugriff zu bekommen - Richtig? - Ja/Nein. Es steht hier zunächst ein
    großer Elefant im Weg mit dem Namen Raspberry Pi.

    Bevor wir also mit dem seriellen Port kommunizieren können müssen wir über den Raspberry Pi 3
    sprechen, welcher uns zunächst einen großen Strich durch die Rechung macht. Zumindest was den
    seriellen Port anbelangt.


    Raspberry Pi 3:
    RasPi 3's sind großartige kleine Biester mit eingebauter Bluetooth Unterstützung. Wie dem auch sei.
    Um die Bluetooth Funktion einzubinden hat man den /dev/ttyAMA0 vom GPIO Header kurzerhand
    "gestohlen" und im gleichen Atemzug ergänzt durch einen zweiten minderwertigeren Port. Der
    /dev/ttyAMA0 ist ein Hardware Serial Port (UART) mit einer hohen Performance. Der zweite Port,
    teilweise software basierend, ist nicht so performant. Aufgrund dessen wurde der qualitativ bessere
    Port für Bluetooth "abgezweigt". Viele "ältere" Software & Hardware Applikationen wissen dies nicht
    und machen nun Probleme.

    Die nun zweite serielle Schnittstelle auch als "Mini UART" bezeichnet liegt nun am seriellen Port:
    /dev/ttyS0
    . Der Mini UART kalkuliert sein BIT Timing über die CPU Core Frequenz und wenn die CPU
    eine hohe Rechenauslastung hat, kann dies einen negativen Einfluss auf die serielle Kommunikation an
    diesem Anschluss haben. Dies ist wahrlich nicht gut.
    Um diese Problematik zu ungehen, setzten viele Anwender die Core Frequenz (meist auf 250MHz)
    herab, damit die serielle Schnittstelle wieder stabil läuft. Dies führt logischer Weise zu einem leichten
    Leistungsverlust, welchen man allerdings meist nicht bemerkt. Ich beschreibe später wie man das macht.
    Wie dem auch sei, die Änderungen an der seriellen Schnittstelle haben nicht nur ihre negativen Seiten.
    Die Arduino IDE beispielsweise erwartet eine serielle Kommunikation an der /dev/ttyS0. Somit hättest
    Du damit keine Arbeit mehr diese dort abzubilden.

    Um es nochmal zusammenzufassen. Die aktuelle unveränderte Belegung des Paspberry Pi 3 an der
    seriellen Schnittstelle sieht wie folgt aus:

    An: /dev/ttyAMA0 liegt die Bluetooth Kommunikation an
    An: /dev/ttyS0 liegt die GPIO serielle Schnittstelle an.
    (Anmerkung am Rande: AMA0 und S0 ist jeweils eine NUll und kein Buchstabe O)


    Aktivieren:
    Es gibt noch eine kleine Falle vor der Benutzung der seriellen Schnittstelle. Diese ist von Haus aus noch
    deaktiviert (Stand Jessie Mai 2016). Um die Schnittstelle zu aktivieren, kann Du entweder den Weg über
    die grafische Oberfläche gehen, oder den Eintrag dierekt in der config.txt Datei vornehmen. Beide Wege
    führen zum gleichen Ziel.

    Zunächst Aktivierung über die GUI Oberflache: (siehe Bild)

    Gehe zu Einstellungen/Raspberry-Pi-Konfiguration und zum Reiter Schnittstelle. Aktiviere dort
    Seriell
    und bestätige mit OK. Danach musst Du das System neu starten.

    Aktiverung über config.txt:
    1. Öffne die Konsole
    2. Öffne die config Datei durch Eingabe von:

    Code
    sudo nano /boot/config.txt


    3. Bewege dich ganz nach unten und mache dort den Eintrag:

    Code
    enable_uart=1


    4. Speichere nun die Datei mit der Tastenkombination STRG+O und schließe sie danach mit STRG+X
    5. Nun musst Du das System neu starten durch die Eingabe von:

    Code
    sudo reboot

    Anschließend ist nun die serielle Schnittstelle aktiviert. Seit Mai 2016 hat sich damit auch automatisch
    die Core Frequenz auf 250MHz fixiert
    . Somit musst Du dann eigentlich nichts mehr beachten. Wenn
    Du hierbei auf Nummer sicher gehen möchtest, füge der Datei config.txt noch folgenden manuellen
    Eintrag an: Vorgehensweise wie oben bereits genannt:

    Code
    core_freq=250


    Somit steht einer stabilen Kommunikation über die serielle Schnittstelle für die meisten Anwendugen nichts
    mehr im Wege.


    Serielle Aliases:
    Auf dem Raspberry Pi 3 heißt der zweite serielle Port /dev/ttyS0 (wie bereits erwähnt) und ist standardgemäß
    den GPIO PINs 14 & 15 zugewiesen. Wenn Ihr (besonders ältere) Sofware habt, greift diese standardgemäß
    auf den ersten Port zu, welcher hier der /dev/ttyAMA0 ist. Ihr werdet also Probleme bekommen und die
    Software wird nicht funktionieren. Natürlich könntet Ihr nun den Software Code überabeiten und jeweils
    AMA0
    durch S0 ersetzen. Allerdings kann es vielleicht sein, dass Ihr gar keinen Zugriff auf die
    Softwareprogrammierung habt und/oder ihr die Software beispielsweise über eine SD-Karte bei dem RasPi 3
    und gleichzeitig anderen Modellen verwenden möchtet. Dann habt Ihr hier ein Problem.

    Um das Problem zu umschiffen hat die Raspberry Pi Foundation (Mai 2016) den Serial Port Alias eingeführt.
    Dadurch erhält das System die serielle Ports serial0 und serial1 (nur beim RasPi3). Der Raspberry Kernel stellt
    fest, auf welchem Raspberry Modell ihr Euch befindet und verweist demenstprechend darauf. Der serial0 auf
    einem RasPi 3 verweist somit auf die GPIO PINS 14 & 15 und beutzt dabei den Mini-UART, also den
    /dev/ttyS0
    während bei anderen Modellen auf den Hardware UART /dev/ttyAMA0 verwiesen wird.

    Um auf Euerem Raspberry Pi einmal festzustellen worauf der Kernel verweisst, könnt Ihr einmal folgenden
    Befehl in die Konsole eingeben:

    Code
    ls -l /dev


    In dem darauffolgenden Listing (ihr müsst Euch im Listing etwas aufwärts bewegen) werdet Ihr nun hierzu
    vermutlich folgende Einträge sehen:


    Standard Raspberry PI 3 serielle Port-Aliases


    Standard Raspberry PI 2 serielle Port-Aliases

    Damit ergibt sich folgendes: Wo auch immer möglich sollte, wenn man den serielle Port ansprechen möchte
    auf den serial0 verweisen werden. Dann sollte die Software unter allen bisherigen System laufen und um den
    Rest kümmert sich der Raspberry Pi.


    Deaktivieren der Konsole:
    Wenn Du die serielle Schnittstelle für etwas anderes als die Konsole benutzen möchtest
    (ich erwähnte dies Eingangs schon), muss Du natürlich die Konsolenfunktion zwingend abschalten sonst wird
    Deine serielle Schnittstelle so für Deine Zwecke nicht funktionieren. Für nicht Raspberry Pi 3 Modelle denke daran,
    es ist der /dev/ttyAMA0 der mit dem getty Konsolendienst verbunden ist.

    Folgende Befehle muss Du in der Konsole (Terminalfenster) eingeben um den Konsolendienst über die serielle
    Schnittstelle zunächst zu stoppen und beim erneuten Hochfahren des Raspberry Pi eine erneute Einbindung zu
    verhindern:

    Code
    sudo systemctl stop serial-getty@ttyAMA0.service
     sudo systemctl disable serial-getty@ttyAMA0.service

    Bei dem Raspberry Pi 3 ist der Befehl ähnlich, alledings wie oben gelernt auf den /dev/ttyS0 referenziert:

    Code
    sudo systemctl stop serial-getty@ttyS0.service
     sudo systemctl disable serial-getty@ttyS0.service

    Zu guter Letzt musst Du auch noch eine Änderung in der cmdline.txt Datei vornehmen, damit die Änderung
    Bestand hat. Hierzu öffnest Du den Terminal und wechselst zunächst in Verzeichnis der Datei:

    Code
    cd /boot


    Mache dann am besten gleich eine Sicherheitskopie im gleichen Verzeichnis mit dem Befehl:

    Code
    sudo cp cmdline.txt cmdline.txt.old


    Öffnen nun die Datei mit:

    Code
    sudo nano cmdline.txt


    Suche nun nach folgendem Eintrag (o.ä.)
    console=serial0,115200
    und lösche ihn. Bei mir sieht dass dann wie folgt aus:
    Vorher:

    Code
    dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes root wait


    Nachher:

    Code
    dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes root wait


    Speichere nun die Datei mit der Tastenkombination STRG+O und schließe sie danach mit STRG+X
    Nun musst Du das System neu starten durch die Eingabe von:

    Code
    sudo reboot


    Vertauschen der seriellen Ports auf dem Raspberry Pi 3:
    Was wäre, wenn Du Bluetooth gar nicht benötigst und stattdessen dem Raspberry Pi die volle Leistung
    des Hardware Serial Ports /dev/ttyAMA0 am GPIO gönnen möchtest? - Also die Belegungen tauschen?
    Das kannst Du natürlich machen und zwar über ein Device overlay mit Namen: pi3-miniuart-bt.
    Du nutzt dann den Hardware Serial Port für Dich und Bluetooth läuft dann über den mini-UART
    /dev/ttyS0. Natürlich ist dann die Performance für Bluetooth nicht mehr so gut, aber vielleicht
    reicht es Dir ja aus, solltest Du Bluetooth weiterhin benötigen. Ebenso könntest Du natürlich
    Bluetooth komplett abschalten mit einem anderen Device overlay Names: pi3-disable-bt.
    In beiden Fällen erhältst Du weitere Informationen darüber in der Readme Datei unter:
    /boot/overlays/README
    .

    Hier der Auszug der relevanten Teile aus der README Datei:

    Name: pi3-disable-bt
    Info: Disable Pi3 Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15
    N.B. To disable the systemd service that initialises the modem so it
    doesn't use the UART, use 'sudo systemctl disable hciuart'.
    Load: dtoverlay=pi3-disable-bt
    Params: <None>

    Name: pi3-miniuart-bt
    Info: Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore
    UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum
    usable baudrate.
    N.B. It is also necessary to edit /lib/systemd/system/hciuart.service
    and replace ttyAMA0 with ttyS0, unless you have a system with udev rules
    that create /dev/serial0 and /dev/serial1, in which case use
    /dev/serial1 instead because it will always be correct. Furthermore,
    you must also set core_freq=250 in config.txt or the miniuart will not
    work.
    Load: dtoverlay=pi3-miniuart-bt
    Params: <None>

    Wie dem auch sei. Wenn Du also die Ports vertauschen möchtest, gehst Du wie folgt vor: Öffne
    wieder die config.txt Datei über die Konsole mit:

    Code
    sudo nano /boot/config.txt


    und füge folgenden Befehl am Ende hinzu:

    Code
    dtoverlay=pi3-miniuart-bt


    speichere und schließe wieder die config.txt Datei. Um zu sehen, ob alles soweit OK ist reboote
    den Raspberry Pi erneut (siehe oben). Wenn Du Dir nun erneut eine Übersicht über die Belegung
    anzeigen lässt mit dem Befehl:

    Code
    ls -l /dev


    dann sollte in Deinem Listing folgende Aussage erscheinen:


    Wir vergleichen nun noch einmal mit vorher:

    und, wie wir sehen können wurden die Ports nun vertauscht.
    Aus der oben genannten Readme erfahren wir allerdings, dass es damit evtl. noch nicht getan ist.
    Denn: Sollte ein Programmierer mittlerweile in seinem Programm die Problematik berücksichtigen und die
    Ports über serial0 bzw. serial1 ansprechen stimmt dies nun nicht mehr. Du musst also folgende Datei öffnen:

    Code
    sudo nano /lib/systemd/system/hciuart.service


    und die darin enthaltenen Bzeichnungen: ttyAMA0 ttyS0 ersetzen. Speichern mit STRG+O, schließen
    mit STRG+X. Sollten in der Datei keine ttyAMA0 Bezeichnungen gestanden sein, war/ist vermutlich
    Deine Bluetooth Schnittstelle hier gar nicht aktiv gewesen. Dies kannst Du einfach auf der grafischen
    Oberfläche sehen ob das Bleutooth Icon in der Systemleiste ausgegraut ist. Dann braucht Du hier natürlich
    keine Einträge machen. Solltest Du Änderungen gemacht haben, muss Du natürlich noch lt. README den
    CORE Frequency Takt Eintrag in der config.txt Anpassen. Du ruft also die config.txt auf mit:

    Code
    sudo nano /boot/config.txt


    und fügst folgenden Text an:

    Code
    core_freq=250

    Das war's,
    viel Spaß und ich hoffe die Belegung der Ports unter dem rasPi3 mit Jessie ist nun etwas verständlicher. :thumbs1:


    Automatisch zusammengefügt:

    Nö, hat leider auch nicht geklappt (beide Vorgehensweisen).
    Aber ich vermute GPIO ist hier der Ansatz, denn aus meiner Laien Sicht vereinfacht gesagt:
    Sperre ich die Versorgung (Strom etc.) sollte das Teil aus sein.


    Trotzdem Danke


    Faszinierend! Mich hat gerade das Datum des Treibers stutzig gemacht: LCD-show-160811.tar.gz
    Ich habe zwar nicht den Inhalt verglichen, aber irgendwie kommt mir es so vor, als ob sich Spotpear Electrics bei Waveshare vergriffen hat: http://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A)
    und einfach nur deren Treiber bereitstellt ...
    Wo hast Du Dein Display denn bestellt?

    /luetzel

    Hallo Luetzel,
    das Teil habe ich "im großen Fluss" bestellt.
    Die haben da auch mehrere Anbieter u.a. auch WaveShare und auch mehrer Displaygrößen.

    Ich weiss jetzt garnicht mehr ob Spotpear auch den Kuman vercheckt. Wie gesagt, bin über diverse Kommentare dorthin gekommen.
    Da hat auch einer sein Kuman damit aktiviert. Somit (habe nicht genau nachgesehen) kann es sein das Spotpear tatsächlich auch
    das Waveshare verkauft und auch somit deren Treiber logischer Weise benutzt.
    Den Waveshare Link habe ich übrigen auch mittlerweile entdeckt. Und ja, es sind exakt die gleichen Treiberdateien, denn beide
    haben auch die gleichen Fehler drin :D

    Hatte ja auch erwähnt das ich vermute, dass wahrscheinlich alle angebotenen Displays dieser Art aus ein und der selben "China Klitsche"
    kommen und einfach nur umgelabelt werden. Deshalb funktioniert der Treiber wohl bei vielen (wenn auch nicht Waveshare) Modellen.

    In der Zwischenzeit habe ich mal die Treiber mit meinem Laien-Linux-Wissen analysiert (deshalb habe ich auch die gleichen Fehler gefunden).
    Mich hat es nämlich gewurmt, nachdem ich den Treiber und somit das Display zum laufen gebracht hatte, mir der Treiber alles umgestellt
    hatte - Somit meine alten Config Einträge verloren waren und wenn ich per Fernsteuerung (TeamViewer) auf den RasPi Zugriff,
    dann immer nur noch die kleine Auflösung auf meinem großen Monitor erschien.
    WaveShare erklärt zwar, dass man dass durch aufrufen von ./LCD-hdmi zurückstellen kann. Es geht zwar, aber erstens sind in dem Script Fehler drin
    (er sucht nach Dateien die es gar nicht gibt) und zweitens kopiert er dann eine Standard Config zurück, welches aber nicht meine vorherige war und
    dann somit auch nicht mehr stimmt.

    Ich habe mir also eine kleine Scriptdatei geschrieben welche aufgerufen wird, zunächst alle meine Originaldaten sichert, dann die LCD-Treiber
    Installation startet und in den LCD-Displaymodus hochfährt.
    Möchte ich danach wieder den HDMI-Modus haben, rufe ich sie erneut auf und er macht wieder alles rückgängig und so weiter im Wechsel.
    Funktioniert prima und ist bequem. Werde es demnächst im meinem Tutorial nachträglich einbauen.

    Jetzt stört mich nur noch, dass das Display permanent ein weißes backlight hat wenn der RasPi zwar noch am Strom hängt, aber runtergefahren
    ist. Wenn ich hierzu was finde postet ich das hier auch noch. Eventuelle versierte Leser dieses Beitrages mit einer Lösung sind natürlich herzlich willkommen.


    Gruß Dirk

    Ich bin gerade dabei auszuprobieren,
    ob ich trotz angeschlossenem Display, das Display bei Bedarf z.B. in der Config temporär abschalten kann, so dass ich bei einem Restart wieder die "normale Größe" habe.
    Das würde ja zu Wartungszwecken ausreichen, auch wenn es etwas unbequem ist.
    Allerdings hänge ich da gerade.

    Was ich allerdings auch festgestellt habe: Ziehe ich das Display vom GPIO ab und boote dann, habe ich nun auch immer noch die geringe Auflösung beim teamviewer.
    D.h. eigentlich sollte es dem System dann egal sein, ob das Display auf dem GPIO steckt oder nicht. Man muss nur über die Software temporär
    das Display deaktivieren. Aber hier hänge ich momentan.


    Moin,
    teamviewer greift sich, grob beschrieben, die Displayausgabe. Und wenn sie, wie in deinem Fall, auf 320x480 eingestellt ist, dann wird es so dargestellt.

    Gruss Bernd

    Moin Bernd, danke für die Antwort - Was ich mir leider schon so gedacht hatte.
    Noch 'ne Frage, weißt Du ob es Alternativen in dem Falle gibt, wie z.B. VNC oder XRDP
    wo ich das Problem "umschiffen" kann ?

    Gruß Dirk

    Hi - naja, das Problem wird sein sobald Du grafisch damit "arbeiten" willst, sich die meisten grafischen Oberflächen damit nicht anzeigen lassen, weil Du schlicht deren angedachte Minimum Darstellungsgröße unterschreitest. Das kleine Display mit dieser Auflösung bringt Dir im Prinzip nur etwas wenn
    a) der Programmanbieter so eine kleine Darstellungsweise seiner Fenster unterstützt
    b) Du Dir selbst passende grafische Oberflächen in deiner Software programmierst oder halt
    c) explizit auf Software zurückgreifst, welche für das Display ausgelegt ist.

    Ansonsten wird es eben teilweise schwierig, zu groß geratene Menüs etc. auf dem kleinen Bildschirm zu bedienen.

    Als Beispiel wäre hier der Coole WLAN Musikmediaplayer NEWTRON

    NewTron-Radio: Auflösungsunabhängiges Tron-Radio
    von veloci zu nennen.

    Ich vermute mal um auf einem kleinen Display annähern jede Software angemessen öffnen zu können, so damit die Darstellung passt und auch Menüs sich richtig
    darstellen, sollte das Display wenigsten 800x600 o.ä. abbilden können.