Raspberry Pi installieren: webOS OSE

Hier gibt's Anleitungen und Themen dazu.
Antworten

Themenstarter
Outi
Administrator
Administrator
Beiträge: 474
Registriert: 13.02.2015, 22:24
RasPis: 10+
Kontaktdaten:

Raspberry Pi installieren: webOS OSE

Beitrag von Outi »

History:
11.10.2023 - Hinweis zu den Images auf GitHub hinzugefügt
27.09.2021 - Hinweis zur Unterstützung von Ubuntu bis Version 20.04 LTS hinzugefügt
06.03.2019 - Hinweis zur Unterstützung von Ubuntu bis Version 18.04 LTS hinzugefügt
27.05.2018 - Erste Fertigstellung



Hinweis:
Diese Anleitung/Information erhebt keinen Anspruch auf Vollständigkeit und kann Fehler enthalten und die Benutzung erfolgt auf eigene Gefahr.
Es wird keinerlei Haftung für Schäden und/oder Datenverluste übernommen.

Info:
Inzwischen gibt es auf GitHub Images für den Raspberry Pi 4B: Externer Link Images auf Github

Daher sollte diese Anleitung nicht mehr ganz notwendig sein, was ich jedoch mangels passender Geräte und anderer Prioritäten nicht mehr nachgeprüft habe.

Hier nun der Text der alten Anleitung:

Während des Erstellens dieser Anleitung habe ich mich manchmal gefragt, ob sich die Mühe lohnt, denn z.B. das Einrichten eines extra PCs mit Ubuntu und später das Kompilieren des Systems hat nicht unerheblich Zeit gekostet. Zudem kamen während des Kompilierens einige Warnmeldungen, die aber letztendlich das Image nicht verhindert haben, das Image läuft. Wer in dieser Richtung für dieses System entwickeln möchte, hat sicherlich seine Freude daran aber die ganze Aktion, nur um was "Fertiges" zu nutzen, scheitert wohl daran, dass es eben nicht viel Fertiges (nach der Installation) gibt. Ich denke aber, diejenigen, die die Chance nutzen wollen, webOS OSE auf einem Raspberry Pi zu nutzen und dafür zu entwickeln, haben hier eine gute Möglichkeit. Dafür habe ich diese Anleitung gemacht und es hat trotz der langwierigen Phasen sehr viel Spaß bereitet.


Bild

Das webOS wurde ursprünglich als System/Oberfläche von Palm für deren Geräte entwickelt, dann von anderen Firmen gekauft/lizensiert, weiterentwickelt und letztendlich komplett verkauft.
Inzwischen handelt es sich um eine offizielle Open Source Version, die für den Raspberry Pi optimiert wurde.
Das neue OS wurde zwar von LG veröffentlicht, jedoch handelt es sich um ein unabhängiges Projekt mit eigener Webseite und dem Namen webOS Open Source Edition oder kurz webOS OSE.


Inhaltsverzeichnis:
(1) Wichtige Infos
(2) Linux PC für Imageerstellung einrichten
(3) Linux PC: Terminalfenster starten
(4) Linux PC: Paketaktualisierung durchführen
(5) Linux PC: SSH installieren
(6) Linux PC: Git installieren
(7) Linux PC: webosOSE Image erstellen
(8) Linux PC oder Host PC (Linux, Windows, MAC): webosOSE Image auf SD Karte übertragen
(9) Raspberry Pi 3B: Image testen
(10) Raspberry Pi 3B: Netzwerk konfigurieren
(11) Raspberry Pi 3B: Sonstiges


(1) Wichtige Infos

Info:
Zum aktuellen Zeitpunkt ist kein fertiges SD Karten Image verfügbar, daher ist die Installation deutlich aufwändiger als z.B. bei Raspbian.

Zwei wichtige Punkte:
  1. Die Macher von Externer Link webOS OSE setzen für die Installation einen PC mit Ubuntu 14.04 LTS 64Bit voraus*
  2. Das System funktioniert laut originaler Webseite nur auf einem Raspberry Pi 3B
*Es soll einigen schon gelungen sein, Ubuntu 16.04 oder gar 17.xx erfolgreich einzusetzen.
Die webos OSE Macher planen zudem offiziell die Unterstützung von Ubuntu 18.xx.


Update vom 27.09.2021:
Inzwischen wurde von den Initiatoren von WebOS OSE die Installation angepasst und als PC System zur Erstellung des Images können folgende Ubuntu Versionen genutzt werden:
  • Ubuntu 14.04 LTS (Trusty Tahr) 64-bit
  • Ubuntu 16.04 LTS (Xenial Xerus) 64-bit
  • Ubuntu 18.04 LTS (Bionic Beaver) 64-bit
  • Ubuntu 20.04 LTS (Focal Fossa) 64-bit
Das Erstellen von webOS OSE ist momentan unter Windows oder Mac OS nicht möglich.
Des Weiteren wird auf dem Linux PC Git und Python benötigt, wobei Git dann noch installiert werden muss.
Python selbst ist sowohl in Version 2 als auch 3 bereits vorhanden.
Der Pi 4B 8GB wird aktuell noch nicht unterstützt.

Für Git wird ein GitHub Account benötigt !!
Wer bereits einen hat, kann diesen verwenden.
Wer keinen hat, muss sich einen anlegen (Pfade weiter unten in der Anleitung).
Wer keinen anlegen möchte, kann hier aufhören zu lesen, da es ohne Account nicht funktioniert.


Weitere Voraussetzungen für den Pi sollen sein:
  • MicroSD Karte (8 GB oder größer) und microSD Kartenleser
  • HDMI Monitor und Kabel
  • Tastatur und Maus
  • Netzwerkkabel und Internetverbindung
Da nun - wie oben schon erwähnt - ein PC mit einem installierten Ubuntu benötigt wird, warnt die webOS OSE Webseite vor der Nutzung virtueller Ubuntu Installationen (z.B. VMware oder VirtualBox):
webosose.org hat geschrieben:We strongly recommend you NOT to use Linux virtual machine on Windows or Mac OS for building webOS OSE, as it may cause unexpected issues.
Frei übersetzt:
Wir raten dringend dazu, KEINE virtuelle Linux Maschine unter Windows oder Mac OS für die Erstellung von webOS OSE zu verwenden, da möglicherweise unvorhersehbare Probleme auftreten.
Das spätere Flashen und/oder die weitere Entwicklung kann dann wiederum auf dem Linux PC oder unter Windows oder Mac OS erfolgen.

