上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
PC/RaspberryPi/VNCサーバーを利用する
のソース
資料室
PC
/
RaspberryPi
/
VNCサーバーを利用する
のソース
[
差分
|
バックアップ
|
リロード
]
[ ]
差分
を表示
PC/RaspberryPi/VNCサーバーを利用する
へ行く。
* Raspberry PiでVNCサーバーを利用する [#j6d29f14] Raspberry Pi(Raspbian)で,VNCを使って他のマシンから接続できるようにする。~ ** Rasbianで標準インストールされるVNCサーバー [#tf3f2614] Raspbianをインストールすると,デフォルトでVNCサーバーである''realvnc-vnc-server''がインストールされている。~ これは主に,標準のデスクトップをミラー化してリモートデスクトップ環境を実現するためにインストールされている。~ しかしこの機能は有効にはなっていないので,使用する場合は''raspi-config''から有効化する必要がある。~ rootユーザーでraspi-configを起動して, # raspi-config - Interfacing Optionsを選択~ - VNCを選択する~ - Yesを選択する~ The VNC Server is enabledと表示が出る。~ このようにしてVNCサーバーを有効化する。~ これは, # systemctl enable vncserver-x11-serviced.service # systemctl start vncserver-x11-serviced.service と同じ。 動作を確認する場合には, $ netstat -nlt として,ポート番号=5900があればVNCサーバーが動作している。~ DISPLAY番号:0 でミラー化されたリモートデスクトップとして使用できる環境になっている。実際には,rootユーザーで''vncserver-x11-serviced''を実行している。~ このVNCサーバーに他のPCから接続するには,VNCクライアントでポート5900で接続する。~ そうするとRasbianのデスクトップが,リモートデスクトップとして操作できる。 この時のVNCのセットアップは,''/etc/vnc/xstartup''により行われる。~ *** realvnc-vnc-serverのユーザーモードでのVNC [#t5647e71] realvnc-vnc-serverでは,ユーザーモードで起動させるvncserver(vncserver-virtualのシンボリックリンク)もインストールされている。~ 任意のユーザー権でVNCサーバーをDISPLAY番号=:1で起動する場合は, $ vncserver :1 -geometry 1280x720 のようにする。~ この時,''~/.vnc/xstartup''があればそれを使ってXを起動する。(作成しなければファイルが存在しない)~ ただ,''realvnc-vnc-server''では,Desktop環境を使わないX Windowは''~/.vnc/xstartup''でうまく設定できない。~ ''/etc/vnc/xstartup''ファイルを削除すればDesktop環境を使わないX Windowが起動できるが,この方法では副作用があって使いにくい。~ * TightVNCとx11vncを使用する [#n59f5efb] 上記のように,特定の用途では''realvnc-vnc-server''は使いにくい。~ そこで,Rasbianで標準でインストールされている''realvnc-vnc-server''をアンインストールして,代わりに''TightVNC(tightvncserver)''と''x11vnc''を導入してみる。~ - TightVNC(tightvncserver)~ ユーザーモードのみで動作するVNC Serverで,通常のデスクトップ環境はもちろん,デスクトップ無しの単なる表示のみといった環境も作成できる。~ realvnc-vnc-serverでの''vncserver-virtual''と同じ機能。~ TightVNCでは,''X WindowのRANDR拡張機能には対応していない。''~ - x11vnc~ Rasbianで使われる物理的なディスプレイをミラー化してリモートデスクトップ環境を作成できるVNC Server。~ realvnc-vnc-serverでの''vncserver-x11-servicedと''同じ機能。~ ** TightVNC(tightvncserver)をVNC Serverとして利用する [#c89741dc] Rasbian標準でインストールされているVNCサーバーではなく,TightVNC(tightvncserver)をVNCサーバーとして利用してみる。~ TightVNC(tightvncserver)であれば,''~/.vnc/xstartup''の設定によりDesktop環境を使わないX Windowも問題なく起動できる。~ TightVNC(tightvncsever)をRaspbianにインストールする。~ # apt install tightvncserver このようにaptでtightvncserverをインストールすると,標準でインストールされている''realvnc-vnc-server''は自動的にアンインストールされる。~ その後,vncserver(実体はtightvncserver)を一度起動する。~ $ cd $ rm -rf .vnc $ vncserver ここで,接続のためのパスワードを設定する。~ この時,''~/.vnc/xstartup''ファイルが作成される。 VNCサーバーが起動してるかは,netstatで確認できる。~ $ netstat -nlt 稼働中のインターネット接続 (サーバのみ) Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態 tcp 0 0 0.0.0.0:5901 0.0.0.0: LISTEN tcp 0 0 0.0.0.0:6001 0.0.0.0: LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0: LISTEN tcp6 0 0 :::22 ::: LISTEN ポート番号=5901でVNCサーバーが動作している。~ 一旦,vncserverを停止する。~ $ vncserver -kill :1 自動起動させるために,''/etc/init.d/vncboot''ファイルを以下の内容で作成する。~ - USERとHOMEは自分の環境にする~ - ''-geometry 1280x720''の所は希望の解像度に設定する~ #code(bash,,nonumber){{ #! /bin/sh ### BEGIN INIT INFO # Provides: vncboot # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start VNC Server at boot time # Description: Start VNC Server at boot time. ### END INIT INFO # /etc/init.d/vncboot USER=xxxxxx HOME=/home/xxxxxx export USER HOME case "$1" in start) echo "Starting VNC Server" #Insert your favoured settings for a VNC session su $USER -c '/usr/bin/vncserver :1 -geometry 1280x720 -depth 24' ;; stop) echo "Stopping VNC Server" su $USER -c '/usr/bin/vncserver -kill :1' ;; *) echo "Usage: /etc/init.d/vncboot {start|stop}" exit 1 ;; esac exit 0 }} 実行権を付けておく。~ # chmod 755 /etc/init.d/vncboot 自動起動するように登録する。 # update-rc.d vncboot defaults ''~/.vnc/xstartup''ファイルを以下のように編集する。~ Xsessionを動かさないようにしている。このようにすると,Desktop環境を使わないX Windowが起動できる。Windowは黒一色に設定。~ #code(bash,,nonumber){{ #!/bin/sh xrdb $HOME/.Xresources xsetroot -solid black #x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #x-window-manager & # Fix to make GNOME work export XKL_XMODMAP_DISABLE=1 #/etc/X11/Xsession }} これで,TightVNC(tightvncserver)のセットアップが出来た。~ Raspberry Piを再起動する。~ 別のPCでVNCクライアントからポート番号=5901で接続して動作を確認する。 ** x11vncを使ってデスクトップ画面をリモートデスクトップ出来るようにする [#k46a3eeb] x11vncは,標準で起動するX Windowのデスクトップをvncでリモートデスクトップ化できるVNC Server。~ *** x11vncのインストール [#zef9e223] 上記のように,Rasbianで標準のVNC Serverである''realvnc-vnc-server''をアンインストールして,ユーザーモードVNC Serverとしての''tightvncserver''が既にインストールされている環境にx11vncをインストールする。~ パッケージ管理ツールでインストールする。~ # apt install x11vnc *** 設定と動作確認 [#e28adad8] vncで接続する時のパスワードを設定する。~ # x11vnc -storepasswd /etc/.x11vncpasswd Enter VNC password: ← パスワード入力 Verify password: ← パスワード確認入力 Write password to /etc/.x11vncpasswd? [y]/n Password written to: /etc/.x11vncpasswd これで,''/etc/.x11vncpasswd''ファイルが作成される。~ x11vncを起動してみる。~ # x11vnc -auth guess -display :0 -rfbauth /etc/.vncpasswd -rfbport 5900 -forever -loop -noxdamage -repeat -shared 別のPCでVNCクライアントからポート番号=5900で接続して動作を確認する。 問題なければ,Ctrl + Cで停止させる。 *** 自動起動するように設定する [#t5b40266] ''/etc/systemd/system/x11vnc.service''ファイルを以下の内容で作成する。 #code(bash,,nonumber){{ [Unit] Description=x11vnc (Remote access) After=network-online.target [Service] Type=simple ExecStart=/usr/bin/x11vnc -auth guess -display :0 -rfbauth /etc/.x11vncpasswd -rfbport 5900 -forever -loop -noxdamage -repeat -shared ExecStop=/bin/kill -TERM $MAINPID ExecReload=/bin/kill -HUP $MAINPID KillMode=control-group Restart=on-failure [Install] WantedBy=graphical.target }} 自動起動するようにsystemdに登録して,起動しておく。~ # systemctl daemon-reload # systemctl enable x11vnc # systemctl start x11vnc *** x11vncについて [#x3321eca] x11vncは,''realvnc-vnc-server''やUbuntu系に標準でインストールされている''vino''なんかに比べると速度が遅い気がする。~ しかし,別のX Windowを起動する他のVNC Serverと併用出来るので便利である。 * TigerVNCとRealVNC Server(vncserver-x11-serviced)を使用する [#f729c162] ''標準のデスクトップをミラー化してリモートデスクトップ環境''にデフォルトのVNCサーバーである''realvnc-vnc-server''を使い,ユーザーモードのVNC Serverとして''TigerVNC''を使う方法。~ ''TigerVNCはTightVNCからフォークされたVNC Serverで,TightVNCではRANDR拡張には対応していないがTigerVNCでは対応している。'' インストールは,パッケージ管理ツールからインストールできる。~ # apt install tigervnc-standalone-server tigervnc-common tigervnc-viewer ''realvnc-vnc-server''のミラー化のリモートデスクトップ機能(vncserver-x11-serviced)は,そのまま使用できる。~ ** TigerVNCの設定と起動 [#h5ceda1e] TigerVNCを上記の方法でインストールすると,ホームディレクトリにあった.vnc以下は削除されている。~ TigerVNCを,一度起動する。~ $ vncserver ここで,接続のためのパスワードを設定する。~ 一旦,vncserverを停止する。~ $ vncserver -kill :1 これで~/.vnc以下のファイルが作成される。~ ''~/.vnc/xstartup''ファイルを作成しておく。~ #code(bash,,nonumber){{ #!/bin/sh xrdb $HOME/.Xresources xsetroot -solid black #x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #x-window-manager & # Fix to make GNOME work export XKL_XMODMAP_DISABLE=1 #/etc/X11/Xsession }} この例では,Xsessionを動かさないようにしている。このようにすると,Desktop環境を使わないX Windowが起動できる。Windowは黒一色に設定。~ 実行権をつける。~ $ chmod 755 .vnc/xstartup 自動起動させるために,''/etc/init.d/vncboot''ファイルを以下の内容で作成する。~ - USERとHOMEは自分の環境にする~ - ''-geometry 1280x720''の所は希望の解像度に設定する~ - ''-localhost no''つける~ - ''-idletimeout 0''を念の為つける~ #code(bash,,nonumber){{ #! /bin/sh ### BEGIN INIT INFO # Provides: vncboot # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start VNC Server at boot time # Description: Start VNC Server at boot time. ### END INIT INFO # /etc/init.d/vncboot USER=xxxxxx HOME=/home/xxxxxx export USER HOME case "$1" in start) echo "Starting VNC Server" #Insert your favoured settings for a VNC session su $USER -c '/usr/bin/vncserver :1 -geometry 1280x720 -depth 24 -localhost no -idletimeout 0' ;; stop) echo "Stopping VNC Server" su $USER -c '/usr/bin/vncserver -kill :1' ;; *) echo "Usage: /etc/init.d/vncboot {start|stop}" exit 1 ;; esac exit 0 }} 実行権を付けておく。~ # chmod 755 /etc/init.d/vncboot 自動起動するように登録する。 # update-rc.d vncboot defaults
PC/RaspberryPi/VNCサーバーを利用する のバックアップソース(No. All)
現: 2023-05-02 (火) 11:30:33
yuji
Counter: 2188, today: 1, yesterday: 2
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
» 関連ページ
» Wikiソース
» 編集履歴
» バックアップ一覧
» 添付ファイル一覧
フォーラム
お問い合わせ