La Fibre
Télécom => Logiciels et systèmes d'exploitation =>
Linux => Discussion démarrée par: vivien le 25 juin 2025 à 10:01:33
-
Je cherche à afficher l'écran mon smartphone (Pixel 6) sur mon Linux via scrcpy
1/ J'ai installé les paquets adb et, scrcpy sur mon Ubuntu 25.04 via apt (sudo apt install adb scrcpy)
2/ J'ai connecté mon Pixel 6 en USB sur mon PC et activé le débogage USB ( Paramètres ⇒ Système ⇒ Options pour développeurs ⇒ Débogage USB) et redémarré mon téléphone
3/ Je lance scrcpy ou scrcpy -w -S depuis un terminal sur mon Ubuntu, j'ai une erreur [server] ERROR: Could not invoke method
Le débogage USB est bien activé (l'erreur est bien différente quand ce n'est pas activé).
$ scrcpy
scrcpy 1.25 <https://github.com/Genymobile/scrcpy>
/usr/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 289.8 MB/s (41652 bytes in 0.000s)
[server] INFO: Device: Google Pixel 6 (Android 16)
[server] ERROR: Could not invoke method
java.lang.NoSuchMethodException: android.content.IClipboard$Stub$Proxy.addPrimaryClipChangedListener [interface android.content.IOnPrimaryClipChangedListener, class java.lang.String, class java.lang.String, int]
at java.lang.Class.getMethod(Class.java:2940)
at java.lang.Class.getMethod(Class.java:2440)
at com.genymobile.scrcpy.wrappers.ClipboardManager.getAddPrimaryClipChangedListener(ClipboardManager.java:128)
at com.genymobile.scrcpy.wrappers.ClipboardManager.addPrimaryClipChangedListener(ClipboardManager.java:138)
at com.genymobile.scrcpy.Device.<init>(Device.java:100)
at com.genymobile.scrcpy.Server.scrcpy(Server.java:64)
at com.genymobile.scrcpy.Server.main(Server.java:334)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:371)
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.AssertionError: java.lang.NoSuchMethodException: android.view.SurfaceControl.createDisplay [class java.lang.String, boolean]
at com.genymobile.scrcpy.wrappers.SurfaceControl.createDisplay(SurfaceControl.java:83)
at com.genymobile.scrcpy.ScreenEncoder.createDisplay(ScreenEncoder.java:278)
at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:84)
at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:74)
at com.genymobile.scrcpy.Server.scrcpy(Server.java:100)
at com.genymobile.scrcpy.Server.main(Server.java:334)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:371)
Caused by: java.lang.NoSuchMethodException: android.view.SurfaceControl.createDisplay [class java.lang.String, boolean]
at java.lang.Class.getMethod(Class.java:2940)
at java.lang.Class.getMethod(Class.java:2440)
at com.genymobile.scrcpy.wrappers.SurfaceControl.createDisplay(SurfaceControl.java:81)
... 7 more
INFO: Renderer: opengl
INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 25.0.3-1ubuntu2
INFO: Trilinear filtering enabled
INFO: Initial texture: 1080x2400
WARN: Device disconnected
WARN: Killing the server...
La documentation ( https://github.com/Genymobile/scrcpy#prerequisites ) explique que sur certains téléphonnes il faut activer USB debugging (Security Settings). J'ai bien cherché, ce n'est pas proposé par mon Pixel 6.
Si vous avez une solution...
-
Version trop vieille probablement... 1.25 date de 2022 et on en est à la 3.3.1.
-
La version 1.25 est celle qui est dans tous les dépôts de Linux :
- Ubuntu 25.04
- Debian SID Unstable
- Snap Store ( https://snapcraft.io/scrcpy )
Il y a bien une version non officielle : https://snapcraft.io/scrcpy-updated qui est en version 3.3.1, mais quand je la lance, j'ai une erreur :
$ scrcpy-updated.scrcpy
/snap/scrcpy-updated/118/usr/local/bin/scrcpy: error while loading shared libraries: libblas.so.3: cannot open shared object file: No such file or directory
Normalement un Snap vient avec ses dépendances...
-
Essaie le binaire statique officiel : https://github.com/Genymobile/scrcpy/releases/download/v3.3.1/scrcpy-linux-x86_64-v3.3.1.tar.gz (c'est l'archive listée sur https://github.com/Genymobile/scrcpy/releases/tag/v3.3.1)
La doc officielle elle-même indique que les images des dépôts Debian/Ubuntu sont obsolètes : https://github.com/Genymobile/scrcpy/blob/master/doc/linux.md
-
La documentation ( https://github.com/Genymobile/scrcpy#prerequisites ) explique que sur certains téléphonnes il faut activer USB debugging (Security Settings). J'ai bien cherché, ce n'est pas proposé par mon Pixel 6.
Si vous avez une solution...
double question :
l'objectif est simplement par "curiosité", ou parce que l'écran du tel est explosé? souvent cette problématique intervient lorsque le tel s'est pris un mur..
pour l'USB debugging, je crois que c'est la traduction simple du "mode adb" à activer dans les outils développeur.. si le "adb shell" permet bien d'entrer sur l'appareil via terminal, alors normalement c'est la même chose..
-
Je souhaite remonter de la façon la plus propre possible ce que j'ai maladroitement mis sur le sujet https://lafibre.info/couverture/4g-avec-sosh-ou-5g-avec-free/msg1122353/#msg1122353 : Free a un problème de handover quand il y a du monde qui se balade ensemble à 100 Km/h. Mon exemple n'était pas bon, car il y a 3 sites Free HS sur le périmètre de ma copie d'écran, mais le pb se présente également sans sites en panne : Le mobile est en 5G, mais sur un site trop éloigné et la data ne passe pas. J'ai même noté un passage en itinérance Orange, sur une zone couverte et sans sites Free HS.
Il faut donc que j'ai sur ma vidéo les données de réception eNB Analytics + l'écran de mon PC qui montre qu'on n'a rien ou presque rien en data + moi qui des informations précises sur la localisation (car le GPS dans le train, ce n'est pas toujours ça, même en voiture haute).
Le plus propre est donc de déporter l'écran du mobile sur mon PC et de faire une capture vidéo de l'écran de mon PC.