Download von Ubuntu 64Bit für den PC:
Externer Link Ubuntu Downloadseite

Hinweis:
Linux ist nicht unbedingt jedermanns Sache und wer damit noch nie zu tun hatte, wird vielleicht auch an diesem Projekt scheitern, denn wenn es zu Fehlern kommt, ist man schnell aufgeschmissen und ich kann zum Gebrauch von Linux leider keine Hilfe oder gar Schulung bieten.
Daher böte es ich an, hier einen Linux erfahrenen Bekannten hinzuzuziehen oder notfalls vom Projekt Abstand zu nehmen und vielleicht so lange zu warten, bis es brauchbare SD Karten Images gibt. Evtl. wird man diesbezüglich woanders bereits fündig.

Linux Kenntnisse sind daher dringend angeraten !!


(2) Linux PC für Imageerstellung einrichten

Wer bereits mit einem Linux PC mit Ubuntu arbeitet, kann diesen Punkt überspringen, sofern er Python bereits laufen hat.
Zwar soll Ubuntu in der Version 14.04 LTS 64Bit benutzt werden, jedoch meine ich irgendwo gelesen zu haben, dass auch neuere Versionen möglich wären. In dieser Anleitung beziehe ich mich aber explizit auf die empfohlene Version 14.04 LTS 64Bit.

Es bestünde noch die Möglichkeit eine weitere Partition bei einem bestehenden System hinzuzufügen, jedoch kann dies u.U. zu Datenverlusten des Hauptsystems führen, worauf ich daher nicht näher eingehen möchte und mich auf einen extra PC beziehe, der nur für dieses Vorhaben genutzt wird.

Die Macher von webOS OSE empfehlen zwar einen QuadCore PC mit einer SSD, auf der min. 100GB Plattenplatz und 16GB RAM vorhanden sind, jedoch habe ich auch keinen Goldesel daheim und habe daher einen älteren Laptop mit 320GB Festplatte und 8GB RAM verwendet. Dort war zwar auch eine SSD verbaut, diese habe ich jedoch vorübergehend mit einer alten gebrauchten und leeren 320GB Festplatte bestückt. Zudem hat der Laptop auch nur einen DualCore (Core2Duo) verbaut.

Hinweis:
Wichtig !!
Dieser Punkt beschreibt die Einrichtung eines extra PCs, auf dem keine Daten vorhanden sind, die Platte also vollkommen leer ist !!
Wer diesen Punkt auf einem Arbeits PC mit Daten ausführt, verliert alle seine Daten !!
Keine Haftung meinerseits auf Daten oder Hardware !!
ALLES AUF EIGENES RISIKO !!

Ich kann es immer wieder nur erwähnen: Vor solchen Aktionen Backups machen und/oder extra Hardware nutzen, auf der keine Daten vorhanden sind (wie in diesem Fall) !!

Zuerst wird also ein extra PC / Laptop vorbereitet, der keinerlei Daten enthält und nur für die Erstellung des späteren SD Karten Images benutzt wird.
Für die Installation von 14.04 LTS 64Bit wird natürlich ein Gerät mit 64 Bit Prozessor benötigt (auf dem auch z.B. Windows mit 64 Bit laufen würde).

Als Grundlage für die Installation habe ich mich für die normale USB Installation entschieden. Möglich wäre aber auch eine Installation über eine CD/DVD, jedoch dürften selbst ältere Geräte bootfähige USB Ports haben.

Auf die Netzwerk-Installation habe ich letztendlich verzichtet, da nach dem Booten des Netzwerkimages das System ewig ohne jegliche Reaktion auf dem Bildschirm stehen geblieben ist. Irgendwann habe ich die Installation über das Netzwerk abgebrochen, da ich in der Zeit das komplette Image hätte mehrfach herunterladen können.

Benötigt wird:
  • USB Stick gleich oder größer 2GB
  • Einen Windows PC für die Erstellung des USB Images (es gehen auch Linux und Mac OS, jedoch nutze ich sonst ausschließlich Windows)
  • Das Ubuntu Image
  • Rufus (Richtet den USB Stick bootfähig ein)
Hier die Downloads:
Externer Link Download Ubuntu Desktop <= die Anleitung baut momentan noch auf eine ältere Version auf
Externer Link Rufus Webseite (etwas runterscrollen für aktuelle Version)

Bei der USB Management Software Rufus habe ich die portable Version gewählt, denn diese muss nicht installiert werden.
Es kann aber auch die zu installierende Version heruntergeladen werden, das Programm ist nach dem Start des selbe.

Nun wird der später zu Installation benötigte USB Stick am Windows PC eingesteckt.

Nachdem Rufus auf dem Windows PC heruntergeladen und gestartet oder installiert und gestartet wurde, öffnet sich das folgende Fenster:
(Beim ersten Start wird man u.U. gefragt, ob das Programm nach Updates suchen soll.)

Bild

Zuerst wird der USB Stick (siehe 1.) ausgewählt.
Bitte unbedingt darauf achten, dass man das richtige Laufwerk wählt und nicht ausversehen andere USB Datenträger überschreibt.
Besser 2x checken (z.B. im Windows Explorer) als später fluchen ....

Wird kein Laufwerk angezeigt und ist auch keins auswählbar, dann ist entweder kein USB Stick eingesteckt oder wird von Windows/Rufus nicht erkannt. Hier hilft oft das Formatieren mit Standardwerten.

Wird der Stick gefunden und ist es das einzige USB Speicherlaufwerk, wird es bereits vorausgewählt. Trotzdem: checken, ob es das richtige ist !!

Als Nächstes wird die Option für das BIOS ausgewählt (siehe 2.). Man kann zwar auch die voreingestellte Auswahl verwenden (nur UEFI), jedoch wird für ältere Rechner von der Ubuntu Webseite die im Bild angezeigte Option empfohlen.

Dann wird in Rufus das zuvor ebenfalls heruntergeladene USB-Netzwerk-Image geladen.
Hierzu einfach auf das CD-ROM-Symbol klicken, welches sich rechts neben der Option "Startfähiges Laufwerk erstellen mit" befindet (siehe 3.).
Beim sich öffnenden Dateiauswahlfenster das heruntergeladene Image auswählen und mit "Öffnen" bestätigen.

