问题标签 [sysfs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
976 浏览

android - 如何访问 gpiochipX

我们正在基于 Android 的微控制器上编程,我们希望能够访问板上的 gpio 引脚。查看文档,我们要使用的 12 个 gpio 引脚是 #0-100 之间的各种引脚,但是,没有可用的 gpiochips。例如,gpiochip576 可用,但我们不需要 gpios 576+ 及更高版本。我们想要访问 0-100。有没有一种简单的方法可以访问它们?我们找到了这篇文章:http ://www.pieter-jan.com/node/15,如果我们是对的,似乎可以访问 gpiochip,但需要大量 c 代码,而且在我们的例子中,由于它是 android,我们需要重新编译内核和系统映像并将其闪存到板上。有没有更简单的方法可以通过 sysfs(类似于 echo "14" > /sys/class/gpio/export)或其他方式让我们获得访问权限?或者是我们唯一的选择是修改内核并重新编译。谢谢!

0 投票
2 回答
500 浏览

linux - *Linux 驱动程序开发* 有没有办法使用 IIO 框架通过 sysfs 公开额外的设置?

我正在开发的驱动程序有许多我希望用户能够更改的设置并不真正适合 IIO 框架。例如,在我的读取函数中使用 IIO_CHAN_INFO_SAMP_FREQ 枚举会在 /sys/bus/iio/devices/iio:device0/ 中公开一个名为“in_voltage_sampling_frequency”的变量,该变量允许用户随时更改频率。我还希望能够通过类似的机制以不同的模式(字符串)传递。我该怎么做?看起来 IIO 接口不支持 ioctl 调用。

0 投票
1 回答
1973 浏览

linux-kernel - 删除 sysfs 条目

我试图学习 sysfs 并试图编写一个简单的 sysfs 目录。代码如下

如 mymodule_exit 所示,我错误地忘记取消注释代码,然后插入并 rmmod 模块。

现在,当我尝试再次插入模块时,初始化失败,因为该条目已经存在。

我知道,允许用户空间删除内核创建的条目是没有意义的。但是,我仍然想知道除了重新启动盒子之外,是否还有其他方法可以删除特定的 /sys/kernel/kobject_example 条目。

0 投票
1 回答
484 浏览

c - 如何在 Linux 中以编程方式获取 USB 大容量存储大小?

我正在使用 udev 库函数(如供应商 ID、产品 ID、制造商、产品、序列号等)查找与 USB 大容量存储相关的信息。

任何人都可以建议如何使用 udev 获得 USB 大容量存储大小。

0 投票
1 回答
680 浏览

linux - 如何在结构设备中取消引用 device_private

我正在研究 Linux 中的驱动程序。我正在努力获得一些 /sys 文件属性,这将使事情变得更好。在传递这些属性要说明的内容时,属性函数必须能够访问驱动程序存储的某些数据。由于事物的制作和存储方式,我认为我可以使用device_private *p来自 device_create() 的 struct device 的成员。基本上,它是这样的:

这还没有显示分配到device_private指针中,但这就是我要去的地方。在此类下制造的每个新设备都需要与该组相同的属性。这是我从“概念证明”开始的单一属性

我认为,由于device_create()返回 astruct device*并且我正在使用它来制作设备组,因此struct kobject*进入pxis_show的是由device_create. 如果这是真的,那么我应该能够将一些私有数据填充到该对象中,并在访问 /sys 文件时使用它。但是,当上面标记的代码行取消引用p成员时,我会从 gcc中获得不完整类型的取消引用指针。我已经确定这是不完整的struct device_private成员,struct device但为什么呢?我应该使用不同的结构吗?这似乎是内核真正内部的东西。

0 投票
1 回答
1279 浏览

linux-device-driver - 为 linux 设备驱动程序创建许多 sysfs 目录和属性的推荐方法

我需要为驱动程序创建一大堆属性,这使得静态分配它们是不切实际的(64 个目录,每个目录有 5 个属性)。

看起来有多种方法可以在 sysfs 中创建目录。一个似乎是sysfs_create_dir_ns(),另一个似乎是在创建struct kobjects,将它们添加到 sysfs 中,然后向它们添加属性。

是否有推荐(或“最佳”)的方法来做到这一点?

0 投票
0 回答
45 浏览

c - How to recive the device path from uDevice event informations?

I have written so far a Qt-Application that is able to detect through the socket communication with the uDevice daemon(?) when I add or remove a usb device.

But the related informations I'm recieving aren't that usefull for me(at least not from the point of my current knowledge). I'm trying to find any informations where (interface point of view) I can build my code in a way that it can extract the informations neccessary to see:

a) Is the plugged device a mass storage device?

