更新履歴
Raspberry Pi OS 64bit版の公開に伴う更新
- こちらのとおり、正式版のインストール時の記録に更新
- Raspberry Pi Imagerの更新(初期設定として、Wi-fi、sshなどがイメージ書き込み時にできるようになりました)
- tightvncserverにてxrdpの問題が未解決なので、RealVNCクライアントを使うこととしました。
Macを用いたヘッドレスインストールから、
- ssh
- vim
- vnc
- 若干の日本語環境構築
などの設定を行うまでの記録です。
これは何?
USBメモリに2021-10-30-raspios-bullseye-arm64.imgをコピーして、Raspberry Pi 4の私的初期設定を行うまでのメモです。
設定は、ヘッドレスにてMacから行います。
Wi-Fi環境は、自宅を使用します。
iPhoneのテザリングでも問題なくできると思います。(→ 出先にて確認済み)
環境
- Darwin Kernel Version 21.2.0: Sun Nov 28 20:28:54 PST 2021; root:xnu-8019.61.5~1/RELEASE_X86_64
- MacBook Pro (13-inch, 2019, Four Thunderbolt 3 ports)
- 2.8 GHz クアッドコアIntel Core i7
手順
- Raspberry Pi Imagerをインストール
- OSのimgをダウンロード
- USBメモリにimgを書き込み
- 私的初期設定
- vnc(インストールから起動時に自動起動させるまで)
imgの書き込み
64bitのイメージはこちらからダウンロードし、zipファイルを解凍してimgファイルを適当な場所に保存しておきます。
先ほどのimgなどを指定した後に、さまざまな設定を行うことができます。
右下の設定アイコンを選択すると設定画面となります。
ここでは、
- ssh
- host名
- piのパスワード
- Wi-fiの接続
の設定を行いました。
いよいよ、書き込みを開始します。
Verificationが終了すれば、書き込み終了です。
USBメモリを取り外して、Raspberry piに取付て電源をいれしばらくすると、以下のとおりsshにて接続ができるようになります。
$ ssh -l pi raspi3.local
パスワードを入力すると以下の画面になると思います。
$ ssh -l pi raspi4.local
The authenticity of host 'raspi4.local (240a:6b:560:ea60:b098:944e:6bee:d280)' can't be established.
ED25519 key fingerprint is SHA256:X5LXKFsCLaFu3uDyqRikrNEzohHSL8uOh0SnMpUTbe0.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'raspi4.local' (ED25519) to the list of known hosts.
pi@raspi4.local's password:
Linux raspi4 5.10.92-v8+ #1514 SMP PREEMPT Mon Jan 17 17:39:38 GMT 2022 aarch64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Mar 6 00:38:47 2022
私的初期設定
初期設定として以下を行います。
- 日本語の設定
- 日本語入力(mozc)とフォントは、必要でしょう
- Vim
- まあ、便利なので。
- Nocaps
- おなじみのキーですが、CAPS Lockとしては使ったことがありません。
- VNC
- デフォルトのVNCだとMacから接続できないので、tightvncserverをインストール
とりあえず、このくらいにしておきます。
最終的には、RTL-SDRやHac RF Oneの使用を想定しています。
実際の作業
.vimrcの設定
バックスペースやら矢印キーの挙動を修正するために
$ echo "set nocompatible" >> ~/.vimrc
$ echo "set backspace=indent,eol,start" >> ~/.vimrc
を実行します。
割と多くの情報がありますが、理由が書いてあるこちら(矢印キー)とこちら(Back Space)を参考にしました。
もろもろアップデート
以下のコマンドにて、アップデートを行います。
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt dist-upgrade -y
$ sudo apt autoremove -y
日本語入力
mozcを使います。
$ sudo apt install fcitx-mozc
Alt-`
で、日本語入力に切り替える設定としています。
日本語フォントのインストール
$ sudo apt install fonts-noto-cjk
$ sudo apt install fonts-ipafont fonts-ipaexfont fonts-ricty-diminished
Vim
$ sudo apt install vim
Nocaps
$ sudo vi /etc/default/keyboard
で、XKBOPTIONS="ctrl:nocaps"
を追加します。
VNC(2022.3.6更新)
$ sudo raspi-config
から、Interface Optionsを選択して、VNCをインストールします。
自動起動までの設定が行われます。
念のため、再起動してvncserverが起動していることを確認します。
$ netstat -nlt
稼働中のインターネット接続 (サーバのみ)
Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
tcp6 0 0 :::5900 :::* LISTEN
5900ポートをLISTENしているのが、vncになります。
macOSのFinderからは相変わらず接続できないので、
RealVNCのクライアントを使用して、接続することとします。
接続先は、
raspi4.local:5900
となります。美味く接続できると以下の画面が表示されると思います。
xrdpの不適合は、発生していませんね。良かった。
さて、画面が狭いのでFullHDにしたいと思います。
Piメニューから、Raspberry Piの設定を選択します。
ヘッドレス解像度の設定にて、1920x1080を選択します。
再起動を行うと、以下の画面となります。
以上で初期設定は終了します。
古い記事(2022.3.6時点で未解決のままです)
VNC
以前のOSでは、VNCが起動しないなどの問題がありましたが、最近のRaspberry Pi OSでは解消されているようです。
一方で、Macからは接続できないのでtightvncserverをインストールします。
$ sudo apt install tightvncserver
$ sudo vi /etc/init.d/vncboot
インストールが終了したら、/etc/init.d/vncboot
を以下の内容で作成して、実行権限をつけます。
#! /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=pi
HOME=/home/pi
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 1920x1080 -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
実行権限をつけます。
$ sudo chmod +x /etc/init.d/vncboot
tightvncserverを起動して、パスワードなんかを設定する。
$ tightvncserver
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
画面操作は行わず、画面の閲覧のみの時に入力するパスワードを設定するかどうか質問されますが、不要なのでn
としました。
起動時に、vncboot
が実行されるよう設定します。
$ sudo update-rc.d vncboot defaults
再起動して、
$ 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
(略)
で、ポート5901で起動していることを確認。
Macから接続
Finaderから、VNCサーバーへ接続します。
先ほど設定したパスワードを入力すると
国の設定を聞かれたので、Japan、キーボードは自分の環境にあわせて(私の場合は、US Keyを)設定します。
タスクバーに隠れているので、タスクバーを使用しないときは隠れるようにしました。
私的初期設定は、ここまでとします。
xrdpの不適合(tigervncのインストール) 2022.3.6更新
正式版のvncにおいても、問題は解決されていない模様。
VNCを使用していると、以下の画面が表示されます。
調べたところ、既知の問題でして
BullseyeベースのRaspberry PI OSでは、xorgxrdp v0.2.12が稼動しています。このバージョンの xorgxrdp には、すでに設定されているのと同じサイズに画面をリサイズするように要求されると、エラーを報告する問題があります。
このロジックは、Raspberry PI OSに搭載されているmutterのバージョン3.38.6-2~deb11u1+rpt1で使用されているロジックです。そのため、Raspberry PI OS用に提供されているMutterとxorgxrdpのバージョンは互換性がありません。
対策は、以下のページに記載されています。
Simple, Complex, Intermediate(中クラス)の対策が紹介されていました。
このうち、Simpleとして紹介されていたtigervnc-standalone-serverのインストールにより、問題は解消しました。
$ sudo apt -y install tigervnc-standalone-server tigervnc-common tigervnc-viewer
でインストールを行い
$ vncserver
でパスワードなどの設定を行います。
念のため、tigervncをインストールする前に、`~/.vnc `は削除しておく方が良いでしょう。
サーバーの起動は、以下のコマンドにて行います。
localhostは、必ず必要です。
```sh
$ vncserver :1 -localhost no
問題なければ、init.dにて自動起動するよう設定します。
#! /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=pi
HOME=/home/pi
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 -localhost no -passwordfile /home/pi/.vnc/passwd'
;;
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
設定は、先ほどと同じです。
$ sudo update-rc.d vncboot defaults
再起動して、
$ 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
(略)