Nachdem das Image eingebunden wurde (es erscheint das Wort "ISO-Abbild" in der Auswahl, wo zuvor "FreeDOS" stand), kann ohne weitere Änderungen unten auf "Start" geklickt werden (siehe 4.). Zuvor aber nochmal alles prüfen !!

Rufus erkennt das hybride ISO-Abbild und fragt nach dem gewünschten Schreibformat:

Bild

Diese Auswahl erscheint, weil die Installation sowohl für CD/DVD als auch für USB erstellt und in das Image gepackt wurde und auch für beide Versionen ohne Änderungen erstellt und verwendet werden kann.

Die Vorauswahl sollte unbedingt - wie auf dem Bild oben zu sehen - auf "ISO-Abbild Modus" stehen und ist dann mit dem Klick auf "OK" zu bestätigen.

Dann folgt der Hinweis, dass der gewählte USB Stick unwiederbringlich gelöscht wird.
Dies ist die letzte Chance nochmal das USB Laufwerk mit dem gewünschten USB Stick zu prüfen !!

Bild

Nach dem Klick auf "OK" legt Rufus los, bei dem man im unteren Bereich den Fortschritt per grünem Balken verfolgen kann:

Bild

Sobald der Prozess abgeschlossen ist, meldet sich Rufus wieder mit dem normalen Hauptbildschirm und kann über "Schließen" beendet werden.
Es kann passieren, dass der eine oder andere Virenscanner sich wegen der Datei autorun.inf beschwert (z.B. Avira).
Dies kann einfach ignoriert werden.

Nun wird der USB Stick vom PC abgemeldet (Hardware sicher entfernen unten rechts in der Taskleiste) und kann abgezogen werden.

Der USB Stick wird nun in den dafür vorgesehenen späteren Linux PC eingesteckt und davon gebootet.
Sollte der PC/Laptop nicht booten, ist im BIOS und/oder in der Anleitung oder auf der Herstellerwebseite des Gerätes nachzuschauen, wie von USB gebootet werden kann.

Nach dem Einstecken und Booten des Sticks erscheint kurz darauf der Willkommensbildschirm mit der Sprachauswahl für die weitere Installation:

Bild

Diese steht bei Beginn auf Englisch und wurde hier für das weitere Vorgehen auf Deutsch geändert.
Da wir Ubuntu nicht nur ausprobieren, sondern gleich fest installieren wollen, ist auf den entsprechenden Button zu klicken.

Im nächsten Bild habe ich die Updates aktiviert, damit auch trotz des alten Systems einigermaßen Aktualität herrscht:

Bild

Die Drittanbietersoftware habe ich vorerst weggelassen, da ich später nicht wirklich mit diesem System arbeiten möchte, sondern es nur zur Imageerstellung für den Raspberry Pi dienen soll.

Nun wird nach der Art der Installation gefragt. Hier habe ich die Vorauswahl mit "Jetzt Installieren" bestätigt:

Bild

Es folgt ein Hinweis über die Plattenformatierung, der mit "Weiter" bestätigt wird:

Bild

Jetzt die eigene Region/Zeitzone angeben (Berlin):

Bild

Dann folgt die Abfrage der Tastatursprache:

Bild

Jetzt noch ein paar Angaben zum Account:

Bild

Und dann geht es auch schon los:

Bild

Und endet mit der Aufforderung zum Neustart:

Bild

Sollte dieser Neustart misslingen (wie mir passiert), weil nach mehreren Minuten ein leeres Hintergrundbild oder ein schwarzer Bildschirm mit wenigen Zeilen Text erscheint, bei dem sich nichts mehr verändert, muss der PC per Resetknopf wieder zum Leben erweckt werden.
Dies ist normalerweise nicht weiter tragisch, da das System bereits alle Schreibeinstellungen abgeschlossen haben sollte.
Spätere Neustarts funktionierten bei mir mehrfach und bisher problemlos.

Nach einem evtl. durchgeführten Reset oder dem normalen Restart mit anschließendem Hochfahren erscheint der Hauptbildschirm mit einem Aktualisierungs Hinweis, der unbedingt zu verweigern ist !!

Bild

Wie in der Meldung erkennen kann, will Ubuntu sich auf die Version 16.04 aktualisieren, was zu verhindern gilt, da die webOS OSE Macher darauf hinweisen, dass einige Tools/Schritte scheinbar nur unter der alten Version 14.04 funktionieren.

Nach der Ablehnung folgt noch die Bestätigung der Ablehnung und ein Hinweis, wie man später doch noch eine Aktualisierung durchführen kann.

Nun erscheint der Hauptbildschirm und Ubuntu ist bereit für die Arbeit.

Herunterfahren oder Neustarten kann man hier (rechts oben auf das Zahnrad klicken):

Bild

Es folgt die Auswahl für Neustart oder Herunterfahren:

Bild

Alle Weiteren Schritte werden nun im Terminalfenster ausgeführt.


(3) Linux PC: Terminalfenster starten

Um die später gezeigten Kommandozeilenbefehle einzugeben, wird das Terminalfenster benötigt.
Zuerst wird hierfür auf das Ubuntusymbol oben Links per Rechtsklick geklickt, um das folgende Menü aufzurufen:

Bild

Danach bitte auf das hier gezeigte weiße Auswahlmenü Anwendungen klicken.

Im nun folgenden Fenster erscheint bei mir das gewünschte Terminal nun als erste App, da ich sie zuvor zum Test bereits einmal gestartet hatte. Man kann auch im Suchfenster Terminal eintippen, um gezielt danach zu suchen oder man scrollt etwas runter. In der Regel sollte es bereits installiert sein.

Anschließend wird nun auf das Icon für das Terminal geklickt, um die gewünschte Kommandozeile zu starten:

Bild

Es erscheint direkt daraufhin die gewünschte Eingabemöglichkeit:

Bild

Um das Fenster wieder zu verlassen/schließen, gibt man einfach exit ein, gefolgt von der Enter Taste.


(4) Linux PC: Paketaktualisierung durchführen

Damit bei der installierten Version von Ubuntu alle Pakete (nicht die ganze Distribution !!) und deren Liste aktualisiert wird, damit bei Nachinstallationen keine Probleme auftreten, wird im Terminalfenster diese Aktualisierung durchgeführt.
Dies sollte man immer machen, wenn man ein Paket (Anwendung) nachinstallieren möchte.

