やまちゃんのオーディオブログ

真空管アンプ、最近は資金調達のためのFX,MetaTrader4ネタもやっています。

ラズベリーパイB

ラズベリーパイのi2s外部クロック、その後3-1(2018年度版)

投稿日:2018年3月25日 更新日:

前回の続きです。過去の記事にも同じようなことを書いているので、そちらも参照願います。
今回は、カーネルをいじることについて触れます。

<2018.4.30 修正:ファイルが大きくなりすぎたので、3つに分割しました。>

9 カーネルソースの導入
一昔前は、カーネルのソースファイルが、現行のシステムと適合することを保証するために、カーネルをすべてコンパイルする必要があったが、

rpi-source

というコマンドを使うことで、その必要がなくなった。そのコマンドを使えるようにするため、そのプログラムをインストールする。ただし、pi3には対応していないようだ。

rpi-source 本家サイトのHome · notro/rpi-source Wiki · GitHubにあるコマンドを使い、ソフトウェアインストール先から、所定のファイルをwgetによりダウンロードする。
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

このプログラムはこのコマンドを使うにあたり、ソースをコンパイルする必要があり、コンパイルするgccのバージョン違いにおいてエラーが出やすい。
カーネルを編集するのに使うべきgccコンパイラのバージョンを用いてコンパイルする必要がある。
それは以下で調べる。
cat /proc/version

次に、現行のgccのバージョンを調べる。
gcc –version | grep gcc
なお、「–version」のところ、1つのマイナスとなってしまっているかもしれないが、マイナスが2つである。
直ちにrpi-sourceを実行すると以下のようなエラーが出る。
ERROR:
gcc version check: mismatch between gcc (6) and /proc/version (4.9.3)
Skip this check with –skip-gcc
なお、「–config gcc」のところ、1つのマイナスとなってしまっているかもしれないが、マイナスが2つである。
上記cat /proc/versionで検出したバージョンをインストールする必要がある。

gccのインストールには、まず、以下のコマンド。

sudo apt-get update

次にcat /proc/versionで検出したバージョンをインストール。
同日現在、バージョン4.9.3となった。そこで、以下のコマンド。

sudo apt-get install gcc-4.9 g++-4.9

もっともどのバージョンを優先させるかにつき、以下のコマンドを打つ。

sudo update-alternatives –config gcc(#1)

この辺は「new_western_elec」というサイトの「SabreBerry32のドライバのコンパイル方法(SABRE9018Q2C)
にも説明があります。
<2018.5.7 追記>もう一度やってみると、上記#1がうまくいかなくて、バージョンが修正されない。そこで、上記サイトを参考に、

sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-6 20
sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-4.9 80

とした。ここで、20,80は、優先順位を表し、数字の高いほうが優先順位が高い。「gcc-6」というのは、その時々で、最新のものを入れた場合には異なっていくが、以下のコマンドで、フォルダ内を調べると、gccが、複数インストールされ、gcc-6というフォルダがあるので、そのフォルダを参照する。

dir /usr/bin/

現在gccのバージョンは、6.3であるが、/usr/bin/に含まれる該当するフォルダを指定する。
/usr/bin/gcc-4.9も現在のバージョンは、4.9.3であるが、/usr/bin/に存在するフォルダ名を入力する。
そうすると以下の通り、バージョンが4.9.3へ変更された。

root@raspberrypi:/usr/bin# sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-6 20
update-alternatives: using /usr/bin/gcc-6 to provide /usr/bin/gcc (gcc) in auto mode
root@raspberrypi:/usr/bin# sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-4.9 80
update-alternatives: using /usr/bin/gcc-4.9 to provide /usr/bin/gcc (gcc) in auto mode
root@raspberrypi:/usr/bin# sudo gcc –version
gcc (Raspbian 4.9.3-14) 4.9.3・・・

そこで、バージョンがカーネルのバージョンと一致したので、以下のコマンドを打ち込めば、カーネルソースファイルをインストールできます。

sudo apt-get install bc
rpi-source

10 カーネルソースの変更の準備
(1)「ラズベリーパイ、volumioカーネル環境をmakeなしクロスコンパイルなしで2時間で立ち上げる。クロスLAN接続」の20~21と同じなので、それをやっていただく。

(2) I2Sのソースファイルを探す。
上記(1)のつぎの過去記事の22と同じく
root@volumio:~# find ~/ -name “*i2s.c”
によりカーネルソースを探す。
i2sのカーネルドライバは、/rootの下にある。

rootにあるファイルやディレクトリを調べる。
cd /root
dir

root@raspberrypi:~# dir
linux
linux-80a14a56dacb7cc2b40d5f37d00bedb0ceace130
linux-80a14a56dacb7cc2b40d5f37d00bedb0ceace130.tar.gz

ここに現れた太字で表すディレクトリは、メモ帳にコピーしておく。シフトを押しながら左右キーを押し、領域指定をしたら、
ctrl+Cでコピーできる。

ディレクトリが長すぎるので、環境変数を登録する。電源を切ると忘れるので、メモ帳に転記する。

export bcm=/root/linux-80a14a56dacb7cc2b40d5f37d00bedb0ceace130/sound/soc/bcm
export codec=/root/linux-80a14a56dacb7cc2b40d5f37d00bedb0ceace130/sound/soc/codecs

ここで、太字の部分は、カーネルのバージョンにより異なる。

-ラズベリーパイB

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

no image

ラズベリーパイ カーネル3 I2Sドライバのコンパイルをあきらめず続ける

以前の記事に引き続き、I2Sドライバのコンパイルをあきらめず続ける。 「三日坊主な私がいつまでブログやれるか...( ̄~ ̄;) 」のラズベリーパイの記事を参考にさせていただいています。 volumio …

no image

ラズベリーパイモデルBの入手と設定1

ラズベリーパイモデルB(ラズパイ1)をアリエクスプレスから入手しました。 ラズベリーパイは、最近はやりのリナックスが動くマイコンチップで、リナックスマシンとして動作します。 私は、トランジスタ技術20 …

no image

ラズベリーパイのi2s外部クロック、その後6(2018年度版)

やっと動きました!!音が鳴りました!! まずは、カーネルを改造せず、ラズベリーパイから提供されるBCLK、LRCK、DATAに加え、de0-socのpllで作成したマスタークロックのxckで音を鳴らし …

no image

ラズベリーパイ、volumioカーネル環境2 I2Sドライバのコンパイル

前回の「ラズベリーパイ、volumioカーネル環境をmakeなしクロスコンパイルなしで2時間で立ち上げる。クロスLAN接続」に引き続き、ラズベリーパイ、volumioカーネル環境で、I2Sドライバをコ …

no image

ラズベリーパイのi2s外部クロック、その後4(2018年度版)

13 ラズパイの信号に応じて、クロックを切り替えるボード  この点をどのようにするか、基板を起こす方法もあるけれど、試行錯誤が多いと思えるので、 FPGAを用いて、プログラム的に、信号切り替え、分周な …

[最近の記事]
2018年3月
 123
45678910
11121314151617
18192021222324
25262728293031