そんなことが可能なのか?
出来る。ネットワーク経由でssh接続できてsudo権限あるUbuntuならね。
今、物理モニタに表示中セッションのdisplay:0にディスプレイサーバー(lightdm)を起動させたままVNCで接続できれば!
ことの始まり
起動中、突然にUSB接続のマウスとキーボードが死ぬ。
そんなバカなことが!画面が目の前にあるのにコントローラが止まった。
急いで別マシンからSSHで繋いで確認する。
syslogにはこんなログが書き込まれている。死んでいるらしい。
cmd
$ tail -n 1000 /var/log/syslog
~~
Jan 20 09:59:28 myubuntu systemd[1]: Starting Daily apt download activities...
Jan 20 09:59:29 myubuntu systemd[1]: Started Daily apt download activities.
Jan 20 10:16:34 myubuntu kernel: [591432.277331] usb 5-4: USB disconnect, device number 7
Jan 20 10:16:34 myubuntu kernel: [591432.277336] usb 5-4.3: USB disconnect, device number 8
Jan 20 10:16:39 myubuntu kernel: [591437.287598] xhci_hcd 0000:28:00.3: xHCI host not responding to stop endpoint command.
Jan 20 10:16:39 myubuntu kernel: [591437.287606] xhci_hcd 0000:28:00.3: Assuming host is dying, halting host.
Jan 20 10:16:39 myubuntu kernel: [591437.307843] xhci_hcd 0000:28:00.3: HC died; cleaning up
Jan 20 10:16:39 myubuntu acpid: input device has been disconnected, fd 21
Jan 20 10:16:39 myubuntu acpid: input device has been disconnected, fd 22
Jan 20 10:16:39 myubuntu kernel: [591437.480291] usb 5-1: USB disconnect, device number 2
Jan 20 10:16:39 myubuntu kernel: [591437.480298] usb 5-1.3: USB disconnect, device number 4
Jan 20 10:16:39 myubuntu acpid: input device has been disconnected, fd 13
Jan 20 10:16:39 myubuntu acpid: input device has been disconnected, fd 14
Jan 20 10:16:39 myubuntu kernel: [591437.655922] usb 5-1.4: USB disconnect, device number 6
Jan 20 10:16:39 myubuntu kernel: [591437.764101] usb 5-3: USB disconnect, device number 3
~~
エラーメッセージはぐぐってもバグとしか出てこない。
確認するが、確かにlsusbコマンドを流しても繋がてないし、パージされた番号を再度アタッチしてもダメ。
cmd
$ lsusb -t
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
|__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 480M
# echo -n "5-4" > /sys/bus/usb/drivers/usb/bind
-su: echo: 書き込みエラー: そのようなデバイスはありません
そのまま再起動したら良いのはわかっていたがデータを失うのは辛いので頑張る。
実際やったこと
cmd
$ vino-preferences
→ サーバ起動しない。ローカルのGUIでやれよ!という原因のエラーで挫折
$ sudo apt-get install x11vnc xinetd
$ sudo x11vnc -storepasswd /etc/vncpasswd
$ x11vnc -localhost -rfbauth $HOME/.vnc/passwd -display :0
→ サーバ起動しない。失敗、次のコマンドを試す。※この段階でvncのパスワードを設定した。
$ sudo apt-get install tightvncserver
$ tightvncserver -display :0 -passwordfile ~/.vnc/passwd
→ Couldn't start Xtightvnc; trying default font path.
→ サーバ起動しない。ダメ、次!
$ sudo apt-get purge tightvncserver
$ sudo apt-get install libtasn1-3-bin libtasn1-bin
$ sudo apt install vnc4server
$ x0vncserver -display :0 -passwordfile ~/.vnc/passwd
→ VNCサーバ起動!繋がった!
そう、x0vncserverを使えば出来る。5900番ポート開いているので繋がる。
サービスではないので、x0vncserverの実行中ssh接続を切るとx0vncserverは落ちる。まあ緊急用だし、勝手に常時起動より安心だよね。
性能的には4Kクラスの画面2枚のマシンにもノートPCから繋いで保存ボタンを押せた!
以上!
参考:
linuxでのusbの抜き差しをコマンドで実施する|えむけいプラン(公式)
起動済みのXをTigerVNCで共有 - matoken's meme
mieki256's diary - Ubuntu 16.04上で x0vncserver の動作確認をしてみたり