在 Linux 上安裝 VNC Server
前言
最近發現同時使用 Raspberry Pi 4 與 PC 在同一個螢幕的時候會發生一些問題,但又希望兩者可以同時使用,所以想透過 VNC 服務來控制 Raspberry Pi 4 ,透過安裝 VNC Server 可以解決這個問題,在此把學習的過程做個紀錄。內容
在我的螢幕 Viewsonic VX2433wm 如果同時有兩個輸入的話,一個顯示會是 HDMI PC 模式,另一個會被強制轉成 HDMI AV模式,HDMI PC 模式就如同字面上的意思是給 PC ,另一個 HDMI AV 是給電視用的,雖然可以透過螢幕功能鍵強制調回來,但每次切換到 HDMI AV 模式的輸入都要再透過螢幕功能鍵調一次,如果不調整,畫面會被切邊。這個問題是螢幕的預設行為沒辦法透過軟體來修改,所以我想到用 VNC 的方式來解決,在 Raspberry Pi 4 上安裝 VNC Server 可以透過以下命令
sudo apt-get install tightvncserver
安裝完後可以透過以下命令來啟動
vncserver
第一次啟動時會要求設定連線密碼,可以依據喜好設定連線密碼, view-only 密碼可以不用設定。設定完後服務就啟動了,可以透過喜好的 VNC client 端來進行連線,預設的 Port 是 5901。
雖然 VNC 可以解決切換螢幕的問題,但還是要"手動"來開啟服務,如果能開機就自動開啟服務的話就可以完全不切換螢幕來操控 Raspberry Pi 4 ,如何設定開機就啟動呢?新增以下位址新增檔案
/etc/init.d/tightvncserver
檔案的內容如下
#!/bin/bash ### BEGIN INIT INFO # Provides: tightvncserver # Required-Start: $syslog # Required-Stop: $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: vnc server # Description: ### END INIT INFO export USER='pi' eval cd ~$USER # Check the state of the command - this'll either be start or stop case "$1" in start) # if it's start, then start vncserver using the details below su $USER -c '/usr/bin/vncserver :1 -geometry 800x600 -depth 16 -pixelformat rgb565' echo "Starting vncserver for $USER " ;; stop) # if it's stop, then just kill the process pkill Xtightvnc echo "vncserver stopped" ;; *) echo "Usage: /etc/init.d/tightvncserver {start|stop}" exit 1 ;; esac exit 0
內容中的 USER 是指作業系統的使用者,請依據狀況修改, geometry 的參數可設定解析度。
接著透過以下命令修改該檔權限
sudo chmod 755 /etc/init.d/tightvncserver
接著透過以下命令設定開機時啟動
sudo update-rc.d tightvncserver defaults
沒有留言:
張貼留言