我正在使用 SAMA5D27 SoM1 Ek 板(Microchip)并且正在使用Yocto。
我的 linux-at91 是 4.14 版本。
在这个 linux-at91 内核中,默认情况下sysfs gpio export
删除了用户空间控制支持。
如何在 sysfs 中启用导出 gpio?
我正在使用 SAMA5D27 SoM1 Ek 板(Microchip)并且正在使用Yocto。
我的 linux-at91 是 4.14 版本。
在这个 linux-at91 内核中,默认情况下sysfs gpio export
删除了用户空间控制支持。
如何在 sysfs 中启用导出 gpio?
直接(但不好)的答案:您需要使用CONFIG_GPIO_SYSFS
启用选项(=y
)重建内核。
好的答案:通过 sysfs 使用 GPIO 现在被认为已过时(从 2008 年 7 月开始),不鼓励使用它。这就是默认情况下它在内核中被禁用的原因(在 v4.10 中)。请参阅来自 Linus Walleij(Linux 内核中的 GPIO 维护者)的此提交消息:
ARM: defconfig: drop GPIO_SYSFS on multiplatforms
The sysfs ABI to GPIO is marked obsolete and should not be
encouraged. Users should be encouraged to switch to using the
character device.
Let's begin by removing it from the multi defconfigs. Then
as time goes by I can aggressively remove it from other
defconfigs.
所以基本上建议/dev/gpiochip*
现在使用字符设备文件进行 GPIO 操作(而不是 sysfs 方式)。例如,您可以从tools/gpio/构建用户空间实用程序,并使用它们通过该字符设备测试 GPIO。您可能想要编写一些自定义用户空间应用程序以通过字符设备使用 GPIO,以完成您的特定任务。阅读Documentation/ABI/testing/gpio-cdev文件了解详细信息。这样你就不需要重建内核了。此外,旧的 sysfs ABI 将在 2020 年被删除,如此处所述。