をインストールしました。
- wiringPi-8d188fa.tar.gz
- libid3tag-0.15.1b.tar.gz
make中、ワーニングが出るが無視した。
- libmad-0.15.1b.tar.gz
makeがエラーになる。configureが作るMakefileの -fforce-mem を単純に削除した。
- alsa-lib-1.1.6.tar.bz2
下の --with-alsaオプションのために必要。
- madplay-0.15.2b.tar.gz
./configure --with-alsa
このスイッチをつけないでmadplayをコンパイルして実行すると、
ERROR : audio: /dev/dsp no such file or directory
のようなエラーになる。
- madplayでMP3ファイルを再生できるようになりました。
nohup madplay mp3ファイル名 &
再生中にalsamixerで音量変更できる。
|
今後の課題(2018/10/08)
- SDカードへのMP3ファイル転送手段の調査
- SDカードの効率利用のため、サイズの小さいLinuxディストリビューション調査
- Raspberry PIのプログラミング手法の調査
- Raspberry PIのGPIOプログラミング調査
- ユーザインターフェース制御プログラムからオーディオプレーヤプログラム(madplay)の制御方法
- 電源スイッチ回路の検討
- DACの検討
|
|
Windows側の追加インストール
Ext2Fsd-0.69.exe (2018/10/14, windows10/toshiba ultrabook)
大量のMP3ファイルをLinuxのパーティションにコピーするため。
だが不具合あり? Windows10がSDカード(今回のraspbianのカードだけでなく、FAT32だけのカードも)を認識しなくなった。Windows10の復旧作業をするはめに。raspbianのSDカードは破損していないようだ。
- Ext2Fsd-0.69.exe (2018/12/01, windows10/hp probook)
しばらくはこれが使えていたが、最近また調子が悪い(2019/02/16)。ファイルをSDカードにコピーしたにも関わらず、Raspbianで見るとなにもコピーされていない。
- WinSCP-5.13.4-Setup.exe (2018/10/15, windows10)
これならMP3ファイルをSDカードに転送できる。難点はMP3プレーヤとしてまとめるときもRaspberry PI zero のUSBポートを(物理的に)開けておく必要があること。
SSH(TeraTerm)を接続したままの状態でファイルの交換ができることを確認した。
- WSL(Windows Subsystem for Linux / Windows10) (2018/10/22)
- Debian GNU/Linux (Windows10) (2018/10/22, Windows Storeから)
このDebianに以下のソフトをインストールした。
- gcc
sudo apt-get update
sudo apt install build-essential
"Hello World"プログラムを試した。
Raspberry PI に依存しないLinuxのテストなどはこれでできる。
- zlib-1.1.4.tar.gz (raspbianではインストール済み)
./configure
make
sudo make install
- libid3tag-0.15.1b.tar.gz
./configure --disable-shared (このオプションはraspbianでは不要)
make
sudo make install
- libid3tagを使うプログラムのコンパイルは例えば
gcc source_pg.c -lid3tag -lz
- win32diskimager-1.0.0-install.exe (2019/02/15, Windows10)
|
|
Raspbian Stretch Lite (2018/11/03, 再インストール:2018/12/23)
- インストールしたバージョン:2018-11-13-raspbian-stretch-lite
- SDカードへの書き込みはEtcher-1.4.4-x64
- WindowsでSDカード上のファイル編集
・/boot/config.txt に dtoverlay=dwc2 の行を追加
・/boot/cmdline.txt に modules-load=dwc2,g_ether を追加
・/boot に ssh ファイル作成。
- wiringPi-8d188fa.tar.gz
- libid3tag-0.15.1b.tar.gz
make中、ワーニングが出るが無視した。
- libmad-0.15.1b.tar.gz
makeがエラーになる。configureが作るMakefileの -fforce-mem を単純に削除した。
- alsa-lib-1.1.3.tar.bz2
下の --with-alsaオプションのために必要。対象のRaspbian には aplay(alsa-utilsも?)がインストール済み。そのバージョン(1.1.3)に合わせる。
- madplay-0.15.2b.tar.gz
./configure --with-alsa
- [PWM出力] madplayでmp3ファイルを再生し、alsamixerで音量変更できることを確認
- I2S-DAC(PCM5102)設定
参考サイト:Raspberry Pi2 に I2S DACを接続する。
・/boot/config.txt に dtoverlay=hifiberry-dac を追加。
(このファイルには #dtparam=i2s=on というコメントアウトされた行があるが、これはそのまま。)
・/etc/modules に snd_soc_hifiberry_dac を追加。
- インターネット接続。どのサイトもその設定を簡単に書いているが、苦労の末ようやく接続できた。
何が決め手だったのかよくわからないのですが、経過を記録しておくと....
- 症状。外部サイトの名前解決ができない。たとえば外部サイトへのpingは「temporary failure in name resolution」となる。apt-getもエラーになります。
- windowsのネットワークアダプタのプロパティ変更で共有設定するわけですが、そのさい「ホームネットワーク接続」は「USB Ethernet/RNDIS Gadget」を選択する。この選択肢はRaspberry PI がWindowsに接続された状態(SSHなどで)でないと現れません。
- /etc/network/interfacesには何も記入しない(自動的に設定されます)。
- /etc/resolv.confには何も記入しない(自動的に設定されます)。
- libao-1.2.0.tar.gz (以下 2019/03/02)
mpg321が必要とする。
- mpg321_0.3.2.orig.tar.gz
コマンドラインスタイルのmp3デコーダ。曲途中からの再生位置指定にフレーム数を指定しなければならない。
|
|
Raspbian Stretch Lite の軽量化 (2018/12/09)
起動の高速化をこのサイトを参考にして進めた。
- 固定IP化:/etc/dhcpcd.confに以下を追記(ここの参考サイトはこちら)
interface usb0
static ip_address=192.168.0.9/24
dhcpcdサービス停止 - sudo systemctl disable dhcpcd SSHログインできなくなる
- sudo systemctl disable keyboard-setup
- sudo systemctl disable dphys-swapfile
- sudo systemctl disable triggerhappy
- sudo systemctl disable bluetooth
- ここまで設定しても起動に1分30秒ぐらいかかる。
|
|
Raspbian Jessie Lite (2018/12/09, 再インストール:2018/12/23, 2019/02/14)
- Stretchでは起動時間が大きいので旧バージョンを試してみる。
- 旧バージョンのRaspbianのダウンロードはこちら。
- インストールしたバージョン:2017-03-02-raspbian-jessie-lite
- インストール手順はRaspbian Stretch Lite と同じ。
要点はWindowsで
・config.txtを編集する(末尾に dtoverlay=dwc2 の行を追加)。
・cmdline.txtを編集する(行途中、rootwaitの後ろあたりに modules-load=dwc2,g_ether を追加)。
・bootディレクトリにsshファイルを作成する。
- この時点で起動時間は25秒だった
|
|
Raspbian Jessie Lite の設定 (2018/12/10, 2018/12/23, 2019/02/16)
- wiringPi-8d188fa.tar.gz ((1)tar -zxvf ... (2)cd ... (3)./build)
- libid3tag-0.15.1b.tar.gz ((1)tar -zxvf ... (2)cd ... (3)./configure (4)make (5)sudo make install)
- libmad-0.15.1b.tar.gz ((1)tar -zxvf ... (2)cd ... (3)./configure (4)Makefile編集 (5)make (6)sudo make install)
以上の3つのインストールはStretchのときと同じ。
libid3tagなどのライブラリは/usr/loca/libにインストールされ、そのパスは/etc/ld.so.conf.d/libc.confに記述されている。にもかかわらずプログラム実行時に"cannot open shared object file: No such file or directory"のエラーがでる。/sbin/ldconfigでキャッシュを更新しておく。
- alsa-lib-1.0.28.tar.bz2 ((1)tar -xvf ... (2)cd ... (3)./configure (4)make (5)sudo make install)
Jessieにインストール済みのaplayのバージョン(1.0.28)に合わせる。
- madplay-0.15.2b.tar.gz
./configure --with-alsa
- I2S-DAC(PCM5102)設定
参考サイト:Raspberry Pi2 に I2S DACを接続する。
・/boot/config.txt に dtoverlay=hifiberry-dac を追加。
(このファイルには #dtparam=i2s=on というコメントアウトされた行があるが、これはそのまま。)
・/etc/modules に snd_soc_hifiberry_dac を追加。
- nohup madplay mp3ファイル名 &
でmp3を再生できる。
ただし、再生中にalsamixerによる音量調整はできなかった。
- madplay mp3ファイル名
で実行したとき、+/-キー入力で音量を調整することはできる。
- インターネット接続。Stretch Liteでインターネット接続ができるようになったら、そのまま Jessie Lite でも接続できるようになっていた。(2018/12/24)
- SPI有効化。raspi-config → 5.Interfacing Options → P4.SPI → Yes (2019/01/01)
|
|
Raspbian Jessie Lite の軽量化 (2018/12/09, 2018/12/24)
参考サイト:
Raspberry Pi Zeroを10秒以内で高速起動する最も簡単な方法
Raspbian stretch でIPアドレスを固定する方法
- sudo systemctl disable dphys-swapfile
- sudo systemctl disable keyboard-setup
- sudo systemctl disable kbd
- sudo systemctl disable triggerhappy
- sudo systemctl disable plymouth
- sudo systemctl disable plymouth-start (実行してもなにも効果ない?)
- sudo systemctl disable ntp
- /boot/cmdline.txt の行末に quiet を追加
- /boot/config.txt に force_turbo=1 を追加
- 以上の設定により起動時間は19.3秒になった。
- /boot/config.txt のdtparam=audio=on をコメントアウト
- 固定IP化:/etc/network/interfaces に以下を追記
allow-hotplug usb0
iface usb0 inet static
address 192.168.137.9
netmask 255.255.255.0
(gatewayの記述なし)
- sudo systemctl disable dhcpcd
- 起動時間は8.6秒ぐらいになった。ただしインターネット接続不可となる。
- 以上、Raspbian Jessie Liteをベースに各種設定でたどりついたRaspbianをMP3プレーヤ第13作の基本ソフトとする。(2019/03/03)
- 64GByte SDカードへの展開
- 32G SDカード(ブランド:LEPLUS)のイメージをWin32DiskImagerで吸い出す。
- 64G SDカード(ブランド:Sandisk)にWin32DiskImagerで書き込む。
- Raspberry PI をそれで起動する。
- sudo raspi-config → 7.Advanced Options → A1 Expand Filesystem
- 再起動
|
|
Minibian (2019/02/16)
- 2016-03-12-jessie-minibian.tar.gz
- SDカードへの書き込みはEtcher-1.4.4-x64
- OTG接続は簡単でない? → Minibianの調査は後の課題とする
|
|
Raspberry PI zero W (2019/03/01)
- 今までに作成した "非W"用Raspbian (2017-03-02-raspbian-jessie-liteをベースにI2Sオーディオの設定をし、起動時間短縮のための各種設定をしたもの)でテストを行う。
参考サイト : Setting WiFi up via the command line
- まず起動してUSBケーブル経由でログインできることを確認
- raspi-configに Network Options がない
- それでも sudo iwlist wlan0 scan コマンドはwifi networkを検出できた(Buffaloのルータを見つけた)。
- /etc/wpa_supplicant/wpa_supplicant.conf 作成
- パスワードの暗号化 wpa_passphrase "Buffalo......"
これは変換結果を標準出力へ出すだけなので、その表示結果から暗号化されたパスワードの部分をコピー、wpa_supplicant.confファイルにペーストした。
- 上記サイトは wpa_cli -i wlan0 reconfigure でインターフェースの再設定をすると書いているがエラーになる(no such device ...のような)。
(別の機会に実行したらOKになった。違いの理由は不明だがdhcpcdを有効化してたからか)
- dhcpcdを無効にしていた。これを再有効化。sudo systemctl enable dhcpcd
- raspi-config → 4 Localisation Options → I4 Change Wi-Fi Country → JP を選択して再起動
- wpa_cli -i wlan0 reconfigure はあいかわらずエラー。ただしエラーは 'RECONFIGURE' command timed out. に変わった。
- ところが ifconfig wlan0 を実行してみるとIPアドレスが振られている。そのIPを使ってTera Termからログインもできた。
- USBケーブルをバスパワー専用の方につなぎ変えてもログイン可能。WinSCPもつながった。
- DHCPは起動時間がかかる原因の一つなので固定IPにしたい、ということでUSBケーブル接続の場合と同じ設定をためした。
/etc/network/interfacesを編集します。ifaceのmanual→staticにし、address/netmaskを追記。
allow-hotplug wlan0
#iface wlan0 inet manual
iface wlan0 inet static
address 192.168.??.??
netmask 255.255.255.0
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
- ふたたびdhcpcdを無効にする。sudo systemctl disable dhcpcd
- 再起動してログインできること確認。
- systemd-analyze time による起動所要時間は13秒であった。
Startup finished in 874ms (kernel) + 12.231s (userspace) = 13.105s
|
Raspberry PI zero W の Bluetooth
- BluezのインストールはTech Blog by Akanuma Hiroakiを参考にした。
- インストールしたライブラリは上記サイトで言及されているものの他、libreadline-dev も必要だった。
sudo apt-get install -y libreadline-dev
- bluez-5.50.tar.xz
./configure --enable-experimental上記サイトのやり方。
↓bluezのREADMEを参考にしたconfigureの実行。
./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc \
--localstatedir=/var --enable-library
make
sudo make install
- このページのsimplescan.cでコンパイルと動作を確認
- BlueZのAPI/サンプルコードのメモ
- sudo apt-get install libncursesw5-dev
これではcurses.hを取得できない。
- sudo apt-get install libncurses5-dev
これはcurses.hを取得できる。
- sudo date -s "03/21 20:45 2019"
- sudo python get-pip.py
- sudo pip install dbus-pythondbus-python is now obsolete, you should be using pydbus:
- sudo apt-get install python-dbus
- sudo ./list-devices
|
|
Raspberry PI zero W の USB Audio (2019/04/20)
- CQ出版の「ヘッドホン・アンプ製作実例集」に付属のDAC基板を使ってみる。
- Raspberry PI と接続には「カコムイ USB OTG ケーブル(Micro USB-B to USB mini-B)オスtoオスタイプ Micro-B to Mini-B OTG機能対応」を使用。(Amazonで入手)
- 参考サイト:Raspberry Pi Zero USB Audio on Raspbian Jessie (method 1)
- /usr/share/alsa/alsa.conf を編集
defaults.ctl.card 1
defaults.pcm.card 1
- /lib/modprobe.d/aliases.conf を編集
options snd-usb-audio index=-2 をコメントアウト
- 再起動後、aplayでwavファイルが再生できることを確認。しかし、madplayでmp3ファイルを再生できない。
- I2Sオーディオのための設定を解除
/boot/config.txt の dtoverlay=hifiberry-dac をコメントアウト
/etc/modules の snd_soc_hifiberry_dac をコメントアウト
- madplayでmp3ファイルを再生できるようになった
- aplay -l によるとサウンドデバイスは1つだけになった。とするとalsa.confの設定は 0 に戻してよいことになる。
(戻さなくてもmadplayは使えたが)
- 以上、要するにI2Sの設定を解除すれば他に設定は不要だった。
| |