Un ancien ordinateur portable + Ubuntu 18.04 LTS fait de l'ancien iPad un sous-moniteur

Les ordinateurs portables plus anciens ont un port de sortie externe (VGA), mais pour une raison quelconque, ils ne deviennent pas multi-moniteurs lorsqu'ils sont connectés à un moniteur.

Par contre, dans Windows, il existe une application appelée "spacedesk" qui utilise un smartphone ou une tablette comme sous-moniteur, et je pourrais effectivement la vérifier sur mon ancien iPad, alors je me suis demandé si je pouvais faire de même avec Ubuntu.

Après cela, j'ai trouvé l'article suivant sur Qiita, alors j'ai décidé de le suivre.

[Ubuntu 18.04] Un mémorandum qui fait d'Android (ou iPad) un sous-moniteur https://qiita.com/hir-osechi/items/5a106f75ff1b9b8cd469

Cela me semblait facile, alors j'ai pensé qu'il ne resterait pas à Qiita ...

Matériel

Méthode

  1. Ajoutez un affichage virtuel sur votre PC (Ubuntu) pour étendre la zone d'écran
  2. Activez le partage d'écran sur votre PC, placez VNC Viewer sur une tablette (iPad) et connectez-vous de tablette à PC.
  3. Le PC affiche l'affichage principal tel quel et la tablette affiche le côté d'affichage virtuel avec VNC, de sorte que la tablette est considérée comme un moniteur secondaire.

Introduction de VNC

Insérez d'abord le "VNC" essentiel.

côté iPad

Installez "VNC Viewer" depuis l'App Store.

C'est facile à dire, mais dans la situation où "iOS 14" est sorti au moment de la rédaction (2020/11), l'application qui prend en charge "iOS 9.3.5" il y a 5 générations est vraiment Il y en a peu **, même si vous essayez de faire quelque chose, cela se termine souvent sans même être installé. ** **

Heureusement, VNC Viewer était miraculeusement "compatible avec iOS 9.0 ou plus tard", donc j'ai pu l'installer, mais si cela était compatible avec 10.0 ou plus tard, cette tentative s'est terminée immédiatement.

Côté PC

Suivez les traces de nos prédécesseurs.

Tout d'abord, juste au cas où, vérifiez si vino (le serveur VNC de GNOME) est installé.

$ sudo apt install vino
Chargement de la liste des packages...Terminé
Créer une arborescence de dépendances
Lecture des informations d'état...Terminé
vino est déjà la dernière version(3.22.0-3ubuntu1.1)est.
améliorer:0, nouvelle installation:0, supprimé:0 pièces, en attente:Quatre.
$

Ensuite, ouvrez [Paramètres] → [Partage], réglez le commutateur en haut à droite sur "Activé", puis cliquez sur "Partage d'écran" au centre pour ouvrir la fenêtre suivante.

qiita_20201106_1.png

Allumez l'interrupteur en haut à gauche, cochez «Mot de passe requis», entrez le mot de passe et fermez.

Cela termine le côté serveur de VNC, mais il semble que cela ne fonctionnera pas à moins que (connexion VNC) soit entre Linux, alors exécutez la commande suivante pour invalider la demande de chiffrement.

$ sudo gsettings set org.gnome.Vino require-encryption false

Puis connectez-vous au PC à partir de la visionneuse VNC sur l'iPad. Ignorez l'avertissement selon lequel il n'y a pas de demande de cryptage et continuez et confirmez que l'écran du PC est affiché sur le VNC du côté iPad (le même écran doit être affiché à ce stade).

Ajouter un affichage virtuel

Ensuite, afin d'agrandir la zone d'écran du PC, définissez des paramètres supplémentaires pour l'affichage virtuel.

Tout d'abord, vérifiez l'état.

$ xrandr -q
Screen 0: minimum 8 x 8, current 2352 x 800, maximum 32767 x 32767
LVDS1 connected primary 1280x800+1072+0 (normal left inverted right x axis y axis) 286mm x 178mm
   1280x800      60.00*+  59.81    59.91  
   1280x720      59.86    59.74  
   1024x768      60.00  
   1024x576      59.90    59.82  
   960x540       59.63    59.82  
   800x600       60.32    56.25  
   864x486       59.92    59.57  
   640x480       59.94  
   720x405       59.51    58.99  
   640x400       60.00  
   640x360       59.84    59.32  
TV1 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
$

・ ・ ・ ** Il n'y a pas de définition de "VIRTUAL 1"! ** orz

Sur les traces de mes ancêtres, cela me semblait facile car l'histoire se déroulait avec "VIRTUAL 1", mais je ne m'attendais pas à ce qu'il n'y ait pas de chose aussi importante même s'il s'agissait du même OS, alors j'ai soudainement trébuché.

