Firewire drives not recognized when I load sbp

Jim Pryor lists+freebsd-firewire at jimpryor.net
Sat Aug 6 16:16:22 UTC 2011


I also posted this to the Peripheral Hardware section of the forums.
Apologies if it's inappropriate to also mail here. This mailing list
seems the right place to discuss my issue, but it looks like it's been
very quiet for the past year.


What I'll call Computer Bad: Mac mini (Intel Core 2), was running
FreeBSD 8.2-release, tried upgrading to 8-STABLE, but these issues
persist. Has a single Firewire 400 port.

Device 1: a dual Firewire enclosure, has both a Firewire 400 port and
two Firewire 800 ports. Contains two drives.

Device 2: a pocket-sized Firewire enclosure, has one Firewire 400 and
one Firewire 800 port.

Device 3 is this: <http://tech.acomdata.com/minipal.asp>. It attaches to
the mini via Firewire and USB, and provides a hub for each, and
additionally has a drive on the Firewire bus. We can ignore the USB
aspects of this.

I'll compare against Computer Good: which is a Sony Vaio, whose details
probably not important, except it's also running FreeBSD 8-STABLE. After
I do a `kldload sbp` on this machine, and attach either of Device 1 or
2, or both of them in a chain, they all are immediately recognized and
show up as /dev/da0, da1, and da2.

However that's just for testing. I need to get these devices recognized
on Computer Bad.

And on Computer Bad, **when Device 3 is in the mix**, and the other
devices are chained off it, I can do so--- although it takes some
voodoo. I cannot have the sbp module loaded at boot time; if I do so the
boot will hang until I disconnect or power down all attached Firewire
devices. However, if I wait until boot has completed, then do a `kldload
sbp`, once or twice the devices were then recognized. Most often,
though, I have to do a dance of unplugging the devices, replugging them,
power-cycling them, fwcontrol -r'ing, and so on. If there's a system
that works reliably, I haven't been able to find it. Nor have I found
any way to make this work solely from the commandline. `camcontrol
rescan all` hangs until I disconnect or power down the devices.
`fwcontrol -r` resets the bus, but the devices don't show up. And so on.
However, with some persistence at the cable/power-cycling dance, I have
always been able to get the drives recognized when they're chained off
of Device 3. And once the drives get recognized, they give me no further
trouble during that session. Even if I then power Device 3 down. I've
transferred 1 TB of data to Device 1, I think without any trouble.

I'd live with this if I could. However, I can't keep Device 3 in this
setup; it's required elsewhere.

And **without Device 3**, I can't find any way to get Devices 1 and 2,
either together or solo, to be recognized on Computer Bad. I've tried
connecting to either their Firewire 400 or their Firewire 800 ports
(though on the other side, Computer Bad is only attempting Firewire
400). I've tried doing the `kldload sbp` before connecting them, or
after, or whatever, and no luck. I've tried `sysctl -w
hw.firewire.sbp.auto_login=0` and `sysctl -w
hw.firewire.nocyclemaster=1` at various points, but this doesn't seem to
change anything.


These problems showed up when Computer Bad had a fresh 8.2-release
installation. I tried upgrading to 8-STABLE, which is what Computer Good
had, but no joy there.

I've been searching and searching but haven't found much, even ideas to
try. Any suggestions would be much appreciated.

Here are some details.

1. Here's uname -a, pciconf -lcv, kldstat, and sysctl hw.firewire on Computer Good:
   <http://dpaste.com/hold/588061/>
2. Here's the stretch of dmesg where the devices are connected and
   successfully recognized on Computer Good:
   <http://dpaste.com/hold/588063/>
3. And here's what I then see on Computer Good (fwcontrol, fwcontrol -t,
   and camcontrol devlist -v): <http://dpaste.com/hold/588066/>

4. Here's uname -a, pciconf -lcv, kldstat, and sysctl hw.firewire on
   Computer Bad: <http://dpaste.com/hold/588062/>. Notice the
   hw.firewire.sbp.auto_login is at 0, that's because following some
   diagnostic advice I found while searching I disabled that in
   /boot/loader.conf. It doesn't seem to affect my results at all.
5. Here's the stretch of dmesg where the devices are connected but fail
   to be recognized on Computer Bad: <http://dpaste.com/hold/588076/>
6. Here are fwcontrol, fwcontrol -t, and camcontrol devlist -v on
   Computer Bad, before kldloading sbp and attaching the devices:
   <http://dpaste.com/hold/588068/>
7. Here are the results of the same, after kldloading sbp and attaching
   the devices: <http://dpaste.com/hold/588069/>. At this point, doing
    `sysctl -w hw.firewire.sbp.auto_login=1; fwcontrol -r` seems to produce
    no change. Allowing sbp to load with auto_login=1 from the beginning
    produces no change either.

At some points in my experimenting, I was able to get one or two
additional entries in the `fwcontrol` output on Computer Bad, but I
can't reproduce that now. And I didn't notice any additional progress
when that occurred. 

-- 
Jim Pryor
profjim at jimpryor.net


More information about the freebsd-firewire mailing list