Raspberry Pi 4B 新OS 64bit版をインストールして各種設定まで

以下にWindowsのPCを使って、真っ新なmicroSDカードにRaspberry Pi最新の64bit OS bullseye (コードネーム)をインストールして、SSH含めRaspberry Piを設定する全手順を備忘録として書きました。

BullseyeでBoot時の自動的にWifiに接続する解決方法を追記しました。(2022/3/07)

Raspberry Piは新しいRaspberry Pi Imagerソフトを使うとめちゃくちゃ簡単にOSをインストールする事が出来ます。

Raspberry Pi imagerインストール

新しい raspberry pi imager for windowsからダウンロード。(下の図ではv1.6となっているが、v1.7.1をダウンロードしてくれる。@2022.02.21) 『Dowonload for Windows』を選択。

『imager_1.7.1.exe』をクリックしてインストール。 途中で『変更を許可しますか』もメッセージがでたら『はい』をクリック。

『Install』をクリック。

『Finish』をクリック。

microSDをFAT系にフォーマット

しかし、microSDカードがRaspberry Pi用にフォーマットされてないと、OSインストールを失敗します。(私も1回目は失敗でした。)WindowsのフォーマットはNTFSですが、Raspberry Piの場合、microSDカードのフォーマットは32GB以上はFAT32でなければなりません。 そこで、microSDカードをSDカード変換アダプタに挿入して、Windows PCのSDカードスロットに挿して、『ディスクの管理』(スタートメニューを右クリック)でSDカードのフォーマットされているかどうか、フォーマットのタイプが何かを確認する。 フォーマットがexFATやFAT32と表示されればSDカードのフォーマットはスキップしてできますが、exFATやFAT32でなければ、SDカードのフォーマットが必要です。 フォーマットもRaspberry Pi Imagerでします。

注意:SDカードをWindows PCのSDカードスロットに挿しておく。 この時、『ドライブ…..フォーマットする必要があります。 フォーマットしますか?』と聞いてきても、『キャンセル』をクリックしておく。 これはWindowsが聞いてきているので、NTFSにフォーマットされてしまいます。 もしNTFSにフォーマットされても、下の方法で簡単にFATに再フォーマットできるので慌てないでください。

『CHOOSE OS』をクリック。

下の方にスクロールして『Erase』を選択。

これがフォーマットです。

『CHOOSE STORAGE』をクリック。

microSDカードを選択。 この場合はSDXCがmicroSDなのでSDXを選択。

*後で128GBと出てきますが、64GBと128GBの2枚別々にインストールしました。

『WRITE』をクリック。

『YES』をクリック。

フォーマットが完了しました

続けてOSイメージをインストールするので、『CONTINUE』と出ているダイアログボックスの外をクリックして、『CONTINUE』のダイアログボックスを消す。

『CONTINUE』を押してしまったら、microSDを一度抜いて、再度SDスロットに挿入。

OSイメージのインストール

『Erase』をクリック。

上にスクロールして『Raspberry Pi OS (other)』をクリック。

『Raspberry Pi OS (64-bit)』をクリック。

『CHOOSE STORAGE』をクリック。

『SDカード』を選択。 私の場合、128GBのSDカードなのでSDXCと表示されています。

『WRITE』をクリック。

『SDカードの中身が消えますよ。 続けていいですか?』と聞いてきているので『YES』を選択。

10分でまだこんな感じです。

『CONTINUE』を押して、SDカードアダプタごとWindows PCから抜きとる。

microSDをSDカードアダプタから抜き取る。

Raspberry Pi設定

設定の前に

USBマウスとUSBキーボードが必要です。 Raspberry Piにマウスとキーボードも接続しておく。

Raspberry Piの電源ケーブルを抜いて、電源が入っていない状態で、microSDカードをRaspberry Piに装着して、Raspberry Piの電源を入れて画面がモニタに表示されるのを待つ。

地域やキーボードの設定

Welcomeメッセージがでるので、

  • CountryをJapanにする。
  • LanguageをJapaneseにする。
  • TimezoneをTokyoにする。
  • Use US Keyboardを使用しているKeyboardタイプに合わせる。(*私の場合、@キーが2の上にある、英語キーボードなので、チェックを入れています。)

上記を設定して、『Next』をクリック。

パスワードを設定

パスワードを入力して設定します。 このパスワードは、User PiのログインパスワードでSSHでも使用するのでメモしておく事。

タスクバーが画面にフィットしていれば、チェックを入れずに『Next』をクリック。

