CentOS 6.4でGPIOピンにアクセスするには?

CentOS 6.4でGPIOピンにアクセスするには?

8つのGPIOピンを備えたシングルボードコンピュータがあり、CentOS 6.4インストールのユーザースペースからそのコンピュータにアクセスしたいと思います。 「dmesg」出力に記載されているGPIOピンが表示されますが、/sys/class/gpioディレクトリは存在しません。必要な特別なドライバがありますか、それとも私のカーネルが十分に新しくないのですか(2.6.32-358.el6.i686)?重要な場合、SBCモデル番号はAdvantech PCM-9389です。

dmesgで言及されているGPIO:

    pci 0000:00:1f.0: quirk: [io  0x0800-0x087f] claimed by ICH6 ACPI/GPIO/TCO
    pci 0000:00:1f.0: quirk: [io  0x0500-0x053f] claimed by ICH6 GPIO

答え1

ハードウェアに合ったGPIOドライバモジュールをロードする必要があります。自動的にロードされない場合(一部は「プラグアンドプレイ」ではないためロードされません)、手動でロードする必要があるかもしれません(/ etc / modulesに命名)。

ディレクトリがない理由は、実行中のカーネルにロードするGPIOモジュールがないためです/sys/class/gpio

引用した開始メッセージで判断すると、正しいモジュールはgpio_ich

私はこのgpio_ichモジュールを使用しているので、比較のために私のシステムのいくつかの詳細を紹介します。私はまだGPIOピンをテストしていませんが、私のシステムは間違いなくあなたのシステムよりも動作に近いので、これにより近づきます。

$ modinfo gpio_ich
ERROR: Module gpio_ich not found.

これは、より高速な起動のためにgpio_ichがカーネルに静的に接続されているためです。モジュールとしてビルドすることをお勧めします。この場合、上記のコマンドは(私の場合とは異なり)成功し、モジュールのパラメータ(存在する場合)を表示します。

$ ls -l /sys/class/gpio/
total 0
--w------- 1 root root 4096 Jul 14 16:12 export
lrwxrwxrwx 1 root root    0 Jul 14 16:12 gpiochip195 -> ../../devices/pci0000:00/0000:00:1f.0/gpio_ich/gpio/gpiochip195
--w------- 1 root root 4096 Jul 14 16:12 unexport

$ dmesg|fgrep -i gpio
gpio_ich: GPIO from 195 to 255 on gpio_ich
lpc_ich: Resource conflict(s) found affecting gpio_ich
it87: VID is disabled (pins used for GPIO)

最初のメッセージはモジュールの初期化です。これが足りないと邪魔になります。Resource conflict(s)2行目に記載されている問題があるかどうかはわかりません(3行目に記載されているピンを再使用するためであると疑われるため、問題になりません)。

頑張ってください!

答え2

私のために働いた:

config.txtを介して有効にする必要があります。

echo -e "dtparam=i2c1=on\ndtparam=i2c_arm=on" >> /boot/config.txt
echo -e "i2c-bcm2708\ni2c-dev" >> /etc/modules-load.d/i2c.conf
yum install -y i2c-tools
systemctl 再起動

PS CentOS Linuxバージョン7.6.1810(AltArch)

関連情報