我正在使用Android作为操作系统的TI OMAP平台上工作。 对于一个UseCase,我们必须切换设备中的一个LED。 LED具有“设备属性”的数量,并且从应用层[.java],我们要读取“设备属性”。
当我们在adb提示符下运行cat命令时:
# cat /sys/devices/device_name/device_attribute # device_attribute:invalid length
我们得到错误“无效的长度”。 因此,我想知道是否有一种方法可以读取“设备属性”,使其可以被应用层访问。
我在另一个论坛上发现了一个类似的问题,但是也没有答案。
感谢您的答复!
解决scheme该设备只有“set_device_attribute”,但由于“get_device_attribute”丢失,我们得到“无效的长度”的问题时,发出“设备属性”的“读取”命令。
我添加了一个新的API名为:
static ssize_t get_device_attribute(struct device *dev, struct device_attribute *attr, char *buf) { ......................... ......................... ......................... }
并更新了设备属性
static DEVICE_ATTR(device_property, 0777,get_device_attribute, set_device_attribute);
无效的长度通常表示一个目录。 尝试cd到最后的“device_attribute”。
Alternativeley您还可以在“/ proc”中搜索设备信息。
您可能拥有Linux内核源代码,搜索设备的特定sysfs实现,看看它是如何编程的。