2020年1月15日 星期三

如何解決樹莓派Pi 4未接螢幕時VNC解析度無法變更問題

之前使用樹莓派Pi 3時,若想不接螢幕就直接從遠端用VNC連線時,首先點選主選單[偏好設定]-[Raspberry Pi設定]後切換至[介面]頁面並勾選[VNC],再切回[系統]頁面強制指定[解析度],關機拔掉HDMI插頭從新開機,等待約一分鐘系統已順利啟動後,便可以VNC以指定螢幕解析度連線。

但到了樹莓派Pi 4時,舊的方法已不管用了,且強制指定解析度功能也從[系統]頁面被移除了。若直接勾選[介面]頁面下的[VNC]後,關機後再拔掉HDMI插頭,開機進入VNC連線後竟然畫面出不來,一片黑,原來是沒設解析度(採用預設解析度)造成。

為解決這個問題只好重新接上螢幕,開機完成後直接進到命令列模式下達 sudo  raspi-config,進到[Advanced Options]-[Resolution]設定解析度。本想關機後再拔掉HDMI插頭,重新開機進入VNC連線後就能正常,但奇怪的事發生了。螢幕是以1024x768顯示而不是指定的解析度。

經過一番爬文後得知是因Pi 4為使用GPU加速所在 /boot/config.txt 中設定dtoverlay=vc4-fkms-v3d 造成。有些網友說改 /boot/config.txt 中HDMI相關設定就可以,結果試了很多不同的設定方式都沒成功,VNC連線永遠螢幕解析度都是1024x768。

幾經波折終於找到一個方式可以解決,就是利用cvt查詢指定螢幕解析度的相關設定值,再用xrandr 新增(--newmode, --addmode)一個新的螢幕解析度,再強迫HDMI-1切換(-s)螢幕解析度。為了方便每次開機後能重新設定,於是新增了一個批次檔(set_res.sh)在桌面,執行後便可切換到想要的解析度,以下就是程式內容。

cvt 1280 720
xrandr --newmode "1280x720_60.00"   74.50  1280 1344 1472 1664  720 723 728 748 -hsync +vsync
xrandr --addmode HDMI-1 "1280x720_60.00"
xrandr -s 1280x720_60.00

沒有留言:

張貼留言

【頂置】簡報、源碼、系列文快速連結區

常有人反應用手機瀏覽本部落格時常要捲很多頁才能找到系列發文、開源專案、課程及活動簡報,為了方便大家快速查詢,特整理連結如下,敬請參考! Edge AI Taiwan 邊緣智能交流區 全像顯示與互動交流區 台科大(NTUST) 人工智慧與邊緣運算實務 開南大學...