LoginSignup
0
0

More than 1 year has passed since last update.

Raspberry Pi 4をUSBメモリからブート&ヘッドレスにて初期設定(Raspberry Pi OS 64-bit リリース版)

Last updated at Posted at 2021-12-28

更新履歴

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

手順

  1. Raspberry Pi Imagerをインストール
  2. OSのimgをダウンロード
  3. USBメモリにimgを書き込み
  4. 私的初期設定
  5. vnc(インストールから起動時に自動起動させるまで)

imgの書き込み

64bitのイメージはこちらからダウンロードし、zipファイルを解凍してimgファイルを適当な場所に保存しておきます。

先ほどのimgなどを指定した後に、さまざまな設定を行うことができます。

スクリーンショット 2022-03-06 9.40.12.jpg

右下の設定アイコンを選択すると設定画面となります。

スクリーンショット 2022-03-06 9.15.40.jpg

ここでは、

  • ssh
  • host名
  • piのパスワード
  • Wi-fiの接続

の設定を行いました。

いよいよ、書き込みを開始します。

スクリーンショット 2021-12-28 18.12.38.jpg

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をインストールします。
自動起動までの設定が行われます。

スクリーンショット 2022-03-06 10.17.03.jpg

念のため、再起動して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からは相変わらず接続できないので、

スクリーンショット 2022-03-06 10.12.44.jpg

RealVNCのクライアントを使用して、接続することとします。

接続先は、

raspi4.local:5900

となります。美味く接続できると以下の画面が表示されると思います。

スクリーンショット 2022-03-06 10.14.31.jpg

xrdpの不適合は、発生していませんね。良かった。

さて、画面が狭いのでFullHDにしたいと思います。

Piメニューから、Raspberry Piの設定を選択します。

スクリーンショット 2022-03-06 10.26.53.jpg

ヘッドレス解像度の設定にて、1920x1080を選択します。

スクリーンショット 2022-03-06 10.24.02.jpg

再起動を行うと、以下の画面となります。

スクリーンショット 2022-03-06 10.28.26.jpg

以上で初期設定は終了します。

古い記事(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を以下の内容で作成して、実行権限をつけます。

/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サーバーへ接続します。

スクリーンショット 2021-12-28 20.17.17.jpg

先ほど設定したパスワードを入力すると

画面共有ピクチャ2021年12月28日 20.16.20 JST.png

国の設定を聞かれたので、Japan、キーボードは自分の環境にあわせて(私の場合は、US Keyを)設定します。

タスクバーに隠れているので、タスクバーを使用しないときは隠れるようにしました。

画面共有ピクチャ2021年12月28日 20.44.56 JST.png

私的初期設定は、ここまでとします。

xrdpの不適合(tigervncのインストール) 2022.3.6更新

正式版のvncにおいても、問題は解決されていない模様。
VNCを使用していると、以下の画面が表示されます。

スクリーンショット 2021-12-30 13.47.01.jpg

調べたところ、既知の問題でして

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にて自動起動するよう設定します。

/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 -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
()
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0