<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    <br>
    <div class="moz-cite-prefix">On 09/03/2015 17:40, Phil Perry wrote:<br>
    </div>
    <blockquote cite="mid:54FDDB26.50109@elrepo.org" type="cite">
      <pre wrap="">
On 06/03/15 15:42, Nick Howitt wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">Hi,

I've been using kmod drivers for a few years now - the r8168, e1000e (no more) 
and igb and I've recently bumped into an oddity while helping someone on the 
ClearOS forums 
<a class="moz-txt-link-rfc2396E" href="http://www.clearfoundation.com/component/option,com_kunena/Itemid,232/catid,28/func,view/id,69006/">&lt;http://www.clearfoundation.com/component/option,com_kunena/Itemid,232/catid,28/func,view/id,69006/&gt;</a>. 
I've been used to the idea of the modules installing in a "week-updates" 
directory so, for example the r8168 driver installs to 
/lib/modules/2.6.32-504.8.1.v6.x86_64/weak-updates/r8168/r8168.ko. Compiling the 
e1000e and igb drivers from source against the ClearOS kernel (which is a small 
bit different to RHEL), I then install the drivers and I notice the igb one 
installs to /lib/modules/2.6.32-431.23.3.v6.x86_64/extra/igb/igb.ko. Subsequent 
to that ClearOS updated and a new kernel was installed 
(2.6.32-504.8.1.v6.x86_64). I rebooted the server and it showed me running the 
stock version of the igb, so the kmod one was not carried forward.

Someone else has installed my e1000e driver I compiled on the older kernel and 
again it is not being loaded as it has installed into 
/lib/modules/2.6.32-431.3.1.v6.x86_64/extra/e1000e.

Have I completely misunderstood things or is something wrong. The intel drivers 
are only being used with the kernel they were compiled for.

Regards,

Nick

</pre>
      </blockquote>
      <pre wrap="">
Hi Nick,

I'm not familiar with the differences between ClearOS and RHEL so I'll
explain how things work on RHEL and leave you to work out if there are
any significant differences.

kmod packages install their driver(s) to the /extra/ directory in the
kernel against which they were compiled. For example, if you compiled
the driver against kernel-2.6.32-431.23.3.v6.x86_64 then you would
expect to find the file at:

/lib/modules/2.6.32-431.23.3.v6.x86_64/extra/igb/igb.ko

You can double check this by examining your RPM package, for example:

rpm -qlp kmod-foo-1.2-3.el6.x86_64.rpm

which should show the above.

The weak-modules script is then run by the package and will symlink the
above driver to the /weak-updates/ directory for each kernel that the
module is kABI-compatible with. If it's not compatible it won't get weak
linked.

As you are aware, modinfo will tell you the full path to the driver
being used so you can easily check if your kmod driver is being used
over the distro kernel driver.

As a side note, I would recommend getting your users to reboot after
installing / updating a kmod driver. Experienced users can get away with
unloading the old module and reloading the new but rebooting takes away
any doubt for less experienced users and eliminates one more potential
issue when troubleshooting from afar.

Hope that helps,

Phil

_______________________________________________
elrepo mailing list
<a class="moz-txt-link-abbreviated" href="mailto:elrepo@lists.elrepo.org">elrepo@lists.elrepo.org</a>
<a class="moz-txt-link-freetext" href="http://lists.elrepo.org/mailman/listinfo/elrepo">http://lists.elrepo.org/mailman/listinfo/elrepo</a>
</pre>
    </blockquote>
    Hi Phil,<br>
    <br>
    Thanks for the reply. After I posted I tried running a modified
    post-install script:<br>
    <blockquote>/sbin/weak-modules --add-kernel --dry-run --verbose
      2.6.32-504.8.1.v6.x86_64<br>
    </blockquote>
    and I got the following message:<br>
    <blockquote>Module igb.ko from kernel 2.6.32-431.23.3.v6.x86_64 is
      not compatible  with kernel 2.6.32-504.8.1.v6.x86_64 in symbols:
      set_ethtool_ops_ext<br>
    </blockquote>
    From contacting someone else this looks very similar to <a
      href="http://elrepo.org/bugs/view.php?id=517">this Elrepo bug</a>
    so I am suspecting the update to the 2.6.32-504.8.1.v6 kernel broke
    compatibility. It seems to have happened on both Intel drivers but
    not the Realtek r8168 or r8101 drivers. This is a PITA for me and
    probably nothing you can do anything about so I'll have to recompile
    and keep 2 versions for people on different kernel versions.<br>
    <br>
    Regards,<br>
    <br>
    Nick<br>
  </body>
</html>