← Back to team overview

kernel-packages team mailing list archive

[Bug 1417032] Re: Userspace can't access i2c devices (missing i2c entries in /dev)

 

** Description changed:

  SRU justification:
  
  Impact: userspace code cannot access i2c devices until the i2c-chardev
  module is loaded (and thus people might think they are not working/it's
  a kernel bug)
  
  Fix: build in i2c-chardev
  
  Test case: boot a kernel with i2c-chardev compiled in and look for i2c
  entries in /dev:
  
  [flag@luxor linux]$ ls -la /dev/i2c*
  crw-rw---- 1 root i2c 89, 0 Feb  2 09:33 /dev/i2c-0
  crw-rw---- 1 root i2c 89, 1 Feb  2 09:33 /dev/i2c-1
  crw-rw---- 1 root i2c 89, 2 Feb  2 09:33 /dev/i2c-2
  crw-rw---- 1 root i2c 89, 3 Feb  2 09:33 /dev/i2c-3
  crw-rw---- 1 root i2c 89, 4 Feb  2 09:33 /dev/i2c-4
  crw-rw---- 1 root i2c 89, 5 Feb  2 09:33 /dev/i2c-5
  crw-rw---- 1 root i2c 89, 6 Feb  2 09:33 /dev/i2c-6
  crw-rw---- 1 root i2c 89, 7 Feb  2 09:33 /dev/i2c-7
  
  --
  
  My board has an i2c bus (and devices attached to it), but the
  corresponding /dev entries are missing and userspace can't access these
  devices until the i2c-dev module is loaded:
  
  [flag@luxor ~]$ ls -la /sys/bus/i2c/devices/
  total 0
  drwxr-xr-x 2 root root 0 Feb  2 08:38 .
  drwxr-xr-x 4 root root 0 Feb  2 08:38 ..
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-0 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-0
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-1 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-1
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-2 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-2
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-3 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-3
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-4 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-4
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-5 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-5
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-6 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-6
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-7 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-7
  [flag@luxor ~]$ i2cdetect -l
  [flag@luxor ~]$ ls -la /dev/i2c*
  ls: cannot access /dev/i2c*: No such file or directory
  [flag@luxor ~]$
  
  [flag@luxor ~]$ sudo modprobe i2c-dev
  [flag@luxor ~]$ ls -la /dev/i2c*
  crw-rw---- 1 root i2c 89, 0 Feb  2 09:33 /dev/i2c-0
  crw-rw---- 1 root i2c 89, 1 Feb  2 09:33 /dev/i2c-1
  crw-rw---- 1 root i2c 89, 2 Feb  2 09:33 /dev/i2c-2
  crw-rw---- 1 root i2c 89, 3 Feb  2 09:33 /dev/i2c-3
  crw-rw---- 1 root i2c 89, 4 Feb  2 09:33 /dev/i2c-4
  crw-rw---- 1 root i2c 89, 5 Feb  2 09:33 /dev/i2c-5
  crw-rw---- 1 root i2c 89, 6 Feb  2 09:33 /dev/i2c-6
  crw-rw---- 1 root i2c 89, 7 Feb  2 09:33 /dev/i2c-7
  [flag@luxor ~]$ i2cdetect -l
  i2c-0   unknown         Radeon i2c bit bus 0x90                 N/A
  i2c-1   unknown         Radeon i2c bit bus 0x91                 N/A
  i2c-2   unknown         Radeon i2c bit bus 0x92                 N/A
  i2c-3   unknown         Radeon i2c bit bus 0x93                 N/A
  i2c-4   unknown         Radeon i2c bit bus 0x94                 N/A
  i2c-5   unknown         Radeon i2c bit bus 0x95                 N/A
  i2c-6   unknown         Radeon i2c bit bus 0x96                 N/A
  i2c-7   unknown         Radeon i2c bit bus 0x97                 N/A
  [flag@luxor ~]$
  
  Since the module is not automatically loaded, and there's no clue to
