2024年3月23日土曜日

Raspberry Pi 4でOS(Debian)が起動しなくなる(ログインできない)現象を解決しました

以前Raspberry Pi 4のアップデートをしていて気づいたことなのですが、microSDカードに入れたOS(Debian)が起動しなくなる現象が発生してしまい、どうしたものかと悩まされました。症状としては、MacBook ProでmicroSDカードにOSをインストール(Raspberry Pi Imagerを使用)したものをRPi 4に入れて起動すると、しばらくは使えるのですが、追加ソフトをインストールしたりアップデートしたりしているうちに起動しなくなるという現象です。否、起動はするけれどログインができなくなるというのが正しいです。これではまともに使えません。

検証のためにOSを再インストールするところからやってみることにしました。使ったのは、Gigastoneの16GB microSDカードです。新しいRaspberry Pi Imagerは、インストール時にユーザ名&パスワードやWi-Fiなどの設定ができるのでとても便利になりました。できあがったmicroSDカードをRPi 4に挿して起動すると、普通に起動してくれます。

この後しばらく待つと、タスクバーの右側にアップデートのインストールを促すアイコンが表示されるので、アップデートをインストールしてreboot。いつもの手順で「Recommended Software」からScratchなどのソフトウエアをインストールしてreboot。ターミナルから「sudo apt install fcitx-mozc」で日本語入力ができるようにしてreboot。と、この辺りまでは順調に起動するのですが、「Add / Remove Software」からArduinoLMMSをインストールすると、rebootした後にログイン画面が表示されるようになり、正しいパスワードを打ち込んでも先に進めなくなってしまうのです。この状態でShutdownを選んでも、再び起動するとまた同じ状態になります。つまり手詰まり状態というわけです。

これは、microSDカードの問題なのではないかと考えて、在庫していたTOSHIBAの16GB microSDカードにOSをインストールして同じ手順でやってみましたが結果は同じでした。

もう一台のRPi 4とRPi 400には32GBのmicroSDカードを使っているので、16GBでは容量不足ということが考えられます。そこで、これも在庫していたVerbatimの32GBのmicroSDカードにOSをインストールして使ってみることにしました。16GBのmicroSDカードでインストールした手順と同じ手順で作業を行い、再起動すると無事に使える状態で起動してくれました。さらに、LibreOfficeGIMP、ゲームなどを入れても問題なく起動するようになりました。つまり、単に容量不足だったという面白くない落ちだったようです。

ちなみに、RPiのフォーラムに「GUIログインができなくなった。(←Google先生に日本語訳してもらった)」という書き込みを見つけて、この解決方法も参考にしようと思っていましたが、容量の大きなmicroSDカードを使って解決してしまったのでこの方法は試していません。もし、容量の大きなmicroSDカードを使っても解決しないときには、試してみる価値はありそうです。

〈おまけ〉
アップデートの際に参照するサーバは、デフォルトの設定でも自動的に近くのミラーサーバを選んでいるようですが、明示的に近いところを指定したければ、リポジトリの設定を変更して日本のサーバを直接参照するようにもできます。効率よくアップデート作業をしたいときは、こうした細かな設定の変更がストレスを低減してくれると思います。
MiniPC.JUST4FUN.BIZさんの「Raspbianを日本のリポジトリサーバに変更する・buster」が参考になりました。

2024年3月16日土曜日

100均の材料でスピーカーのエンクロージャーを自作してみた

これまでPAM8403Datasheet)を載せたアンプモジュールを利用して、スピーカーを鳴らしてみる実験をしてきましたが、スピーカーむき出しの状態で実験を続けていたので、そろそろスピーカーのエンクロージャーを作ってみたくなりました。汎用のエンクロージャー自作キットも販売されていますが、できるだけお金をかけずにそれらしいものを作ってみようと思います。