b) What are the parameters to mount it if it is.

As the communication to the uDevice works and for the parsing of the data I have not even a clou about what the data I'm reciving means, I hope it is not off-topic when I'm just presenting the recieved informations of uDevice.

this are the informations I'm recieving when I add a single USB-massstoragedevice:

(one package per line but all are recieved immediatly after pluggin)

And this is the data I'm recieving for the same device beeing removed:

(Especially note that one of the notifications contains "changed")

So My question now is: If this is not the needed data to mount the device, what is needed to consider to get that information from uDevice.

And if it is enough information for doing the job (what I'm assuming, because it is more likely that I'm just missing the knowhow to fully understand what this data is even telling me!) what lines exactly contain that information and how do I extract these?

note: The ubuntu system is run in a VMware virtual machine. It felt neccessary to mention this, since the VM maybe could alter anything in the way the usb device may be treat.

0 投票
1 回答
128 浏览

macos - 如何获得有关更改 if_index 的通知

我们在做什么: 我们正在使用 netfilter 库。我们的模块(比如“X-engine”)读取并缓存 if_index。

真正的问题: 如果内核出于某种原因决定更改 if_index,X 引擎缓存的 if_index 不会更新并开始丢弃数据包,因为 if_index 缓存在 module-X 中的内容与实际存在的内容不匹配核心。

我们正在寻找什么: 现在有没有一种方法/API 可以通知 module-X 这个更改事件,以便 module-X 更新它的缓存 if_index 适当?

0 投票
1 回答
1809 浏览

linux - 如何停止/重启 USB 设备(Linux 嵌入式系统)

你好 USB / Linux 大师!

我有一个基于 Atmel ARM Cortex-A5 CPU 的嵌入式系统。它运行嵌入式 Linux 内核 V3.10,将其高速 USB 端口配置为 USB 设备。

USB 设备配置为由 HID、NDIS 以太网和 MTP 组成的 USB 组合。一切运作良好。

然而,当将此嵌入式系统插入 Windows 等主机操作系统时,会出现一种情况,即我必须通知 Window 新的 MTP 设备。目前我知道如何做到这一点的唯一方法是从嵌入式系统中物理拔出 USB 电缆并将其重新插入。Windows 然后会注意到“新”MTP 连接,打开一个指向我设备上文件的文件夹,一切正常伟大的!

我想找到一种以编程方式完成完全相同的事情的方法......换句话说,让我的 USB 设备端口上下移动,就像我对以太网使用“ifconfig”一样。

是否有一些命令可以用来暂停和恢复 USB 设备端口?

非常感谢!

让-皮埃尔

PS 我正在使用的 USB 驱动程序称为“atmel_usba_udc.c”,包含我想从用户空间调用的“atmel_usba_stop()”和“atmel_usba_start()”等函数。

0 投票
0 回答
771 浏览

c - 无论如何,当您删除整个 kobject 时是否有必要执行 sysfs_remove_file() ?

在我的 Linux Kernel 模块的代码中,我创建了一个kobject,它成为 /sys/ 目录中的一个目录,然后sysfs在其中创建一个文件。所以它看起来像 /sys/KobjName/SysfsFile。这是该kobject目录中唯一的文件,并且在执行命令后sysfs文件和文件kobject都将被删除。rmmod moduleX

目前我的 clean_up 代码moduleX看起来像

其中file_ok是一个 0 或 1 的整数,表示sysfs_create_file(kobj, &attributes.attr)执行的函数是否更正(例如,创建了一个文件)。

我现在的问题是是否有必要sysfs在删除kobject. 在用户空间中导航文件系统时,可以简单地删除一个目录,这将删除其中的所有文件。kobject内核空间中的文件系统是这种情况吗?