I2Cの設定

このチュートリアルでは,I2CをWolfram言語で使えるようにするためにRaspberry Pi上でI2Cを設定する方法を説明する.以下のコマンドはroot権限で実行しなければならないが, Wolfram言語は,最新のRaspbian Jessieでは,I2Cを使うためにrootユーザが実行する必要はない.
I2Cのカーネルモジュールを有効化する
ブート時にI2CのLinuxカーネルモジュールを有効化して,Wolfram言語からバスにアクセスできるようにする.
次のカーネルモジュールは,すべてのRaspberry Piボードにロードしなければならない.
i2c-dev
i2c-bcm2835
カーネルモジュールをロードするためには,nanoやgedit等のエディタを使ってカーネルモジュールの名前をファイル/etc/modulesに加え,リブートする.
この他,モジュールは,以下のコマンドを使って,modprobeにより手動でロードすることもできる.
sudo modprobe i2c-bcm2835 && sudo modprobe i2c-dev
I2CのBlacklistを削除する
Raspberry Piのモデルによっては,前のステップで有効化したかどうかにかかわらず,I2Cカーネルモジュールの実行を阻止するblacklistファイルがある可能性がある.
このblacklistはRaspberry Pi 2には存在するが,マシンにインストールされている特定のディストリビューションによっては他のボードモデルにも存在することがある.
blacklistファイルは/etc/modprobe.d/raspi-blacklist.confにある.以下の行が存在したら,この行をファイルから削除するか,行頭に#を使ってコメントアウトするかする必要がある.
blacklist i2c-bcm2835
ブート時にDevice Treeのパラメータを加える
I2Cのdevice treeパラメータはI2Cがシステム上で使用可能になる前に加えなければならない.
これはnanoやgedit等のテキストエディタを使って,マシン上の/boot/config.txtファイルを編集することで実行できる.
以下の行を加える.
dtparam=i2c_arm=on
この行を加えた後でシステムをリブートする必要がある.しかし,リブートの前に,このチュートリアルの他のステップを実行しておかなければならない.
これが成功すると,/devフォルダにi2c-1という名前のファイルができる.