Dazu wird folgender Befehl im Terminalfenster eingegeben (Doppelbefehl, vorne Liste aktualisieren, hinten Pakete aktualisieren):

Code: Alles auswählen

sudo apt-get update && sudo apt-get upgrade
Wichtig ist hier der Teil sudo (2x), da wir hierfür sogenannte Rootrechte benötigen. Als sicherheitsbewusster Admin arbeiten wir natürlich nicht als Root, sondern mit dem normalen User und rufen per sudo nur dann Rootrechte auf, wenn wir sie wirklich brauchen.

Verbunden werden beide Befehle in der Mitte mit dem doppelten kaufmännischen "Und": &&
Dabei muss der 2. Befehl auch wieder das Wort sudo enthalten, da die Rechte immer nur zu einem Befehl gehören.

Bild

Wie man auf dem Bild erkennen kann, wird nach dem Passwort gefragt, welches wir bei der Installation von Ubuntu eingegeben haben.

Unter Umständen wird angezeigt, wie viel Platz auf der Platte belegt werden wird und es erscheint die Frage, ob wir installieren möchten.
Dies ist dann mit (J)a zu bestätigen (oder (y)es, je nach Sprache).
Dann startet die Aktualisierung, die dann wieder mit dem Prompt in der Eingabezeile endet.
Dieser Vorgang kann einige Zeit dauern, da das heruntergeladene Image u.U. schon etwas älter sein kann.

Bild

An dieser Stelle kann man sich nun entscheiden, ob man mit diesem Terminalfenster weiterarbeiten oder - wie ich - über das Netzwerk per SSH auf den PC zugreifen möchte (z.B. wenn der PC woanders steht oder man nebenbei was anderes machen möchte).
Ich habe mich für die SSH Version entschieden, da mein Linux PC ein alter Laptop ist, den ich nur für dieses Projekt eingerichtet habe und nebenher noch diese Anleitung schreibe.


(5) Linux PC: SSH installieren

Um den SSH Dienst (Server) zu installieren, ist folgender Befehl einzugeben:

Code: Alles auswählen

sudo apt-get install openssh-server
Es wird wieder nach dem Passwort gefragt und nach dessen Eingabe und der Installationsbestätigung (ob man sich sicher ist) dauert es nicht lange und SSH ist installiert und wird automatisch gestartet.

Wer die Konfiguration von SSH ändern möchte, kann dies über den folgenden Befehl tun:

Code: Alles auswählen

sudo nano /etc/ssh/sshd_config
Nach der Konfiguration wird der Editor mit der Tastenkombination <Strg><X> beendet und die Rückfrage bez. der Datei mit Enter bestätigt.
Um diese Änderung zu aktivieren, muss SSH neu gestartet werden:

Code: Alles auswählen

sudo service ssh restart
Wenn keine Probleme in der Konfiguration vorliegen, wird der Restart in der Kommandozeile bestätigt.

Dieser Service wird auch fest in der Startkonfiguration verankert, so dass SSH auch nach einem Neustart des PCs automatisch geladen und gestartet wird.

Nun kann mit einem SSH/Terminalprogramm (z.B. Putty) von einem anderen PC aus auf den Linux PC zugegriffen werden.

Wie man Putty einrichtet und woher man es bekommt, habe ich ausführlich in dieser Anleitung beschrieben:
Raspberry Pi installieren: RASPBIAN Stretch (+Lite)

Ab hier werde ich nun die Anleitung per SSH (Putty) auf einem anderen PC fortführen. Das Terminalfenster sieht zwar ein wenig anders aus aber der Inhalt ist völlig identisch, da über Putty direkt auf dem Linux PC gearbeitet wird, als säße man direkt am ferngesteuerten PC.

Nachdem man sich mit den identischen Logindaten über Putty eingeloggt hat, erscheint auch wieder die altbekannte Eingabeaufforderung:

Bild

Hier funktioniert nun alles genauso wie auf dem Linux PC selbst.

Auf dem obigen Bild wird ein Neustart empfohlen, der auch gleich ausgeführt wird, bevor wir weiter verfahren:

Code: Alles auswählen

sudo restart now

(6) Linux PC: Git installieren

Wer hier eine längere Pause gemacht hat, sollte - wie immer vor Paketinstallationen - die Paketlisten- und Paket-Aktualisierungen vornehmen (wie ganz oben bereits beschrieben):

Code: Alles auswählen

sudo apt-get update && sudo apt-get upgrade
Danach geht es mit der Installation von Externer Link Git weiter.

Da in der Paketverwaltung von Debian (Ubuntu ist eine Debian Distribution) Git bereits enthalten ist, wird das Paket mit recht einfach mit folgendem Befehl installiert:

Code: Alles auswählen

sudo apt-get install git
Die Abfrage, ob wir das Paket installieren möchten, wird mit "J" für "Ja" bestätigt, dann geht es auch schon los.

Nach der Installation von Git wird ein Git Benutzername eingetragen. Hier wird üblicherweise der reale Name benutzt. Wer dies nicht möchte, kann hier beliebigen Text verwenden. Für die Anleitung hier habe ich einfach "Outi Outi" verwendet.
Der nachfolgende Befehl setzt den Benutzernamen global im Git System für alle Projekte auf dem lokalen Linux PC:

Code: Alles auswählen

git config --global user.name "Outi Outi"
Wer den Benutzername nur für das einzelne Projekt verwenden möchte, muss in das jeweilige Projekt wechseln und dort den obigen Befehl einfach ohne die Option -- global eingeben. Ich habe mich für den globalen Weg entschieden, da ich eh nur dieses eine Projekt (webosOSE) verwende und mir zusätzliche Arbeit sparen möchte.

Um zu prüfen, ob der Name korrekt gesetzt wurde, wird beim obigen Befehl einfach der Name weggelassen und der Name wird vom Git System ausgegeben:

Code: Alles auswählen

git config --global user.name
ergibt

Bild

Danach wird noch die Mailadresse vergeben, die für Git verwendet werden soll. Hier wird diese Eingabe wieder global fürs gesamte Git durchgeführt:

Code: Alles auswählen

git config --global user.email "email@example.com"
Die hier im Befehl gezeigte Mailadresse bitte durch die eigene ersetzen.
Wer hier wieder nicht global agieren möchte, einfach wiederum die Option für global weglassen.
Die Prüfung, ob die Mailadresse korrekt konfiguriert wurde, ist wie oben beim Benutzername identisch, einfach die Adresse weglassen und es wird - wenn alles korrekt verarbeitet wurde - die zuvor eingegebene Mailadresse ausgegeben.

