【问题标题】:Reading eeprom on linux without root right在没有root权限的linux上读取eeprom
【发布时间】:2015-09-01 11:35:39
【问题描述】:

我正在开发 Linux 3.14.28,使用 buildroot 构建嵌入式系统。

如何在没有root权限的情况下读取文件/sys/devices/i2c.4/i2c-1/1-0052/eeprom

是否有永久更改权限的解决方案,而不是在每次重新启动 Linux 时使用脚本更改权限。

我没有使用udev,而是static table。我很容易设法更改权限:

  • device_table_dev.txt 用于/dev 文件
  • device_table.txt 用于/home/files

但是对/sys/devices/i2c.4/i2c-1/1-0052/eeprom没有影响

【问题讨论】:

  • 它可能与 link 重复
  • 我检查了树的所有节点,它似乎不是一个链接。我首先在/sys/bus/i2c/devices/1-0052/eeprom 上工作,这是一个链接,但我更改了“真实”文件和树
  • 您必须更改主机控制器设备的权限,例如/dev/i2c-1

标签: linux permissions linux-device-driver root buildroot


【解决方案1】:

首先,不要使用静态表。现在不使用 devtmpfs 真的没有任何意义,除非你使用的是早于 2.6.32 的内核。

然后,设备表是关于更改/dev 中文件的权限。 /sys中文件的权限直接由内核自己控制。

【讨论】:

    【解决方案2】:

    需要适配i2c总线设备文件/dev/i2c-*的权限,而不是/sys中的eeprom文件。
    使用 udev 以下规则应该可以完成这项工作:

    KERNEL=="i2c-[0-9]*", GROUP="dialout"
    

    通常,static table 也应该可以实现类似的操作,因为您可以像处理其他 /dev/* 文件一样处理 /dev/i2c-*

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-11
      • 2012-05-30
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多