InfiniTV4 card network config

I’ve installed a Ceton InfiniTV4 cable card in my HTPC that is running openSUSE 13.1, x86_64. I’ve installed the drivers, and they seem to be okay. The card runs as an ethernet device, but I’m having trouble getting it set up and running on my openSUSE 13.1, x86_64 system. I’m looking for suggestions on how to get it running.

When I run lsmod, it shows…

ctn91xx                58189  0 

When I run Hardware Information from YAST2, I see the device listed under Network Card, listed as Multimedia video card. Here are the relevant entries:

>> net.1: get network data
  net interface: name = enp4s0, path = /class/net/enp4s0
    type = 1
    hw_addr = 00:22:2c:ff:ff:ff
    net device: path = /devices/pci0000:00/0000:00:15.1/0000:04:00.0
    net driver: name = ctn91xx, path = /bus/pci/drivers/ctn91xx
P: /devices/pci0000:00/0000:00:15.1/0000:04:00.0
  E: DEVPATH=/devices/pci0000:00/0000:00:15.1/0000:04:00.0
  E: DRIVER=ctn91xx
  E: ID_PCI_CLASS_FROM_DATABASE=Multimedia controller
  E: ID_PCI_SUBCLASS_FROM_DATABASE=Multimedia video controller
  E: MODALIAS=pci:v00001B7Cd00000004sv00001B7Csd00000004bc04sc00i00
  E: PCI_CLASS=40000
  E: PCI_ID=1B7C:0004
  E: PCI_SLOT_NAME=0000:04:00.0
  E: PCI_SUBSYS_ID=1B7C:0004
  P: /devices/pci0000:00/0000:00:15.1/0000:04:00.0/net/enp4s0
  E: DEVPATH=/devices/pci0000:00/0000:00:15.1/0000:04:00.0/net/enp4s0
  E: ID_BUS=pci
  E: ID_MODEL_ID=0x0004
  E: ID_NET_NAME_MAC=enx00222cffffff
  E: ID_NET_NAME_PATH=enp4s0
  E: ID_PCI_CLASS_FROM_DATABASE=Multimedia controller
  E: ID_PCI_SUBCLASS_FROM_DATABASE=Multimedia video controller
  E: ID_VENDOR_ID=0x1b7c
  E: INTERFACE=enp4s0
  E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/enp4s0
  E: TAGS=:systemd:
  P: /devices/virtual/ctn91xx/ctn91xx_ctl0
  N: ctn91xx_ctl0
  S: ceton/ctn91xx_ctl0
  E: DEVLINKS=/dev/ceton/ctn91xx_ctl0
  E: DEVNAME=/dev/ctn91xx_ctl0
  E: DEVPATH=/devices/virtual/ctn91xx/ctn91xx_ctl0
  E: MAJOR=231
  E: MINOR=0
  E: SUBSYSTEM=ctn91xx
  P: /devices/virtual/ctn91xx/ctn91xx_filter0_0
  N: ctn91xx_filter0_0
  S: ceton/ctn91xx_filter0_0
  E: DEVLINKS=/dev/ceton/ctn91xx_filter0_0
  E: DEVNAME=/dev/ctn91xx_filter0_0
  E: DEVPATH=/devices/virtual/ctn91xx/ctn91xx_filter0_0
  E: MAJOR=231
  E: MINOR=7
  E: SUBSYSTEM=ctn91xx
  P: /devices/virtual/ctn91xx/ctn91xx_filter0_1
  N: ctn91xx_filter0_1
  S: ceton/ctn91xx_filter0_1
  E: DEVLINKS=/dev/ceton/ctn91xx_filter0_1
  E: DEVNAME=/dev/ctn91xx_filter0_1
  E: DEVPATH=/devices/virtual/ctn91xx/ctn91xx_filter0_1
  E: MAJOR=231
  E: MINOR=8
  E: SUBSYSTEM=ctn91xx
  P: /devices/virtual/ctn91xx/ctn91xx_filter0_2
  N: ctn91xx_filter0_2
  S: ceton/ctn91xx_filter0_2
  E: DEVLINKS=/dev/ceton/ctn91xx_filter0_2
  E: DEVNAME=/dev/ctn91xx_filter0_2
  E: DEVPATH=/devices/virtual/ctn91xx/ctn91xx_filter0_2
  E: MAJOR=231
  E: MINOR=9
  E: SUBSYSTEM=ctn91xx
  P: /devices/virtual/ctn91xx/ctn91xx_filter0_3
  N: ctn91xx_filter0_3
  S: ceton/ctn91xx_filter0_3
  E: DEVLINKS=/dev/ceton/ctn91xx_filter0_3
  E: DEVNAME=/dev/ctn91xx_filter0_3
  E: DEVPATH=/devices/virtual/ctn91xx/ctn91xx_filter0_3
  E: MAJOR=231
  E: MINOR=10
  E: SUBSYSTEM=ctn91xx
  P: /devices/virtual/ctn91xx/ctn91xx_filter0_4
  N: ctn91xx_filter0_4
  S: ceton/ctn91xx_filter0_4
  E: DEVLINKS=/dev/ceton/ctn91xx_filter0_4
  E: DEVNAME=/dev/ctn91xx_filter0_4
  E: DEVPATH=/devices/virtual/ctn91xx/ctn91xx_filter0_4
  E: MAJOR=231
  E: MINOR=11
  E: SUBSYSTEM=ctn91xx
  P: /devices/virtual/ctn91xx/ctn91xx_filter0_5
  N: ctn91xx_filter0_5
  S: ceton/ctn91xx_filter0_5
  E: DEVLINKS=/dev/ceton/ctn91xx_filter0_5
  E: DEVNAME=/dev/ctn91xx_filter0_5
  E: DEVPATH=/devices/virtual/ctn91xx/ctn91xx_filter0_5
  E: MAJOR=231
  E: MINOR=12
  E: SUBSYSTEM=ctn91xx
  P: /devices/virtual/ctn91xx/ctn91xx_mpeg0_0
  N: ctn91xx_mpeg0_0
  S: ceton/ctn91xx_mpeg0_0
  E: DEVLINKS=/dev/ceton/ctn91xx_mpeg0_0
  E: DEVNAME=/dev/ctn91xx_mpeg0_0
  E: DEVPATH=/devices/virtual/ctn91xx/ctn91xx_mpeg0_0
  E: MAJOR=231
  E: MINOR=1
  E: SUBSYSTEM=ctn91xx
  P: /devices/virtual/ctn91xx/ctn91xx_mpeg0_1
  N: ctn91xx_mpeg0_1
  S: ceton/ctn91xx_mpeg0_1
  E: DEVLINKS=/dev/ceton/ctn91xx_mpeg0_1
  E: DEVNAME=/dev/ctn91xx_mpeg0_1
  E: DEVPATH=/devices/virtual/ctn91xx/ctn91xx_mpeg0_1
  E: MAJOR=231
  E: MINOR=2
  E: SUBSYSTEM=ctn91xx
  P: /devices/virtual/ctn91xx/ctn91xx_mpeg0_2
  N: ctn91xx_mpeg0_2
  S: ceton/ctn91xx_mpeg0_2
  E: DEVLINKS=/dev/ceton/ctn91xx_mpeg0_2
  E: DEVNAME=/dev/ctn91xx_mpeg0_2
  E: DEVPATH=/devices/virtual/ctn91xx/ctn91xx_mpeg0_2
  E: MAJOR=231
  E: MINOR=3
  E: SUBSYSTEM=ctn91xx
  P: /devices/virtual/ctn91xx/ctn91xx_mpeg0_3
  N: ctn91xx_mpeg0_3
  S: ceton/ctn91xx_mpeg0_3
  E: DEVLINKS=/dev/ceton/ctn91xx_mpeg0_3
  E: DEVNAME=/dev/ctn91xx_mpeg0_3
  E: DEVPATH=/devices/virtual/ctn91xx/ctn91xx_mpeg0_3
  E: MAJOR=231
  E: MINOR=4
  E: SUBSYSTEM=ctn91xx
  P: /devices/virtual/ctn91xx/ctn91xx_mpeg0_4
  N: ctn91xx_mpeg0_4
  S: ceton/ctn91xx_mpeg0_4
  E: DEVLINKS=/dev/ceton/ctn91xx_mpeg0_4
  E: DEVNAME=/dev/ctn91xx_mpeg0_4
  E: DEVPATH=/devices/virtual/ctn91xx/ctn91xx_mpeg0_4
  E: MAJOR=231
  E: MINOR=5
  E: SUBSYSTEM=ctn91xx
  P: /devices/virtual/ctn91xx/ctn91xx_mpeg0_5
  N: ctn91xx_mpeg0_5
  S: ceton/ctn91xx_mpeg0_5
  E: DEVLINKS=/dev/ceton/ctn91xx_mpeg0_5
  E: DEVNAME=/dev/ctn91xx_mpeg0_5
  E: DEVPATH=/devices/virtual/ctn91xx/ctn91xx_mpeg0_5
  E: MAJOR=231
  E: MINOR=6
  E: SUBSYSTEM=ctn91xx