YouTubeなどでもエンクロージャーを作っている様々な動画がアップされていますが、近所のDAISOでスピーカーのエンクロージャーに加工しやすそうな木製の箱をいくつか買ってきました。DAISOに限らず、100円ショップには何に使えるか不明なものの何かに使えそうな木箱類が数種類置いてあります。見た目はそっくりでも、寸法が微妙に違ったり使われている部材の厚みが違ったりして完成イメージに合ったものを探すのに苦労しましたが、ステレオスピーカーにしたいのでできるだけ寸法や材料が同じものを2つ1組になるように購入しました。

これらを自宅に在庫していたものと組み合わせて使うことにして、寸法を計って加工していきます。切り口をできるだけきれいにするために、マスキングテープでコーティングして、スピーカーを入れる円をホールソーで切り抜きました。切った後は、サンドペーパー(紙やすり)できれいに処理をしておきます。円をスピーカーのサイズに合わせるために、ルーターにヤスリをつけて目的のサイズまで削ります。スピーカーがぴったり収まる大きさに調整できたら、スピーカーを取り付ける前にニスを塗っておきます。

ニスが乾いたら最終的な組み立てをして完成させます。何となくそれっぽいものができたのではないかと自己満足しています。一応、中にフェルトを貼ってみましたが、これもDAISOで購入したものを使いました。完成したものは以下のようなものです。


スピーカーむき出しよりは、見た目は少し良くなりました。音質が良いのかどうかはわかりませんが、格安なスピーカーを自分好みのエンクロージャーに収めるというのも面白いのではないかと思いました。

新たな問題として、スピーカーむき出しで使っていたときには問題がなかったのに、自作エンクロージャーに収めたらノイズが乗るようになってしまいました。アンプの電源を入れると鳴り始めるので、配線のどこかでノイズを拾ってしまっている可能性があります。このノイズ対策として、フェライトコア(←北川工業さんの解説がわかりやすかったです)で配線をはさむことにしました。すると、ほぼ気にならない程度までノイズを抑えることができました。(変わり方に驚きました)

今回は、壊れても良いつもりでチープなスピーカーと安価なD級アンプを使いましたが、他のスピーカーでもエンクロージャーを作ってみたくなりましたし、他のアンプICを使ったアンプモジュールを試してみたくもなりました。やりたいことはどんどん増えていくのですが、なかなか時間が取れないのが難点です。(いつものパターン)

2024年3月10日日曜日

歴代Raspberry PiのOS(Raspbian)のアップデート作業

自宅には、歴代のRaspberry Pi(RPi)たちがあるのですが、仕事の忙しさにかまけて放置状態になっていました。しばらくぶりに初代のRPi起動してみて、aptコマンドでアップデート作業を試みたのですが、うまくできずすぐに終了してしまいました。エラーの内容を見てみると、aptのリスト自体がなくなっているようなメッセージになっていました。これは、OSのサポートが切れているのではないかと考えて、自宅にある歴代RPiにインストールされているOSを確認することにしました。

Raspberry Pi OS(Raspbian)の世代を確認するためには、LXTerminalを起動して「lsb_release」コマンドを使います。
FebShopさんの「ラズベリーパイ用OS Raspbianのバージョンの調べ方と歴代バージョンについて」を参考にしました。
#歴代Raspbianについては、ものものテックさんの「ラズパイに過去リリースされたRaspberry Pi OSをインストール」からたどることができます。

$ lsb_release -a

自宅にある歴代のRPiにインストールされていたOSは、以下の通りでした。
#エンクロージャーなどに収めてしまったRPiのモデルを確認するには、「$ cat /proc/cpuinfo | grep Model」を使えば確認することができます。

  • RPi  …Raspbian GNU/Linux 9.13(stretch)
  • RPi + …Raspbian GNU/Linux 10(buster)
    ※小型タッチパネルモニタ一体型にしたものと併せて2台
  • RPi 2 …Debian GNU/Linux 11(bullseye)
  • RPi 3 …Raspbian GNU/Linux 10(buster)
    ※2台
  • RPi 4 …Debian GNU/Linux 11(bullseye:64bit)
    →2台のRPi 4の内、1台で使っていたmicroSDカードがダメな感じだったので、別のmicroSDカードを用意して最新のDebian GNU/Linux 12(bookworm:64bit)を入れ直しました。
  • RPi 400…Debian GNU/Linux 11(bullseye:64bit)
  • RPi Zero W…Raspbian GNU/Linux 10(buster)

