element14 Cirrus Logic Audio Card を入れた。
カードのページ にある Software Download から取れるimg をマイクロSDカードに dd で書いて起動すると、動かない。。。
そこで、最新の rasbian を Rasberry PI DOWNLOADS から取ってきて、動かす。しかし、カードは認識されない。
手元の Ubuntu マシンで、img ファイルを dd でSDカードに書き込む。
注意点は、SDカード(ここでは、/dev/sdf とする。環境次第)を
Ubuntu PC にさすと自動でマウントされるが、それを unmount して、
mount されていた例えば /dev/sdf1 ではなく、/dev/sdf に頭から
img ファイルを書き込むこと(でないとブートしない)。
それと obs で 8M とか 4M とか大きな
値を設定すること(でないと、とても遅くなる)。
例えば sudo dd if=2016-05-27-raspbian-jessie.img of=/dev/sdf obs=8388608
などとする。
次に、 RPi Linux driver for Wolfson / Cirrus Logic Audio Card を見て、作業する。私は Precompiled kernels から、 latest version を取ってきて、展開した。
wget https://github.com/HiassofT/rpi-linux/tree/cirrus-4.4.14 sudo tar zxf cirrus-linux-4.4.14.tgz -C /その後も、書いてある通り Configuration
dtoverlay=rpi-cirrus-wm5102 dtoverlay=i2s-mmap追加、/etc/modprobe.d/cirrus.conf を作成して そこに
softdep arizona-spi pre: arizona-ldo1 softdep spi-bcm2708 pre: fixed softdep spi-bcm2835 pre: fixedを記入。そして
wget http://www.horus.com/~hias/tmp/cirrus/usecase-scripts.tgz mkdir bin cd bin tar zxf ../usecase-scripts.tgzで忘れずに
Note: You have to start the appropriate scripts before you can use the card. For example: ./Reset_paths.sh -q ./Playback_to_Lineout.sh -q ./SPDIF_playback.sh -q ./Record_from_lineIn.sh -qこれもしておく
If you don't need on-board audio you can disable it by removing (or commenting out) the dtparam=audio=on line from /boot/config.txt. #dtparam=audio=on私の環境では aplay -L すると
null Discard all samples (playback) or generate zero samples (capture) pulse PulseAudio Sound Server sysdefault:CARD=sndrpiwsp snd_rpi_wsp, Default Audio Device dmix:CARD=sndrpiwsp,DEV=0 snd_rpi_wsp, Direct sample mixing device dsnoop:CARD=sndrpiwsp,DEV=0 snd_rpi_wsp, Direct sample snooping device hw:CARD=sndrpiwsp,DEV=0 snd_rpi_wsp, Direct hardware device without any conversions plughw:CARD=sndrpiwsp,DEV=0 snd_rpi_wsp, Hardware device with all software conversionsとなり、 aplay -Dplughw:CARD=sndrpiwsp ~/05_SomeoneWatchOverMe_192_24.wav などと、192kHz 24bit の wav ファイルが再生できた。 でも hw:CARD=sndrpiwsp aplay -Dhw:CARD=sndrpiwsp ~/05_SomeoneWatchOverMe_192_24.wav だと、
Playing WAVE '/home/pi/05_SomeoneWatchOverMe_192_24.wav' : Signed 24 bit Little Endian in 3bytes, Rate 192000 Hz, Stereo aplay: set_params:1233: Sample format non available Available formats: - S16_LE - S24_LE - S32_LEとなってしまう。うーん。
いや arecord だと arecord -Dhw:CARD=sndrpiwsp,DEV=0 -d 10 -f S32_LE -r96000 -c 2 test.wav とかしたらできる
そして、aplay -Dhw:CARD=sndrpiwsp,DEV=0 test.wav
Playing WAVE 'test.wav' : Signed 32 bit Little Endian, Rate 96000 Hz, Stereo
できた。
前の -D オプションの指定が間違ってのかな?
ん、なんとかなりそう。
2020, もう1台、録音再生機能のあるラズパイを作りたくて、探したが オーディオカードが、、、、ない、、、、やっと見つけたのが、AudioInjector のカード。で使い方は、、、、、http://forum.audioinjector.net/viewtopic.php?f=5&t=3 ここにあった。 最小限に書くと、 audio.injector.scripts_0.1-1_all.deb.tar.gz http://forum.audioinjector.net/download/file.php?id=2 を取ってきて、 展開&debをインストール。 audioInjector-setup.sh を実行して、 alsactl --file /usr/share/doc/audioInjector/asound.state.MIC.thru.test restore する。 audioInjector-test.sh とテスト。今回の場合は、sox を入れろと言われるので、 apt install sox これで、音が出た。録音のテストはまだ。(2020.5.12)
Enable the driver Add the following line to /boot/config.txt to enable the Cirrus Logic card driver dtoverlay=rpi-cirrus-wm5102 Note: MMAP support is already enabled by default in kernel 4.9, you no longer need to add the i2s-mmap overlay. Setup module dependencies The cirrus driver requires some manually defined module dependencies, if you fail to add them the driver won't load properly. Create a file /etc/modprobe.d/cirrus.conf with the following content: softdep arizona-spi pre: arizona-ldo1しても認識しない。色々検索すると、どうやら一番新しいのには ドライバーが入ってない、などの情報があった
そこで、2018/11/13 の Rasbian を探して、インストールして、 上の作業をすると
pi@raspberrypi:~ $ arecord -l **** ハードウェアデバイス CAPTURE のリスト **** カード 1: RPiCirrus [RPi-Cirrus], デバイス 0: WM5102 AiFi wm5102-aif1-0 [] サブデバイス: 1/1 サブデバイス #0: subdevice #0 pi@raspberrypi:~ $ aplay -l **** ハードウェアデバイス PLAYBACK のリスト **** カード 0: ALSA [bcm2835 ALSA], デバイス 0: bcm2835 ALSA [bcm2835 ALSA] サブデバイス: 7/7 サブデバイス #0: subdevice #0 サブデバイス #1: subdevice #1 サブデバイス #2: subdevice #2 サブデバイス #3: subdevice #3 サブデバイス #4: subdevice #4 サブデバイス #5: subdevice #5 サブデバイス #6: subdevice #6 カード 0: ALSA [bcm2835 ALSA], デバイス 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI] サブデバイス: 1/1 サブデバイス #0: subdevice #0 カード 0: ALSA [bcm2835 ALSA], デバイス 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1] サブデバイス: 1/1 サブデバイス #0: subdevice #0 カード 1: RPiCirrus [RPi-Cirrus], デバイス 0: WM5102 AiFi wm5102-aif1-0 [] サブデバイス: 1/1 サブデバイス #0: subdevice #0認識した。なんとかなりそう。