Als nächstes wird die Authentifizierung in Git beschrieben.
Hierzu gibt es zwei verschiedene Möglichkeiten:
  1. Authentifizierung über HTTPS
  2. Authentifizierung über SSH (wird für webosOSE benötigt)
Da die Webseite von webosOSE den 2. Weg "vorschreibt", wählen wir diesen Weg ebenfalls.

Um diesen Weg zu nutzen, muss ein SSH Schlüssel erzeugt werden, der später die sichere Verbindung zu Git herstellt:

Code: Alles auswählen

ssh-keygen -t rsa -b 4096 -C "email@example.com"
Dabei ist die Mailadresse wieder durch die eigene zu ersetzen, die wir weiter oben bereits verwendet haben.

Es folgt folgende Ausgabe:

Code: Alles auswählen

Generating public/private rsa key pair.
Enter file in which to save the key (/home/outi/.ssh/id_rsa):
Hier bestätigen wir einfach mit der Entertaste die Vorgabe für den Ort und den Namen der erzeugten Datei.

Danach erscheint folgende weitere Ausgabe:

Code: Alles auswählen

Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):
Bei user steht normalerweise Euer Benutzername. In meinem Fall "outi".

Bei der obigen Abfrage für die passphrase geben wir nun ein sicheres Passwort ein und bestätigen dies wieder mit Enter.
Danach wird dieses Passwort erneut eingegeben und wieder bestätigt.

Als Ausgabe erscheint nun ein sogenannter Fingerabdruck und ein ASCII Image (Bild aus Textzeichen).

Nun übergeben wir den neuen SSH Schlüssel an den SSH Agenten. Davor müssen wir aber prüfen, ob dieser Agent läuft.
Diese Prüfung erfolgt mit diesem Befehl:

Code: Alles auswählen

eval $(ssh-agent -s)
Es sollte darunter eine Ausgabe ala

Code: Alles auswählen

Agent pid XXXX
erfolgen. Die XXXX sind Zahlen mit der PID Nummer und ist bei jedem verschieden.
In aller Regel sollte der Agent aber bereits laufen, vor allem, wenn wir eh über Putty (oder einer anderen SSH Software) verbunden sind.

Nun wird der Schlüssel an den Agenten übergeben:

Code: Alles auswählen

ssh-add ~/.ssh/id_rsa
Hierzu sollte man bei den obigen Eingaben in der Anleitung keine Dateinamen oder Pfade geändert haben und sich noch im selben Pfad wie am Anfang befinden. Hier in der Anleitung sind wir im Homeverzeichnis des eingeloggten Benutzers.

Wenn es bei der Befehlseingabe keinen Fehler gab, erscheint nun wieder die Abfrage nach dem Passwort (passphrase), welches wir weiter oben definiert haben. Nach dieser Eingabe wird die Zuordnung wie folgt unter dem Befehl bestätigt:

Code: Alles auswählen

Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
Der user ist hier bei Euch wieder Euer Benutzername.

Nun muss der Schlüssel auch an Externer Link GitHub übertragen werden.

Dies erfolgt normalerweise per Kopieren/Einfügen über die Zwischenablage. Wer direkt auf dem Linux PC bleiben will und bisher direkt in der Oberfläche mit dem Terminalfenster gearbeitet hat, ruft dazu parallel den integrierten Browser auf (hier sollte sich links in der Leiste Firefox als 3. Symbol von oben finden lassen).

Wer - wie ich - von einem Windows PC über Putty per SSH mit dem Linux PC verbunden ist, startet einfach seinen Lieblingsbrowser neben Putty.

Wer bereits einen GitHub Account hat, loggt sich jetzt direkt ein.

Wer noch keinen GitHub Account hat, kann diesen hier erstellen: Externer Link GitHub Account erstellen

Das Erstellen des Accounts sollte kein Problem darstellen.

Nach dem Einloggen auf die GitHub Webseite befindet sich am oberen Rand ganz rechts eine Glocke, ein "+" und ein Account Symbol. Dieses letzte Symbol klicken wir nun mit der Maus an und gehen dann auf Settings im heruntergeklappten Menü.

Auf der linken Seite des neuen Fensterinhaltes befindet sich ein weiteres Menü, bei dem wir auf SSH and GPG keys klicken, um die enstprechenden Schlüsseleinstellungen aufzurufen.

Im mittleren Bereich der Webseite klicken wir nun auf den Button New SSH Key und vergeben im nun erscheinenden Inhalt bei Title einen Namen für den Schlüssel.
Hier habe ich im Beispiel einfach "webosOSE" eingegeben. Das erleichtert später die Identifikation, wenn man weitere Schlüssel eingetragen hat.

Im Bereich darunter im Feld Key wird nun der eigentliche Schlüssel hineinkopiert.
Dafür müssen wir nun zurück ins Terminalfenster zu unserer Eingabeaufforderung wechseln und einen Befehl eingeben, der diesen Schlüssel nun aus der Datei auf den Bildschirm anzeigt:

Code: Alles auswählen

cat ~/.ssh/id_rsa.pub
Dieser Befehl liest nun den Schlüssel aus der Datei aus und schreibt ihn auf den Bildschirm.
Diesen Text markieren wir nun mit der Maus und zwar beginnend bei ssh-rsa und über mehrere Zeilen endend direkt nach der Mailadresse.
Dabei darf der Text nur mit der linken Maustaste markiert werden, ohne dass danach noch irgendwas eingegeben wird. Solange im Terminalfenster dieser Bereich markiert ist, haben wir bereits den Schlüssel in der Zwischenablage.

Nun gehen wir mit der Maus in den Browser in das Feld Key und klicken mit der rechten Maustaste in den Bereich und klicken im Mausmenü auf Einfügen, womit wir den Schlüssel kurz darauf im Fenster sehen.

Jetzt nur noch unter dem Feld auf Add Key klicken und der Schlüssel wird gespeichert.

In der Übersicht wird dann der Name und der Fingerabdruck angezeigt. Diesen Fingerabdruck kann man nochmal mit der Ausgabe im Terminalfenster vergleichen, wenn man darin bis zu der Stelle nach oben scrollt, wo man den Schlüssel erzeugt hatte.
Beide Fingerabdruckzeichen sollten genau übereinstimmen, dann wurde der Schlüssel korrekt übertragen.

