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)