KlipperScreen auf Android am alten Fire Tablett
Ich hab noch ein altes Fire-Tablet von Amazon rumfliegen. Und da hab ich gedacht, ich kann das ja ideal benutzen, um Klipper an meinem Ultimaker Original damit zu bedienen per KlipperScreen.
Zunächst hab ich einfach immer das Web-Interface benutzt, aber das alte Tablet ist hier leider extrem langsam. Also wollte ich KlipperScreen installieren, dazu muss man aber ein paar „Modifikationen“ vornehmen. Am Ende hab ich das ganze Teil mit einem Tool debloated. Falls jemand da draußen was ähnliches vor hat, hier gibt es die Zusammenfassung.
XServer XSDL installieren
Da es im Amazon-App Store die benötigte App nicht gibt, müssen wir uns diese z.B. von APK Mirror herunterladen:
https://www.apkmirror.com/apk/pelya/xserver-xsdl
Wenn die erfolgreich heruntergeladen ist, können wir im Pop-Up auf öffnen drücken. Dann müssen wir in den Einstellungen noch Erlauben, dass wir Apps aus unbekannten Quellen installieren dürfen und in den Optionen dazu bei Silk den Haken setzen. Das sollte über den Warnungsdialog beim öffnen der APK funktionieren. Ich hab hier leider keine Screenshots aber hier gibt es eine detaillierte Anleitung:
https://www.howtogeek.com/178357/how-to-sideload-apps-onto-your-kindle-fire
Wenn ihr die App dann startet, kommt kurz ein Konfig-Dialog bevor die App dann in den Fullscreenmodus geht und auf eine Verbindungsabfrage wartet. Wenn euch der emulierte Mauszeiger stört, könnt ihr diesen in der Konfiguration deaktivieren:
“CHANGE DEVICE CONFIGURATION”
└──Mouse Emulation Mode
└──Desktop, No Emulation
Optional: Fire Tablett Debloaten.
Wer ein altes und langsames Fire-HD oder Fire Tablett hat, der ist mit diesem Tool bestens ausgestattet:
Einfach als portable Version herunterladen und starten, danach das Tablett mit einem USB-Daten-Kabel (es gibt auch USB-Lade-Kabel, wo es keine Datenleitungen gibt) verbinden und die nötigen Treiber werden automatisch installiert. Wenn euer Fire HD zu alt ist, wird es auch angezeigt. Ihr könnt es dann zwar nicht so einfach ausmisten, aber für KlipperScreen kann es trotzdem verwendet werden.
Hier gibt es viele nützliche Sachen. Man kann fast auf ein Vanilla Android downgraden, den Playstore installieren, Chrome installieren, ohne sich großartig die korrekten apks zusammen suchen zu müssen etc, etc. Klickt euch einfach mal durch. Es hilft auf jedenfall wenn das Tablet etwas schneller ist. Auch kann man den LockScreen und den Bildschirmhintergrund tauschen. Pretty Cool!
Klipper Screen installieren
Man kann Klipper-Screen entweder manuell oder per KIAUH installieren. Ich beschreibe hier einfach die manuelle Variante, da dass nicht besonders kompliziert ist.
Wir verbinden uns mit dem Windows-Terminal (# – cmd – enter) per ssh auf unseren Raspberry-Pi, auf dem Klipper läuft und geben dann das PW ein:
ssh pi@192.168.178.120
Dann hacken wir einfach die folgende Sequenz in die Konsole:
cd ~/
git clone https://github.com/KlipperScreen/KlipperScreen.git
./KlipperScreen/scripts/KlipperScreen-install.sh
Die kopiert einfach die benötigten Dateien aus Github auf den Raspi und startet ein Bash (.sh) Script für die Installation.
Im Klipper-Wbinterface kommt in die Moonraker.conf dann noch ein Punkt bei authorization dazu. Hier stehen wahrscheinlich schon eine Reihe einträge, der kann also einfach unten drunter:
[authorization]
trusted_clients:
127.0.0.1
Natürlich darf auch der Update-Manager (auch in moonraker.conf) nicht fehlen:
[update_manager KlipperScreen]
type: git_repo
path: ~/KlipperScreen
origin: https://github.com/KlipperScreen/KlipperScreen.git
virtualenv: ~/.KlipperScreen-env
requirements: scripts/KlipperScreen-requirements.txt
system_dependencies: scripts/system-dependencies.json
managed_services: KlipperScreen
Dann wie immer speichern und Neustarten.
USB oder WIFI
Man kann den Klipper-Screen entweder über USB oder über WIFI auf dem Tablett anzeigen lassen. Wifi ist dabei etwas einfacher, aber bei mir so langsam (Der Keller ist nur per Powerline im Internet und hat nicht die krasse Bandbreite), dass es kaum zu benutzen war. Ich hab dann auf USB ADB gewechselt.
WIFI
Für WiFi kann man einfach der offiziellen Anleitung folgen:
https://klipperscreen.readthedocs.io/en/latest/Android
Wir löschen zunächst das Launch-Script für die ADB Verbindung und erstellen für die WLAN Verbindung einfach ein neues Script und ändern die Zugriffsrechte. Danach öffnen wir den nano Fileditor:
rm ~/KlipperScreen/scripts/launch_KlipperScreen.sh
touch ~/KlipperScreen/scripts/launch_KlipperScreen.sh
chmod +x ~/KlipperScreen/scripts/launch_KlipperScreen.sh
nano ~/KlipperScreen/scripts/launch_KlipperScreen.sh
Am Tablet muss die X-Server App jetzt laufen und schon den blauen Wartebildschirm anzeigen. Hier steht eine IP die wir nun in der Konsole in das geöffnete Script schreiben. Also hier einfach die IP anpassen:
DISPLAY=192.168.178.122:0 $KS_XCLIENT
Mit strg + o speichern wir, bestätigen mit yes und können nano mit strg + x den Editor schließen.
Jetzt müssen wir einfach den Klipper-Screen Service neu-starten. Wenn es nach einer Weile immernoch keinen Klipper-Screen auf eurem Bildschirm gibt, müssen wir eventuell auch noch das Tablet neu starten. Und wenn das nicht hilft, einfach auch den Raspi einmal rebooten.
sudo service KlipperScreen restart
sudo reboot
USB (ADB)
Um das Fire-Tablet per USB-ADB Schnittstelle mit Klipper-Screen zu verbinden, brauchen wir die Android Developer Tools für Linux. Diese installieren wir:
sudo apt-get install android-tools-adb
Das Tablet sollte USB Debugging aktiviert haben. Das habt ihr aber wahrscheinlich beim Debloating schon gemacht. Ansonsten in die Einstellungen – Geräte Optionen – Über das Tablet – 7x auf die Serien-Nr. tippen. Dann tauchen die Entwickleroptionen unter Einstellungen – Geräte Optionen – Entwickler-Optionen auf. Hier aktivieren wir dann das USB Debugging.
Der Pfad kann je nach Android-Gerät leicht abweichen.
Für die USB Verbindung vom Pi zum Tablet brauchen wir ein anderes Start-Bash-Script. Das richten wir wie folgt ein:
cd ~/KlipperScreen/scripts
cp sample-android-adb.sh launch_KlipperScreen.sh
chmod +x ~/KlipperScreen/scripts/launch_KlipperScreen.sh
Auch hier sollten wir dann den Service nochmal neu starten:
sudo service KlipperScreen restart
Ich hab dann mit
sudo service KlipperScreen status
noch gecheckt ob es läuft. Bei mir kam dann noch eine Fehlermeldung, dass ich nicht die nötigen rechte hab. Nach kurzer Recherche hab ich aber diese Lösung gefunden:
Also wir testen mit
adb devices
ob das Android Gerät auch erkannt wird. Nun bekommen wir eine Rückmeldung. Wenn der user nicht teil von plugdev ist, können wir diesen mit folgendem Befehl hinzufügen:
sudo usermod -aG plugdev $LOGNAME
Jetzt fehlen wahrscheinlich noch die udev regeln für das Tablett. wir müssen also mit
lsusb
unser Tablet / Smartphone ausfindig machen.
Bei mir ist das Fire-Tablet am Codename KFMUWI zu erkenn. Jetzt brauchen wir die beiden Zahlencodes hinter ID. Diese ändern wir im nächsten Snippet ab. Zunächst legen wir eine neue Datei für udev rules an:
sudo nano /etc/udev/rules.d/51-android.rules
Und dann fügen wir das folgende angepasste Snippet ein. Hier müssen wir die idVendor und idProduct entsprechend anpassen. Die Reihenfolge ist die gleiche wie in lsusb:
SUBSYSTEM=="usb", ATTR{idVendor}=="1949", ATTR{idProduct}=="03c8", MODE="0666", GROUP="plugdev"
Wir speichern mit strg + o, bestätigen mit yes und verlassen nano mit strg + x. Jetzt können wir noch die Regeln neu laden:
sudo udevadm control --reload-rules
Dann nochmal testen:
adb devices
Wenn das noch nicht geklappt hat, müsst ihr den Raspi nochmal rebooten. Und ab hier muss man auf dem Tablett noch das Pop-Up bestätigen, dass die Verbindung okay ist.
Jetzt sollte KlipperScreen über USB ADB auf eurem Tablet laufen. Das läuft bei mir auch deutlich schneller, als übers WLAN. Nur hier empfiehlt es sich, ggf. einen aktiven USB Hub dazwischen zu hängen, damit sich das Tablet nicht langsam entlädt.
Happy Printing!
$ Die mit einem $ gekennzeichneten Links, sind Affiliate Links. Wenn du über diese in den Shop gelangst und etwas kaufst, bekomme ich eine kleine Provision