Damit sollte die Git Installation beendet sein.


(7) Linux PC: webosOSE Image erstellen

Um das SD-Karten-Image zu erstellen, wird das sogenannte build-webos Respository (Quelle) benötigt. In dieser Quelle ist alles enthalten, was für das Erstellen des webos OSE Images benötigt wird.

Es könne zwei verschiedene Images erstell werden:
  1. webos-image: Das normale webOS OSE Image ohne Entwicklertools
  2. webos-image-devel: Das Image mit verschiedenen Entwicklertools inkl. GDB and strace (system call tracer)
Für diese Anleitung habe ich mich für das normale Image entschieden (also das erste Image), da ich für webos OSE Entwicklungen wohl keine Zeit haben werde. Wer dennoch die Entwicklerversion erstellen möchte, erstellt das zweite Image.

Als nächstes wird nun das Git Repository "geklont" (also aus den Quellen auf den Linux PC übertragen):

Code: Alles auswählen

git clone https://github.com/webosose/build-webos.git
Das geht recht schnell und brachte mir folgende Ausgabe:

Code: Alles auswählen

Klone nach 'build-webos' ...
remote: Counting objects: 23, done.
remote: Total 23 (delta 0), reused 0 (delta 0), pack-reused 23
Unpacking objects: 100% (23/23), done.
Prüfe Konnektivität ... Fertig.
Jetzt wechseln wir in das neu vorhandene Verzeichnis build-webos:

Code: Alles auswählen

cd build-webos
Nun werden die benötigten Tools installiert, bevor es mit der Imageerstellung losgehen kann:

Code: Alles auswählen

sudo scripts/prerequisites.sh
Wichtig ist hier der sudo Befehl in der Befehlszeile, da für dieses Skript Rootrechte benötigt werden.
Dieser Vorgang dauert nun ein klein wenig, bis sich das Terminal wieder mit dem Eingabeprompt zurückmeldet.

Um das Gerüst für den Raspberry Pi 3 zu konfigurieren und die Quellen einzubinden, ist folgender Befehl einzugeben:

Code: Alles auswählen

./mcf raspberrypi3
Auch dieser Vorgang dauert wieder einen Moment. Das hängt aber auch wieder vom vorhandenen Internetanschluss ab, da hier wieder einiges heruntergeladen wird.

Nun geht es an das Einstellen der Parallelitätswerte:

Code: Alles auswählen

./mcf -p 0 -b 0 raspberrypi3
Dieser Vorgang soll dem Tool für die Erstellung des sogenannten Builds mitteilen, dass er alle gefundenen Prozessoren (oder Prozessorkerne) und Threads parallel nutzen soll. Die beiden Vorgaben "0" in der Zeile sind per Standard eingegeben und erlauben somit die Nutzung aller Prozessoren (und Cores) und Threads.
Wer hier weniger oder eine andere Anzahl an CPUs/Cores/Threads nutzen möchte, kann die beiden Parameter "-p" und "-b" ändern.
Die beiden Parameter bedeuten PARALLEL_MAKE und BB_NUMBER_THREADS.
Dieser Vorgang geht recht schnell von statten.

Nun folgt die eigentliche Erstellung des Images.

Für das normale Image wird der Ersellungsprozess mit diesen Befehlen gestartet:

Code: Alles auswählen

source oe-init-build-env

Code: Alles auswählen

bitbake webos-image
Die webos OSE Webseite nennt als Alternative noch den folgenden Befehl, für den ich mich in dieser Anleitung entschieden habe:

Code: Alles auswählen

make webos-image
Wer die Entwicklerversion des Images erstellen möchte, gibt stattdessen die folgenden Befehle ein:

Code: Alles auswählen

source oe-init-build-env

Code: Alles auswählen

bitbake webos-image-devel
Die originale Webseite nennt hier zwar keinen Alternativbefehl aber eigentlich sollte das trotzdem funktionieren. Ich habe es jedoch nicht getestet.

Das Erstellen soll nun auf einem schnellen System mit SSD Platten ca. 2 Stunden dauern, bei einem einfachen Laptop mit Festplatte wird sogar von mehreren Stunden ausgegangen. Hier ist also Geduld erforderlich.

Wenn man später - oder aus welchen Gründen auch immer - das System für einen neuen Erstellungsvorgang säubern möchte, gibt folgende Befehle ein:

Code: Alles auswählen

rm -rf BUILD

Code: Alles auswählen

./mcf.status
Das ist vor allem deshalb ratsam, da hier auch sämtliche Caches geleert werden, vor allem, wenn sich darin defekte Inhalte befinden.

Das Erstellen und Säubern individueller Komponenten geschieht so:

Erstellen:

Code: Alles auswählen

source oe-init-build-env

Code: Alles auswählen

bitbake <Komponentenname>
Alternative:

Code: Alles auswählen

make <Komponentenname>
Säubern:

Code: Alles auswählen

source oe-init-build-env

Code: Alles auswählen

bitbake -c clean <component-name>
Den gesharten Status der Komponente entfernen und um die Komponente von den Quellen frisch zu erstellen:

Code: Alles auswählen

source oe-init-build-env

Code: Alles auswählen

bitbake -c cleansstate <Komponentenname>
Wenn man den Erstellungsvorgang gestartet hat, wird der Fortschritt in "%" und die Anzahl paralleler Aufgaben am Bildschirm ausgegeben.
Bei mir zeigten sich einige Warnungen in gelb, oft mit der Ausgabe, dass andere Quellen genutzt werden, wenn möglich.

Das sieht dann so aus:

Bild

Man erkennt auf dem Bild halbwegs den Fortschritt von 20% und die gelben Warnungen. Zum Zeitpunkt der Erstellung des Bildes lief der Erstellungsvorgang aber ohne weitere Störungen weiter. Leider scheinen einige Quellen offline zu sein.
Auch kann man die 8 Tasks (0 bis 7) erkennen, die bei der Erstellung parallel abgearbeitet werden, jeweils mit eigenen Fortschrittsanzeigen.
Kurioserweise dauert das Kompilieren eines der letzten Pakete (Chromium) fast länger, als der ganze Rest des Systems zusammen.

