【问题标题】:How do I enable the sysfs "export" gpio number from userspace support for linux-at91 4.14 version?如何从 linux-at91 4.14 版本的用户空间支持启用 sysfs“导出”gpio 编号?
【发布时间】:2019-01-27 01:44:15
【问题描述】:

我正在使用 SAMA5D27 SoM1 Ek 板(Microchip)并且正在使用Yocto

我的 linux-at91 是 4.14 版本。

在这个 linux-at91 内核中默认sysfs gpio export 和用户空间控制支持被删除。

如何在 sysfs 中启用导出 gpio?

【问题讨论】:

    标签: linux-kernel linux-device-driver embedded-linux bsp


    【解决方案1】:

    直截了当(但不好)的答案:您需要在启用 CONFIG_GPIO_SYSFS 选项 (=y) 的情况下重建内核。

    好答案:通过 sysfs 使用 GPIO 现在被认为已过时(从 2008 年 7 月开始),不鼓励使用它。这就是默认情况下它在内核中被禁用的原因(在 v4.10 中)。请参阅 Linus Walleij(Linux 内核中的 GPIO 维护者)的this commit message

    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 年被删除,如 here 所述。

    【讨论】:

    • 您也可以提及用户空间库libgpiod,以帮助编写用户空间应用程序。
    • @0andriy 谢谢,不知道。
    猜你喜欢
    • 2012-02-02
    • 1970-01-01
    • 2014-06-02
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    相关资源
    最近更新 更多