【问题标题】:open("/dev/i2c-1",O_RDWR) return -1, i2c-1 device couldnt openopen("/dev/i2c-1",O_RDWR) return -1, i2c-1 设备无法打开
【发布时间】:2014-10-02 14:44:46
【问题描述】:

我的应用有一点问题。

首先我安装包 i2c-tools,
我授予所有用户对 dev/i2c* 文件的所有权限。
之后,在 etc/modules 文件中添加行 i2c-dev
i2c 设备存在于 /dev/ 目录中。

我猜问题出在我的 C 代码中:int fd = open("/dev/i2c-1", O_RDWR); 返回 -1 值,它给出 errno:2 No such file or directory.

任何人有建议,我找不到什么问题?
i2cdetect下面,设备和权限输出。

root@arge16-HP-600B:/home/arge1-6# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- 37 -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- 49 -- -- -- -- -- -- 
50: 50 -- -- -- -- -- -- -- -- 59 -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --  
root@arge16-HP-600B:/home/arge1-6# i2cdetect -l
i2c-0   i2c         i915 gmbus ssc                      I2C adapter
i2c-1   i2c         i915 gmbus vga                      I2C adapter
i2c-2   i2c         i915 gmbus panel                    I2C adapter
i2c-3   i2c         i915 gmbus dpc                      I2C adapter
i2c-4   i2c         i915 gmbus dpb                      I2C adapter
i2c-5   i2c         i915 gmbus dpd                      I2C adapter
i2c-6   i2c         DPDDC-B                             I2C adapter
root@arge16-HP-600B:/home/arge1-6# ls -l /dev/i2c*
crw-rw-rw- 1 root i2c 89, 0 Oct  2 14:36 /dev/i2c-0
crw-rw-rw- 1 root i2c 89, 1 Oct  2 14:36 /dev/i2c-1
crw-rw-rw- 1 root i2c 89, 2 Oct  2 14:36 /dev/i2c-2
crw-rw-rw- 1 root i2c 89, 3 Oct  2 14:36 /dev/i2c-3
crw-rw-rw- 1 root i2c 89, 4 Oct  2 14:36 /dev/i2c-4
crw-rw-rw- 1 root i2c 89, 5 Oct  2 14:36 /dev/i2c-5
crw-rw-rw- 1 root i2c 89, 6 Oct  2 14:36 /dev/i2c-6