Der gesamte Vorgang dauerte mehr als 6 Stunden und lief mit den auf dem Bild in gelb dargestellten Warnungen komplett durch.
Das Image soll trotzdem funktionsfähig fertiggestellt worden sein, so lange keine roten Fehlermeldungen erscheinen.


(8) Linux PC oder Host PC (Linux, Windows, MAC): webosOSE Image auf SD Karte übertragen

Hinweis:
SD-Karten-Leser älterer PCs/Laptops oder älterer Bauart machen oft Probleme mit aktuellen Karten und schreiben das Image entweder fehlerhaft oder gar nicht !!
Sollte das Problem auftreten, ggf. mit einem aktuellerem Leser probieren.
Wer bisher seine Images für den Raspberry Pi (z.B. Raspbian) in seinem Leser erfolgreich schreiben konnte, wird auch hier keine Probleme bekommen.

Um das erstellte Image auf die SD Karte zu schreiben, kann entweder der zuvor verwendete Linux PC oder ein anderer PC mit Linux, Windows oder Mac OS verwendet werden.

Das Image befindet sich auf dem Linux PC (wo es auch erstellt wurde) im Verzeichnis
/home/user/build-webos/BUILD/deploy/images/raspberrypi3/
und endet mit der Bezeichnung .sdimg.

Der Teil /user/ ist durch den zu ersetzen, mit dem Ihr auf dem Linux PC arbeitet. In meinem Fall ist es "outi".
Wichtig ist es auch, dass die Gross/Kleinschreibung unbedingt beachtet werden muss.

Zur Erstellung dieser Anleitung hieß die Datei selbst webos-image-raspberrypi3.rootfs.rpi-sdimg.

Linux:
Wer am Linux PC einen aktuellen SD-Karten-Leser hat, wechselt in das oben genannte Verzeichnis:

Code: Alles auswählen

cd /home/user/build-webos/BUILD/deploy/images/raspberrypi3/
/user/ ist hier wieder mit Eurem Benutzernamen zu ersetzen.

Sollte bei Euch oder bei späteren Versionen das Verzeichnis und/oder der Dateiname anders sein, sind diese Angaben entsprechend anzupassen.

Nun wird die zu verwendende SD Karte in den Leser eingeschoben (Achtung !! Karte wird später gelöscht !!) und vor dem Flashen ist zu prüfen, wie die SD Karte im System genannt wird:

Code: Alles auswählen

sudo fdisk -l
Bei mir wurde die Karte sofort erkannt. Falls nicht, anderen Leser oder PC probieren.

Alle erkannten Geräte werden nun aufgelistet und bei mir war die Karte unter /dev/sdb1 angemeldet. Die erkennt man z.B. an der Größe und wie die Karte zuvor formatiert und ob sie überhaupt formatiert war.
Oft werden solche Speicherkarten oder Sticks am Schluss angezeigt. Eine Bootpartition einer Festplatte hat oft /dev/sda1.
Hierbei gilt zu beachten, dass Ausgaben ohne Zahl die Laufwerke bezeichnen und Ausgaben mit Zahl am Ende Partitionen sind.

Geflasht wird das Image nun mit folgenden Befehlen:

Code: Alles auswählen

sudo umount /dev/sdXn

Code: Alles auswählen

sudo dd bs=4M if=./webos-image-raspberrypi3.rootfs.rpi-sdimg of=/dev/sdX

Code: Alles auswählen

sudo umount /dev/sdXn
Bitte hier das X durch den Buchstaben und das n bei /dev/sdXn durch die Zahl ersetzen, die man zuvor für die Karte ermittelt hat !!
Und lieber 3x prüfen, bevor man sich das Betriebssystem oder andere Partitionen/Festplatten zerschießt.

Der Flashvorgang startet nun und im Terminalfenster ist der Eingabeprompt so lange weg, bis das Flashen erledigt wurde.

Wer einen anderen PC mit Linux benutzen möchte (nur zum Flashen), kopiert die oben genannte Datei einfach auf den gewünschten PC über das Netzwerk oder einen USB Stick.

Nun kann die SD Karte entnommen und in den Raspberry Pi eingesteckt werden.

Windows:
Zum Übertragen des Images unter Windows gibt es mehrere Möglichkeiten. Die am meisten genutzte ist das Flashen mit dem Win32DiskImager.

Dieses Programm findet man hier: Externer Link Win32DiskImager Webseite

Dort befindet sich auch eine Deutsche Übersetzungsdatei (die interne Übersetzung ist stellenweise unvollständig).

Um mit Win32DiskImager das Image zu Flashen, muss dieses natürlich zuerst auf den Windows PC übertragen werden.
Wer wenig Erfahrung mit Linux hat, kann das Image unter Windows ganz einfach mit dem Programm WinSCP kopieren.
Mit WinSCP kann man sich ganz einfach auf dem Linux PC anmelden und dieses bietet eine Art Dateimanager, bei der man dann einfach in das entsprechende Verzeichnis geht. Ein Rechtsklick auf die Datei und das anschließende Anklicken von Herunterladen mit der Angabe des Ziels auf dem Windows PC startet die Übertragung.

WinSCP gibt es hier: Externer Link WinSCP Webseite

Wie man das Image anschließend unter Windows mit dem Win32DiskImager flasht, habe ich ausführlich in meiner Anleitung zu Raspbian beschrieben: Raspberry Pi installieren: RASPBIAN Stretch (+Lite)

Nach dem Schreiben des Images mit Win32DiskImager ist die Meldung von Windows, dass die Karte formatiert werden soll, unbedingt abzubrechen !!
Auch sollte man die SD Karte vor der Entnahme aus dem Kartenleser unter Windows auswerfen ("Hardware sicher entfernen").
Anschließend kann die Karte in den Raspberry Pi gesteckt werden.

Mac OS:
Um das Image unter Mac OS zu flashen, muss auch hier zuvor das Image auf den Mac übertragen werden. Leider habe ich hier keinerlei Erfahrungen, da ich keinen Mac besitze und daher bitte ich hier notfalls zu googlen, wenn man nicht weiß, wie es geht.

Ist das Image erfolgreich übertragen worden, gibt es sicherlich ebenfalls Tools, die einem das Flashen über die Oberfläche ermöglichen.
webosOSE beschreibt hier den Weg über die Kommandozeile, die dem Linux PC sehr ähnelt.

Zuerst wird wieder in das Verzeichnis gewechselt, wohin das Image kopiert wurde:

Code: Alles auswählen

