1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

死蔵していたRaspberry Piを起動できるようにしBullseyeにアップデートする

1
Last updated at Posted at 2021-09-25

1. はじめに

Raspberry Pi 3 Model Bが死蔵状態にあり、これを活用するために、まずは起動できるところまでもっていき、最新のOSを導入します。

2. 用意するもの

  • Raspberry Pi 本体
  • 2.4A以上供給可能なUSB電源
  • 抵抗値の少ない電源供給用USBケーブル
  • 下記いずれかの起動メディア
    • microSD(Pi2,3でUSB起動への設定変更をしていない場合と初代では必須)
    • USBメモリ
    • ハードディスクとUSB接続ケース
    • SSDとUSB接続ケース

3. Raspberry Pi 起動メディアの準備

長らく使われていなかったせいでmicroSDカードが装着されていない状態だったので、起動メディアの作成から始めます。

3.1. メディアの種類

Raspberry Piの起動メディアですが、通常はmicroSDです。しかし長期運用を行う場合、書き込み回数に対する耐性の低さから、いつのまにか動作しなくなっている場合がよくあります。このため、起動メディアはUSBメモリやUSB接続のハードディスク、理想的にはUSB接続のSSDにするのがいいと思います。

3.2. メディアは32GBを超えていてもOK

Raspberry Pi Imagerは、VFATフォーマットの上限である32GBを超える容量のメディアも扱えます。起動用にVFAT領域が小さく確保され、残りの領域はすべてext4で確保されます。

microSDやUSBメモリを使用する場合、容量が大きい方が、同じ量のデータ書き込みに対して寿命が向上するかもしれませんが、特定領域だけに書き込みが集中する場合は、容量の大きさが寿命に寄与することはないでしょう。知らんけど。

3.3. USB起動の注意点

  • USB接続のHDDケースを使用する場合、電流不足で適切に動作しないことがあります。
  • Raspberry Pi 初代はmicroSDからしか起動できません。
  • Raspberry Pi 4はファームウェアが正式対応したそうです。

USB MSD boot also requires the firmware from Raspberry Pi OS 2020-08-20 or newer.
https://github.com/raspberrypi/rpi-eeprom/blob/09f77ad9fa8655a28de754640e82ca67aabe6c33/firmware/release-notes.md

  • Raspberry Pi 2,3は設定の変更が必要です。私はこちらの記事を参考にさせていただきました。

https://jyn.jp/raspberrypi-usb-only-boot/

4. 起動メディアの作成

以前はNoobsというものを使っていた記憶がありますが、今はRaspberry Pi Imagerのおかげで、ずいぶん楽になりました。メディアを選ばず、消去もできます。

デスクトップ環境は不要なので、CHOOSE OSからRaspberry Pi OS (other)を選択し、Raspberry Pi OS Lite(32-bit)を選択します。64bitないの?と思う方、私もそう思いました。調べるとあるようなので、それを使うことにしました。次の節へどうぞ。

CHOOSE STORAGEからメディアを選択し、WRITEすれば、程なくして起動メディアが作成されます。ダメになったmicroSDや不良セクタの多いHDDなど、メディアに問題がある場合は時間がかかります。その場合は思い切って捨て、新しいものを使いましょう。

4.1. Raspberry Pi OS Lite (64-bit)

Raspberry Pi Imager には表示されませんが、下記サイトに日付別に用意されていますので、最新のzipファイルをダウンロードします。
初代をはじめとしたBroadcom BCM2835採用機種は64bit(arm64)に対応しません。

https://downloads.raspberrypi.org/raspios_lite_arm64/images/

記事作成時点では2021-05-07-raspios-buster-arm64-lite.zipが最新でした。

Raspberry Pi Imagerで扱うことができ、一番下のUse customから起動メディアを作成できます。

5. 起動する前に

初期設定の一部は起動メディアを編集することでも可能です。無線LAN、SSHを有効にできるので、モニタやキーボードをつなぐことなく、LANケーブルがなくても作業ができるため、やることにします。

作成した起動メディアをパソコンから取り外し、再度取り付けると、bootという200MB程の領域が認識されますので、それを開き、設定を加えていきます。

5.1. 無線LANの事前設定

wpa_supplicant.confというファイル名で、UTF-8形式のテキストファイルを作成します。

country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="SSIDを入力します"
    psk="パスワードを入力します"
}

パスワードは後でハッシュ化しましょう。
wpa_passphraseコマンドが使える環境があれば、ハッシュ化済みのファイルを生成できます。

