Update: 10 GBit Home Network

First of all my 10 Gigabit connection is still working. Over the last year I used varying linux kernels between 3.18 and 4.0. But in terms of features those kernels are over 2 years old. Therefore this post deals with the issues from last time concerning kernel releases 4.1 and greater.

I guess there are many methods to fix this problem, but I started to debug with git-bisect because I know which kernel release did (not) work.

git-bisect

If you just want a short explanation about git-bisect, you are right here, but for more details there is a good guide how to bisect a kernel on the gentoo wiki. Basically we tell the git-bisect tool which git version works and which one doesn’t. But before starting we have to clone the official git repository.

cd /usr/src
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-stable

Then copy your kernel configuration file (.config) into /usr/src/linux-stable. Create a symlink from  /usr/src/linux to the new repository.

cp linux/.config linux-stable 
ln -s linux-stable linux

The we start bisect and mark the good and the bad kernel version. After that we build the new custom kernel and reboot.

cd linux
git bisect start | tee -a /root/bisect.log
git bisect good v3.18.45 | tee -a /root/bisect.log
git bisect bad v4.1.15 | tee -a /root/bisect.log
make olddefconfig && make prepare && make modules_prepare && make -j5 && make modules_install && make install && emerge -qv @module-rebuild && grub-mkconfig -o /boot/grub/grub.cfg
reboot

Then we need a method to determine if this custom kernel has the issues. I copied a few linux ISOs over the 10 Gigabit connection to have a reproducible test case. If everything worked you have a good kernel, otherwise a bad one.

cd /usr/src/linux
git bisect bad | tee -a /root/bisect.log
#or
git bisect bad | tee -a /root/bisect.log

Afterwards build a new kernel, reboot and test again. In my case it took 14 steps to find the first bad commit. This doesn’t mean that there is something wrong in this commit, but it is a sign that this commit triggers some incompatibility in your setup. So, this commit changed/fixed the behaviour of the Active State Power Management (ASPM) from PCIe. My solution was to disable ASPM in my bios and now everything works with kernel version 4.9.9.

As always, feel free to comment, if you liked this post or have questions.

3 thoughts on “Update: 10 GBit Home Network”

  1. Hi,

    This is shailendra. I am too struggling setting up my Solarflare 10 G ethernet adapter. In various attempts it was not even visible in ifconfig. After installing firmwares it appeared but was not getting active. After searching a lot I have come across your post. I will definitely give it a try.

    Thanks

    1. Hi,

      SFC kernel object it installed but wanted to know if you were able to run onload on gentoo because in my case its not working.

      Thanks
      Shailendra

      1. Hi,
        maybe these tools will help you:
        dmesg: shows kernel messages
        lsmod: shows loaded kernel modules
        Just grep their output for your device name
        If you built your device driver as a module you can use modprobe to load them manually.

Leave a Reply

Your email address will not be published. Required fields are marked *