ここから、各種RPiのアップデート作業を開始します。LXTerminalでの作業が続くのと待ち時間が長いのが難点ですが、以下のようなコマンドで順番に作業をしていきました。
ラズバイの実さんの「【ラズパイ初心者おすすめ】RaspberryPiを、最新の状態にアップデートする方法」が参考になりました。

$ sudo apt update && sudo apt -y upgrade

$ reboot

$ sudo apt autoremove -y && sudo apt autoclean

$ sudo apt dist-upgrade -y

$ reboot

$ sudo rpi-update ※このコマンドは、頻繁に使うものではないようです。

$ reboot

$ sudo apt autoremove -y && sudo apt autoclean

初代RPiは、OS(stretch)用のリポジトリのリストがないということで、アップデートには失敗してしまいましたが、その他は、無事にアップデートを完了しました。どうやら、現在のサポート対象世代は「buster」以降で、「stretch」以前のOSでは、アップデートが上手く行かないようです。初代RPiは、古いOSでの動作確認に使うことにして、しばらくこのまま使っていこうと思います。

2024年3月2日土曜日

SWING(MIDI&CV/Gateキーボード)でvolca modularを鳴らしてみる

以前の続きです。KORGのvolcaシリーズをBehringerSWINGというキーボードで鳴らしてみます。前回は、MIDIを使ってvolca fm2を鳴らしてみましたが、今回は、CV/Gateを使ってvolca modularを鳴らしてみます。

余談ではありますが、自宅にはいくつかの電子ピアノを含むキーボードやシンセサイザーがありますが、電子ピアノ以外で鍵盤の下が空いていないものは、ENSONIQ(←Wikipediaの記事)のTS-12(←英語です)くらいなもので、他のものは鍵盤の下が空いているものばかりを使ってきました。慣れてしまえばどうということはないのですが、個人的にはどうしても鍵盤自体の軽さが気になり、強く弾くと壊れてしまうのではないかと思ってしまいます。(鍵盤楽器はピアノから始めたので…)今回購入したSWINGは、ミニ鍵盤ながら下が空いていない作りになっていて、安心感があります。

というわけで、SWINGでvolca modularを鳴らすために、CV/Gateをケーブルでつないでいきます。これも以前にKORGのSQ-1(ステップシーケンサー)でvolca modularを鳴らしたときのことを思い出しながらつなぎました。備忘のためにつなぎ方を書いておきます。

SWING volca modular
Gate…○(◎のL側へつなぐ)□ ◎ CV-IN…ステレオミニプラグ(TRS)
KB CV…○(◎のR側へつなぐ)□
volca modularの方は、「SOURCE」の(1)pitchをCV-INのCV側(下側)に、「FUNCTIONS」の(1)gateをCV-INのGate側(上側)につなぎました。

はじめにvolca modular側でキャリブレーションの設定を行います。それぞれのケーブル配線を済ませてからSWINGの電源を入れておきます。volca modularの方は、「volca modular/CV入力のキャリブレーション方法」を参考にしながら設定作業を進めます。

  1. volca modularの「PLAY」ボタンと「REC」ボタンを押しながら電源を入れる
  2. C4の「ステップ[4]」ボタンが点灯する
  3. SWINGのC4の鍵盤を押しながら、volca modularの「MEMORY」ボタンを押す
  4. C5の「ステップ[16]」ボタンが点灯する
  5. SWINGのC5の鍵盤を押しながら、volca modularの「MEMORY」ボタンを押す
  6. すべてのステップ・ボタンが点灯し、「REC」ボタンが点滅する
  7. 「REC」ボタンを押して設定を保存する
※操作の途中で「PLAY」ボタンを押すと、設定を保存せずに起動します。

この状態で、無事にSWINGからvolca modularをコントロールすることができるようになりました。最終目標は、キーボード(SWING)→Mac→SQ-1→volca modularで音を鳴らすことですが、この構成でも簡単な演奏ができることがわかりました。