Monthly Archive for February, 2011

QLogic QLE73xx InfiniBand adapters, QDR, ib_qib, OFED 1.5.2 and Debian Squeeze

A few weeks ago, I’ve had to look into getting a QLogic QLE7342 InfiniBand adapter working on a Debian Squeeze system, with OFED 1.5.2. This post will probably save quite some time to anyone trying to do the same; it applies to all the QLogic adapters supported by the ib_qib kernel module.

Note: on the ibverbs side of things, the adapters are supported by the ipath plugin, just like older QLogic adapters (that use the ib_ipath kernel module).

First of all: grab a recent version of the ofa-kernel package. The ib_qib module in ofa-kernel from OFED 1.5.2 did not work at all for me. I used the ofa-kernel snapshot from 20110203.

There are two things to know about the QLogic adapters:

  • they don’t autodetect the fabric speed by default, a dedicated utility has to be used to set the speed(s)
  • the driver exports a sysfs-like pseudo-filesystem, ipathfs, that needs to be mounted

QLogic offers a complete IB stack based on OFED and dubbed “QLogic OFED+”. The complete package weighs in at over 500 MB and contains the QLogic-blessed drivers, OFED stack, libraries and, of utmost importance to us, the QLogic-specific utilities.

Unfortunately, as simple as the QLogic utilities are, they don’t come with source. The package also only exists for RedHat 4 and 5.

So, go to the QLogic support website, select your hardware and download the QLogic OFED+ Host Software for RHEL 5 package. In the tarball, one directory contains the OFED stack and another contains all the utilities (QLogic-Tools.*).

For setting the adapter speed, you’ll want the iba_portconfig utility along with the initscript (shipped as iba_portconfig.sh). The desired adapter speed is set in the initscript by choosing the proper arguments to iba_portconfig (-s 1 for SDR, -s 2 for DDR, -s 4 for QDR or any combination thereof).

The iba_portconfig initscript must run after the drivers have been loaded. Which brings us to loading the driver and mounting the ipathfs.

This is all handled by the openibd initscript provided in ofa-kernel (under ofed_scripts/) and its companion script dedicated to QLogic adapters, truescale.cmds.

This initscript will load the OFED stack and drivers; if a QLogic adapter is present, it’ll mount the ipathfs in the right place.

Voila, once this is done, the adapter should happily report itself ACTIVE/LinkUp.

forked-daapd: future directions

I’ve got a few mails lately enquiring about the lack of visible activity on forked-daapd in recent times. Well, for one, I’ve been busy with other things, but there’s also been some non-public activity.

So, here’s what should happen in the next few months, in no particular order:

  • overhaul of the database schema and code;
  • metadata handling will (finally, probably) move away from ffmpeg;
  • release of the libdispatch-based forked-daapd code.

The database overhaul will bring a much-needed speedup on small devices and big libraries. It’s being worked on, but it ground to a halt with new year and all. Hopefully it’ll resume soon.

I’m also giving up on ffmpeg for metadata extraction. It doesn’t work well at all (as everybody knows by now) and it’s actually getting worse and worse. With the ffmpeg takeover/fork (call it whatever you want) it’s unclear what’s going to happen on this front. So I’m giving up and the metadata scanner will probably switch to using TagLib (one more dependency, yay).

Last, but definitely not least, the libdispatch codebase should finally see the light at the end of the tunnel in the coming months. I’ve been working on this since July last year, moving away from libevent. If you never heard about libdispatch, or Grand Central Dispatch, read my previous post on the subject. I’ll talk about it in more details at a later date.

Finally, as far as Squeeze is concerned, I plan to provide forked-daapd backports as long as it’ll be practical to do so.

This is it for now. I don’t have a “one more thing” in my sleeve, sorry. Time is at a premium right now, so big things have to wait.

pommed v1.36/v1.37: updates, fixes, MacBook7,1

pommed v1.36 is out and brings support for the MacBook7,1, along with a few fixes and updates.

A typo in the pmac keyboard backlight has been fixed, so fading now works there too. Product IDs for the ANSI and JIS keyboard variants for pmac machines were also added. It’s been like forever since I last touched that code; not a lot of people still use those (great) machines.

This release also contains a small update that will make it compatible with future kernel releases as applesmc will no longer have a fixed a name and location in sysfs.

Update: I just noticed a bug in 1.36, so 1.37 is out now. It also contains two patches that were submitted through Alioth.