我正在尝试将带有 Ubuntu 18.04 的嵌入式 Mini PC 的 GPIO 设置为输入或输出,以处理多个子项目。我的电脑是Supermicro SYS E100-9W-E,它通过 DB9 提供 1 个 8 位 GPIO。系统的内核版本是 5.4.0-74-generic。现在我已经阅读了很多关于 sysfs 和字符设备的内容,并且在过去,我有过使用 Raspberry Pi 的 GPIO 的经验。在我的系统中,我找不到任何 gpiochip:
root@SYS:~# ls -l /sys/class/gpio/
total 0
--w------- 1 root root 4096 Jun 15 14:29 export
--w------- 1 root root 4096 Jun 15 12:16 unexport
此外,chardev 接口(例如 /dev/gpiochip0)没有任何内容,/sys/kernel/debug/gpio 没有任何内容。libgpiod
也检测不到任何芯片。此外,在 BIOS 菜单中没有什么可配置的,例如将 I/O 引脚预设为输入或输出。以下引用是我在 MOBO/PC 手册中唯一能找到的内容:
通用 I/O 接头:JGP1(通用输入/输出)接头是通过 SMBus 在引脚接头上的通用 I/O 扩展器。每个引脚都可以配置为输入引脚或输出引脚。GPIO 通过 PCH SMBus 的 PCA9554APW 8 位 GPIO 扩展来控制。基地址为 0xF040。对于 WRITE 和 READ,扩展器从地址为 0x4C。请参阅下表了解引脚定义。
引脚 - 定义
- 1 - P3V3SB
- 2 - 接地
- 3 - GP_P3V3_GP0
- 4 - GP_P3V3_GP4
- 5 - GP_P3V3_GP1
- 6 - GP_P3V3_GP5
- 7 - GP_P3V3_GP2
- 8 - GP_P3V3_GP6
- 9 - GP_P3V3_GP3
- 10 - GP_P3V3_GP7
我还尝试在 /sys/class/gpio 的导出文件中回显几个数字,但什么也没发生。
您对我应该遵循的内核配置或驱动程序有什么建议吗?