Mikro-Howto: OctoPrint mit RaspberryPI und TouchUI über Elcrow 5" Display steuern
Ausgangslage: Ich möchte meinen 3D Drucker, den ich über den OctoPrint Server, der unter OctoPI auf einem Raspberry PI 3B+ läuft, und somit über jeden vom Server zugelassenen Rechner aus zu steuern ist, notfalls auch mal vor Ort in der Druckerei steuern können, ohne mir dort gleich einen Computer hinstellen zu müssen, der dann die meiste Zeit doch nur als Terminal vor sich hin verstaubt. Was liegt also näher, als die Himbeere mit einem halbwegs bedien- und erkennbaren berührungsempfindlichen Display auszustatten und damit die TouchUI zu bedienen?
Nach diversen Versuchen und Überlegungen bei der Suche nach einer angemessenen Unterbringung für den Rapsberry habe ich mich dann für Thing:2837163 entschieden, für das ein halbwegs finanzierbares Display über Alieexpress zu bekommen ist. Einige Wochen später klingelte denn auch der Bote aus dem fernen Osten und überreichte mir ein gut verpacktes Behältnis mit dem Display, welches bei genauerer Betrachtung einem Waveshare recht ähnlich sieht, jedoch - Chinas kapitalistischer Enklave Shenzen sei Dank - nur einen Teil dessen kostet, was für das nebenan gefertigte Waveshare fällig gewesen wäre und das bei Aliexpress auch deutlich günstiger als beim großen Fluß zu bekommen ist. Allerdings mit 3 Wochen Lieferzeit. Das Boardlayout ebenso wie der Chipsatz sieht dem hochpreisigerem Pendant jedenfalls zum Verwechseln ähnlich.
Was folgte, waren jedoch ein gutes Dutzend Versuche, das Display so zum Laufen zu bekommen, wie ich bzw. das von mir auserkorene Gehäuse das gerne hätte: Nämlich um 180° gedreht, damit der HDMI Connector in der dafür im Gehäusedesign eigens vorgesehenen Aussparung verschwinden kann. Die Anzeige des Displays ist dabei weniger das Problem, diese findet via HDMI statt, vielmehr ist ja Bildausgabe und Toucheingaben zweierlei. Das Display kann leicht um 180° gedreht werden, indem man sich per ssh auf dem Raspberry anmeldet:
ssh pi@octopi.lan
gefolgt von
sudo nano /boot/config.txt
und dann diesen Text am Ende um die Zeile
display_rotate=0
ergänzt. Klappt ganz gut, wenn man dann mit ctrl+x die so manipulierte Datei speichert und mit
sudo reboot -n
einen Neustart einleitet.
Treib(er)jagd
Die oben erwähnten erfolglosen Versuche, auf dem so gedrehten Display nun auch die Touch Eingabe einrichten zu können, hatten mich dann dazu veranlasst, doch mal nebenan, bei Waveshare zu schauen, wie das dort gelöst wurde. Denn die Elcrow KollegInnen wußten zwar von einer veralteten Treiber CD zu berichten und wie man das Display ihrer Ansicht nach zum Kooperieren bewegt, in der Praxis hatte dann trotzdem der Mauszeiger (heißt das auch so, wenn man den Finger dazu benutzt, um Eingaben zu tätigen??) das Gegenteil von den Bewegungen veranstaltet: Nach unten wischen - Zeiger wandert nach oben, nach Rechts wischen - Zeiger begibt sich schnurstracks nach links. Wenn das nur im richtigen Leben auch so wäre...
Wie auch immer: Bei Elcrow ist die Zeit offenbar vor dem Update des Eingabetreibers für den X-Server stehen geblieben, weshalb der entscheidende Hinweis auf die Verwendung des entsprechenden Treibers dort fehlt. Wenn wir schon mal auf der ssh Konsole sind, installieren wir diesen mit
sudo apt install xserver-xorg-input-evdev
Anschließend kopieren wir die Konfigurationsdatei dergestalt, daß sie eine höhere vorangestellte Zahl im Dateinamen hat wie die anderen im Zielverzeichnis. Dies, um zu verhindern, daß ein möglicher anderer Eingabetreiber die Bemühungen, das Touchdisplay einzurichten, verhindert:
sudo cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf sudo reboot
Neuausrichtung
Nun lässt sich auch die Feinabstimmung mittels Eingabekalibration vornehmen. Dazu installieren wir das entsprechende Tool, wir nehmen dabei das der aktuellen Raspbian Version, somit gibt das bei späteren Updates auch weniger Treiberfolklore...:
sudo dpkg -i -B xinput-calibrator
Wir starten jetzt das System dazu nochmals neu, damit die Kalibrierung gestützt auf diese Treiber stattfindet. Nach dem erfolgreichen Login gehen wir dazu in der grafischen Benutzeroberfläche mit der Maus / Touchpen / Zeige- oder sonst einem Finger auf die Himbeere oben links und rufen unter "Einstellungen" das Kalibriertool auf. Mit dem entsprechenden Zeigegerät tippen wir auf die darin gezeigten 4 Punkte und Kopieren den anschließend ausgegebenen Text in die Datei
/ect/X11/xorg.conf.d/99-calibration.conf
Bei mir steht folgendes darin (Die diversen Optionen für die Einträge gibt es z.B. hier zur Auswahl. Auch ein Hersteller von 5" Displays ;-):
Section "InputClass"
Identifier "calibration"
MatchProduct "ADS7846 Touchscreen"
Option "Calibration" "3905 208 3910 288"
Option "SwapAxes" "0"
EndSectionAbspeichern wie gehabt, neu booten. Nun sollte das System zügig starten und auf Benutzereingaben entsprechend reagieren.
Das erfreut uns, weshalb wir derartig motiviert sogleich zur Installation der Touch Oberfläche von OctoPrint schreiten. Hier hat der User jdufresne1 alles wichtige in seinem Beitrag ausgeführt, weshalb ich nur noch kurz darauf eingehe. Wieder per ssh auf dem Druckserver einloggen. Dann mit:
sudo apt install chromium-browser -y
den Browser für die Touch Oberfläche installieren. In dessen Fenster läuft zukünftig dann alles rund um die Bedienung des Druckservers ab. Anschließend daran laden wir die Autostart Prozedur von TouchUI herunter und machen in einem Abwasch die lokale Installation auf dem Raspberry startklar:
git clone https://github.com/BillyBlaze/OctoPrint-TouchUI-autostart.git ~/TouchUI-autostart/
Noch kurz diverse Einstellungen und Hilfstools installieren:
sudo ~/TouchUI-autostart/helpers/install
Nach einem Neustart sollte nun die TouchUI Oberfläche den 5" Bildschirm des Raspberry verzieren. Wer möchte, kann den Raspberry auch so einrichten, daß er ohne Benutzername und Passwort durchstartet. Mehr dazu im Wiki von TouchUI.
Der Vorteil des eingangs erwähnten Gehäuses ist, daß es genügend Platz bietet, zum Beispiel für ein Stepdown Modul, um die Energieversorgung des Rechners zukünftig vom nicht ausgelasteten Netzteil des Druckers sicherzustellen sowie für einen entsprechenden Lüfter. Falls es doch mal heißer her geht.
Irgendwie muss ich das alles finanzieren, daher sind die allermeisten Links Affiliate. D.h.:Solltet Ihr über diese Links zu einem Onlinehändler geraten und dort etwas bestellen, bekomme ich eine kleine Provision, für Euch ändert das am Preis natürlich nichts. Für die Inspirationen geht ein herzliches Dankeschön an die genannten Personen, insbesondere an die OctoPrint Community!
Keep on
Diverser Tüddelkram zu Marlin
Noch ein kleiner Merkzettel für mich und wer es sonst noch brauchen kann, wie man jeden 3D Drucker den AnyCube i3 MEGA ein bisschen tieferlegt genauer einstellt.
- Neben der richtigen Temperatur ist auch das Kalibrieren der Maße, die der Drucker fabriziert, wichtig. Wie man die Kalibrierergebnisse in Richtung dauerhafter Korrektur des Bettlevelings verarbeitet, verraten die Plastikjunies.
- Zum Anschauen: Ein G29 Plotter, der die Ergebnisse einer Bettkalibrierung grafisch aufbereitet.
- Ebenfalls wichtig ist das "PID Tuning", um konstante Temperaturen im Extruder bzw. Hotbed zu bekommen. Hier gibt es eine ausführliche Anleitung bei 3d Drucktipps. In dem Zusammenhang ist auch der Tipp von Panduin super.
- Grundlagenarbeit: Es muss nicht gleich in 1st Layer Porn ausarten, trotzdem: Die Verbindung der 1. Drucklage zum Druckbett ist für die Haftung des Druckes entscheidend. Hier gibt es Tipps für die Einstellung mit dem Slicer Simplify3D.
- Troubleshooting: Die Übersicht über diverse Fehler beim Drucken ist bei Simplify3D in Englisch sehr hilfreich.
- Mit
curl -k -H "X-Api-Key: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" -F "select=false" -F "print=false" -F "file=@[output_filepath]" "http://IPADDRESS:PORT/api/files/local" {STRIP "; postProcessing"}kann direkt aus Simplify3D auf den OctoPrint Server gedruckt werden. Dabei sind natürlich der API Key statt den "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" einzufügen, ebenso die URL, unter der OctoPrint erreichbar ist. Wenn man bei "select" und / oder "print" statt "false" den Wert "true" angibt, druckt Octoprint automatisch los. Nicht ändern sollte man die Variable hinter "file" 8-) - Flusskontrolle: "Viele quälen sich unnötig lange durch unzählige Versuche, die richtige Einstellung für die Fördermenge (den so genannten “Flow-) ohne Extruder kalibrieren im Slicer einzustellen und stoßen dann trotzdem immer wieder auf das Problem der “over-extrusion- oder “under-extrusion-." Hier gibt es eine Schritt für Schritt Anleitung, mit deren Hilfe sich auch dieses (mögliche) Problem lösen lässt.
- Zum auswendig Lernen: Der komplette Befehlssatz unter Marlin.
- TBC...
Zu meinem YouTube Kanal, mit aktuellen Drucken.
AnyCubic i3 MEGA unter Marlin mit dem BLTouch leveln
Mal eben eine neue Ladeschale und Halterung für das Telefon ausgedruckt
Träger: Bowden X-Carriage for AnyCubic i3 MEGA by Audisis
Am leuchten ist der BLTouch
Send: M851 ; Z Probe Offset anzeigen lassen Recv: echo:Probe Z Offset: -2.02 Recv: ok [...] Send: M851 Z0 ; Z Probe Offset auf Null setzen Recv: ok [...] Send: G28 ; Nullpunkt anfahren [...] Recv: echo:busy: processing Recv: X:-5.00 Y:0.00 Z:0.00 E:0.00 Count X:-400 Y:0 Z:0 Recv: ok [...] Send: G1 Z1 X110 Y110 F2000 ; In die Mitte des Druckbettes fahren Recv: ok [...] Send: G92 Z0 ; Recv: X:110.00 Y:110.00 Z:0.00 E:0.00 Count X:8800 Y:8800 Z:0 Recv: ok [...] Send: G30 X110 Y110 [...] Recv: Bed X: 110.00 Y: 110.00 Z: 2.08 Recv: X:77.00 Y:105.00 Z:10.00 E:0.00 Count X:6160 Y:8400 Z:4000 Recv: ok [...] Recv: ok [...] Send: G1Z-0.1 ; Bis 0.05mm / ein Kassenbon zwischen Düsenspitze und Bett passt. BTW: Ich empfehle als Metaller natürlich, eine Fühlerlehre, kann man auch für andere Sachen verwenden. Recv: ok [...] Send: G1Z-0.1 ; Bis 0.05mm / ein Kassenbon zwischen Düsenspitze und Bett passt. Recv: ok [...] Send: G1Z-0.1 ; Bis 0.05mm / ein Kassenbon zwischen Düsenspitze und Bett passt. [...] Send: G92 Z0 ; Neuer Nullpunkt an diese Stelle setzen Recv: X:110.00 Y:110.00 Z:0.00 E:0.00 Count X:8800 Y:8800 Z:0 Recv: ok [...] Send: G30 X110 Y110 ; Offset ausgeben. Wert bei der 1. Z-Anzeige (hier in GRÜN angezeigt) merken [...] Recv: echo:busy: processing Recv: Bed X: 110.00 Y: 110.00 Z: 2.08 ; Diesen Z-Wert merken! Recv: X:77.00 Y:105.00 Z:10.00 E:0.00 Count X:6160 Y:8400 Z:4000 Recv: ok [...] Send: M851 Z-2.08 ; Neues Offset eingeben mit dem eben gemerkten Z-WeÅ•t Recv: ok [...] Send: M500 ; Den Wert ins EEPROM speichern Recv: echo:Settings Stored (731 bytes; crc 34074) Recv: ok
Am besten mal den Drucker neu starten um 100% sicher zu gehen, daß er sich die neuen Offset Werte gemerkt hat. Anschließend mache ich 2-3 Kalibrierzyklen mit G28 / G29 und speichere die Werte im EEPROM mit M500:
Recv: Bilinear Leveling Grid:
Recv: 0 1 2 3 4
Recv: 0 +0.010 -0.020 -0.033 -0.020 +0.027
Recv: 1 +0.058 +0.023 +0.015 +0.040 +0.090
Recv: 2 +0.082 +0.040 +0.027 +0.058 +0.108
Recv: 3 +0.082 +0.053 +0.027 +0.065 +0.095
Recv: 4 +0.058 +0.010 -0.020 +0.003 +0.045
Recv:
Recv: X:164.00 Y:193.00 Z:12.06 E:0.00 Count X:13120 Y:15440 Z:4832
Send: M140 S0
Recv: ok
Send: M500
Recv: echo:Settings Stored (731 bytes; crc 9049)
Recv: okDer 2. Zyklus macht nochmal deutlich, daß mehrfache Kalibrierung nicht schadet:
Recv: Bilinear Leveling Grid: Recv: 0 1 2 3 4 Recv: 0 +0.020 -0.017 -0.030 -0.025 +0.038 Recv: 1 +0.063 +0.038 +0.007 +0.055 +0.092 Recv: 2 +0.098 +0.043 +0.043 +0.063 +0.118 Recv: 3 +0.092 +0.055 +0.030 +0.075 +0.098 Recv: 4 +0.063 +0.013 -0.017 +0.013 +0.043 Recv: Recv: X:164.00 Y:193.00 Z:12.06 E:0.00 Count X:13120 Y:15440 Z:4832 Send: M140 S0 Recv: ok [...] Send: M500 Recv: echo:Settings Stored (731 bytes; crc 34326) Recv: ok [...]
Das sollte dann aber auch reichen, denn "wer viel misst, misst Mist". ;-) Ich übermittle dem Drucker dann vor jedem Druck die neuen Einstellungen, die er dann entsprechend mit dem Druckauftrag verrechnet. Da ich immer über octoprint drucke, sieht das bei mir so aus:
G21 ; Wir verwenden Millimeter
G90 ; Absolute Positionierung...
M82 ; ... auch für den Steppermotor am Extruder
M107 ; Lüfter aus
G28 X0 Y0 ; Referenzpunkte XY anfahren
G28 Z0 ; Referenzfahrt auch für Z
G1 Z15.0 F{travelspeed} Z Achse 15 mm anheben
G92 E0 ; Extruder auf 0 setzen
G1 F200 E3 ; Extruder soll eine 3mm lange Wurst auspressen
G1 E0 ; und stoppen...
G1 F{travelspeed} ;
G28; Nullpunkte / Home anfahren
G29; Auto Bed Levelling (ABL) anwerfen
M500; Werte in Firmware / EEPROM speichern
M420 S1; BLTouch aktivierenEs geht natürlich auch ohne octoprint, falls man direkt vom Slicer aus druckt. Auf jeden Fall sollte man sich für eine Methode entscheiden, nicht, daß nachher 2x gelevelt wird...
HINWEIS:
Alle gemachten Angaben sind ohne Gewähr auf Funktion und Richtigkeit. Für eventuell entstehende Schäden übernehmen wir keinerlei Haftung. Sämtliche Veränderungen geschehen auf Eure Verantwortung und Gefahr.
Irgendwie muss ich das alles finanzieren, daher sind die allermeisten Links Affiliate. D.h.: Solltet Ihr über diese Links zu einem Onlinehändler geraten und dort etwas bestellen, bekomme ich eine kleine Provision, für Euch ändert das am Preis natürlich nichts. Für die Inspirationen geht ein herzliches Dankeschön an die genannten Personen, insbesondere an die OctoPrint Community!
Keep on Coding Printing!
Kohle stoppen - Klimaschutz jetzt!