root@arge16-HP-600B:/home/arge1-6/Desktop/ekrem/adt/workspaceEkrem/DIP40/IpIntercomDIP40# strace i2cdetect -y 1
execve("/usr/sbin/i2cdetect", ["i2cdetect", "-y", "1"], [/* 28 vars */]) = 0
brk(0)                                  = 0xf1a000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f53bc733000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=125548, ...}) = 0
mmap(NULL, 125548, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f53bc714000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\36\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1853400, ...}) = 0
mmap(NULL, 3961912, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f53bc14b000
mprotect(0x7f53bc308000, 2097152, PROT_NONE) = 0
mmap(0x7f53bc508000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bd000) = 0x7f53bc508000
mmap(0x7f53bc50e000, 17464, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f53bc50e000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f53bc713000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f53bc711000
arch_prctl(ARCH_SET_FS, 0x7f53bc711740) = 0
mprotect(0x7f53bc508000, 16384, PROT_READ) = 0
mprotect(0x603000, 4096, PROT_READ)     = 0
mprotect(0x7f53bc735000, 4096, PROT_READ) = 0
munmap(0x7f53bc714000, 125548)          = 0
open("/dev/i2c/1", O_RDWR)              = -1 ENOENT (No such file or directory)
open("/dev/i2c-1", O_RDWR)              = 3
ioctl(3, 0x705, 0x7fff039b01d8)         = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f53bc732000
write(1, "     0  1  2  3  4  5  6  7  8  "..., 52     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
) = 52
write(1, "00: ", 400: )                     = 4
write(1, "   ", 3   )                      = 3
write(1, "   ", 3   )                      = 3
write(1, "   ", 3   )                      = 3
ioctl(3, 0x703, 0x3)                    = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x4)                    = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x5)                    = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x6)                    = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x7)                    = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x8)                    = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x9)                    = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0xa)                    = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0xb)                    = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0xc)                    = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0xd)                    = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0xe)                    = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0xf)                    = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- \n", 4-- 
)                    = 4
write(1, "10: ", 410: )                     = 4
ioctl(3, 0x703, 0x10)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x11)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x12)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x13)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x14)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x15)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x16)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x17)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x18)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x19)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x1a)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x1b)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x1c)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x1d)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x1e)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x1f)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- \n", 4-- 
)                    = 4
write(1, "20: ", 420: )                     = 4
ioctl(3, 0x703, 0x20)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x21)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x22)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x23)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x24)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x25)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x26)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x27)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x28)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x29)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x2a)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x2b)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x2c)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x2d)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x2e)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x2f)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- \n", 4-- 
)                    = 4
write(1, "30: ", 430: )                     = 4
ioctl(3, 0x703, 0x30)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x31)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x32)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x33)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x34)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x35)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x36)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x37)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = 0
write(1, "37 ", 337 )                      = 3
ioctl(3, 0x703, 0x38)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x39)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x3a)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x3b)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x3c)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x3d)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x3e)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x3f)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- \n", 4-- 
)                    = 4
write(1, "40: ", 440: )                     = 4
ioctl(3, 0x703, 0x40)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x41)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x42)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x43)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x44)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x45)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x46)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x47)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x48)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x49)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = 0
write(1, "49 ", 349 )                      = 3
ioctl(3, 0x703, 0x4a)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x4b)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x4c)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x4d)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x4e)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x4f)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- \n", 4-- 
)                    = 4
write(1, "50: ", 450: )                     = 4
ioctl(3, 0x703, 0x50)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = 0
write(1, "50 ", 350 )                      = 3
ioctl(3, 0x703, 0x51)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x52)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x53)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x54)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x55)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x56)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x57)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x58)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x59)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = 0
write(1, "59 ", 359 )                      = 3
ioctl(3, 0x703, 0x5a)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x5b)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x5c)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x5d)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x5e)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x5f)                   = 0
ioctl(3, 0x720, 0x7fff039b00f0)         = -1 ENXIO (No such device or address)
write(1, "-- \n", 4-- 
)                    = 4
write(1, "60: ", 460: )                     = 4
ioctl(3, 0x703, 0x60)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x61)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x62)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x63)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x64)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x65)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x66)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x67)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x68)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x69)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x6a)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x6b)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x6c)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x6d)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x6e)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x6f)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- \n", 4-- 
)                    = 4
write(1, "70: ", 470: )                     = 4
ioctl(3, 0x703, 0x70)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x71)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x72)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x73)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x74)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x75)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x76)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
ioctl(3, 0x703, 0x77)                   = 0
ioctl(3, 0x720, 0x7fff039b0120)         = -1 ENXIO (No such device or address)
write(1, "-- ", 3-- )                      = 3
write(1, "   ", 3   )                      = 3
write(1, "   ", 3   )                      = 3
write(1, "   ", 3   )                      = 3
write(1, "   ", 3   )                      = 3
write(1, "   ", 3   )                      = 3
write(1, "   ", 3   )                      = 3
write(1, "   ", 3   )                      = 3
write(1, "   \n", 4   
)                    = 4
close(3)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++

【问题讨论】:

  • 试试strace i2cdetect -y 1,看看它实际上在做什么,然后比较你的尝试。
  • 我尝试您的建议并编辑问题access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
  • 其实我的程序是一个安卓apk。我使用java本机接口,所以我从C调用java中的函数。Strace是android中的Logcat函数?我如何将 strace 用于 android apk>?现在我该怎么办?
  • 但是有些东西看起来仍然非常可疑 - 您从提示符“root@arge16-HP-600B”进行了测试。 HP-600B 是一款塔式 PC,听起来更像是一个开发系统,而不是嵌入式 / Android 设备。 您是否真的在与您尝试 android apk 的完全相同的系统(硬件和软件)上运行 i2c-detect ???
  • 'arge16-HP-600B' 是我的电脑名称,不是开发系统。我在 Eclipse 中运行我的 apk。Apk 在 android 虚拟设备上运行。我在 eclipse 的 logcatWindow 中得到了这个错误。我将所有权限授予所有用户。 i2c-detect 与非特权用户一起工作。

标签: embedded i2c linux android java


【解决方案1】:

您已在 HP-600B PC 上运行 i2c-detect,而不是在 Android 虚拟设备上。

显然你的 android 虚拟设备和大多数设备一样,没有 i2c 功能,或者至少没有在 /dev 中暴露给普通用户。

您可以从adb shell 在某种程度上探索 android 设备,但最终要看到与您的应用程序可用的相同类型的受限视图和文件系统挂载,您将需要使用文件浏览器应用程序、本地终端应用程序,例如connectbot 或 ssh 服务器应用程序。

在尝试了解某些​​东西可能如何工作时,在 PC 上运行测试确实是一种捷径,但只有在目标系统本身上运行的测试才能确定实际支持的内容它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 2017-06-12
    • 1970-01-01
    • 2014-05-01
    • 2015-11-04
    相关资源
    最近更新 更多