Linux – Determine the HDMI controller from the command line

hdmilinux

XBMC (or rather libcec) only supports CEC in a couple of HDMI controllers.

I would like a way to work out what HDMI / CEC controller is installed in a machine from the command line.

This is the machine I am looking at right now as an example, but I am looking for a general solution that would work for any machine from linux:

System Information
        Manufacturer: ASUSTeK Computer INC.
        Product Name: EB1012P

Perhaps a utility that can probe an HDMI controller to work out its capabilities?

Here is lspci:

$ lspci
00:00.0 Host bridge: Intel Corporation Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (rev 02)
00:1b.0 Audio device: Intel Corporation NM10/ICH7 Family High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 3 (rev 02)
00:1c.3 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 4 (rev 02)
00:1d.0 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 (rev 02)
00:1d.1 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 (rev 02)
00:1d.2 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 (rev 02)
00:1d.3 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 (rev 02)
00:1d.7 USB controller: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation NM10 Family LPC Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation NM10/ICH7 Family SATA Controller [AHCI mode] (rev 02)
00:1f.3 SMBus: Intel Corporation NM10/ICH7 Family SMBus Controller (rev 02)
02:00.0 VGA compatible controller: NVIDIA Corporation GT218 [ION] (rev a2)
02:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)
03:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
05:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03)

Best Answer

cec-client -l

  1. Install(debian/ubuntu)

    apt-get install cec-utils libcec-dev
    
  2. Run

    cec-client -l
    

    This will list all cec device on the system. If there is no CEC supporting device, cec-client -l will return Found devices: NONE, which is correct.

    Please keep in mind that most PC video card (Nvidia, AMD) do not support CEC(see PS2,PS3). The one known(have clear documentation/specification) GPU that support CEC is VideoCore, found in Raspberry Pi.

    PS1: libcec-dev is needed on Ubuntu 12.04 for cec-client to function correctly.

    PS2: Base on online forum post, Nvidia (GF, GT(ION), GTX) never claim to support CEC, nor deny. Nvidia website has no info about CEC. It basically don't say anything regarding this. I just take that as a "NO".

    PS3: For few AMD PDF DOC that mention CEC, it is clearly stated that it is not supported.

xrandr --prop (This may or may help, my video card don't have cec to verify)

Following is a sample output

#xrandr --prop
Screen 0: minimum 320 x 200, current 2560 x 1024, maximum 8192 x 8192
VGA1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
    EDID:
        00ffffffffffff0010ac194050435341
        281101030e261e78eeee95a3544c9926
        0f5054a54b00714f8180010101010101
        010101010101302a009851002a403070
        1300782d1100001e000000ff00434333
        3838374136415343500a000000fc0044
        454c4c20313930374650560a000000fd
        00384c1e510e000a20202020202000d9
   1280x1024      60.0*+   75.0  
   1152x864       75.0  
   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  
HDMI1 disconnected (normal left inverted right x axis y axis)
    Broadcast RGB:  Full
        supported: Full         Limited 16:2
    audio:  auto
        supported: off          auto         on          
DP1 disconnected (normal left inverted right x axis y axis)
    Broadcast RGB:  Full
        supported: Full         Limited 16:2
    audio:  auto
        supported: off          auto         on          
HDMI2 connected 1280x1024+1280+0 (normal left inverted right x axis y axis) 376mm x 301mm
    EDID:
        00ffffffffffff0010ac204045375241
        2811010380261e78eeee95a3544c9926
        0f5054a54b00714f8180010101010101
        010101010101302a009851002a403070
        1300782d1100001e000000ff00434333
        3838374136415237450a000000fc0044
        454c4c20313930374650560a000000fd
        00384c1e510e000a2020202020200090
    Broadcast RGB:  Full
        supported: Full         Limited 16:2
    audio:  auto
        supported: off          auto         on          
   1280x1024      60.0*+   75.0  
   1152x864       75.0  
   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  
DP2 disconnected (normal left inverted right x axis y axis)
    Broadcast RGB:  Full
        supported: Full         Limited 16:2
    audio:  auto
        supported: off          auto         on          
Related Question