- load it if i2c devices fail to work (and people might think it's a bug),
- i propose to build it statically (it adds ~8k to the uncompressed kernel
+ load it if i2c devices fail to work (and people reported it as a bug), i
+ propose to build it statically (it adds ~8k to the uncompressed kernel
  image).

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1417032

Title:
  Userspace can't access i2c devices (missing i2c entries in /dev)

Status in linux package in Ubuntu:
  Incomplete

Bug description:
  SRU justification:

  Impact: userspace code cannot access i2c devices until the i2c-chardev
  module is loaded (and thus people might think they are not
  working/it's a kernel bug)

  Fix: build in i2c-chardev

  Test case: boot a kernel with i2c-chardev compiled in and look for i2c
  entries in /dev:

  [flag@luxor linux]$ ls -la /dev/i2c*
  crw-rw---- 1 root i2c 89, 0 Feb  2 09:33 /dev/i2c-0
  crw-rw---- 1 root i2c 89, 1 Feb  2 09:33 /dev/i2c-1
  crw-rw---- 1 root i2c 89, 2 Feb  2 09:33 /dev/i2c-2
  crw-rw---- 1 root i2c 89, 3 Feb  2 09:33 /dev/i2c-3
  crw-rw---- 1 root i2c 89, 4 Feb  2 09:33 /dev/i2c-4
  crw-rw---- 1 root i2c 89, 5 Feb  2 09:33 /dev/i2c-5
  crw-rw---- 1 root i2c 89, 6 Feb  2 09:33 /dev/i2c-6
  crw-rw---- 1 root i2c 89, 7 Feb  2 09:33 /dev/i2c-7

  --

  My board has an i2c bus (and devices attached to it), but the
  corresponding /dev entries are missing and userspace can't access
  these devices until the i2c-dev module is loaded:

  [flag@luxor ~]$ ls -la /sys/bus/i2c/devices/
  total 0
  drwxr-xr-x 2 root root 0 Feb  2 08:38 .
  drwxr-xr-x 4 root root 0 Feb  2 08:38 ..
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-0 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-0
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-1 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-1
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-2 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-2
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-3 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-3
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-4 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-4
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-5 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-5
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-6 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-6
  lrwxrwxrwx 1 root root 0 Feb  2 09:28 i2c-7 -> ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-7
  [flag@luxor ~]$ i2cdetect -l
  [flag@luxor ~]$ ls -la /dev/i2c*
  ls: cannot access /dev/i2c*: No such file or directory
  [flag@luxor ~]$

  [flag@luxor ~]$ sudo modprobe i2c-dev
  [flag@luxor ~]$ ls -la /dev/i2c*
  crw-rw---- 1 root i2c 89, 0 Feb  2 09:33 /dev/i2c-0
  crw-rw---- 1 root i2c 89, 1 Feb  2 09:33 /dev/i2c-1
  crw-rw---- 1 root i2c 89, 2 Feb  2 09:33 /dev/i2c-2
  crw-rw---- 1 root i2c 89, 3 Feb  2 09:33 /dev/i2c-3
  crw-rw---- 1 root i2c 89, 4 Feb  2 09:33 /dev/i2c-4
  crw-rw---- 1 root i2c 89, 5 Feb  2 09:33 /dev/i2c-5
  crw-rw---- 1 root i2c 89, 6 Feb  2 09:33 /dev/i2c-6
  crw-rw---- 1 root i2c 89, 7 Feb  2 09:33 /dev/i2c-7
  [flag@luxor ~]$ i2cdetect -l
  i2c-0   unknown         Radeon i2c bit bus 0x90                 N/A
  i2c-1   unknown         Radeon i2c bit bus 0x91                 N/A
  i2c-2   unknown         Radeon i2c bit bus 0x92                 N/A
  i2c-3   unknown         Radeon i2c bit bus 0x93                 N/A
  i2c-4   unknown         Radeon i2c bit bus 0x94                 N/A
  i2c-5   unknown         Radeon i2c bit bus 0x95                 N/A
  i2c-6   unknown         Radeon i2c bit bus 0x96                 N/A
  i2c-7   unknown         Radeon i2c bit bus 0x97                 N/A
  [flag@luxor ~]$

  Since the module is not automatically loaded, and there's no clue to
  load it if i2c devices fail to work (and people reported it as a bug),
  i propose to build it statically (it adds ~8k to the uncompressed
  kernel image).

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1417032/+subscriptions


References