Category Archives: Red Hat Enterprise Linux

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

My thoughts on RHEL 5.1 installation

I decided to test RHEL 5.1 to check what changed since RHEL 4. As I usually do a network installation, I had a few surprises.

The installation was done with qemu (with kqemu module) on an AMD Athlon(tm) XP 1800+ processor. The virtual ram was set to 256MB. The installation was done an an LVM LV, and took 25 minutes (pretty good I believe).

I tried to do a minimal installation, so I deselected all the available packages from the list. I ended up with 366 rpms and 935 MB on the disk (excluding /boot).

Look back in the anaconda-ks.cfg seems like that not the minimal installation as this is the %packages section:


I couldn’t find on the CDs a file to explain each of the groups here. The manuals talk about comps.xml for this info, but there is no such file on the 5 CDs. Such files are available for the extra software on the CDs like the cluster / virtualization software.

I also was surprised to see that I needed 3 CDs for the minimal installation. Although cd #2 was needed only for:

  • libgcj
  • java-1.4.2-gcj-compat
  • gjdoc
  • jpackage-utils

and cd #3 only for:

  • wvdial
  • isdn4k
  • minicom
  • lrzsz
  • libwvstreams
  • antlr

I guess these could easily be moved to the first CD and save people the CD changes which wastes time while babysitting the installation instead of doing it completely unattended. Also, seems like by removed the @dialup and @java groups we can be satisfied with only the #1 CD.

This also brought to my attention the method red hat choose on which CD each RPM will be placed. I’m sure doing a popularity contest like Debian is hard for a commercial distribution, but still knowing the method behind the CDs will be useful.

Generaly speaking, the installation went fine. I can start testing the system itself. about testing the


Filed under Red Hat Enterprise Linux

Why does Oracle’s applications needs xscreensaver in order to run ?

Working with some of Oracle’s products, made me wonder about their installation requirements as appears in the documentation.

Let start with Oracle┬« Database 10g Release 2. The installation guide for linux x86 says under “Checking the Software Requirements” it needs the following RPMs for RHEL 4.0:

  • binutils
  • compat-db
  • compat-libstdc++-296
  • control-center
  • gcc
  • gcc-c++
  • glibc
  • glibc-common
  • gnome-libs
  • libstdc++
  • libstdc++-devel
  • make
  • pdksh
  • sysstat
  • xscreensaver
  • setarch

Most of them are valid requirements when needing to compile C/C++ code (as it may be done inside the database). But why do I need to install gnome’s libraries, gnome’s control-center and xscreensaver?

I fail to see how are these 3 are related to running a database. It is reasonable to require these packages for running a graphical installation, but that’s not a runtime requirement! I even tested that with checking the database opened files while it’s been running.

I really don’t want to have these packages installed on servers unless I must, as I believe server should contain the minimal software required on top of the distribution default installation.

Another funny (and weird) fact is that for SELS 9.0 there isn’t any requirement for gnome’s control-center. For RHEL 3.0 there aren’t any requirements for the 3 packages…

Mentioning optional requirements are probably the best why to solve this, unless there’s some real requirement that eludes me. John Smiley’s “Installing Oracle Database 10g Release 2 on Linux x86″ has this for openmotif21 which is mentioned as needed only for Oracle demos.

The same happens for Oracle┬« Enterprise Manager in installation guide for linux x86 10g Release 2 (10.2), but this time the package requirements for RHEL 3.0 and SELS 9.0 don’t mention any of the 3 packages, whilst they are required for RHEL 4.0. Very weird.

The status for Oracle Application Server 10g Release 3 is similar.

I would be happy if someone could shed some light on the issue.


Filed under Proprietary software, Red Hat Enterprise Linux

Who moved my PEs (or why does pvmove sucks on linux) ?

Yesterday I wanted to extend an existing LVM VG with some central storage disks. In the process, I notice the VG is built upon local & external disk, which isn’t according to my standards.

So I decided to extend the VG with the external disks, and then use pvmove command to move all the PE from the internal disk before reducing the VG. The problem is, that on RHEL 4.4, the pvmove command hangs during it’s work, never returns to the prompt, and locks all the other LVM commands.

Seems that for little amounts of PEs the command works, but for 10G disks it hangs. As nothing else helped, I was forced to hard boot the server using to power button. Running the command in single user also doesn’t effect the result, although non other user/services are running.

RHEL 4.4 has LVM2 version 2.02.06, RHEL 4.5 has version 2.02.21 and RHEL 4.6 has version 2.02.27. Reading upstream’s changelog seems there isn’t any change regarding pvmove, although it’s still worth testing if upgrade helps.

Version 2.02.29 has “Refactor pvmove allocation code” in its changelog, but it will take time before this version will be officially available for RHEL (fedora 8 only has 2.02.28). Hoepfully it will solve the problem, as my HP-UX colleagues are laughing on my expense… And that I have to invest more time in mimicking pvmove work manually.


Filed under Red Hat Enterprise Linux