していなければ、チェックを入れて『Next』をおすと、Rebootしてタスクバーを合わせてくれるみたいです。(そしてReboot後、この画面になるのかなぁ。)

Wifi接続

Wifiを検索して、リストが表示されるので、スクロールして自分のWifiを選択(クリック)して『Next』をクリックする。

Wifi接続のパスワードを入力して、『Next』をクリック。

『Hide characters』のチェックを外すと入力しているパスワードが表示されるので間違えにくい。

Wifiに接続まで1分以上かかりました。 分からないですが、3分くらいかかっていたかもしれません。 右の図の『…please wait』は数十秒で消えて次のUpdateの画面に移行したのですが、Updateとしても『ネットワーク接続されていません』と出てきました。 しかしもう少し2~3分待ってからUpdateするとUpdateが始まりました。

OSやアプリのUpdate

『Next』をクリック。

これで基本の設定は終わりなので『Done』をクリック。

その他の設定

SSH設定

左上のラズベリーマークをクリックして、『Preferences』をクリックして、『Raspberry Pi Configuration』をクリック。

*この画面はPrint Screen出来なかったので、スマホで撮ったので画質が悪いです。🙇

上のタブで『Interfaces』をクリックして、『『SSH』のスイッチを右に動かしてONにする。 これをしないと、SSH通信できない。

SSH通信するIpアドレスを確認

Raspberry Piのコマンドプロンプト(Bash)を立ち上げて、ip aで確認してメモしておく。

$ ip a

rootのパスワード設定

初期状態ではroot(最上位管理者)のパスワードは入っていないので非常に危険です。 なのでrootのパスワードを設定します。  普段使うユーザーは名はpiで、そのパスワードは既に上で設定しました。 以下コマンドを入れて、新しいパスワードを設定する。

$ sudo passwd root