40: PCI 400.0: 0400 Multimedia video controller
  [Created at pci.319]
  Unique ID: Ljo_.FNY11H5lOa0
  Parent ID: I+Ba.kfTGFHKsqc1
  SysFS ID: /devices/pci0000:00/0000:00:15.1/0000:04:00.0
  SysFS BusID: 0000:04:00.0
  Hardware Class: graphics card
  Model: "Multimedia video controller"
  Vendor: pci 0x1b7c 
  Device: pci 0x0004 
  SubVendor: pci 0x1b7c 
  SubDevice: pci 0x0004 
  Revision: 0x01
  Driver: "ctn91xx"
  Driver Modules: "ctn91xx"
  Device File: enp4s0
  Memory Range: 0xfe200000-0xfe21ffff (rw,non-prefetchable)
  Memory Range: 0xfe220000-0xfe22ffff (rw,non-prefetchable)
  IRQ: 17 (149092 events)
  HW Address: 00:22:2c:ff:ff:ff
  Module Alias: "pci:v00001B7Cd00000004sv00001B7Csd00000004bc04sc00i00"
  Driver Info #0:
    Driver Status: ctn91xx is active
    Driver Activation Cmd: "modprobe ctn91xx"
  Config Status: cfg=no, avail=yes, need=no, active=unknown
  Attached to: #30 (PCI bridge)
