Je me demandais s'il existait un outil que je pouvais utiliser sur Ubuntu Desktop et être connecté à un périphérique Ubuntu Touch via une application de bureau à distance (ou affichage à distance), de telle sorte que les clics de souris se propagent également sous forme de tapotements sur le périphérique (et , copier/coller du texte)?
Fondamentalement, si Ubuntu Touch utilisait X11, j'aurais alors pu utiliser vinaigre
ou xvnc4viewer
sur Ubuntu Desktop en tant que clients VNC et Vino
en tant que serveur VNC sur le périphérique - cependant, Ubuntu Touch utilise Mir et je ne trouve pas vraiment d’informations sur le bureau/affichage à distance via Mir.
Alors, y a-t-il quelque chose comme ça là-bas?
Eh bien, il existe une solution partielle - dans le sens où vous pouvez voir l’écran, mais pas le contrôler à partir de la souris. Je l'ai remarqué en exécutant phablet-screenshot
en mode débogage, ce qui indique qu'il utilise un programme mirscreencast
sur le téléphone.
Il y a un peu plus à ce sujet dans https://wiki.ubuntu.com/Touch/ScreenRecording , cependant, la ligne de commande la plus pratique que j'ai trouvée sur ... Youtube:
Démarrage de la transmission (sur l'appareil):
mirscreencast -m /run/mir_socket --stdout --cap-interval 1 -s 270 480 | gzip -c | nc 192.168.0.5 1234
Réception d'une transmission (sur un ordinateur de bureau):
nc -l -p 1234 | gzip -dc | mplayer -demuxer rawvideo -rawvideo w=270:h=480:format=rgba -
Aussi, il y a https://github.com/ycheng/mir-vnc-server - un peu expérimental, j'ai réussi à le faire compiler 14.04 téléphonez et courez, et pouvez vous connecter via un client VNC, mais je ne peux pas obtenir une mise à jour d'écran en temps réel (seul le premier cadre est affiché et aucune souris n'est mise à jour); voici mes notes - malheureusement, pas tout à fait complète, mais donne une idée:
# in 64-bit Ubuntu 14.04:
# (/path/to/docker is general storage dir)
git clone https://github.com/ycheng/mir-vnc-server.git /path/to/docker/mir-vnc-server_git
Sudo docker pull z3ntu/ubuntu-touch-build-env
Sudo service docker start
Sudo docker run -vit /path/to/docker/:/var/ubuntu_touch z3ntu/ubuntu-touch-build-env /bin/bash
Sudo apt-get install gcc-arm-linux-gnueabi binutils-arm-linux-gnueabi
Sudo apt-get install g++-arm-linux-gnueabi
Sudo apt-get install g++-arm-linux-gnueabihf
Sudo apt-get install libvncserver-dev # else dummyvncserver.c:3:21: fatal error: rfb/rfb.h: No such file or directory
Sudo ln -s /usr/include/x86_64-linux-gnu/zconf.h /usr/include/ # else /usr/include/zlib.h:34:19: fatal error: zconf.h: No such file or directory
Sudo apt-get install libmirclient-dev # else fatal error: mir_toolkit/mir_client_library.h: No such file or directory
Sudo apt-get install libgles2-mesa-dev # else fatal error: EGL/egl.h: No such file or directory
# because of ..../arm-linux-gnueabi/bin/ld: cannot find -lvncserver:
apt-get source libvncserver0
apt-get source zlib1g
cd zlib-1.2.8.dfsg/
./configure
CC=arm-linux-gnueabi-gcc make
# should get: ./libz.so.1.2.8: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, ...
cp -a *.so* /path/to/docker/libvncserver-0.9.9+dfsg/
cd ..
cd libvncserver-0.9.9+dfsg
aclocal
autoconf
autoheader
automake --add-missing
# ld: cannot find -lgcrypt, -lgnutls, -lws2_32; so:
# in configure, comment out 'LIBS="$LIBS -lws2_32"', and then:
LD_LIBRARY_PATH=${PWD} ./configure --Host=arm-linux-gnueabi --without-gcrypt --without-gnutls
cd libvncserver/
CC=arm-linux-gnueabi-gcc make CFLAGS+="-DLIBVNCSERVER_HAVE_GETTIMEOFDAY -DLIBVNCSERVER_HAVE_LIBZ"
# should get: libvncserver/.libs/libvncserver.so.0.0.0: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, ...
cp libvncserver/.libs/* /path/to/docker/mir-vnc-server_git/
cd /path/to/docker/mir-vnc-server_git/
LD_LIBRARY_PATH=${PWD} CC=arm-linux-gnueabi-gcc CXX=arm-linux-gnueabihf-g++ make
# here got stuck, and went on phone instead:
# http://askubuntu.com/questions/600065/consequences-of-using-apt-get-in-ubuntu-touch
# phablet-config writable-image
# more-less repeated the procedure above, but on the phone - possibly with some changes in Makefile and/or source files (unfortunately, lost)
# final linking command for executable had to be issued manually, it was:
g++ mirvncserver.o -o mirvncserver -L/usr/lib/arm-linux-gnueabihf -lpthread -lmircommon -lmirclient -lmirprotobuf -lEGL -lboost_program_options -lxcb-glx -lGLESv2 -lmirserver -lvncserver
# run like this - in a phone terminal Shell:
# -s 270 480: WARNING: Width (270) is not a multiple of 4. VncViewer has problems with that.
./mirvncserver -m /run/mir_socket --cap-interval 2 -s 268 480
# then on desktop - use the IP address of the phone on the local network:
xvnc4viewer 192.168.XXX.YYY