The benefits of working with GPL drivers

For the last few day I’m having problem with the tg3 driver for Broadcom’s NetXtreme Ethernet NIC on an IBM System x3850 machine with RHEL4 update 4.

The problem was that the tg3 driver recognizes only one NIC and ignores the other, although lspci / lshw can show there are two on board NICs. The weird thing is that I couldn’t find reference to such a problem on google.

IBM’s technical people suggested that I should use an updated driver, a change I’m usually reluctant to do, as some hardware requires proprietary drivers which come as a “black box”. But this time, the driver is licensed under the GPL and is also available in latest kernel releases.

IBM provides a set of pre-built RPMs for RHEL4, but it only covers old updates for RHEL (which also represent minor changes to the kernel installed). With this set IBM also provides a source RPM to build the module yourself. That was easy enough to do, just install rpmbuild, the right kernel development package (usually kernel-`uname -`-devel), install the source RPM and build the custom RPM for your kernel.

I fail to understand why IBM also provides a few more scripts and tools to build the rpm and install the pre-built ones. Every system administrator should be comfortable with using RPMs directly instead of using scripts to run a lot of other stuff before the actual RPM commands.

The updated driver did solve the problem, and I finally can use both NICs.

Having IBM’s stuff is nice, but I wanted to know what options do people have, without using their wrapping over the original driver. So I went to see what Broadcom have to offer.

On their FAQ, Broadcom declare:

To better support users, Broadcom has been actively supporting, maintaining, and testing the in-kernel Linux drivers for the NetXtreme, NetXtreme II, NetLink and 4401 product lines.

I found that Broadcom offer an updated version for the tg3 driver (comparing to RHEL4 update 4) on their NetXtreme Server Drivers page. Clicking the download page showed this message:

The Broadcom Linux Ethernet drivers are licensed under the GNU GPL. The full text of the license is available in the driver archive.

That’s must be a good start (:

Broadcom doesn’t give you pre-built RPMs, but they do provide a source RPM to ease your job. I actually preferred their simple spec file over IBM’s complex spec file.

To conclude, having GPL drivers enable system administrator to build the drivers specifically for their system (operating system, distribution and kernel version), and lower the pressure (or necessity) for vendors to offer pre-built packages for each possible combination.

1 Comment

Filed under Proud to use free software, Red Hat Enterprise Linux

One response to “The benefits of working with GPL drivers

  1. Lee

    Agreed; free software you can work with (or even just docs to write those) are always much better than being handed binaries in a like-’em-or-lump-’em fashion, and I’d encourage every hardware company to… well… get with the program, really.

    That said, I can’t see any legitimate reason for linux’s driver ABIs to change so much and so much. From design/engineering/modularity/maintainability points of view, that worries me.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s