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

나를 위해 일했습니다 :

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)

관련 정보