これでRaspberry Piの設定は一応完了。(本当は、SSH通信をパスワードでなく、鍵によるSSH通信に設定する必要ありますが、疲れてきたので後で設定します。 設定の仕方は『Raspberry Pi に鍵を使ってSSH通信』を参考戴けます。

Windows PCからSSH通信してみる

Windows PCにTeraTermをインストールして立ち上げる。

  • 『ホスト』に先ほど調べたIPアドレスを入力する。
  • 『TCPポート』は『22』
  • 『SSH』を選択し『SSH2』を選択して
  • 『OK』

『続行』をクリック。

*『既存の鍵を新しい鍵で上書きする(R)』にチェックを入れていると、次からこのメッセージは現れません。

  • 『ユーザー名』に半角で『pi』
  • 『パスフレーズ』に先ほど設定した『パスワード』を入力し
  • 『OK』をクリック

Windows PCからログインできました!

aarch64とあるのでkernelは64bitですね。

uname -aでチェック。

$ uname -a

OSも64bitです。

$ getconf LONG_BIT

ちゃんとversion11でbullseyeになっていますね。

$ cat /etc/os-release

Pythonは2.7でなく、標準で3.9.2になっていますね。 Python2は/binからも無くなっていました。

Luaはまだ5.1.5でした。 5.4になっていると期待したのですが残念。

日本語入力設定 fcitx-mozcのインストール

$ sudo apt update
$ sudo apt full-upgrade
$ sudo apt install ibus-mozc fonts-takao

『y』→『Enter』を押す。

$ sudo reboot -f

再起動して、またTeraTermでSSH接続する。

64bit化して良かった事

32bit Busterの時は、Low Voltageの警告が出ていたのが出なくなった。

32bit Busterの時は、YouTubeの再生など断続的に止まったり再生したりしていたのが、止まらなくなった。

おまけ 32bit Busterからの32bit Bullseye へのUpgrade

BullseyeへUpgradeしたら以下の問題がありました。

  1. Boot後Wifiが自動的にONにならない。
  2. Wifi通信がやたら遅い。
  3. 多段SSH接続も数分かかる。

Boot時のWifi接続は解決策が見つかったので下に追記しました。 この解決で2,3も無くなりました。

でもやっぱり、一番はフレッシュインストールだそうです。

32bit Busterから64bit BullseyeへのUpgradeは、『CrossGrading』と言われていて、Debianのサイトでは出来そうな感じですが、試したGary Terryさんは、Raspberry Piのサイトで『CrossGrading出来なかった』とコメントしています。

ここでは、既存のデータを残しつつ32bit BullseyeへのUpgradeです。

最初に一応修復しておく~

$ dpkg --audit   //修復しておく
$ dpkg --get-selections | grep 'hold$'   //ホールド状態のパッケージが無いか確認
$ sudo mount -o remount,rw /boot   //読込専用ファイルシステムを読書可能にする

source.listを変更

sources.listにdeb http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpiを書き加える。

$ sudo nano /etc/apt/sources.list

upgrade実行

$ sudo apt update    //パッケージ情報更新
$ sudo apt -o APT::Get::Trivial-Only=true full-upgrade  //Upgradeする容量が十分あるか確認
$ apt upgrade --without-new-pkgs   //最小限のOS Upgrade
$ apt full-upgrade //OS Upgrade
  • 何度か止まってる。
  • 止まって『:』と表示されなるので『q to quit』が表示されるまでspaceを押す。
  • 止まって『q to quit』が表示されたら、『q』を押す。
  • 止まって青い画面がでたら 『OK』を押す。 (”cron”とかなんとか書いてあった)
  • 止まってN,Y,D等聞いてくるので、デフォルトの『N』を入力。

/usr/bin/apt-listchanges:not foundエラーが出たら

『/usr/bin/apt-listchanges:not foundエラー対処方法』をご参考ください。

libc6-dev:breaks:

libgcc-8-dev (< 8.4.0-2~) but 8.3.0-6+rpi1 is to be installedエラーが出たら

The following packages have unmet dependencies:
 libc6-dev : Breaks: libgcc-8-dev (< 8.4.0-2~) but 8.3.0-6+rpi1 is to be installed

以下を実行して再度full-upgradeする。

$ sudo apt install gcc-8-base libc6-dev
$ sudo apt full-upgrade

確認

ちゃんとなりましたね。

$ cat /etc/os-release

しかし32bitです。 64bitはフォーマットして新規しかできないようです。

$ lsb_release -a

.bashrcが読み込まれない問題解決

実は、32bit BulseyenにUpgradeして、TeraTermでSSH接続しても右の様にpi@raspberrypi:の文字に色が付いておらず、python -Vも認識しませんでした。 そこで、.bash_profileに以下を書き込んで、TeraTermで再接続したら全て解決しました。

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

下は解決後

因みに、BullseyeからPython3とPython3.9だけになっています。なので、Pythonしても反応しません。 私の場合は、pyenvでPython3.10を入れているので、左の図の様になります。 pyenvのパスやpyenvでインストールしたPython3.10のパスを.bashrcで読み込んでいるのが、.bashrcが読み込まれていなかったので、python -Vも認識されませんでした。

Boot時Wifi接続方法

何故かBullseyeにしたらBoot時にWifiがつながりませんでした。 

画像に alt 属性が指定されていません。ファイル名: image-2.png

解決策

以下を実行したらboot後、自動的にWifi接続するようになりました。

connmanctl enable wifi

これをする方法は、実際Raspberry Piにキーボードをつないでするか、Raspberry PiをEthernetに繋いでSSH接続でするかしかありません。 私は、USBキーボードを繋いで入力しました。

以下のコマンドで通信のStatus(状態)を見る事ができます。

connmanctl technologies

右の図はBoot後です。 WifiのPowered=Trueになっていますね。 Wifiもちゃんとつながってました。

このおかげかどうか分かりませんが、通信速度も64bit時ほどは早くないですが、32bitのBuster時と同じくらいになくなりました。

YouTubeを観ると64bit時に出ていなかった、Low Voltageが偶に表示されます。

私の場合はsudo rfkillでは解決しませんでした

以下実行後Wifiは繋がりましたが、Reboot後はWifiにつながらず、再度手動でWifi ONにしなければなりませんでした。

sudo rfkill unblock wifi

もしかしたら、上記がReboot後Wifi ONにならなかったのは、piユーザーでSSH接続して実行したからかもしれません。 SSH接続でなく、直接USBでキーボードを接続して以下を実行したらReboot後も反映されたのかもしれません。 しかし、既にconnmanctlでWifiは問題なく動作しているので、検証していません。

更に設定しておきたい事

鍵を使ったSSH通信

セキュリティの面と、VScodeからRaspberry Piを踏み台にして外部サーバに多段接続する際パスワードでは出来ないので鍵を使ったSSH通信に設定する。

Pythonの仮想環境

pyenvをインストールして、pyenvでPythonをインストールしてversion切り替え可能にしておく。

そしてVirtualenvも入れてプロジェクトごとに分けれるようにしておく。

これをしていないと後でRaspberry Piないがぐちゃぐちゃになって、どのバージョンのライブラリやモジュールがどこから読まれて動作しているかデバッグできなくなる。

コメント

タイトルとURLをコピーしました