cd <Pfad, wo sich das Image befindet>
Dann muss wieder der Name des Laufwerks herausgefunden werden, wo sich das Image befindet:

Code: Alles auswählen

diskutil list
Nun folgen wieder die drei Befehle zum Flashen:

Code: Alles auswählen

sudo diskutil umountDisk /dev/diskn

Code: Alles auswählen

dd bs=4M if=./webos-image-raspberrypi3.rootfs.rpi-sdimg of=/dev/rdiskn

Code: Alles auswählen

sudo diskutil umountDisk /dev/diskn
Hierbei ist das n bei /dev/diskn und /dev/rdiskn/ wieder die Zahl des Laufwerks, wo Ihr das Image hinkopiert habt und somit in den Befehlen zu ersetzen.

Auch hier ist der EIngabeprompt so lange weg, bis der Flashvorgang abgeschlossen wurde.
Danach kann die Karte herausgenommen und in den Raspberry Pi gesteckt werden.


(9) Raspberry Pi 3B: Image testen

Um zu prüfen, ob der Flashvorgang funktioniert hat und/oder das Image in Ordnung ist, wird die SD Karte in den Raspberry Pi gesteckt.
Zudem muss ein Monitor über den HDMI Anschluss, eine Maus und eine Tastatur eingesteckt werden.
Auch sollte ein Netzwerkkabel angeschlossen werden.
Erst danach wird der Raspberry Pi 3B mit Strom versorgt.
Dann wird gewartet, bis das webosOSE Logo auf dem Bildschirm erscheint.

Die nachfolgenden Bilder wurden mit dem Smartphone vom Monitor abfotografiert, daher bitte ich um Nachsicht bez. der Qualität.

Bild

Das ist das Startbild direkt nach dem Hochfahren. Leider passt es nicht genau zu meiner Monitorauflösung und daher musste ich es minimal in der Breite stauchen, da sonst diverse Buttons nach rechts außen verschwunden wären (z.B. der Einstellungsbutton (Zahnrad) im nächsten Bild).
Die Auflösung meines Monitors beträt 1920x1200px, die wohl von webosOSE nicht direkt unterstützt werden.

Nun kann man mit der F1 Taste das Home Launcher UI (Menü) aufrufen, welches von der rechten Seite erscheint.

Bild

Das sind dann aber auch schon alle Menüpunkte.


(10) Raspberry Pi 3B: Netzwerk konfigurieren

Nach dem Booten und dem Druck auf die F1 Taste klickt man auf das Zahnrad und kann damit die (noch recht kargen) Einstellungen vornehmen, wie z.B. Netzwerk:

Bild

Das Netzwerk wurde im Image bereits auf DHCP konfiguriert und der Raspberry Pi kam bei mir sofort ins Internet.
Wie auf dem Bild weiter zu sehen ist, kann hier auch WLAN eingerichtet werden. Die onboard WLAN Karte vom Raspberry Pi 3 wurde bei mir schon erkannt und ich muste nur noch die üblichen WLAN Zugangsdaten eingeben. Der Pi bootete danach ohne Netzwerkkabel und verband sich mit meinem WLAN.


(11) Raspberry Pi 3B: Sonstiges

Nachdem LAN/WLAN und die Sprache eingestellt wurden (im Menüpunkt "General"/"Allgemein") sieht das Ganze dann z.B. so aus:

Bild

Vielmehr ist im Moment auch nicht einstellbar.

In der rechten Menüleiste gibt es noch die Punkte
  • Bare App
  • Enact
  • webOS OSE
  • Youtube
Bei der Bare App passiert bei mir nichts weiter, wenn man darauf klickt. Enact ist das Entwickler Framework, um für das System zu programmieren/entwickeln. Hier wird man auf die entsprechende Webseite geleitet, genauso wie beim Button webOS OSE die Webseite desselben aufgerufen wird. Youtube startet den Youtube Player.

Allerdings vermisse ich den Button zum Herunterfahren aber als das System damals auf dem Palms und zuletzt auf den LG Fernsehern lief/läuft, gab es auch nichts zum Herunterfahren. Einen TV fährt man irgendwie auch nicht herunter. Bisher hat das Stromziehen des Pi auch nicht geschadet aber das muss jeder auf sein eigenes Risiko nehmen.


Fortsetzungen, Korrekturen, Änderungen möglich ....

Copyright © 2024 by RasPiFun.de
;) Gruß Outi :D

Themenstarter
Outi
Administrator
Administrator
Beiträge: 474
Registriert: 13.02.2015, 22:24
RasPis: 10+
Kontaktdaten:

Re: Raspberry Pi installieren: webOS OSE

Beitrag von Outi »

Hinweis zur Unterstützung von Ubuntu bis Version 18.04 LTS hinzugefügt:

Inzwischen wurde von den Initiatoren von WebOS OSE die Installation angepasst und als PC System zur Erstellung des Images können folgende Ubuntu Versionen genutzt werden:
  • Ubuntu 14.04 LTS (Trusty Tahr) 64-bit
  • Ubuntu 16.04 LTS (Xenial Xerus) 64-bit
  • Ubuntu 18.04 LTS (Bionic Beaver) 64-bit
;) Gruß Outi :D

Themenstarter
Outi
Administrator
Administrator
Beiträge: 474
Registriert: 13.02.2015, 22:24
RasPis: 10+
Kontaktdaten:

Re: Raspberry Pi installieren: webOS OSE

Beitrag von Outi »

Hinweis zur Unterstützung von Ubuntu bis Version 20.04 LTS hinzugefügt:

Inzwischen wurde von den Initiatoren von WebOS OSE die Installation angepasst und als PC System zur Erstellung des Images können folgende Ubuntu Versionen genutzt werden:
  • Ubuntu 14.04 LTS (Trusty Tahr) 64-bit
  • Ubuntu 16.04 LTS (Xenial Xerus) 64-bit
  • Ubuntu 18.04 LTS (Bionic Beaver) 64-bit
  • Ubuntu 20.04 LTS (Focal Fossa) 64-bit
;) Gruß Outi :D

Themenstarter
Outi
Administrator
Administrator
Beiträge: 474
Registriert: 13.02.2015, 22:24
RasPis: 10+
Kontaktdaten:

Re: Raspberry Pi installieren: webOS OSE

Beitrag von Outi »

Hinweis zu den Images auf GitHub hinzugefügt.
;) Gruß Outi :D
Antworten