はじめに
いまさらBusterの設定記事? ってな感じですが、Buster環境が必要だったのでメモ。
RPiをヘッドレスで運用したいけどVNCでGUI使いたいっていうとき、HDMIケーブルを接続せずにRPiを起動してVNC接続すると、Cannot currently show the desktopって出ちゃうので対策
設定する
とりあえずVNCで画面が映るようにする
config.sysを書き換えると、映ります。
sudo nano /boot/config.txt
ファイル編集画面を開いて次のコメントアウトを外して有効にします。
#hdmi_force_hotplug=1
↓
hdmi_force_hotplug=1
とりあえずこれでVNCでも画面は写るのですが、画面サイズが小さいです。
1920x1080にする
つぎのコマンドでnewmodeで指定する呪文を確認。
cvt 1920 1080
すると
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
こんな回答が返ってきます。使うのはModelineよりも後ろの部分。
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
xrandr --addmode HDMI-1 1920x1080_60.00
xrandr --output HDMI-1 --mode 1920x1080_60.00
この3行を実行するとFHD表示になります。
自動実行する
起動のたびに自動実行したいけどうまくうごかぬ💦
/etc/rc.localでやろうとしたけど、実行タイミングが悪いのかな?
※追記
crontabだとうまく動きました。
前項のxrandrの3行をシェルスクリプトにしてcrontabで実行します。
ここでは、/home/pi/change_resolution_1920x1080.sh というスクリプトファイルとして保存します。
$ cd $home
$ nano change_resolution_1920x1080.sh
としてコマンド3行を入力したうえでctl+xで保存終了します。
続いて
$ crontab -e
で編集画面を開きます。
初めてcrontabを編集する際はエディターに何を使うかを聞かれますので、よくわからない方はnanoにしましょう。
エディターが開くと、通常のテキスト編集画面になるため、作ったファイルを指定します。
@reboot /home/pi/change_resolution_1920x1080.sh
の様に、フルパスで指定します。
2023/6/20追記
/boot/config.txt の hdmi_force_hotplug=1 を有効化
raspi-config の [2 Display Options] -> [01 Resolution] -> [DMT Mode 82 1920x1080 60Hz 16:9]
reboot
VNCでログインしてメニューから、[設定]->[Screen configuration]->[Configure]->[Screens]->[HDMI-1]->[解像度]->[1920x1080]
でできた。
hdmi_force_hotplug=1は不要かも。