问题标签 [iio]
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.
android - 如何从 /dev/iio:deviceX 中的 LSM330 读取数据?
我正在尝试在 i.MX6 板上连接 LSM330 加速度计/陀螺仪模块。模块连接I2C总线,设备树文件相关部分如下:
该模块显示/dev/iio:device0
为加速度计和/dev/iio:device1
陀螺仪。它们也显示为/sys/bus/iio/devices/iio:device0
和/sys/bus/iio/devices/iio:device1
。我可以通过cat in_accel_x_raw
etc 获取传感器读数。但是,运行cat /dev/iio:device0
立即返回并且不产生任何输出。
在网上搜索后,我也尝试了命令:
This should set the channels, enable the buffer and get some readings into the buffer. As far as I know, cat /dev/iio:device0
should display the buffer, but it is giving me Device or resource busy
. Further reads from the kernel with cat /sys/bus/iio/devices/iio:device0/in_accel_x_raw
no longer works and give the same error message.
I am very new to the linux kernel, my goal is to expose the sensor data to the Android system so the user can rotate the screen etc. How do I get Android to obtain sensor readings from the module?
linux-device-driver - AD9834内核驱动如何编译
我有一块 AD9834(它是一个直接数字合成芯片)评估板,我想将它连接到我的 Raspberry PI。它使用 SPI 接口。虽然我可以直接从 Python 等驱动 SPI 接口,但我更喜欢使用Analog Devices 已经编写的Linux 内核驱动程序。
该驱动程序是一个 IIO 子系统驱动程序。编译说明中提到了make menuconfig
编译驱动程序的标准步骤和选择。然而,在此之前,说明讨论了从选择行等的源代码配置。说明指出,“对于编译时配置,Linux 的常见做法是将特定于板和应用程序的配置保留在主驱动程序文件之外,而不是将其放入电路板支持文件中。” 我没有这方面的经验,也没有找到任何关于“板支持文件”的信息,除了 Raspberry Pi 不(?)使用的板支持包。
我应该如何将这些板支持源修改应用到 Raspberry Pi 的 Linux 内核?
c - 无法从用户空间读取 iio 文件
我正在尝试从 C 代码中读取以下文件。
文件: /sys/bus/iio/devices/iio\:device0/in_voltage7_raw
但我得到的文件指针是-1。
使用 cat 命令它能够读取文件。
但我试图从我的代码中读取相同的内容,如下所示:
行后:
fd = open(file_name, O_RDONLY);
fd 的值为-1。如何解决?
python - 使用 iio python 包
你好,开发人员:)
我想用python收听MMA8452加速度传感器给出的信息。为此,我想为 python 使用 libiio 包。
要安装它,我按照本指南中给出的说明手动构建它
它似乎安装得很好,因为我导入包没有问题,因为它位于我的站点包文件夹中。
但是,如果我想使用“iio.context()”函数执行创建上下文的初始步骤,我会收到以下错误:
有人可以帮我让 iio 包工作吗?
对于我的硬件:我使用带有 Raspberian-stretch-lite v4.9 的 Raspberry Pi3 模型 B
在此先感谢,霍尔格
linux - IIO:无法打开文件 /sys/bus/iio/devices/iio\:device1/in_voltage_1
我正在尝试使用来自 ADC 通道的原始值。在我的应用程序中,我这样做:
这将返回 errno 2“没有这样的文件或目录”,但如果我这样做,该文件就在那里:
我得到了我期望的价值。
如果我建立一个软链接,它也可以工作:
而是打开该链接。该链接与原始文件具有相同的权限。
我错过了什么?
linux-kernel - Linux 内核驱动程序中的哪种 IIO 通道类型适用于 LED 电流调节器?
在为具有 LED 电流调节器的接近和光度传感半导体实现 linux 内核驱动程序时,允许针对环境光干扰调整距离测量的有效性,希望支持 read_raw/write_raw 方法以能够获取/设置电流调节器值。通道类型设置为IIO_PROXIMITY
现在。定义 LED 电流的适当方法是什么:通过通道信息枚举申请此类设置?可用的选择是:
是IIO_CHAN_INFO_HARDWAREGAIN
一个吗?或者最好从以下选项中定义一个单独的 LED 电流通道类型:
enum iio_chan_type {
IIO_VOLTAGE,
IIO_CURRENT,
IIO_POWER,
IIO_ACCEL,
IIO_ANGL_VEL,
IIO_MAGN,
IIO_LIGHT,
IIO_INTENSITY,
IIO_PROXIMITY,
IIO_TEMP,
IIO_INCLI,
IIO_ROT,
IIO_ANGL,
IIO_TIMESTAMP,
IIO_CAPACITANCE,
IIO_ALTVOLTAGE,
IIO_CCT,
IIO_PRESSURE,
IIO_HUMIDITYRELATIVE,
IIO_ACTIVITY,
IIO_STEPS,
IIO_ENERGY,
IIO_DISTANCE,
IIO_VELOCITY,
IIO_CONCENTRATION,
IIO_RESISTANCE,
};
同时使用IIO_CURRENT
一个类型然后使用IIO_CHAN_INFO_RAW
信息?
linux - Linux IIO 加速度计运动检测事件
我在 imx6ul 板上有一个 MMA8563 加速度计,并且正在使用 mma8452.c Linux IIO 驱动程序。我可以通过 /sys/bus/iio/devices/iio:device0 访问 x、y、z 原始值。
但是,我不确定如何使用 IIO 事件。我使用以下命令在加速度计中配置了运动检测:
我在驱动程序代码中放置了调试打印语句,可以看到当我移动设备时触发了中断。我看到驱动程序然后调用 iio_push_event() 函数。我还可以看到每次移动设备时 /proc/interrupts 中的中断号都会增加。
从用户空间,我怎样才能访问这个中断或事件?我希望能够知道设备何时处于运动状态。
驱动程序在 /dev/iio:device0 中创建一个缓冲区和一个字符开发,但这似乎仅在我在 scan_elements 目录中启用 x、y 或 z 时才会填充。
linux-device-driver - 如何在内核中定义一个 IIO 设备以便调用相应驱动程序的探针?
我的开发板是基于 x86 的 Intel Joule 570x。我在地址 0x13 的 /dev/i2c-4 总线上连接了一个 BMM150 传感器。我可以使用i2cget
.
现在我想为这个传感器使用 IIO 子系统中已经存在的驱动程序。我已经将此驱动程序构建为模块并放入 rootfs。我也可以对这个驱动程序做 modprobe。现在的问题是我在哪里可以定义我的传感器设备,以便内核读取它并调用这个驱动程序的探针(https://elixir.bootlin.com/linux/v5.0-rc7/source/drivers/iio/magnetometer /bmc150_magn_i2c.c )
由于在 x86 中,我没有设备树支持,并且此时我不想使用 ACPI,还有什么简单的方法可以定义连接的 I2C 传感器,以便调用驱动程序探针?我读到我们可以在板初始化文件中定义设备,但我找不到可以做到这一点的确切文件?
有人可以帮我将我的 i2c 设备定义到内核中吗?一个例子将受到高度赞赏。
embedded-linux - ctxless 函数在 libgpiod 中使用更差还是更好?
有没有熟悉 libgpiod 的人可以回答这个问题:
使用ctxless函数而不是调用单个函数来操作芯片线(或一般情况下)是否有任何缺点?例如,要打开一条线路,我可能会写如下内容:
或者我可以简单地使用一个调用:
您什么时候会使用其中一种?
linux-device-driver - 如何在我的 iio_info 结构中添加 write_raw 函数
我正在使用 iio 框架编写驱动程序。到目前为止一切顺利。所有输入和 sysfs 条目都运行良好,测量值也很好。(它有很好的记录并且很容易)。但我需要一个小扩展才能在其中一个频道上写字。当我在 iio_info 中添加我的函数时,编译器会向我发出一个错误:
这对我来说很奇怪。我什至不敢相信我在这里无耻地问这个问题,但我很沮丧。我为此失去了将近半天的时间。我的结构是:
我的通道类型是 IIO_VOLTAGE、IIO_TEMP 和 IIO_HUMIDITYRELATIVE。我开始考虑将其作为设备属性:-(如果我在接下来的 12 小时内没有收到答案。
更新:根据墨菲的评论,只是为了更明显。
PS我不想以最知名的方式消除这个错误。QA(和我)会不高兴。谢谢