es geht um scrcpy

Heute solls um ein kleines Projekt namens „scrcpy“ gehen. Das ist jetzt kein L33t-Speak ;), sondern stand wohl mal für „screen copy“, denn genau darum geht es: Eine Bildübertragung vom Handy zum PC – Live.

„scrcpy“

Das Projekt gibt es bei GitHUB im Genymobile Repo und man muß es selbst zusammen häkeln. Das stellt natürlich eine gewisse Hürde dar, daher hier eine kleine Hilfe, was man machen muß :

Schritt 1: Buildtools installieren

Dazu bitte als Root ausführen:

Wer noch kein RPMFusion für Fedora aktiviert hat, könnte es machen:

# enable RPM fusion free
dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

Ansonsten braucht Ihr nur das hier:

dnf install SDL2-devel ffms2-devel meson gcc make java

Schritt 2 – Sourcen laden

Zunächst machen wir uns mal ein neues Arbeitsverzeichnis:

[marius@eve Programme]$ mkdir scrcpy
[marius@eve Programme]$ cd scrcpy/

Dann laden wir die Sourcen von dem Programm via git herunter:

[marius@eve scrcpy]$ git clone https://github.com/Genymobile/scrcpy
Klone nach ’scrcpy‘ …
remote: Counting objects: 2441, done.
remote: Total 2441 (delta 0), reused 0 (delta 0), pack-reused 2441
Empfange Objekte: 100% (2441/2441), 539.98 KiB | 1.27 MiB/s, Fertig.
Löse Unterschiede auf: 100% (1417/1417), Fertig.

Nun brauchen wir noch den Server ( den kaputten Buildprozess für den Server überspringen wir hier, da es einen PreBuild-Server gibt, aber wir brauchen trotzdem einige Files aus dem Buildprozess):

[marius@eve scrcpy]$ wget https://github.com/Genymobile/scrcpy/releases/download/v1.3/scrcpy-server-v1.3.jar

Schritt 3 – Umgebung bauen:

[marius@eve scrcpy]$ cd scrcpy
[marius@eve scrcpy]$ meson x –buildtype release –strip -Db_lto=true
The Meson build system
Version: 0.47.1
Source dir: /home/marius/Programme/scrcpy/scrcpy
Build dir: /home/marius/Programme/scrcpy/scrcpy/x
Build type: native build
Project name: scrcpy
Project version: undefined
Native C compiler: cc (gcc 7.3.1 „cc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6)“)
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (1.3.12)
Native dependency libavformat found: YES 57.71.100
Native dependency libavcodec found: YES 57.89.100
Native dependency libavutil found: YES 55.58.100
Native dependency sdl2 found: YES 2.0.7
Configuring config.h using configuration
Program ./scripts/build-wrapper.sh found: YES (/home/marius/Programme/scrcpy/scrcpy/server/./scripts/build-wrapper.sh)
DEPRECATION: build_always is deprecated. Combine build_by_default and build_always_stale instead.
Build targets in project: 6
Found ninja-1.8.2 at /usr/bin/ninja
[marius@eve scrcpy]$ cd x
[marius@eve x]$ ninja
[30/31] Linking target app/scrcpy.

Wenn Ihr das hier lest:

[31/31] Generating scrcpy-server with a custom command.
FAILED: server/scrcpy-server.jar
/home/marius/Programme/scrcpy/scrcpy/server/./scripts/build-wrapper.sh ../server/. server/scrcpy-server.jar release
Downloading https://services.gradle.org/distributions/gradle-4.4-all.zip

und dann jede Menge Gradle-Schrottdownload-Meldungen erscheinen, hats mit dem eigenen Server nicht geklappt und es kommt der nächste Schritt:

Den Scheiss wieder löschen 😉

Das Ihr hier andere Pfade habt, muß ich glaube ich, nicht extra erwähnen, oder ? 😉

[marius@eve x]$ cd ..;rm -rf x
[marius@eve scrcpy]$ meson x –buildtype release –strip -Db_lto=true -Dprebuilt_server=/home/marius/Programme/scrcpy/scrcpy-server-v1.3.jar
The Meson build system
Version: 0.47.1
Source dir: /home/marius/Programme/scrcpy/scrcpy
Build dir: /home/marius/Programme/scrcpy/scrcpy/x
Build type: native build
Project name: scrcpy
Project version: undefined
Native C compiler: cc (gcc 7.3.1 „cc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6)“)
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (1.3.12)
Native dependency libavformat found: YES 57.71.100
Native dependency libavcodec found: YES 57.89.100
Native dependency libavutil found: YES 55.58.100
Native dependency sdl2 found: YES 2.0.7
Configuring config.h using configuration
Build targets in project: 6
Found ninja-1.8.2 at /usr/bin/ninja
[marius@eve scrcpy]$ cd x
[marius@eve x]$ ninja
[31/31] Linking target app/scrcpy.

