self-made HAL and iPod problem on FC4

This was originally going to be a post bitching about how much of a pain in the ass FC4 had been for me when compared to its older brother, FC3. However, it turns out the problem I was having that almost sent me back to FC3 was of my own doing.

When FC3 first came out, it didn’t have support for Firewire built into its kernel, so I’ve been hand compiling a kernel since then so I could use my iPod. When I installed FC4, I just used my .config and built a kernel for FC4. This was the source of my undoing and of losing a few hours debugging.

The show stopper that almost sent me back to FC3 was that I couldn’t get my Firewire based iPod working with FC4. I couldn’t find any reports of this problem, so I figured it had to be something unique to me. I finally found this series of posts from the HAL mailing list. This pointed out that it was a kernel problem.

I rebooted and dropped back to the latest Fedora-supplied kernel and lo-and-behold, it worked. So, it turns out that the way Firewire reports that device type in the kernel changed for the iPod. Its become more specific, which is not a problem, but it introduced a new type that the current version of HAL that comes with FC4 was unaware of.

The kernel used to report the iPod as (emphasis mine):

Vendor: Apple     Model: iPod              Rev: 1.53
Type:   Direct-Access                      ANSI SCSI revision: 02

It now reports it as:

Vendor: Apple     Model: iPod              Rev: 1.53
Type:   Direct-Access-RBC                  ANSI SCSI revision: 02

To fix this, I took the patch from that first post I linked to above and the hal src rpm from FC4, and merged them together and rebuilt. Boom, it works as it should. I’ve put a diff of my changes to hal.spec up, in case anyone else wants to redo this.

One thought on “self-made HAL and iPod problem on FC4”

  1. Heh. I had similar trouble with getting wireless to work. In FreeBSD, you have to do a magic NDIS thing to get the Windows drivers to work in FreeBSD. In Linux, I kept failing at my attempts to recompile the kernel to support this, until, per a suggestion from my boss, I dug a bit and found that FC4 was actually already set up to do wireless, only it was broken because its didn’t have the driver installed, just the framework, and the reason the driver wasn’t installed is because you had to click a form agreeing to Intel’s legal requirements to download the driver files to put in the right place and bewm, it works.

    Er, but what I meant to say was, I did some checking . . .

    YM “Lo and behold” . . . HTH 🙂

    -danny

Leave a Reply