web-dev-qa-db-fra.com

Afficheur de bureau / affichage à distance pour les appareils Ubuntu Touch?

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?

1
sdbbs

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:

Capture vidéo en temps réel depuis Ubuntu Phone - mirscreencast au bureau de l'ordinateur en temps réel. - 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
2
sdbbs