How do I determine if a driver has changed from one release to the next?

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux (All Versions)

Issue

  • How to determine if a particular driver has been changed from one RHEL release to the next.
    e.g. RHEL6.1 to RHEL6.2 or RHEL6.1 to RHEL6.1.1.
    

Resolution

  • Some drivers are updated significantly enough to warrant a change in the driver version number.
  • One example would be tg3 being updated from version 3.116 in RHEL6.1 to version 3.119 in RHEL6.2.

  • For tg3 and other network drivers, the version number can be displayed by the ethtool -i command for both releases and compared.

     Note: Regarding the updating RHEL source code, typically, the RHEL driver
     source code is modified to bring the RHEL driver in alignment with the upstream
     community's driver but there are no guarantees that the RHEL driver is 
     exactly the same as the upstream version. 
    
     There is also no guarantee that drivers will change the version number 
     from one RHEL release to the next. This particularly might not happen when 
     the driver is updated via the Extended Update Support (EUS) resulting in a
     Z-Stream Errata, where the change is probably limited to a particular bug 
     fix and is not a wholesale update to keep it in align with the upstream code.  
    
  • There is a value calculated when each driver is built and this value will change when the source code for a driver is modified. This value is called the srcversion.

  • Comparing the value of srcversion of the same driver in two RHEL releases will determine if there has been a code modification.

  • If a particular driver name is known, the modinfo utility can be used to display the srcversion value with a command similar to the following:

modinfo <driver name> | grep srcversion

  • For example:

    $ modinfo tg3 | grep srcversion
      srcversion:     40C96F27FA1DAF15F59A552
    
  • Or for network drivers, the value can be found in the file with the following pathname:

/sys/class/net/<interface name>/device/driver/module/srcversion

  • Here is an example, for the eth0 interface:

    $ cat /sys/class/net/eth0/device/driver/module/srcversion
      40C96F27FA1DAF15F59A552
    
  • Once the value of srcversion is known for one version of a driver (e.g. RHEL6.1), it can be compared to the srcversion value of another (RHEL6.1.1).

  • If these values are the same, then the source code for drivers are identical. If the values are different, then there has been a modification to the driver source code.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.