Fixing Network Interface Card on Debian with Asrock C3558D4I-4L

Date: 18. 02. 2019
Author: Ryo

The problem

Asrock C3558D4I-4L (direct link doesn't really work) comes with Intel SoC C3558 Denverton, which includes Intel's integrated LAN controller. When I tried to run Debian 9x or Ubuntu 16.x (As suggested on Manual and website), it did not recognise Ethernet card. My supervisor have tried Ubuntu 18.x and it seemd to have recognised just fine. So I checked the driver that it was loading using > lspci -k which displays kernel module used for each pci devices detected. Turns out, it was using ixgbe driver from Intel which was newer than Debian 9x or Ubuntu 16.x, which seems to be the cause of the issue. You can check the version of ixgbe using > modinfo ixgbe , maybe pipe to grep version or something.

Initially, I suspected that Marvell 88E1543 interface driver support but it wasn't the case.

Solution - Installing newer ixgbe driver

Note: I have only tried this on Debian 9.x.

Luckily I had a Debian 9.x machine running already with internet connection, so I've downloaded the driver source code from Intel's website ( https://downloadcenter.intel.com/download/14687/Intel-Network-Adapter-Driver-for-PCIe-Intel-10-Gigabit-Ethernet-Network-Connections-Under-Linux-) and proceeded to build this.

The build process was straight forward. I needed to install two set of packages from the repo which installed dependency needed for rest of the process:

After installing above set of packages with its dependencies, which are also in debian dvd-2 iso image (debian9.x-DVD-2.iso from this download page), I could actually just build it by moving to src/ and running > make .

You'll see ixgbe.ko in the same directory.

Take this to the said system by some means; USB memory stick or if you can't get to the machine maybe via IPMI? (I've not looked at that option yet).

Then first unload ixgbe if loaded already by > rmmod ixgbe than use > insmod [path to ixgbe.ko] to insert the one you have just compiled to see if it works. Try > ip to see if you see enp5s0f0, enp5s0f1, enp6s0f0, enp6s0f1 listed. Then this new driver should be working.

After this initial test, I'd suggest that you'd install this properly. Since once it loads, you can get to the network, above two packages (and its dependencies) should be easy to fetch via > apt install and execute > make install . After this, execute > make . As mentioned earlier, this is in the one of the 'extra disks' for debian installer, so if you are not connected to the internet just yet, you can mount it to /media/cdrom using > mount [path to device with dvd] /media/cdrom and execute > apt install .