Linux 如何访问i2c设备驱动程序节点 情景1:
我有一个i2c芯片驱动程序作为linux内核的一部分。我可以通过内核引导消息验证i2c芯片驱动程序是否在内核中我的芯片驱动程序是mma8450 dmesg:Linux 如何访问i2c设备驱动程序节点 情景1:,linux,i2c,Linux,I2c,我有一个i2c芯片驱动程序作为linux内核的一部分。我可以通过内核引导消息验证i2c芯片驱动程序是否在内核中我的芯片驱动程序是mma8450 dmesg: mma8450 0-001c: uevent 我还可以看到这个驱动程序在0x1c是i2c芯片的地址 cat /sys/bus/i2c/devices/0-001c/name mma8450 我在/dev接口中看不到此驱动程序节点。我的问题是如何在/dev中创建此设备的节点,以便在用户程序中访问此设备 情景2: 我创建了同一芯片驱动程序的
mma8450 0-001c: uevent
我还可以看到这个驱动程序在0x1c是i2c芯片的地址
cat /sys/bus/i2c/devices/0-001c/name
mma8450
我在/dev接口中看不到此驱动程序节点。我的问题是如何在/dev中创建此设备的节点,以便在用户程序中访问此设备
情景2:
我创建了同一芯片驱动程序的模块,并没有将其作为内核的一部分。我可以使用insmod mma8450加载此模块,如何创建此设备的节点,因为我没有其主要/次要编号?在mma8450源代码中,我看不到分配给该驱动程序的主要和次要编号
谢谢你的帮助
关于查找设备的主要/次要号码:
cat /proc/devices
您应该看到一个用于i2c总线的设备和一个用于i2c设备本身的设备
为i2c设备驱动程序创建设备节点:
mknod /dev/[device name] [type] [major] [minor]
查找设备的主要/次要编号:
cat /proc/devices
您应该看到一个用于i2c总线的设备和一个用于i2c设备本身的设备
为i2c设备驱动程序创建设备节点:
mknod /dev/[device name] [type] [major] [minor]
加载内核模块: modprobe i2c开发
ls /dev/i2*
/dev/i2c-0
/dev/i2c-10
/dev/i2c-12
/dev/i2c-14
/dev/i2c-3
/dev/i2c-5
/dev/i2c-7
/dev/i2c-9
/dev/i2c-1
/dev/i2c-11
/dev/i2c-13
/dev/i2c-2
/dev/i2c-4
/dev/i2c-6
/dev/i2c-8
加载内核模块: modprobe i2c开发
ls /dev/i2*
/dev/i2c-0
/dev/i2c-10
/dev/i2c-12
/dev/i2c-14
/dev/i2c-3
/dev/i2c-5
/dev/i2c-7
/dev/i2c-9
/dev/i2c-1
/dev/i2c-11
/dev/i2c-13
/dev/i2c-2
/dev/i2c-4
/dev/i2c-6
/dev/i2c-8
这是三轴加速度计。Linux将其注册为input_polled_dev类型的驱动程序 您可以使用/dev/i2c-x总线控制器设备节点来访问它,但是直接从用户空间使用它没有多大意义 I2C客户端不打算使用/dev设备节点。 它们应该注册到内核I2C框架,并通过更高层的API使用 有一个示例程序,用于使用/dev/i2c-x总线设备节点从用户空间读取类似的MMA7455L x、y、z寄存器
这是三轴加速度计。Linux将其注册为input_polled_dev类型的驱动程序 您可以使用/dev/i2c-x总线控制器设备节点来访问它,但是直接从用户空间使用它没有多大意义 I2C客户端不打算使用/dev设备节点。 它们应该注册到内核I2C框架,并通过更高层的API使用 有一个示例程序,用于使用/dev/i2c-x总线设备节点从用户空间读取类似的MMA7455L x、y、z寄存器
你知道传感器检测脚本吗?我在Ubuntu上使用它,它可能是Debian的一部分。它将检测并加载适当的模块;从来没有遇到过问题是的你知道传感器检测脚本吗?我在Ubuntu上使用它,它可能是Debian的一部分。它将检测并加载适当的模块;从未出现过问题是的,该命令为I2C总线控制器创建设备节点。问题是是否可以为mma8450 I2C客户端创建设备节点。此命令为I2C总线控制器创建设备节点。问题是是否可以为mma8450 I2C客户端创建设备节点。我认为只有I2C总线设备列在字符设备下。不是mma8450 I2C客户端。我认为只有I2C总线设备列在字符设备下。不是mma8450 I2C客户端。