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

Bug #1417032 reported by Paolo Pisati
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Undecided
Unassigned

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).

Revision history for this message
Brad Figg (brad-figg) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 1417032

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Paolo Pisati (p-pisati)
description: updated
Paolo Pisati (p-pisati)
description: updated
Changed in linux (Ubuntu):
status: Incomplete → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 3.19.0-7.7

---------------
linux (3.19.0-7.7) vivid; urgency=low

  [ Andy Whitcroft ]

  * Release Tracking Bug
    - LP: #1426013

  [ Upstream Kernel Changes ]

  * x86/irq: Fix regression caused by commit b568b8601f05
  * cxl: Fix leaking interrupts if attach process fails
    - LP: #1415102
  * cxl: Early return from cxl_handle_fault for a shut down context
    - LP: #1415102
  * cxl: Disable AFU debug flag
    - LP: #1415102
  * cxl: Disable SPAP register when freeing SPA
    - LP: #1415102
  * cxl: remove redundant increment of hwirq
    - LP: #1415102
  * cxl: Add tracepoints
    - LP: #1415102
  * cxl: Update CXL ABI documentation
    - LP: #1415102
  * cxl: Use image state defaults for reloading FPGA
    - LP: #1415102
  * cxl: Add image control to sysfs
    - LP: #1415102
  * cxl: Enable CAPP recovery
    - LP: #1415102
  * cxl: Add ability to reset the card
    - LP: #1415102
  * cxl: Fix device_node reference counting
    - LP: #1415102
  * cxl: Export optional AFU configuration record in sysfs
    - LP: #1415102
  * cxl: Fail AFU initialisation if an invalid configuration record is
    found
    - LP: #1415102
  * cxl: Add missing return statement after handling AFU errror
    - LP: #1415102
  * powerpc/eeh: Introduce flag EEH_PE_REMOVED
    - LP: #1415102
  * powerpc/eeh: Allow to set maximal frozen times
    - LP: #1415102
  * HID: i2c-hid: Limit reads to wMaxInputLength bytes for input events
 -- Andy Whitcroft <email address hidden> Thu, 26 Feb 2015 16:00:18 +0000

Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.