Schritt 5 – Installieren

[marius@eve x]$ sudo ninja install
[sudo] Passwort für marius:
[0/1] Installing files.
Installing app/scrcpy to /usr/local/bin
Stripping target ‚app/scrcpy‘
Installing server/scrcpy-server.jar to /usr/local/share/scrcpy

Schritt 6 – Starten

Trommelwirbel und …

und wie man an dem Bild schon sehen, daß Ganze funktioniert nur, wenn man in den Entwicklereinstellungen des Handies das USB-Debugging erlaubt.

man sieht die Android Oberfläche mit Icons

Nun kann man, wenn man kann, mit der Maus das Handy auf dem PC fernsteuern, Eingaben machen, Programme starten, Surfen, Spielen, Videos schauen und mit SimpleScreenRecorder auch Tutorials vom Handy aufnehmen.

Wenn das böse Wenn nicht wär.

Die Sache mit dem Wenn man kann ist fies. Die Verbindung zu meinem Handy lebt nur wenige Sekunden, aber andere Handies bekommen das auch dauerhaft hin, wie Malte aus unserer LUG neulich demonstriert hat.

Es kommt also auf das Android ROM an, das auf dem Handy läuft. Wer eine Alternative sucht, kann Teamviewer für Android nutzen, das bekommt das deutlich stabiler auch auf einem Stock-ROM hin. Aber wer weiß dann schon, wer da mitliest.

Am Ende dann nicht vergessen den Gradle Kram wieder zu entfernen: rm -rf ~/.gradle

Happy Birthday .. Linux

Es ist mal wieder soweit. Linux hat „Geburtstag“ \o/

Am heutigen 17. September im Jahre 1991 wurde Linux öffentlich verfügbar. Noch nicht als DAS Linux bekannt, und auch grade mal als DOS „Ersatz“ brauchbar, fanden sich schon früh Patentanten und -onkel, die dem Kleinen unter die Arme griffen und es auf seinem Weg zu einem echten Betriebssystem begleiteten. Linus Torvalds als Vater des kleines Linux, begleitet bis heute seinen Werdegang als BDOL (‚wohlwollender Diktator auf Lebenszeit‘ ich habs mir nicht ausgedacht 😉 ). Linus ist bei der gemeinnützigen Linux Foundation angestellt und wird gerüchteweise* morgens mit „Ave Linus, computatorium utensi te salutant.“ begrüßt. Wie sich das für so einen Diktator auf Lebenszeit gehört 😉 Spannend wird wohl erst wieder werden, wenn er mal in Rente gehen sollte 😀

Alles Gute fürs nächste Jahr.. kleine Linux 😉

 

Neues vom Mi WIFI Extender 2

Den Xiaomi Mi WIFI Extender 2 hatte ich Euch für die Tello Drohne ja schon im Mai vorgestellt.

Heute hatte der Repeater dann einen Anfall und hat sich resetet, aber nicht neugestartet, sondern natürlich ein Factory Reset. Also ging der Spaß mit dem MI 2 in die nächste Runde.

Neues von Xiaomi

Ach ja, also wieder den ganzen Scheiss, Karten aus dem Handy raus, App installieren, App Löschen und mit neuen Rechten ( nämlich gar keinen ) wieder gestartet.

Nun hatte ich ja aus dem Debakel vom Mai gelernt und dachte, ich wüßte wie es geht. Aber Pustekuchen, die Firma Xiaomi meinte doch glatt, daß wir den „China Mainland“ Trick nur einmal machen dürfen. Und jetzt stehst Du da mit einer Chinesischen App, die eine Telefonnummer und eine PASSID von Dir möchte … alleine in Deutschland.

Nichts ging. Im Europamodus, konnte man sich zwar anmelden, aber das Ding fand den Repeater nicht. Im Chinamodus konnte man sich nicht anmelden und so natürlich auch nicht nach dem Repeater suchen. Ja, genau.. **** .

Frage: Warum würde man einen Repeater im Europamodus nicht finden, im Chinamodus aber schon?

Antwort: Na, weil die da andere WLAN Frequenzen erlauben als in Europa.

Überlegung: Könnte vielleicht ein anderes Land ähnliche Frequenzen nutzen, aber den europäischen Cloud-Login akzeptieren ?

Jo, Indien … DANKE . Ihr habt den Tag gerettet. Mit Indien als Asienserver ging dann die Anmeldung und auch der Repeater wurde gleich gefunden. Magisch 😉

Man sehen, wie lange das so bleibt.

PS: Ob man es glaubt oder nicht, aber die Xiaomi’er haben doch glatt eine Datenschutzerklärung eingebaut 😉 Nicht das glauben würde was da steht, aber sie haben eine 😀