Scribble at 2021-03-09 15:40:02 Last modified: 2021-03-09 16:37:48

Raspberry Pi は ALSA について詳しく調べていたのだが、まず動かすのが先と思って再びいじくっている。考えてもみればネットワーク経由で音が鳴ることを先に確認するほうがいい。そういうことで、以下のようなコマンドを使ってみた。

% arecord -D plughw:1,0 -f S16_LE -c 1 | ssh -C pi@192.168.1.25 aplay -f S16_LE -D hw:1 -c 1

(これを root ではなく一般ユーザでコマンドを使わないといけないということすら書かないブログ記事が多くてウンザリだ。海外だろうと国内だろうと、説明の前提を全く書かないか自覚していない素人だらけで、たまたまうまく行った記録を好き勝手に書いているだけだと分かったので、原理的・理論的なことを議論したり説明している人以外は信用しないことにしている。)

しかし、これでは音が鳴らないようだ。"aplay: set_params:1345: Channels count non available" というエラーが出る。どうやら音を出す先の Raspberry Pi でハードウェアを正しく選んでいないか、出力するフォーマットに問題があるのかもしれない。そこで、いったんはセッションを切ってから(ssh で通信したままだとハードウェアへのアクセスを占拠されてしまって ALSA のツールにアクセスしてもエラーが返る)受信側で幾つかの設定を調整してみているのだが、そもそも一回目の記事で書いた speaker-test すら動かなくなってしまっている。これ、クリーン・インストールした Raspbian OS なのだが。そして、aplay -l を叩くと、USB のイヤフォンのデバイスが "Bus 001 Device 002: ID 1b3f:2008 Generalplus Technology Inc. " ではなく、Device 005 に変わってしまっている。なんでこんな番号になるのか。

あと、海外のブログ記事では VLC をインストールさせておきながら、全く VLC を使わずに ALSA のツールと ssh だけで音声データのストリーミングを解説するというバカも何人かいて、本当にウンザリだ。たぶん他の色々なブログ記事から寄せ集めた情報を適当にコピペして書いている連中の記事を更にコピペして繋いでいる、自分では Raspberry Pi を触ったこともない連中がアクセス集めの SEO 目的でデタラメな記事を書いているのだろう。

本当に Raspberry Pi を扱った人間なら、ハードウェアというよりも Debian ベースの OS が実に使いづらいことに気づくはずだ。ライナスが何かのカンファレンスで「俺は Debian のインストールはゴメンだ」と言い放つのも分かるし、実際に Kali Linux など同じ系統の OS を使ってきた経験から、僕も同感だ。CentOS どころか FreeBSD よりも扱いが面倒で、しかも下手に GUI での運用を大宣伝したせいで、クズみたいなお手軽記事ばかりが増えて、Raspberry Pi OS の関連でも、画面のボタンをポチポチやることが解決手段だという記事が大半を占めていて役に立たない。

やはり原理原則の勉強に戻って、くだらないハウ・ツーのブログ記事など無視して是々非々の対策をとるべきだな。それで動かないなら、Raspbian OS を他の OS に入れ替えてしまうほうが良いかもしれない。

[追記] 何度か受信側の設定を直して、speaker-test はやっと音が出るようになった。同じマイクは既に arecord ツールで録音ができるのだから、無理に /home/pi/.asoundrc なんてファイルを作成する必要など無いし、受信側の同じファイルにも無理やり記述する必要はない。これをやるから、デバイスの番号がズレてしまうのだ。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook