Raspbian
- 2021-11-20 初版
- 2023-10-10 第2版
Raspbianとは
- Raspbian はRaspberry Pi 標準のOSです。
- のちに Raspberry Pi OS と改名しました。
- Debian をベースにしています。
- 32ビットOSです。一度の処理単位です。
- 64ビットのRaspbianも非公式ですが開発中です。
- Raspberry Pi Zero WのCPUは 32ビットCPU のため、64ビットOSが動きません。
- Raspberry Pi Zero 2 WのCPUは 64ビットCPU のため、64ビットOSが動きます。
- 2022-02-02 64ビット Raspberry Pi OS をリリース
- 2023-10-10 bookworm をリリース
著作権と免責事項
- 個人利用に限定され、著作権者の許可なく商用利用できません。
- 直接間接に関わらず、使用によって生じたいかなる損害も筆者は責任を負いません。
開発コードとリリース
- http://raspbian.raspberrypi.org/raspbian/
- Raspberry Pi OS(bullseye) 2021年10月30日版
- Raspberry Pi OS(bookworm) 2023年10月10日版(Raspberry Pi Imager 1.8.1)
- Debian 9(Stretch)
- Debian 10(buster)
- Debian 11(bullseye) 2021年8月14日
- Debian 12(bookworm) 2023年6月10日
- Debian 13(trixie)
bookwormの洗礼を受ける(問題多発)
- 初物にトラブルはつきもの。
- https://www.raspberrypi.com/news/bookworm-the-new-version-of-raspberry-pi-os/
- https://wiki.debian.org/NewInBookworm
5インチ・ディスプレイのblack screen問題(独自解決)
- 起動の数秒は表示するのだがブラックスクリーンになる。
- すでに報告されているが解決策なし。
- https://forums.raspberrypi.com/viewtopic.php?t=356375
- vc4-kms-v3dドライバが怪しい。
- [ 4.622581] [drm] Initialized v3d 1.0.0 20180419 for fec00000.v3d on minor 0
- [ 4.680839] Console: switching to colour dummy device 80x25
- [ 4.733188] vc4-drm gpu: bound fe400000.hvs (ops vc4_hvs_ops [vc4])
- このあたりで消える。
- 普段は xrdp を使ったリモート・デスクトップを利用しているため支障はない。
- ただネットワーク障害があるとやはりディスプレイが必要になる。
- 幸いにして xrdp を使えた。
- X11からWaylandへ移行したため、使えない可能性があった。
- 原因判明。ドライバをコメントアウトする。
- #dtoverlay=vc4-kms-v3d
- config.txtのリンク切れ問題と重なって複雑になっていた。
- なお、あらかじめconfig.txtファイルを編集してから初回起動を行うと途中で止まることも発覚。
- 初回起動でファイルシステムの拡張などの処理が完全に行われない。
- 起動しきってから編集を行うこと。
config.txtの設定問題(独自解決)
- 上記に関係するが、どうやら /boot/config.txt の設定が反映されない。
- 例えば dtparam=i2s=on としても gpioピンが設定されない。
- $ raspi-gpio get で確認しても i2s が有効にならない。
- config.txt の設定が反映されないため、5インチ・ディスプレイの設定も無視されるようだ。
- config.txt の実体は /boot/firmware/config.txt に変更(リンク)されている。
- ところがリンクが外れている。何かが悪さしてリンクを壊し、別のファイルになっていた。
- これでは設定が反映されるわけない。
- リンクを作り直す。
- $ cd /boot
- $ sudo rm config.txt
- $ sudo ln -s firmware/config.txt config.txt
- また壊すかもしれないので、/boot/firmware/config.txt を編集しよう。
- 最新版でconfig.txtはリンクでもなくなった。/boot/config.txtを編集してはいけない。ころころと仕様が変わる。
- 壊す原因判明。
- シェルでconfig.txtを書き換える際に壊していた。
- $ sudo sed -i -e 's/#dtparam=i2s=on/dtparam=i2s=on/' /boot/config.txt
- sed を使ってファイルを書き換える方法である。これがリンクに対応しておらずファイルを作ってしまう。
- config.txtをリンクにしてしまったがための落とし穴である。
- こうすればよい。
- $ sudo sed -i -e 's/#dtparam=i2s=on/dtparam=i2s=on/' /boot/firmware/config.txt
journalのログが壊れる問題
- rebootの際に、journalを停止しないためかログを壊す。
- そして dmesg にログが壊れたとメッセージを残す。
- rebootのために、いちいち journal のサービスを停止するなんて面倒。
- 壊れたログをローテーションし、さらに新たなログも壊す。
- sudo reboot でも sudo shutdown -r now でも journal を壊す。
- いつまでたっても直らない。
- journalのログが壊れたか確認する方法。
- $ sudo journalctl --verify
- 一時的な解消方法。壊れたログを消す。
- $ sudo rm /var/log/journal/*/*
カーネル・ドライバをコンパイルできない問題(独自解決)
- firmware方式からnon free firmware方式へ移行したことに起因する。
- 正確なカーネルのバージョンを合わせないとコンパイルしても意味がない。
- OSがカーネル・ドライバを異物とみなし排除する。
- Raspberry Pi Imagerで提供しているバイナリのバージョン(6.1.0-rpi4-rpi-v8)と公開しているソースのバージョン(6.1.58-v8+)が異なる。
- OSのイメージはhttps://github.com/RPi-Distro/で公開し、OSのソースはhttps://github.com/raspberrypi/linuxで公開している。
- RPI5の登場もあり、ややこしくなっている。RPI5のページサイズが4KBから16KBに変更されている。
- なお、PRI5は64ビットOSのみ提供である。RPI4とRPI5は特別扱いされている。
- 不明なことが多く開発できない。
- 調査したところ簡単であった。わかってしまえばあっという間に解決する。
- 無事にカーネル・ドライバを生成し、組み込みにも成功した。
Wi-Fiの設定問題
- dhcpcdからNetworkManagerへ移行したことに起因する。
- wpa_supplicant.confからどこかに変更された。
- ルータに優先順位をつけて切り替えるために設定が必要。
- 方法がわからない。
- /etc/NetworkManager/system-connections/に変更された。
- $ man NetworkManager
スクリーンショット問題
- scrotからgrimに変更。scrotも残された。
- ただし、xrdp上でgrimが動かない。
- 執筆しているとスクリーンショットは不可欠。
- xrdpはx11なのでscrotを使う。
- WayVNCはWaylandなのでgrimを使う。
- どちらの環境で動いているか確認する。
- echo $XDG_SESSION_TYPE
勝手にパスワード変更問題
- Raspberry Pi Imager v1.8.1で発生する。
- ssh のパスワード認証を選択する。
- パスワードを入力して保存しても、いつの間にか知らないパスワードに変更しやがる。
- どのタイミングでパスワードが変更されるのかわからない。
- 変更を知らないで、初期ブートしてもパスワード不明のため ssh 接続できない。
- 仕方がなく、最初からやり直す羽目になる。
- 毎回、パスワードを入力する必要がある。
pip installのエラー
- $ sudo pip install mpremote
- pipの仕様を変更した。
- 一時的な解決方法
- $ sudo pip install --break-system-packages mpremote
messages,syslogが消えた
- /var/log/messages, /var/log/syslog
- 障害が発生したとき、真っ先に確認するファイルである。
- journalになったので、なくてもいいがこれまで通りであってほしい。
- rsyslogパッケージを省略したために消失した。
- 代替手段
- $ journalctl -e
リモート・ディスクトップ問題
- X11がなくなりました。RPI4とRPI5はデフォルトでWayland
- RealVNCからWayVNCに代わりました。
- このため、従来のリモート・ディスクトップが動きません。
- まだWayland用のリモート・ディスクトップ環境が整っていません。
- 方法としては2つあります。
- (1)WaylandからX11に戻す
- $ sudo raspi-config
- 6 Advanced Options
- A6 Wayland から X11に変更
- リブート
- (2)xrdpを使う
- LinuxではなくWindows側のリモート・ディスクトップ環境を使う
- $ sudo apt install xrdp
- クライアントはWindowsツールのリモートディスクトップ接続
リモート・ディスクトップ問題
- WayVNCが動かない原因を調査したところ raspi-config のバグとわかりました。
- 複雑に絡まっており、簡単ではありません。
- 正しい順序で行わないと、設定できません。一度間違うと迷路にはまります。
- 現状では面倒なので、xrdp をお勧めします。
- ちなみにvncviewerのCompressionでAllow JPEG compressionを外すと色がきれいになります。
リモート・ディスクトップのキーマップ
- Raspberry Pi Configuration
- Localisation
- Keyboard:
- Model:Generic 105-key PC (intl.)
- Layout:Japanese
- Variant:Japanese (OADG 109A)
raspi-gpio廃止
- raspi-gpio から pinctrlに変更された
- 使い方はほぼ同じだが一部違う。
- $ pinctrl help
その他、未確認
- PulseAudioからPipeWireへの移行、音関係で何かあるかもしれない。
- gtk3からgtk4への移行(バージョンアップではない、大幅な改変)、書き換えが必要。
OSの確認方法
- $ uname -a
- Linux raspberrypi 5.10.63-v7l+ #1459 SMP Wed Oct 6 16:41:57 BST 2021 armv7l GNU/Linux
- 5.x.x 以降が bullseye です。
- $ cat /etc/os-release
- PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
- NAME="Raspbian GNU/Linux"
- VERSION_ID="11"
- VERSION="11 (bullseye)"
- VERSION_CODENAME=bullseye
- ID=raspbian
- ID_LIKE=debian
- HOME_URL="http://www.raspbian.org/"
- SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
- BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
64ビットOS
- 早速インストールして確認してみました。
- $ uname -a
- Linux raspberrypi 5.10.92-v8+ #1514 SMP PREEMPT Mon Jan 17 17:39:38 GMT 2022 aarch64 GNU/Linux
- 問題発生です。xrdpが動きません。
- xrdp 0.9.17
- xorgxrdp 0.2.17
- 0.9.18をソースからコンパイルして解決しました。
16GB制限の解除
- 一時期 NOOBS のインストールで8GBのSDカードにインストールできませんした(容量不足)。
- Raspberry Pi Imager からインストールで8GBのSDカードにもインストールできるようになりました。
4Bのクロック上限が1.5GHzから1.8GHzに変更
- いくつかの条件を満たす必要があります。
- bullseyeでfirmware(rpi-eeprom)を最新に更新すること
- 8GBメモリを搭載するために改良されたswitcherを搭載していること(電源供給を改良)
- 初期モデルで試す場合はconfig.txtに以下を記述
- arm_freq=1800
- ただしSDカードでブートできなくなるかもしれません。
sudo apt updateが動かない
- bullseye のリリースに伴い発生します。
- $ sudo apt update
- E: Repository 'http://archive.raspberrypi.org/debian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
- N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
- Raspbian OS のリポジトリ Suite値(バージョン)を stable から oldstableに変更したとあります。
- buster を oldstable、bullseye を stable に変更したためです。
- このため、リポジトリの不整合が発生します。
- つまり適合するパッケージのリストをダウンロードできません。
- これを一時的に解決するために内部情報の変更を許可します。
- $ sudo apt update --allow-releaseinfo-change
- OSを再インストールするのが根本解決です。
- sudo apt upgrade でも解決するかもしれませんが、時間がかかります。トラブルが発生します。
- 結果的に再インストールしたほうが早いです。
gpio コマンドがない
- wiringPiの開発を終了したため、bullseye から外されました。
- 代替として raspi-gpio コマンドを使いましょう。
- $ raspi-gpio set 26 ip pu
- $ raspi-gpio set 26 ip pd
- $ raspi-gpio get 26 | cut -d' ' -f3 | cut -d'=' -f2
- $ raspi-gpio set 26 op dh
- $ raspi-gpio set 26 op dl
wiringPiのインストール
- wiringPiのライブラリを必要とする場合、ソースからインストールします。
- $ git clone https://github.com/WiringPi/WiringPi.git
- $ cd WiringPi
- $ sudo ./build
- 今後、新規開発ではwiringPiを外しましょう。
python2 がない
- python2も開発を終了したため、bullseye から外されました。
- 基本はpython3です。
- 今後、新規開発ではpython3を使いましょう。
chromium-browser が起動しない
- Zero (armv6l)で起動しません。
- Illegal instruction
- armv6lとarmv7lの違いか、メモリ不足などが考えられます。
- chromium-browser/stable,now 92.0.4515.98-rpt2 armhf
- update しましたがやはりだめでした。
- chromium-browser/stable,now 95.0.4638.78-rpt1 armhf
- armv7からneon対応しています。armv6は対応していません。
- コンパイル・オプションに-mfpu=neonを指定していると、Illegal instructionを発生します。
- 原因が判明しました。
- chromium-browser自体はneonを使用していません。
- ところがダイナミンク・リンクしている2つのライブラリがneonを使用していました。
- $ readelf -A /lib/arm-linux-gnueabihf/libnettle.so.8
- $ readelf -A /lib/arm-linux-gnueabihf/libgcrypt.so.20
- パッケージとしては
- libnettle8/stable,now 3.7.3-1 armhf [インストール済み]
- libgcrypt20/stable,now 1.8.7-6 armhf [インストール済み]
- この2つが誤って neon 付きでコンパイルされています。
- どちらも暗号にかかわるライブラリです。neon を付けたくなる気持ちはわかります。
vc4hdmi audioのエラー
- いずれ直ると思いますが、エラーが出ます。
- HDMI audio を使用しなければ、/boot/config.txtで無効にします。
- dtoverlay=vc4-kms-v3d,noaudio
発表して間もないため、更新頻度が激しい
- 様々な問題が発覚しているようで、頻繁に更新されます。
- kernelは日々更新されているようです。
- xrdpも更新されていました。
- xrdp/stable,now 0.9.17-2~bpo11+rpt1 armhf
- xorgxrdp/stable,now 1:0.2.17-1~bpo11+rpt1 armhf
©2021-2023 All rights reserved by Y.Onodera.