Raspberry Pi OS bullseye がリリースされていたので手元のRaspberry Pi 3 model B のOS をbuster からbullseye にアップグレードしてみました.
今回の環境は以下のような感じです.
- BOARD
- Raspberry Pi 3 model B
- OS
- Raspberry Pi OS buster armhf
- OS導入ストレージ
- microSD 32GB
- 主なサービス
- OpenSSH, samba
- 操作
- ssh経由
バックアップ
/etc は etckeeper(git) で管理しているのでリモートにpush しておきます./home
は手動でバックアップ.
その他必要に応じてバックアップ.
もしくはストレージをまるごとイメージでバックアップ.(SD Card Copier/dd等)
buster を最新にする
Raspberry Pi OS buster を最新の状態します.
$ sudo mount -o remount,rw /boot (1) $ sudo apt update (2) $ sudo apt upgrade (3) $ sudo reboot (4)
- 読み取りファイルシステムを書き込み可能に
- パッケージ情報の更新
- パッケージを最新に
- 必要に応じて再起動
操作ログを取得する
script コマンドで操作ログをファイルに書き出すようにしておきます.何か合った時に参照します.(接続元の端末でも保存しておくと例えばdisk fullなどのときにも保存されるので安心)
$ script -a ~/buster2bullseye_$(date +%F-%T).log
パッケージの状態をチェックする
$ dpkg --audit (1) $ dpkg --get-selections | grep 'hold
- エラーのあるパッケージがないか確認
- ホールド状態のパッケージがないか確認
APT source-list ファイルの準備
/etc/apt/sources.list
を書き換えます.buster
を bullseye
に変更.編集時には apt edit-sources
コマンドを使うと文法チェックをしてくれる.
$ sudo apt edit-sources $ cat /etc/apt/sources.list deb http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi deb-src http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
/etc/apt/sources.list.d/
以下も確認して,Raspberry Pi OS 以外のリポジトリはコメントアウトする.(apt edit-sources ${FILENAME} で編集可能)
パッケージ情報を更新する
$ sudo apt update
アップグレードに必要な容量があるか確認する
$ sudo apt -o APT::Get::Trivial-Only=true full-upgrade
読み込み専用ファイルシステムを書き込み可能にする
$ sudo mount -o remount,rw /boot
OpenSSH Server をアップグレードする
アップグレード中に新規の SSH 接続が出来ない ようなので前もってアップグレードしておく.(トラブルが起きなければ既存のセッションだけで問題ないはずだが念の為)
$ sudo apt install openssh-server
アップグレード後ssh 接続ができることを確認.
システムの最小アップグレード
$ sudo apt upgrade --without-new-pkgs
システムのアップグレード
$ sudo apt full-upgrade
手元の環境では full-upgrade
時に以下のような依存関係のエラーになりました.
$ sudo apt full-upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Error! Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: 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 E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
gcc-8-base
パッケージを導入して再度 dist-upgrade を試みることで解決しました.
$ sudo apt install gcc-8-base libc6-dev $ sudo apt full-upgrade
KMS video driver の設定
/boot/config.txt
を編集します.ファイル内の dtoverlay=vc4-fkms-v3d
行をコメントアウトし,[all]
セクション内に dtoverlay=vc4-kms-v3d
を記述します.
[all] #dtoverlay=vc4-fkms-v3d (1) dtoverlay=vc4-kms-v3d (2)
- コメントアウト
- 追記
再起動したら大体終わり.
後はサードパーティのAPT source-list ファイルを修正したり,アプリケーションの設定をしたり,bullseyeでサポートされなくなったパッケージを確認したり,アップグレード時に削除されたパッケージを確認したり…….
一通り設定が終わったらここでもバックアップをしておく.
こんにちは
記事の「参考URL」が終わって、その後に同じように記事が続きますが、どこか内容が違う点がありますか?
きたきたさんありがとうございます.
CMSの不具合で本文を貼り付けたあとおかしくなっていたようです.
修正しました.