touch wpa_supplicant.conf
echo 'country=JP' | sudo tee -a wpa_supplicant.conf
echo 'ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev' | sudo tee -a wpa_supplicant.conf
sudo wpa_passphrase "SSIDを入力します" "パスワードを入力します" | sudo tee -a wpa_supplicant.conf

結果を確認し、内容をコピペするか、ファイルをコピーします。

$ cat wpa_supplicant.conf 
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
        ssid="SSIDを入力します"
        #psk="パスワードを入力します"
        psk=d16ef9220f4c0ff9a2573b53757e19fad33e45cdf89c731253973c57f83d8706 #ハッシュ化された"パスワードを入力します"
}

5.2. SSHの事前設定

sshというファイル名で、中身がないファイルを作成します。

以上で起動前の設定は終わりです。

6. Raspberry Pi の起動

作成した起動メディアを取り付け、電源を接続し、無事起動するのを待ちます。

私は起動メディアをSSDで作成したのですが、最初の起動で領域の大きさを拡大するらしく、メッセージが表示された後に自動的に再起動されました。しかし、その後うんともすんとも言いません。電源を確認すると、5V400mA程度流れているのですが、SSDを収めたHDDケースのアクセスランプは沈黙したままです。仕方がないので、電源を抜き差ししたところ、無事起動しました。

7. 低電圧対策

起動はするものの低電圧警告が出まくる場合、対策が必要です。

http://doc.switch-science.com/support/RaspberryPi3/raspi3power.pdf

  • ACアダプタは5V2.4A以上、できれば5V3Aのものを使いましょう
  • USBケーブルは抵抗値の低いもの(3A対応や急速充電対応などをうたうもの)を使いましょう
  • どうしても給電が追い付かない場合はGPIOからの給電を検討しましょう

8. 起動してからの設定

無事起動したら、パソコンからSSHで、おなじみのユーザー名とパスワードを使いログインし、設定コマンドを実行します。IPアドレスが分からない場合は、こちらが参考になると思います。

https://iot-plus.net/make/raspi/ssh-connect-using-mdns/

8.1. raspi-config

raspi-configコマンドで初期設定を行います。

sudo raspi-config

私の場合は以下の項目について設定を変更しました。

System Options Hostname から、ホスト名の設定
Localisation Options Locale から、ロケールの設定(en_US.UTF-8 UTF-8、ja_JP.UTF-8 UTF-8を追加、デフォルトをC.UTF-8に)
Localisation Options Timezone から、タイムゾーンの設定(Asia,Tokyo)
Localisation Options Keyboard から、キーボードの設定(Generic 105-key PC (intl.) Other Japanese Japanese The default for the keyboard layout No compose key)
Advanced Options Network Interface Names から、インターフェース名の設定(いいえにすると長い名前ではなくeth0などの短い名前になる)

  • 途中で画面遷移がおかしくなったら、再起動しましょう。
  • パスワードはLocalisation Options、特にキーボードの設定変更を反映させた後に行うようにしています。キーボードの見た目通りに記号が入力されず、ログインできなくなるのが怖いので・・・。
  • デフォルトのロケールはCにしておいて、必要があればユーザーごとにexport LANG=ja_JP.UTF-8することにしています。たまにコンソール画面が必要になり、日本語部分がで表示されて困るからです。

設定後、最新の環境にします。

sudo apt update
sudo apt upgrade

Bullseyeにしないのであれば、ここまで。

9. BusterからBullseyeへ

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

手順はこちらを拝見し、ほぼそのまま実行しました。

https://qiita.com/kakinaguru_zo/items/78aa8ba3912a131fd078

今回使っているOSはRaspberry Pi OS Liteの64bit版なので、/etc/apt/sources.listにはdeb http://deb.debian.org/debian bullseye main contrib non-freeを追加しています。

echo 'deb http://deb.debian.org/debian bullseye main contrib non-free' | sudo tee -a /etc/apt/sources.list

Liteも含め、Raspberry Pi OSの32bit版を使った場合、実行するコマンドは下記のようになります。

echo 'deb http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi' | sudo tee -a /etc/apt/sources.list

以降、続けて以下のコマンドを実行します。

sudo apt update
sudo apt --with-new-pkgs upgrade
sudo apt --autoremove purge libgcc-8-dev gcc-8-base
sudo apt --purge dist-upgrade
sudo sync
sudo reboot

確認してみます。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:        11
Codename:       bullseye

Bullseyeになりました。

今日はここまで。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?