Cependant, à la suite de mes errances sur le Web, je suis arrivé à la conclusion que je devrais le faire s'il n'existe pas, même si je ne sais pas pourquoi il n'existe pas.

$ cd /usr/share/X11/xorg.conf.d/
$ sudo nano 30-virtscreen.conf
---
Section "Device"
	Identifier "intelgpu0"
	Driver     "intel"
	Option     "VirtualHeads" "1"
EndSection
---

Après l'enregistrement, déconnectez-vous et connectez-vous, puis vérifiez à nouveau.

$ xrandr -q
Screen 0: minimum 8 x 8, current 2352 x 800, maximum 32767 x 32767
LVDS1 connected primary 1280x800+1072+0 (normal left inverted right x axis y axis) 286mm x 178mm
   1280x800      60.00*+  59.81    59.91  
   1280x720      59.86    59.74  
   1024x768      60.00  
   1024x576      59.90    59.82  
   960x540       59.63    59.82  
   800x600       60.32    56.25  
   864x486       59.92    59.57  
   640x480       59.94  
   720x405       59.51    58.99  
   640x400       60.00  
   640x360       59.84    59.32  
TV1 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 connected 1072x800+0+0 (normal left inverted right x axis y axis) 0mm x 0mm

** Oh, VIRTUAL1 a été ajouté! ** (je ne sais pas si c'est vraiment bon ...)

Ensuite, spécifiez la résolution et le taux de rafraîchissement que vous souhaitez afficher avec la commande cvt et obtenez des informations détaillées.

L'iPad lui-même est "2048x1536", mais il est trop petit pour afficher à la même résolution, donc j'ai réglé la taille du côté d'affichage virtuel sur "environ 1067x800" tout en gardant le rapport tout en l'alignant verticalement avec "1280x800" du côté PC. Comme prévu, 1067 semblait être un nombre impair et a été corrigé à 1072.

$ cvt 1067 800
# 1072x800 59.83 Hz (CVT) hsync: 49.72 kHz; pclk: 70.00 MHz
Modeline "1072x800_60.00"   70.00  1072 1136 1240 1408  800 803 813 831 -hsync +vsync

Enregistrez les informations obtenues avec la commande xrandr. Après --newmode, copiez la pièce après Modeline dans le résultat de la commande cvt.

$ xrandr --newmode  "1072x800_60.00"   70.00  1072 1136 1240 1408  800 803 813 831 -hsync +vsync
$ xrandr -q
Screen 0: minimum 8 x 8, current 1280 x 800, maximum 32767 x 32767
LVDS1 connected primary 1280x800+0+0 (normal left inverted right x axis y axis) 286mm x 178mm
   1280x800      60.00*+  59.81    59.91  
   1280x720      59.86    59.74  
   1024x768      60.00  
   1024x576      59.90    59.82  
   960x540       59.63    59.82  
   800x600       60.32    56.25  
   864x486       59.92    59.57  
   640x480       59.94  
   720x405       59.51    58.99  
   640x400       60.00  
   640x360       59.84    59.32  
TV1 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
  1072x800_60.00 (0x13a) 70.000MHz -HSync +VSync
        h: width  1072 start 1136 end 1240 total 1408 skew    0 clock  49.72KHz
        v: height  800 start  803 end  813 total  831           clock  59.83Hz
$

Ensuite, les informations de résolution enregistrées sont liées à VIRTUAL1.

$ xrandr -q
Screen 0: minimum 8 x 8, current 2352 x 800, maximum 32767 x 32767
LVDS1 connected primary 1280x800+1072+0 (normal left inverted right x axis y axis) 286mm x 178mm
   1280x800      60.00*+  59.81    59.91  
   1280x720      59.86    59.74  
   1024x768      60.00  
   1024x576      59.90    59.82  
   960x540       59.63    59.82  
   800x600       60.32    56.25  
   864x486       59.92    59.57  
   640x480       59.94  
   720x405       59.51    58.99  
   640x400       60.00  
   640x360       59.84    59.32  
TV1 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 connected 1072x800+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1072x800_60.00  59.83* 
VIRTUAL2 disconnected (normal left inverted right x axis y axis)

Il y a un astérisque après la valeur du taux de rafraîchissement, et il semble qu'elle a été définie sans aucun problème.

Qu'est-ce que c'est? ** Soudainement "VIRTUAL 2" a augmenté? ?? ** ** : : Hmm ... Je ne sais pas, mais je veux me dépêcher, donc la commande dans CLI est terminée.

Enfin, ouvrez [Paramètres] → [Périphériques] → [Écrans] et vérifiez qu'il y a deux écrans.

qiita_20201106_3.png

Le secondaire est "Affichage inconnu", mais il s'agit de la zone de l'affichage virtuel ajouté, qui est la zone à afficher du côté de l'iPad à l'aide de VNC.

Contrôle de fonctionnement

Connectez-vous à nouveau au PC avec VNC Viewer sur l'iPad.

Une fois connecté, le même écran (principal) que le PC est affiché au début, mais vous pouvez passer du côté de l'affichage virtuel en faisant glisser l'écran du côté de l'iPad sur le côté. Vous pouvez maintenant utiliser votre iPad comme moniteur secondaire.

qiita_20201106_4.png

Automatisation de la configuration

Étant donné que les paramètres xrandr seront perdus lors du redémarrage, j'ai d'abord pensé à les rendre permanents, mais il n'est pas pratique d'avoir un affichage virtuel immédiatement après la connexion.

J'ai donc créé un script simple pour exécuter successivement xrandr --new mode et --add mode, et quand j'ai pensé "Je veux élargir l'écran!", J'ai rendu possible l'exécution de ce script depuis le lanceur.

Tout d'abord, le script.

$ cd $HOME
$ nano virtual_display_set.sh
---
#!/bin/bash

MSG=`xrandr -q | grep "VIRTUAL1 disconnected"`
if [ "$MSG" != "" ]; then
#    echo "disconnected!"
    xrandr --newmode  "1072x800_60.00"   70.00  1072 1136 1240 1408  800 803 813 831 -hsync +vsync
    xrandr --addmode VIRTUAL1 1072x800_60.00
else
#    echo "connected!"
    xrandr --delmode VIRTUAL1 1072x800_60.00
    sleep 5
    xrandr --rmmode "1072x800_60.00"
fi

exit 0
---

Afin de ne pas s'exécuter plusieurs fois, si VIRTUAL1 est déconnecté, newmode et addmode sont exécutés, et sinon, il est supprimé par delmode et rmmode. Pour le moment, cela a fonctionné, mais quand je l'ai exécuté plusieurs fois pour vérifier le fonctionnement, l'écran s'est effondré et j'ai fini par interrompre de force le PC sans le restaurer, donc j'étais un peu inquiet de le supprimer.

Par conséquent, enregistrez un raccourci pour lancer ce script dans le lanceur avec le nom «VDispSet».

$ sudo nano ~/.local/share/applications/VDispSet.desktop
---
[Desktop Entry]
Version=1.0
Type=Application
Name=VDispSet
Exec="/home/xxx/virtual_display_set.sh"
Icon=VDispSet.png
Path=/home/xxx
Terminal=false
StartupNotify=false
---

Les fichiers d'icônes sont stockés sous ~ / .local / share / icons. Je ne l'ai pas mis maintenant car il n'y en avait pas un bon, mais dans ce cas, l'icône par défaut est utilisée, donc il n'y a pas de problème sur l'écran.

Déconnectez-vous et connectez-vous pour vérifier l'opération.

Ouais, c'était rafraîchissant!

Sentiments divers

――Je ne peux pas nier le sentiment d'être léger car j'utilise VNC et l'iPad lui-même est impuissant (Win-iPad utilisant Spacedesk était tout aussi léger). Par conséquent, il est difficile de travailler du côté secondaire, c'est donc comme afficher un navigateur sur le sous-marin et travailler sur le principal tout en regardant cela.

―― Puisqu'il y a aussi une tablette Android, si vous voulez éliminer la sensation de légèreté, Android est probablement meilleur, mais l'iPad a un écran plus large, et surtout ** (auto) satisfaction que l'iPad soit relancé avec le PC portable * * C'est très differant.

――Je pensais que VIRTUAL1 serait ajouté si je faisais quelque chose, alors j'ai essayé de mettre un écran virts pour sortir VIRTUAL1, ou je me suis demandé si je pouvais exécuter spacedesk avec du vin, et cela a pris beaucoup de temps. J'ai.

Recommended Posts

Un ancien ordinateur portable + Ubuntu 18.04 LTS fait de l'ancien iPad un sous-moniteur
Ubuntu 18.04 LTS fait de l'ancien iPad un sous-moniteur sans WiFi
Utilisez un point d'accès virtuel avec Ubuntu 18.04 LTS pour faire de l'ancien iPad un sous-moniteur
Création d'un environnement de Deep Learning (Ubuntu 20.04 LTS)
Rendre possible de gérer la caméra avec un ancien ordinateur portable + Ubuntu 18.04 LTS (droidcam)
Ripper un CD en MP3 avec Ubuntu 18.04 LTS