Zur Bilderserie beim Umbruch Bildarchiv
Weitere Informationen und Fotoberichte:
Kohle stoppen. Klima schützen - Ende Gelände 2018
Der eigentliche Aktionstag war am Samstag, den 27. Oktober. Gegen acht Uhr war der Aufbruch der zu Beginn in einem gemeinsamen Zug laufenden Finger vom Camp aus geplant. Tatsächlicher Start war gut 60 Minuten später. Die Karawane bewegte sich in nordöstliche Richtung -“ Richtung Hambacher Forst.
Um etwa 11 Uhr stoppte die Polizei die Demo vor einer S-Bahn-Brücke nördlich von Merzenich, um sie eine Stunde später weiterlaufen zu lassen. Dann ging alles ziemlich schnell -“ Nach Überquerung der Brücke brachen die AktivistInnen von der durch die Polizei vorgesehenen Route aus und rannten über Äcker in Richtung A4. Diese war zuvor durch die Polizei gesperrt worden und auf der freien Autobahn waren Räumpanzer sowie Wasserwerfer im Einsatz. Da die Polizei die Gruppe nicht über die Autobahnbrücke laufen lassen wollte (Sicherheitsbedenken), entschieden sich die Menschen für den direkten Weg über die Fernstraße.
Etliche wurden durch Polizistinnen mit Pfefferspray oder Schlagstöcken verletzt. Es gab einzelne Festnahmen. Hunderten gelang jedoch die Überquerung der Autobahn. Wenige hundert Meter weiter lag das eigentliche Ziel der geplanten Blockade: Die Hambachbahn. Diese Bahnstrecke verbindet das Kohlelager des Tagebaus mit den Kraftwerken.
Etwa 2000 Menschen ließen sich auf den Gleisen nieder um die Strecke mindestens 24 Stunden zu blockieren. Die Polizei schien hier hoffnungslos überfordert und versuchte die Aktivist*innen zum Verlassen der Schienen zu überreden. „Denken Sie bitte auch daran -“ es wird kalt heute Nacht. Wenn Sie jetzt gehen, werden keinerlei polizeiliche Maßnahmen an Ihnen durchgeführt“. Die meisten Blockierenden blieben über Nacht. Erst am Sonntag gegen 12 Uhr verließen viele die besetzte Strecke. Der Rest blieb sitzen und einige versuchten sich an die Gleise zu ketten. Die Polizei reagierte darauf mit Schmerzgriffen und Schlägen, um die Entschlossenen von ihrem Vorhaben abzubringen. Die Räumung der Blockade zog sich noch mehrere Stunden hin.
Eine erste Auswertung der Aktionstage durch die Aktivist*innen von "Ende Gelände" fällt positiv aus: "Weder die Versuche von Politik und Polizei unseren Protest zu kriminalisieren, das Camp zu verhindern oder die Anreise zu erschweren, noch die kühlen Oktober-Nächte konnten unsere Entschlossenheit brechen. Gemeinsam haben wir gezeigt: der Kohleausstieg ist nicht aufzuhalten -“ wir kommen wieder bis der letzte Bagger steht!" - Channoh Peepovicz -
Zur Bilderserie beim Umbruch Bildarchiv
Berlin: Kiezdrache gegen Verdrängung
"Der solidarische Kiezdrache strahlt in vielen Farben, spricht alle Sprachen, hat ein großes Herz und scharfe Zähne, kann sich ganz klein und ganz lang machen, und Mieterhöhungen und Kündigungen faucht er weg. Er fühlt sich besonders wohl in Kitas und sozialen Einrichtungen. Wenn sie von Verdrängung bedroht sind, fährt er seine Krallen aus. Der Kiezdrache wünscht sich mehr Platz für das Soziale, für Bildung und Betreuung. Er akzeptiert nicht, dass unsere Nachbarschaften von Renditejägern ausverkauft werden. Der Kiezdrache hängt auch in Nachbarschaftstreffs oder in seiner Stammkneipe rum, kehrt auf einen Plausch in den kleinen Läden ein, und kuschelt sich in all unseren Wohnungen gerne auf die Couch -“ darum kämpft er dafür, dass alle bleiben!" (aus dem Aufruf von Bizim-Kiez)
Zur Fotoseite beim Umbruch Bildarchiv
OnePlus 6T: Kaum da, schon gerootet ;-)
Zur Abwechslung mal wieder was über Telefone. Nach 4 Jahren mit dem OnePlus One, dem so allmählich die Puste ausging, war es mir mal nach Veränderung, so orderte ich mir eine neue Telefonzelle. Es musste mit 256 GB internem Speicher und 8 GB RAM natürlich gleich der dickste Bolzen sein. ;-) Da mich die Qualität des Gerätes und die Community in den letzten Jahren überzeugte - in unserem Haushalt werkelt ja auch noch ein OnePlus 3T - war eigentlich klar, daß ich markentreu bleibe. Das vor 5 Monaten erschienene 6er Modell hätte mich eigentlich schon gereizt, aber ich dachte mir, bau nochmal einen Austauschakku ein, vielleicht hält das Teil ja nochmal 4 Jahre durch. Naja, der Akku war bzw. ist ok, auch der Austausch war in 20 Minuten erledigt. Dennoch: Die heutige Software zieht schon etwas mehr Strom und letztlich reichte das nicht einmal mehr über den Tag.Tests zum 6T gibt es genügend, für mich gab es keinen Grund mehr, zu Googles "Pixel" zurückzukehren, nachdem die Preispolitik der vergangenen Jahre konsequent fortgesetzt und dafür an der 1000€ Marke gekratzt wird. Ein Thema, bei dem Durchgeknallte, die mit einem iPhone "X" herumposen - wohl nur zu einem müde Lächeln können. Aber irgendwie bekommt Apple das mit den Mondpreisen schon zu spüren.
Wie auch immer, nachdem OnePlus sein 6T vor 14 Tagen vorgestellt hatte kam es am Dienstag zur Auslieferung, meines bekam ich dann gestern geliefert. Während ich einem Familienmitglied beim Umstieg von einem ebenfalls 4 Jahre alten iPhone auf ein 6T unterstützte, fand ich noch die Zeit, nach einer Lösung zum Rooten für das 6T, denn ich hätte ja doch ganz gerne meine diversen Apps 1:1 wieder auf dem neuen Handy. Mittels Titanium BackUp kein Problem, allerdings setzt das Root voraus. Kein Problem1:
blu_spark TWRP für das OnePlus 6T
dann noch
Magisk herunterladen
Bei uns an den Linux Rechner gehängt, nachdem ich das 6T eingeschaltet und einen "alles überspringen" Setup Lauf durchgeführt hatte, bin ich in die Einstellungen / Über das Telefon / 7 * auf "Build Number" tippen, um den Entwicklermodus freizuschalten, dann wieder in "Einstellungen / System / Entwickleroptionen" und dort "OEM Entsperrung", "USB-Debugging" und "USB-Debugging Authorisierungen aufheben" aktivieren und dem angeschlossenen Rechner Zugriffsrechte erteilen. (Am besten auch noch "erweiterter Neustart" aktivieren, aber das ist Komfortzone.)
Sodann als root berechtigter User das folgende in die Linux Kommandozeile 2 reinhacken:
fastboot oem unlockSchwupps - so schnell ist das Handy platt. Genau: beim Entsperren des Bootloaders werden alle Daten gelöscht. Das macht nichts, da ich noch keine Daten darauf habe und deswegen ja auch im "alles überspringen" Setup Lauf unterwegs war ;-)
Nach dem Aufheben der OEM Sperre und der Freischaltung können nun TWRP, der blu_spark Kernel und Magisk installiert werden. Mit
fastboot boot twrp-3.2.3-x_blu_spark_v9.86_op6.imgwird das neue Recovery gebootet, anschließend erlaubt man Änderungen durch Wischen auf dem im unteren Bildschirrm angebotenen Schieberegler. Dann wird in dem nächsten Bildschirm unter "Advanced" der Menüpunkt"ADB Sideload" gewählt, "Wipe Dalvik Cache" und "Wipe Cache" gewählt und dann der ADB Zugriff durch Wischen am Schieberegler im unteren Bildschirmrand ermöglicht, der dann auf dem Computer per sideload aufs 6T gebügelt wird:
adb sideload twrp-3.2.3-xblusparkv9.86op6.zipDann kann z.B. mit dem blu_spark Kernel eine Alternative zum regulären Systemkern installiert werden:
adb sideload blusparkr56-oos-pieop6-6t9e9a352.zipAls Abschluß gibt es dann noch die Installation von Magisk per sideload:
adb sideload Magisk-v17.3.zipDann lösche ich eigentlich immer den Cache und starte das Handy neu. Magisk lässt sich zukünftig dann direkt aus der App updaten.
Diese im Gegensatz zu früheren root / Flash Aktionen scheinbar etwas umständlichere Methode der Recovery Installation hängt mit den A/B Partitionen zusammen, die ursprünglich mit Googles Pixel 1 eingeführt und für mehr Sicherheit sorgen sollen. So existiert im Gegensatz zu früheren Versionen keine eigene Recovery Partition mehr, sondern das Recovery ist Bestandteil des Boot Images. Grob gesagt muss deshalb TWRP temporär gebootet werden, um erst mit einem weiteren Installationslauf in einem der Slots eingerichtet zu werden. Die beiden Slots sind in TWRP selbst auch anwählbar, zum Beispiel beim Backup. Auch beim Neustart aus dem Recovery lässt sich der gewünschte Slot wählen.
Die verwendete (inoffizielle) blue_spark TWRP 3.2.3-x Recovery Version v9.86 ist noch in einem recht frühen Entwicklungsstadium, das sollte man bedenken, ebenso wie die angepasste Magisk Version. Zum Beipiel läuft hier das Xposed Modul leider noch nicht, auch gibt es in Sachen LineAgeOS bis jetzt auch nur inoffizielle Versionen. Hier habe ich mich auch noch nicht dazu durchgerungen, auf den Zug aufzuspringen. Aber was nicht ist, kann ja noch werden. Momentan schaue ich mir noch sehr wohlwollend das installierte OxygenOS 9.05 an, das unmittelbar nach dem TWRP Flash zum Download bereit stand.
Die A/B Partitionen können wie alles andere in dem kurzen Beitrag hier dargestellte zu Problemen führen, bis dahin, das OnePlus 6T in einen 629€ teuren Briefbeschwerer zu "bricken". Von daher: Alles, was bei mir geklappt hat, kann woanders ins Auge gehen, daher: Nachahmung auf eigene Gefahr, informiert Euch zuvor über die möglichen Folgen, zum Beispiel auch über eventuellen Garantieverlust!
In dem Sinne freue ich mich über Hinweise, Vorschläge, Alternativen und Kritiken, gerne über die Kommentarfunktion!
In diesem Beitrag sind einige Links auf Amazon und eBay gesetzt. Wenn Ihr über diese Links dort etwas bestellt, bekomme ich eine kleine Provision. Irgendwie muss die Kohle für das 629€ teure Teil ja wieder reinkommen. ;-) Für Euch bleibt der Preis derselbe wie bei einem Direktkauf.
Stuttgart: Internationalistischer Abend mit Vortrag und Ausstellung am 31. Oktober
Am 1. November jährt sich der Welt-Kobane-Tag, an dem der Widerstand der kurdischen Volks- und Frauenverteidigungseinheiten YPG und YPJ gegen den IS gefeiert wird. Die Verteidigung Kobanes brachte nicht nur mediale Öffentlichkeit, sondern hat auch eine internationale Solidaritätsbewegung „zustande“ gebracht. Kurdische und türkische Linke sowie InternationalistInnen aus der ganzen Welt trugen ihre Solidarität mit Kobane und Rojava auf die Straße.Im -“ von Imperialisten nach Einfluss und Macht umkämpften -“ Nahen Osten schafften die Kurdinnen und Kurden mit Rojava einen Gesellschaftsentwurf, der sich nach den Bedürfnissen der breiten Bevölkerung richtet und nicht nach den Interessen einiger weniger. Eine besondere Rolle spielt dabei auch die Befreiung der Frauen, die an der Revolution auf allen Ebenen beteiligt sind.
Doch nicht nur in Rojava finden linke und fortschrittliche Kämpfe gegen die herrschenden Verhältnisse statt. In der angrenzenden Türkei brechen diese Kämpfe, immer wieder aus. Seien es die Gezi-Proteste 2013, die Versuche selbstverwaltete kurdische Strukturen zu etablieren 2015 oder ganz aktuell der Massenstreik der Istanbuler Flughafen ArbeiterInnen.
Wo auch immer Menschen sich gegen ihre Unterdrückung und für eine solidarische Welt einsetzen zeigen wir uns solidarisch und versuchen unsere Kämpfe zu verbinden.
Aber was macht einen Kampf gegen Unterdrückung fortschrittlich? Wie entscheiden wir wen wir unterstützen? Wie genau sieht unsere Unterstützung aus? Wie können wir als InternationalistInnen in Deutschland an diese Kämpfe anknüpfen?
An diese Fragen wollen wir uns mit einem Vortrag und anschließender Diskussionsrunde heranwagen und versuchen eine Antwort zu geben. Im Anschluss kann man den Abend mit einer Ausstellung zu gefallenen Internationalistinnen ausklingen lassen.
Mit einem Vortrag „Solidarität mit der kurdischen Befreiungsbewegung“ und einer Ausstellung zu gefallenen Internationalistinnen
Mittwoch 31.10.2018
Beginn: 18.00 Uhr
Ort: Linkes Zentrum Lilo Herrmann
Eine Veranstaltung vom Arbeitskreis Internationalismus Stuttgart
Error 7: Modem- Firmwareupdate beim OnePlus3T
Ein kurzer Merkbeitrag zu einem Modem / Firmware Problem des OnePlus 3T, der beim Flashen eines beliebigen LineageOS Updates auftreten kann und sich mit dem Abbruch des Flashvorgangs mit der folgenden Fehlermeldung äußert:
"assert(op3.verify_modem("2017-06-27 21:43:31") == "1");"
Die Ursache besteht darin, daß das Handy zwischenzeitlich ein Upgrade der Firmware erhalten hatte, das jedoch in den LineageOS Zips nicht enthalten ist, von diesen aber erwartet wird. Zwischenzeitlich hatte ich mir so geholfen, daß ich in der Zip Datei vor jedem Flash Vorgang die Abfrage des Handymodells manuell geändert hatte.
Dazu im Archiv das Updater Script /META-INF/com/google/android/updater-script mit einem Texteditor öffnen und sämtliche Zeilen mit "assert" und "getprop" Einträgen löschen. Abspeichern und installieren. Klappt problemlos und ermöglicht, falsche Systeme auf dem Handy zu installieren und dies zu bricken. ;-)
Also ein funktionierernder Workaround, jedoch ziemlich weit entfernt von einem automatisierungsfähigen Vorgehen. Zufällig bin ich dann über den Eintrag von Lord Boeffla (Vielen Dank dafür!) bei XDA gestolpert, einem Entwickler von Kernelhacks für die OnePlus Geräte, der die Firmwareupgrades aus dem originalen OxygenOS extrahiert und auch für andere OS zur Verfügung gestellt hat. Diese Datei sollte auf einem der üblichen Wege auf das 3T verbracht und dann per TWRP geflasht werden. Danach klappt es endlich auch wieder mit dem automatischen Update auf die aktuellste LineageOS Version.
Edit: Für den (eher unwahrscheinlichen) Fall, das man das 3T gebrickt hat, findet sich hier einige Hinweise, das Ding wieder ans Laufen zu bekommen.