72: None 00.0: 10701 Ethernet
  [Created at net.124]
  Unique ID: 1N3t.ndpeucax6V1
  Parent ID: Ljo_.FNY11H5lOa0
  SysFS ID: /class/net/enp4s0
  SysFS Device Link: /devices/pci0000:00/0000:00:15.1/0000:04:00.0
  Hardware Class: network interface
  Model: "Ethernet network interface"
  Driver: "ctn91xx"
  Driver Modules: "ctn91xx"
  Device File: enp4s0
  HW Address: 00:22:2c:ff:ff:ff
  Config Status: cfg=no, avail=yes, need=no, active=unknown
  Attached to: #40 (Multimedia video controller)

When I run /sbin/ifconfig -a, it has an entry that looks like this:

> /sbin/ifconfig -a
enp4s0    Link encap:Ethernet  HWaddr 00:22:2C:FF:FF:FF  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:6624 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2289780 (2.1 Mb)  TX bytes:0 (0.0 b)

Here is the in README file for the drivers (not much here as the manufacturer doesn’t support linux, only provides drivers “as is”):

*                                  Installation

Install make, gcc, perl, kernel-devel and kernel-headers for your distribution. 
Note: your running kernel is the same as the kernel-header and kernel-devel 
installed. Then run:
sudo make install
sudo modprobe ctn91xx

*                                  Usage

You should see a network interface when you run ifconfig -a called ctn0

You can set a static IP address on the subnet (don't
use or just use a dhcp client to get an IP address for it.

The InfiniTV device webpage will be available at
From there you can tune via frequency or channel number. Only ClearQAM and
CCI=0 content is available on linux due to lack of DRM support.

Access video via a special device file created under:

You can run "mplayer -cache 8192 /dev/ceton/ctn91xx_mpeg0_0" to play video
off the first tuner. Depending on your system, extra buffering via the shell 
might improve performance. E.g. 
cat /dev/ceton/ctn91xx_mpeg0_0 | mplayer -cache 8192 -

*                              Multiple Cards
More than one InfiniTV is handled by creating more network interfaces
(ctn1,ctn2,etc...). The IP assignment scheme is:

Based on that, when I run ifconfig -a I should have a device called ctn0. I don’t. However, I’ve got enp4s0. When I look in hardware info, enp4s0 is using the ctn91xx driver. So I think that’s the device I need. However, it does not have an IP address, and, if it is the right device, it should have one.

I’ve also found this link which gives additional setup information:

From that, I think it’s saying that since I’m using static IP addressing on this machine (and network), I need to manually assign the card the address of It will then give me an address of as the control interface. The problem is that I can’t figure out how to add that IP address to that card. It doesn’t show up in Network Settings, only my Realtek onboard NIC shows up. I tried manually adding it via Netwrok Settings by settins up an Ethernet device (0), using a kernel module of ctn91xx, and setting the IP address to, and mask of That didn’t do anything.

Does anybody have a clue how I can assign this card an IP address?

I’ll ask another way…

What file can I edit to change the network settings for a network adapter in openSUSE 13.1?

Never mind. I figured it out on my own.

In case anybody else is trying to get this working on their system, here’s what I did:

Once the drivers are installed and working, run

/sbin/ifconfig -a

You should see the InfiniTV card listed as one of the devices, but not under the ctn0 name that the documentation specifies. You can tell the InfiniTV card because the MAC address will be (or very similar to): 00:22:2C:FF:FF:FF. Note the name of the device. On my system it was, “enp4s0”.

YAST > Network Settings > Add
On the Address tab, set the IP Address to “”. Don’t change anything else here.
On the Hardware tab, under “Udev rules” there is a box titled “Device Name”. Click the Change button next to that box. Type in the name of the device as listed in the results of your /sbin/ifconfig -a command. For me, that was “enp4s0”.
Click “OK”.
Click “Next”
Click “Ok”

In your browser, go to It should work.

I hope that helps somebody else.

Just wanted to say thanks for this. It saved me a lot of time. I’m using 13.2 with a “Centon InfiniTV 6” card and it worked just as you said. My card showed up as enp10s0.