Raspberry Pi 4B に Debian 11 (bullseye) をインストール
Raspberry Pi 4B を2年前 (2019/12) に購入して、普通に自宅においたサーバとして使っています。 すでに13,000時間以上なんの問題もなく動作しています。
写真のように2台購入していますが、1台は時々ちょっと試す以外に使っていなかったので、2021年11月8日に Raspberry Pi OS が Debian 11(Bullseye)ベースに更新 されたのを機会に久しぶりにインストールについての記事を書きました。 また、Lazarus(ラザロ) をちょっと使ってみます。
Debian 11.0 (bullseye)
Debian のバージョンが 11.0 (Bullseye) に上がったことに伴って、Raspberry Pi OS のバージョンも2021-10-30-raspios-bullseye-armhf-full.zip に更新されました。 Raspberry Pi OS のベースとなっている Debian のバージョンは次のように 2年毎にバージョンアップされているため、Raspberry Pi OSも2年ぶりの更新となります。Release Notes for Debian 11 (bullseye)
公開日 | バージョン | コードネーム |
---|---|---|
2013/05/04 | 7.0 | wheezy |
2015/04/26 | 8.0 | jessie |
2017/06/17 | 9.0 | stretch |
2019/07/06 | 10.0 | buster |
2021/08/14 | 11.0 | bullseye |
2023/xx/xx | 12.0 | bookworm |
2025/xx/xx | 13.0 | trixie |
開発関連のパッケージのバージョンの比較
プログラミング言語を中心に開発関連のパッケージのバージョンを buster と bullseye で比較してみました。
Package | Buster | Bullseye | メモ |
---|---|---|---|
git | 2.20.1 | 2.30.2 | 分散型のバージョン管理アプリケーション |
gcc | 8.3.0 | 10.2.1 | Cコンパイラ |
as | 2.31.1 | 2.35.2 | アセンブラ |
gdb | 8.2.1 | 10.1.90 | デバッガ |
glibc | 2.28 | 2.31 | Cライブラリ |
python | 2.7.16 | 3.9.2 | busterのpython3は3.7.3 |
perl | v5.28.1 | v5.32.1 | プログラミング言語 Perl |
lua | 5.1.5 | 5.1.5 | プログラミング言語 Lua、luajitに合わせたバージョン |
luajit | 2.1.0-beta3 | 2.1.0-beta3 | LuaのJITコンパイラ |
lazarus | 2.0.0 | 2.0.12 | フリー版Delphi、別途インストールが必要 |
fpc | 3.04 | 3.2.0 | FreePascal、lazarus と一緒にインストールされる |
awk | 1.3.3 | 1.3.4 | |
tar | 1.30 | 1.34 | --zstd(ZStandard圧縮)が使えるようになった |
Raspberry Pi 4B本体
最近の Raspberry Pi4B のボードは OS を Bullseye に更新することによって、クロックを1.8GHzまで上げられる(Bullseye bonus: 1.8GHz Raspberry Pi 4)そうです。
ボードの黄色の丸で囲んだ部分が図のようなものは古いタイプです。
古いタイプでも /boot/config.txt に「arm_freq=1800」のように書き込むことで高速化できるようです。 不安定な場合は少し(50)ずつ減らしたり、「over_voltage=2」のようにコア電圧を調整したりできるようです。 私は試していませんので、これ以上は書きません。
38 #uncomment to overclock the arm. 700 MHz is the default. 39 #arm_freq=800
電圧、クロック、温度の確認
実際の電圧とクロック(負荷で変化)を確認する方法です。
電圧
pi@raspberrypi:~ $ vcgencmd measure_volts
volt=0.8563V
クロック
pi@raspberrypi:~ $ vcgencmd measure_clock arm
frequency(48)=600169920
温度
pi@raspberrypi:~ $ vcgencmd measure_temp
temp=52.1'C
Raspberry Pi Imager
今回は、Raspberry Pi OS を SDカードに書き込む方法として、公式の Raspberry Pi Imager を使ってみます。
Windows11 の PCで Raspberry Pi Imager(imager_1.6.2.exe) をダウンロードして、PC にインストールしました。
ダウンロード
公式サイト https://www.raspberrypi.com/software/ から「Download for Windows」をクリックしてRaspberry Pi Imager(imager_1.6.2.exe 19.3MB) をダウンロードします。
Raspberry Pi Imager のインストール
ダウンロードした imager_1.6.2.exe を実行して、「Install」ボタンを押すとRaspberry Pi Imager がインストールされます。
「Finish」ボタンを押してインストールを終了します。
Raspberry Pi OS のSDカードへの書き込み
Raspberry Pi Imager を使って Raspberry Pi OS を SDカードに書き込みます。
Raspberry Pi Imager の実行
Raspberry Pi Imager を実行して、まず書き込むOSを選択します。
リストの先頭は Raspberry Pi OS です。 ダウンロードされるファイルは 2021年11月18日現在 2021-10-30-raspios-bullseye-armhf-full.zip です。
リストの他の項目を選ぶと、Raspberry Pi OS 以外のOSイメージを書き込むことができます。2番目には Ubuntu があります。
Ubuntu を選ぶと、32ビットまたは64ビットの OS がインストールできます。
Raspberry Pi で使用する SDカードを PC の SDカードリーダに挿入して、書き込み先のデバイスを選択します。
書き込む前に隠しコマンドで SSH や Wifi の設定が可能になっていますが、Raspberry Pi を起動後に設定することもできます。
[Ctrl] + [Shift] + [X] を同時に押すと設定画面が表示されます。
Wifi の設定は PC から読み取られるようです。Wifi の設定はこの方法が楽です。
「WRITE」ボタンをクリックすると、SDカードが消去されるという警告が表示されます。
書き込み中には進行状況が表示されます。
書き込みが終了したら、SDカードを取り出します。
Raspberry Pi の起動
SDカードを Raspberry Pi に挿入して電源を接続すると、最初に一度だけ初期設定の画面が表示されます。
piwiz による初期設定
書き込んだ Raspberry Pi OS を使って、最初に Raspberry Pi を起動すると自動的に piwiz というアプリが起動して初期設定が始まります。
国や言語を指定して、時刻、キーボードの配列などを設定します。
pi ユーザのパスワードを設定します。確認のため2回入力します。
ディスプレイの設定で、表示される領域が小さい場合にチェックします。 設定は再起動した後に反映されます。
無線で接続する場合は Wifi のアクセスポイントを選択します。
Wifi のアクセスポイントのパスワードを入力します。 普通は無線ルータのラベルに表示されているはずです。
ソフトウェアを更新しない場合は「Skip」をクリックします。
ソフトウェアの更新には時間がかかる場合があります。
更新が終了したら次のウィンドウが表示されるので「OK」をクリックします。
初期設定が終了すると次のウィンドウが表示されるので「Done」をクリックします。
以上で Raspberry Pi 4B に Debian 11 (bullseye) のインストールが終了しました。
SD Card Copier で SSD にコピー
Raspberry Piを本格的に使う場合に、SDカードでは容量と耐久性に不安があります。 しかし、Raspberry Pi OS に組み込まれている SD Card Copier を使うと、メニューのコマンドを選択するだけで SD カードから USB接続したハードディスクや SSD に OS 全体をコピーできます。 SD Card Copierの実行後は、SD カードなしで起動すると自動的にコピー先の HDD や SSD が使われて、SD カード無しで運用できるようになります。
ブートローダのバージョンが古いと、SD カードなしの場合に HDD や SSD が使われないため、ブートローダのバージョンを確認します。
pi@raspberrypi:~ $ vcgencmd bootloader_version
Sep 3 2020 13:11:43
version c305221a6d7e532693cc7ff57fddfc8649def167 (release)
timestamp 1599135103
update-time 0
capabilities 0x00000000
SD Card Copier 実行前のSD カードの状態です。
pi@raspberrypi:~ $ df ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置 /dev/root 15075008 6289964 8119668 44% / devtmpfs 1800564 0 1800564 0% /dev tmpfs 1965428 0 1965428 0% /dev/shm tmpfs 786172 1968 784204 1% /run tmpfs 5120 4 5116 1% /run/lock /dev/mmcblk0p1 258095 49241 208854 20% /boot tmpfs 393084 24 393060 1% /run/user/1000
500GBのSSDをUSBに接続して、SD Card Copier を実行しました。 実行後のSSDのパーティションを確認すると、boot 用の領域とファイルシステム用のパーティションができています。
pi@raspberrypi:~ $ sudo fdisk -l /dev/sda
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: P10 500GB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x61b43cd2
Device Boot Start End Sectors Size Id Type
/dev/sda1 8192 532479 524288 256M c W95 FAT32 (LBA)
/dev/sda2 532480 976773167 976240688 465.5G 83 Linux
SDカードを抜いて、SSDだけで起動した場合です。 約500GBが使えるようになりました。
pi@raspberrypi:~ $ df ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置 /dev/root 479335120 8488336 446424384 2% / devtmpfs 1800052 0 1800052 0% /dev tmpfs 1964916 44980 1919936 3% /dev/shm tmpfs 785968 1944 784024 1% /run tmpfs 5120 4 5116 1% /run/lock /dev/sda1 258094 49241 208853 20% /boot tmpfs 392980 36 392944 1% /run/user/1000
Visual Studio Code
最初からエディタもインストールされていますが、Visual Studio Code も簡単にインストールできます。 バージョンも確認してみると最新版でした。
pi@raspberrypi:~ $ sudo apt install code パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています... 完了 状態情報を読み取っています... 完了 以下のパッケージが新たにインストールされます: code アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 69.3 MB のアーカイブを取得する必要があります。 この操作後に追加で 241 MB のディスク容量が消費されます。 取得:1 https://archive.raspberrypi.org/debianbullseye/main armhf code armhf 1.62.3-1637136483 [69.3 MB] 69.3 MB を 15秒 で取得しました (4,690 kB/s) 以前に未選択のパッケージ code を選択しています。 (データベースを読み込んでいます ... 現在 184521 個のファイルとディレクトリがインストールされています。) .../code_1.62.3-1637136483_armhf.deb を展開する準備をしています ... code (1.62.3-1637136483) を展開しています... code (1.62.3-1637136483) を設定しています ... gnome-menus (3.36.0-1) のトリガを処理しています ... shared-mime-info (2.0-1) のトリガを処理しています ... mailcap (3.69) のトリガを処理しています ... desktop-file-utils (0.26-1) のトリガを処理しています ... pi@raspberrypi:~ $ code --version 1.62.3 ccbaa2d27e38e5afa3e5c21c1c7bef4657064247 arm
Java11 のインストール
Visual Studio Code で PlantUML を使いたいので、Java をインストールします。
pi@raspberrypi:~ $ sudo apt install openjdk-11-jdk
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
ca-certificates-java fonts-dejavu-extra java-common libatk-wrapper-java
libatk-wrapper-java-jni openjdk-11-jdk-headless openjdk-11-jre
openjdk-11-jre-headless x11-utils
Suggested packages:
default-jre openjdk-11-demo openjdk-11-source visualvm fonts-ipafont-gothic
fonts-ipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic
mesa-utils
The following NEW packages will be installed:
ca-certificates-java fonts-dejavu-extra java-common libatk-wrapper-java
libatk-wrapper-java-jni openjdk-11-jdk openjdk-11-jdk-headless
openjdk-11-jre openjdk-11-jre-headless x11-utils
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
Need to get 216 MB of archives.
After this operation, 345 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
PlantUMLのインストール
Visual Studio Code で PlantUML を使う場合は、拡張機能から PlantUML をインストールします。
[Alt + D] を押すと PlantUML のソースから UMLの図が表示できます。
Libre Office のインストール
Libre Office をインストールすると、Word や Excel がなくてもほぼ問題なく業務でもRaspberry Pi を使えるようになります。
pi@raspberrypi:~ $ sudo apt install libreoffice
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
Suggested packages:
ant-doc antlr javacc junit junit4 jython libbcel-java libbsf-java
The following NEW packages will be installed:
ant ant-optional apparmor coinor-libcbc3 coinor-libcgl1 coinor-libclp1
coinor-libcoinmp1v5 coinor-libcoinutils3v5 coinor-libosi1v5
firebird3.0-common firebird3.0-common-doc firebird3.0-server-core
firebird3.0-utils fonts-crosextra-caladea fonts-crosextra-carlito
fonts-dejavu fonts-linuxlibertine fonts-noto-core fonts-noto-extra
fonts-noto-ui-core fonts-opensymbol fonts-sil-gentium
fonts-sil-gentium-basic gstreamer1.0-plugins-ugly libabw-0.1-1
libactivation-java libaopalliance-java libapache-poi-java libapache-pom-java
libargs4j-java libatinject-jsr330-api-java libbase-java libbcmail-java
:
略
:
libsidplay1v5 libsisu-inject-java libsisu-plexus-java libslf4j-java
libsnappy-java libsnappy-jni libstaroffice-0.0-0 libstax-ex-java
libstreambuffer-java libtommath1 libtxw2-java libuno-cppu3
libuno-cppuhelpergcc3-3 libuno-purpenvhelpergcc3-3 libuno-sal3
libuno-salhelpergcc3-3 libunoil-java libunoloader-java libvisio-0.1-1
libwagon-http-java libwagon-provider-api-java libwebsocket-api-java
libwpd-0.10-10 libwpg-0.3-3 libwps-0.4-4 libxerces2-java
libxml-commons-external-java libxml-commons-resolver1.1-java libxml-java
libxmlbeans-java libxmlsec1 libxmlsec1-nss libxom-java libxsom-java
libxz-java libyajl2 libzmf-0.0-0 lp-solve python3-uno uno-libs-private ure
0 upgraded, 217 newly installed, 0 to remove and 0 not upgraded.
Need to get 256 MB of archives.
After this operation, 846 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Libre Office の日本語化
メニューなどを日本語で表示するために追加でインストールします。
pi@raspberrypi:~ $ sudo apt install libreoffice-help-ja
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libreoffice-help-common libreoffice-l10n-ja node-normalize.css
Suggested packages:
hunspell-dictionary-ja | myspell-dictionary-ja hyphen-ja
libreoffice-grammarcheck-ja mythes-ja libjs-html5shiv nodejs
The following NEW packages will be installed:
libreoffice-help-common libreoffice-help-ja libreoffice-l10n-ja
node-normalize.css
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 7685 kB of archives.
After this operation, 40.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
samba
ネットワーク越しにファイルを読み書きできると便利なので samba もインストールします。
samba のインストール
pi@raspberrypi:~ $ LC_ALL=C pi@raspberrypi:~ $ sudo apt install samba Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: attr libcephfs2 libgpgme11 liburing1 python3-dnspython python3-gpg python3-markdown python3-requests-toolbelt python3-samba python3-tdb python3-yaml samba-common samba-common-bin samba-dsdb-modules samba-vfs-modules tdb-tools Suggested packages: python3-sniffio python3-trio python-markdown-doc bind9 bind9utils ctdb ldb-tools ntp | chrony smbldap-tools ufw winbind heimdal-clients The following NEW packages will be installed: attr libcephfs2 libgpgme11 liburing1 python3-dnspython python3-gpg python3-markdown python3-requests-toolbelt python3-samba python3-tdb python3-yaml samba samba-common samba-common-bin samba-dsdb-modules samba-vfs-modules tdb-tools 0 upgraded, 17 newly installed, 0 to remove and 0 not upgraded. Need to get 6512 kB of archives. After this operation, 45.3 MB of additional disk space will be used. Do you want to continue? [Y/n] y
samba の設定
pi@raspberrypi:~ $ sudo vi /etc/samba/smb.conf
/etc/samba/smb.conf の 175行目の 「read only = yes」 を「read only = no」に変更して保存します。これでネットワーク越しに書き込むことができるようになります。
167 #======================= Share Definitions =======================
168
169 [homes]
170 comment = Home Directories
171 browseable = no
172
173 # By default, the home directories are exported read-only. Change the
174 # next parameter to 'no' if you want to be able to write to them.
175 read only = no
176
samba の起動
pi@raspberrypi:~ $ systemctl start smbd pi@raspberrypi:~ $ systemctl start nmbd
ユーザの追加
pi@raspberrypi:~ $ sudo pdbedit -a -u pi
new password:
retype new password:
Lazarus(ラザロ) のインストール
Raspberry Pi の使いみちとしてプログラミング教育がありますが、元々プログラミング教育用に作成されて、多くのフリーソフトウェアが開発された Pascal はどうでしょうか? 商用の Delphi と同様に高速なネイティブアプリケーションが作成できるLazarus(ラザロ) を試してみましょう。
上部のタスクバーのコンソールをクリックします。以下のように入力して Lazarus をインストールします。
pi@raspberrypi:~ $ sudo apt update pi@raspberrypi:~ $ sudo apt upgrade pi@raspberrypi:~ $ sudo apt install lazarus
インストールしたLazarus(ラザロ) はタスクバーのメニューから起動することができます。
Lazarus自身もLazarusで作成されていることから、Lazarus の能力がわかります。 ネイティブなGUIアプリが作成できる環境となります。 作成したソースは Windows や macOS の Lazarus でコンパイルできます。
Lazarus でのアプリケーションの作り方は、フォームに部品を配置して、イベントに応じたコードを書き込む形式です。 ここではボタンとテキストボックスを配置して、「実行/構築」でアプリケーションを作りました。 1分以内でできます。
出来上がったアプリケーション「project1」と実行結果です。
次回以降に Lazarus の使い方をちゃんと解説するかも。