これまでののうち、コマンドをまとめました。
<2018.4.28 追記 以下は、24ピンのラズパイBノーマルバージョンかつ当時のカーネルを使うことが前提になります。
今のカーネルには、bcm2708-i2s.cが入っていないので、その点では有効です。>
説明は、このカテゴリの過去記事をご覧ください。
<gccのインストール>
sudo apt-get update
cat /proc/version
sudo apt-get install gcc-4.8 g++-4.8
sudo apt-get install gcc-4.7 g++-4.7
sudo apt-get install gcc-4.6 g++-4.6
sudo update-alternatives –config gcc
sudo apt-get install libncurses5-dev
<2018.3.25 追加>
同日現在、gccは、4.8ではありません。
sudo apt-get install libncurses5-devは、現在はする必要がありませんでした。
cat /proc/version
により、カーネルを編集するのに使うべきgccのバージョンが出てきます。
これがインストールされていなければ、インストールする必要があります。
同日現在は、gcc version 4.9.3となります。
後述のrpi-source をダウンロードし、rpi-sourceを実行すると、
ERROR:
gcc version check: mismatch between gcc (xx) and /proc/version (yy)
xx,yyはバージョン名です。そのうちの1つが (6)と表記されるかもしれませんが、
バージョン6をインストールするのではなくて、cat /proc/versionに表示されたバージョン(同日現在では4.9.3)をインストールする必要があります。
それをインストールしても場合によっては動かず、どのバージョンを適用するかの優先順位を定める必要がある場合もあります。
<カーネルソースの導入> install kernel sources
see https://github.com/notro/rpi-source/wiki
sudo wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source -O /usr/bin/rpi-source
sudo chmod +x /usr/bin/rpi-source
/usr/bin/rpi-source -q –tag-update
rpi-source
(editing etc/modules)
nano /etc/modules
以下を追加 (add below)
「
snd_soc_pcm1794a
snd_soc_bcm2708_i2s
snd_pcm_dmaengine
snd_soc_rpi_dac
」
<2018.3.25 追加>
この辺の扱いは、若干変わりました(ラズベリーパイでI2S出力参照。ただし、rpi-updateを素人が無条件にやらないことは注意。これはバージョンのずれの問題を生じさせ、危険をはらむ可能性がある。)。
以上に加えて、
sudo nano /boot/config.txt
で、/boot/overlaysにあるファイルの中から選んで、
dtoverlay=xx.dtbo とする。
例えば、
dtoverlay=rpi-dac.dtbo
とする。
<再起動>(reboot)
reboot
sudo reboot
<デバイス登録の確認>(checking a i2s divice installed)
aplay -l
<変数定義>(definition of the source directory)
export linux=/root/linux-1981ddebd4d3108cc942680a75ea151a479d65a8(ここはディストリビューションにより異なる differs by distributions)
export bcm=$linux/sound/soc/bcm
export codec=$linux/sound/soc/codecs
<ファイル編集>(editing module files)
sudo su
nano $bcm/rpi-dac.c
nano $bcm/bcm2708-i2s.c
nano $codec/pcm1794a.c
<コンパイル>(compiling)
cd $bcm
make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
cd $codec
make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
<モジュール解除&インストール1>(module delete & install 1, do at once)
rmmod $bcm/snd-soc-rpi-dac.ko
rmmod $codec/snd-soc-pcm1794a.ko
rmmod $bcm/snd-soc-bcm2708-i2s.ko
insmod $bcm/snd-soc-bcm2708-i2s.ko
insmod $codecs/snd-soc-pcm1794a.ko
insmod $bcm/snd-soc-rpi-dac.ko
1度だけでよい。2度目以降は、インストール2のみすればよい。rmmodは実際は不要。
<インストール2>(install 2nd)
cp $bcm/snd-soc-bcm2708-i2s.ko /lib/modules/$(uname -r)/kernel/sound/soc/bcm/snd-soc-bcm2708-i2s.ko
cp $bcm/snd-soc-rpi-dac.ko /lib/modules/$(uname -r)/kernel/sound/soc/bcm/snd-soc-rpi-dac.ko
cp $codec/snd-soc-pcm1794a.ko /lib/modules/$(uname -r)/kernel/sound/soc/codecs/snd-soc-pcm1794a.ko
<再起動>
reboot
sudo reboot
<ウィンドウズとの連絡>
sudo apt-get install samba
sudo mkdir /home/nas_all
sudo nano /etc/samba/smb.conf
# interface names are normally preferred
interfaces = 192.168.xx. 127.0.0.0/8 eth0
hosts allow = 192.168.xx.
・同ファイルの最後に以下を追加
「[all]
path = home/pi/nas_all
guest ok = Yes
read only = No
force user = pi 」
<2018.3.25追加>
pcからフォルダが見えるが、アクセスが拒絶される場合には、nas_allの権限を変えて、書き込みできるようにする。
ls -lで権限を調べられる。詳しくはネットで。wが書き込み。
chmod g+wrx nas_all
それでもだめなら、
chmod a+wrx nas_all
<再生>(play)
cd /home/pi/nas_all
aplay -D hw:1 xxxx.wav
sudo mkdir /home/nas_all
sudo nano /etc/samba/smb.conf
# interface names are normally preferred
interfaces = 192.168.xx. 127.0.0.0/8 eth0
hosts allow = 192.168.xx.
<ファイル検索> (finding files)
find / -name “snd-soc-pcm1794*”