ページ作成日
ページ更新日
概要
i2c-toolsは、Linux用のI2Cバス操作ツール群です。
元々はlm-sensorsプロジェクトの一部でしたが、独立したパッケージとして分離されました。
特徴
- I2Cバス操作ツール
- i2cdetect(バスのプロービング)、i2cdump(チップのダンプ)、i2cget/i2cset(レジスタのリード/ライト)などのコマンドラインツールを提供します。
- libi2cライブラリ
- I2C/SMBusアクセス用のC言語ライブラリを提供します。サードパーティのアプリケーションからも利用できます。
- py-smbus(Pythonバインディング)
- PythonからSMBusにアクセスするためのsmbusモジュールを提供します。liquidctlなどのデバイス制御ツールが依存しています。
- EEPROMデコードスクリプト
- SPDやEDIDなどの各種EEPROMをデコードするPerlスクリプト(decode-dimmsなど)を含みます。
公式サイト
依存関係
このパッケージをビルドするには、以下のパッケージが必要です。
すべてSlackware標準パッケージに含まれています。
- Python 3(py-smbusのビルドに必要)
Make it by yourself!
まずは、自分のホームディレクトリにソースをダウンロードし、展開します。
cd ~/Downloads wget https://www.kernel.org/pub/software/utils/i2c-tools/i2c-tools-4.4.tar.xz tar xvf i2c-tools-4.4.tar.xz
makeします。
py-smbusはデフォルトではビルドされないため、EXTRAで明示的に指定します。
cd i2c-tools-4.4
/usr/bin/time -v make -j$(nproc) \
PREFIX=/usr \
LIBDIR=/usr/lib64 \
EXTRA="py-smbus"
[画面出力を省略]
Command being timed: "make -j12 PREFIX=/usr LIBDIR=/usr/lib64 EXTRA=py-smbus"
User time (seconds): 0.85
System time (seconds): 0.12
Percent of CPU this job got: 245%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.39
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 16384
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 4096
Voluntary context switches: 64
Involuntary context switches: 32
Swaps: 0
File system inputs: 0
File system outputs: 256
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
makeオプション
主要なオプションの説明です。
- PREFIX=/usr
- インストール先のプレフィックスを/usrに設定します。
- LIBDIR=/usr/lib64
- ライブラリのインストール先を/usr/lib64に設定します(x86_64環境向け)。
- EXTRA="py-smbus"
- デフォルトではビルドされないpy-smbus(Python SMBusバインディング)を追加でビルドします。liquidctlが
from smbus import SMBusでインポートするため、このオプションが必要です。
仮インストールディレクトリにインストールします。
py-smbusのinstallターゲットはDESTDIRに対応していないため、本体とpy-smbusを分けてインストールします。
make install \ DESTDIR=/tmp/i2c-tools-4.4 \ PREFIX=/usr \ LIBDIR=/usr/lib64
py-smbusを仮インストールディレクトリにインストールします。
cd py-smbus pip install \ --root=/tmp/i2c-tools-4.4 \ --prefix=/usr \ --no-build-isolation \ --break-system-packages \ . cd ..
ドキュメントをインストールします。
mkdir -p /tmp/i2c-tools-4.4/usr/doc/i2c-tools-4.4 cp -a README CHANGES COPYING /tmp/i2c-tools-4.4/usr/doc/i2c-tools-4.4/
パッケージを作成します。
cd /tmp/i2c-tools-4.4 sudo makepkg --linkadd y --chown n ../i2c-tools-4.4-x86_64-1.txz Slackware package ../i2c-tools-4.4-x86_64-1.txz created.
あとは、パッケージをインストールすれば完了です。
cd .. sudo installpkg i2c-tools-4.4-x86_64-1.txz
動作確認
Pythonからsmbusモジュールが正しくインポートできることを確認します。
python3 -c "from smbus import SMBus; print('smbus module loaded successfully')"
I2Cバスの一覧を表示します(root権限が必要です)。
sudo i2cdetect -l