# Weird (very weird) FireWire Problem

## hernejj

I have a FireExpress external USB/Firewire HD case with a 120GB Western Digital Caviar HD inside.  For some strange reason I can't seem to get Linux to recognize the drive at all using Firewire.  It works just fine with USB.

I'm using kernel version 2.4.20 vanilla sources, with firewire, ohci1391, sbp2, scsi, and sd_mod all compiled as modules.  I've tried many combinations of modules/built in...

The drive works fine in Firewire mode under windows.

I'm using a Dell Inspiron 8100

Here is the procedure I go through...

[connect everything] 

power on and boot Linux

insmod scsi_mod

insmod sd_mod

insmod ieee1394

insmod ohci1394

insmod sbp2

rescan-scsi-bus -l -c -w  # Script from www.linux1394.org

And nothing extra shows up in my /dev directory!  (I've tried different orderings of module loading)

At this point, my /procfiles look like so:

cat /proc/scsi/scsi

Attached devices: none

cat /proc/scsi/sbp2/0

IEEE-1394 SBP-2 protocol driver (host: ohci1394)

$Rev: 584 $ James Goodwin <jamesg@filanet.com>

SBP-2 module load options:

- Max speed supported: S400

- Max sectors per I/O supported: 255

- Max outstanding commands supported: 8

- Max outstanding commands per lun supported: 1

- Serialized I/O (debug): no

- Exclusive login: yes

cat /proc/bus/ieee1394/devices

	Node[00:1023]  GUID[474fc000133f2c21]:

	  Vendor ID: `Linux OHCI-1394' [0x000000]

	  Capabilities: 0x0083c0

	  Bus Options:

	    IRMC(1) CMC(1) ISC(1) BMC(0) PMC(0) GEN(0)

	    LSPD(2) MAX_REC(2048) CYC_CLK_ACC(0)

	  Host Node Status:

	    Host Driver     : ohci1394

	    Nodes connected : 2

	    Nodes active    : 1

	    SelfIDs received: 2

	    Irm ID          : [00:1023]

	    BusMgr ID       : [00:1023]

	    In Bus Reset    : no

	    Root            : no

	    Cycle Master    : no

	    IRM             : yes

	    Bus Manager     : yes

And lsmod returns...

lsmod

Module                  Size  Used by    Tainted: P

sd_mod                 10892   0  (unused)

sbp2                   18048   0

ohci1394               18248   0  (unused)

ieee1394               36428   0  [sbp2 ohci1394]

sr_mod                 14424   0  (autoclean) (unused)

scsi_mod               89748   3  (autoclean) [sd_mod sbp2 sr_mod]

NVdriver             1067488  11  (autoclean)

usbcore                65984   1

maestro3               29072   2

3c59x                  28592   1

If more info is needed please let me know...

Anyone know why my drive is not being detected??

*YES* I have tried waiting 5 seconds between module loadings.

----------

## hernejj

Well, I turned on debug output and found out the following:

dmesg returns info when I plug IN the drive, and unplug the drive.

However, turning the drive on/off causes nothing extra to be displayed in dmesg output.  In the 2.5.66 kernel, turning the drive on/off DOES produce output.... hmm......

I'm thinking that the problem lies with the fact that my drive enclosure (CompuCAble FireXpress 350DX) doubles as a firewire hub... I'm guessing that Linux detects the hub... but NOT the drive, and I'm not sure why.

Anyone have any light to shed on this??

----------

## hernejj

Here is my debug session with this problem.

DRIVE OFF, DISCONECTED

cat scsi

Attached devices: none

insmod ieee1394

insmod ohci1394

dmesg

ohci1394: $Rev: 578 $ Ben Collins <bcollins@debian.org>

PCI: Found IRQ 10 for device 02:0f.2

PCI: Sharing IRQ 10 with 00:1f.2

PCI: Sharing IRQ 10 with 02:06.0

PCI: Sharing IRQ 10 with 02:06.1

PCI: Sharing IRQ 10 with 02:0f.0

PCI: Sharing IRQ 10 with 02:0f.1

ohci1394_0: Remapped memory spaces reg 0xd1b19800

ohci1394_0: Soft reset finished

ohci1394_0: Iso contexts reg: 000000a8 implemented: 0000000f

ohci1394_0: 4 iso receive contexts available

ohci1394_0: Iso contexts reg: 00000098 implemented: 0000000f

ohci1394_0: 4 iso transmit contexts available

ohci1394_0: GUID: 474fc000:133f2c21

ohci1394_0: Receive DMA ctx=0 initialized

ohci1394_0: Receive DMA ctx=0 initialized

ohci1394_0: Transmit DMA ctx=0 initialized

ohci1394_0: Transmit DMA ctx=1 initialized

ohci1394_0: Receive DMA ctx=0 initialized

ohci1394_0: Transmit DMA ctx=0 initialized

ohci1394_0: OHCI-1394 1.0 (PCI): IRQ=[10]  MMIO=[f8ffc800-f8ffcfff]  Max Packet=

[2048]

ohci1394_0: request csr_rom address: c82d9000

ohci1394_0: devctl: Bus reset requested

ohci1394_0: IntEvent: 00020010

ohci1394_0: irq_handler: Bus reset requested

ohci1394_0: Cancel request received

ohci1394_0: Got RQPkt interrupt status=0x00008409

ohci1394_0: Single packet rcv'd

ohci1394_0: Got phy packet ctx=0 ... discarded

ohci1394_0: IntEvent: 00010000

ohci1394_0: SelfID interrupt received (phyid 0, root)

ohci1394_0: SelfID packet 0x807f8842 received

ieee1394: Including SelfID 0x42887f80

ohci1394_0: SelfID for this node is 0x807f8842

ohci1394_0: SelfID complete

ieee1394: NodeMgr: Processing host reset for ohci1394

ohci1394_0: PhyReqFilter=ffffffffffffffff

ieee1394: Initiating ConfigROM request for node 00:1023

ieee1394: NodeMgr: raw=0xe000a002 irmc=1 cmc=1 isc=1 bmc=0 pmc=0 cyc_clk_acc=0 m

ax_rec=2048 gen=0 lspd=2

ieee1394: vendor_id=0x000000 [Linux OHCI-1394], capabilities=0x0083c0

ieee1394: Host added: Node[00:1023]  GUID[474fc000133f2c21]  [Linux OHCI-1394]

cat /proc/scsi/scsi

Attached devices: none

insmod sbp2

dmesg -c

scsi0 : IEEE-1394 SBP-2 protocol driver (host: ohci1394)

$Rev: 584 $ James Goodwin <jamesg@filanet.com>

SBP-2 module load options:

- Max speed supported: S400

- Max sectors per I/O supported: 255

- Max outstanding commands supported: 8

- Max outstanding commands per lun supported: 1

- Serialized I/O (debug): no

- Exclusive login: yes

 cat /proc/scsi/scsi

Attached devices: none

 cat /proc/scsi/sbp2/0

IEEE-1394 SBP-2 protocol driver (host: ohci1394)

$Rev: 584 $ James Goodwin <jamesg@filanet.com>

SBP-2 module load options:

- Max speed supported: S400

- Max sectors per I/O supported: 255

- Max outstanding commands supported: 8

- Max outstanding commands per lun supported: 1

- Serialized I/O (debug): no

- Exclusive login: yes

PLUG IN THE CABLE!

ohci1394_0: IntEvent: 00020010

ohci1394_0: irq_handler: Bus reset requested

ohci1394_0: Cancel request received

ohci1394_0: Got RQPkt interrupt status=0x00008409

ohci1394_0: Single packet rcv'd

ohci1394_0: Got phy packet ctx=0 ... discarded

ohci1394_0: IntEvent: 00010000

ohci1394_0: SelfID interrupt received (phyid 0, not root)

ohci1394_0: SelfID packet 0x807f8882 received

ieee1394: Including SelfID 0x82887f80

ohci1394_0: SelfID for this node is 0x807f8882

ohci1394_0: SelfID packet 0x813f84d6 received

ieee1394: Including SelfID 0xd6843f81

ohci1394_0: SelfID complete

ieee1394: NodeMgr: Processing host reset for ohci1394

ohci1394_0: PhyReqFilter=ffffffffffffffff

ieee1394: Initiating ConfigROM request for node 00:1023

 cat /proc/scsi/sbp2/0

IEEE-1394 SBP-2 protocol driver (host: ohci1394)

$Rev: 584 $ James Goodwin <jamesg@filanet.com>

SBP-2 module load options:

- Max speed supported: S400

- Max sectors per I/O supported: 255

- Max outstanding commands supported: 8

- Max outstanding commands per lun supported: 1

- Serialized I/O (debug): no

- Exclusive login: yes

TURING ON DRIVE. LETTING SPIN UP

 dmesg -c

ohci1394_0: IntEvent: 00020010

ohci1394_0: irq_handler: Bus reset requested

ohci1394_0: Cancel request received

ohci1394_0: Got RQPkt interrupt status=0x00008409

ohci1394_0: IntEvent: 00010000

ohci1394_0: SelfID interrupt received (phyid 0, not root)

ohci1394_0: SelfID packet 0x807f8880 received

ieee1394: Including SelfID 0x80887f80

ohci1394_0: SelfID for this node is 0x807f8880

ohci1394_0: SelfID packet 0x813f84d6 received

ieee1394: Including SelfID 0xd6843f81

ohci1394_0: SelfID complete

ieee1394: NodeMgr: Processing host reset for ohci1394

ohci1394_0: PhyReqFilter=ffffffffffffffff

ohci1394_0: Single packet rcv'd

ohci1394_0: Got phy packet ctx=0 ... discarded

ieee1394: Initiating ConfigROM request for node 00:1023

ohci1394_0: IntEvent: 00020010

ohci1394_0: irq_handler: Bus reset requested

ohci1394_0: Cancel request received

ohci1394_0: Got RQPkt interrupt status=0x00008409

ohci1394_0: IntEvent: 00010000

ohci1394_0: SelfID interrupt received (phyid 1, root)

ohci1394_0: SelfID packet 0x803f8496 received

ieee1394: Including SelfID 0x96843f80

ohci1394_0: SelfID packet 0x817f88c0 received

ieee1394: Including SelfID 0xc0887f81

ohci1394_0: SelfID for this node is 0x817f88c0

ohci1394_0: SelfID complete

ohci1394_0: Cycle master enabled

ieee1394: NodeMgr: Processing host reset for ohci1394

ohci1394_0: PhyReqFilter=ffffffffffffffff

ohci1394_0: Single packet rcv'd

ohci1394_0: Got phy packet ctx=0 ... discarded

ieee1394: Initiating ConfigROM request for node 01:1023

ieee1394: Node 00:1023 changed to 01:1023

cat /proc/scsi/sbp2/0

IEEE-1394 SBP-2 protocol driver (host: ohci1394)

$Rev: 584 $ James Goodwin <jamesg@filanet.com>

SBP-2 module load options:

- Max speed supported: S400

- Max sectors per I/O supported: 255

- Max outstanding commands supported: 8

- Max outstanding commands per lun supported: 1

- Serialized I/O (debug): no

- Exclusive login: yes

rescan-scsi-bus.sh

Host adapter 0 (sbp2) found.

0 new device(s) found.

0 device(s) removed.

TURN OFF DRIVE

ohci1394_0: IntEvent: 00020010

ohci1394_0: irq_handler: Bus reset requested

ohci1394_0: Cancel request received

ohci1394_0: Got RQPkt interrupt status=0x00008409

ohci1394_0: IntEvent: 00010000

ohci1394_0: SelfID interrupt received (phyid 0, not root)

ohci1394_0: SelfID packet 0x807f8880 received

ieee1394: Including SelfID 0x80887f80

ohci1394_0: SelfID for this node is 0x807f8880

ohci1394_0: SelfID packet 0x813f84d6 received

ieee1394: Including SelfID 0xd6843f81

ohci1394_0: SelfID complete

ieee1394: NodeMgr: Processing host reset for ohci1394

ohci1394_0: PhyReqFilter=ffffffffffffffff

ohci1394_0: Single packet rcv'd

ohci1394_0: Got phy packet ctx=0 ... discarded

ieee1394: Initiating ConfigROM request for node 00:1023

ieee1394: Node 01:1023 changed to 00:1023

COMPILED SBP2 MOD WITH INTERNAL DEBUGING ON

TURIN OFF DRIVE

rmmod sbp2

insmod sbp2

dmesg -c

ieee1394: sbp2: sbp2_module_init

ieee1394: sbp2: sbp2scsi_detect

ieee1394: sbp2: sbp2_init

ieee1394: sbp2: sbp2_add_host

scsi0 : IEEE-1394 SBP-2 protocol driver (host: ohci1394)

$Rev: 584 $ James Goodwin <jamesg@filanet.com>

SBP-2 module load options:

- Max speed supported: S400

- Max sectors per I/O supported: 255

- Max outstanding commands supported: 8

- Max outstanding commands per lun supported: 1

- Serialized I/O (debug): no

- Exclusive login: yes

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

TURN ON DRIVE

 dmesg -c

ohci1394_0: IntEvent: 00020010

ohci1394_0: irq_handler: Bus reset requested

ohci1394_0: Cancel request received

ohci1394_0: Got RQPkt interrupt status=0x00008409

ohci1394_0: IntEvent: 00010000

ohci1394_0: SelfID interrupt received (phyid 0, not root)

ohci1394_0: SelfID packet 0x807f8880 received

ieee1394: Including SelfID 0x80887f80

ohci1394_0: SelfID for this node is 0x807f8880

ohci1394_0: SelfID packet 0x813f84d6 received

ieee1394: Including SelfID 0xd6843f81

ohci1394_0: SelfID complete

ieee1394: NodeMgr: Processing host reset for ohci1394

ohci1394_0: PhyReqFilter=ffffffffffffffff

ohci1394_0: Single packet rcv'd

ohci1394_0: Got phy packet ctx=0 ... discarded

ieee1394: Initiating ConfigROM request for node 00:1023

RELOAD SBP2

 dmesg -c

ieee1394: sbp2: sbp2_module_init

ieee1394: sbp2: sbp2scsi_detect

ieee1394: sbp2: sbp2_init

ieee1394: sbp2: sbp2_add_host

scsi0 : IEEE-1394 SBP-2 protocol driver (host: ohci1394)

$Rev: 584 $ James Goodwin <jamesg@filanet.com>

SBP-2 module load options:

- Max speed supported: S400

- Max sectors per I/O supported: 255

- Max outstanding commands supported: 8

- Max outstanding commands per lun supported: 1

- Serialized I/O (debug): no

- Exclusive login: yes

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

ieee1394: sbp2: sbp2scsi_queuecommand

RMMOD SBP2

ieee1394: sbp2: sbp2_module_exit

ieee1394: sbp2: sbp2_cleanup

ieee1394: sbp2: sbp2_remove_host

scsi : 0 hosts left.

----------

## cyrillic

I'm using ac-sources rather than vanilla, so my results may be different.

I had to disable DMA support to get sbp2 to work properly with my CD-RW.

```
IEEE 1394 (FireWire) support (EXPERIMENTAL)  --->

<M>   SBP-2 support (Harddisks etc.)

[ ]     Enable Phys DMA support for SBP2 (Debug)
```

Otherwise, I could burn 1 or 2 CDs, then sbp2.o would crap-out and refuse to unload or work properly.

Maybe DMA support is buggy at this time.

----------

## hernejj

Thanks for that suggestion, I disabled Phys DMA  support, recompiled, rebooted and nothing changed  :Sad: 

I WAS able to use my friends FW drive!!  his was detected fine so I know that I'm inserting the modules correctly....  Also, MY drive was detected without problem on his Mac under OSX.

----------

## cyrillic

That sounds like a great solution : trade drives with your friend.   :Very Happy: 

----------

## skunk

hi,

i've the same problem on the same hardware (only the deveice brand is different: iomega)

i can't getting it working over my firewire connection (i don't have usb2, or does i?)

i've tried just with the lastest gentoo's kernel...

see:

https://forums.gentoo.org/viewtopic.php?t=61313&highlight=firewire+inspiron

please let me know if somebody finds a solutions

thanks in advice

----------

## hernejj

Skunk,

 Provided you have a Dell Inspiron 8100, then no you do not have USB 2.0 support (ehci), just USB 1.1 (uhci).  I still have not found a fix for this although the newest development kernel that just came out has updates to the IEEE1394 (Firewire) drivers.  I will download and test these just to see if they work although I doubt they will.  Either way I'll post back.  If ANYONE else has a fix, or even just some thoughts, please post.  Thanks.

----------

## skunk

unsucessfully tried getting the drive to work with lastest dev kernel, but got some error messages after loading the ohci1394 module:

```

ohci1394: $Rev: 948 $ Ben Collins <bcollins@debian.org>

PCI: Found IRQ 10 for device 02:0f.2

PCI: Sharing IRQ 10 with 00:1f.2

PCI: Sharing IRQ 10 with 02:0f.0

PCI: Sharing IRQ 10 with 02:0f.1

ohci1394_0: OHCI-1394 1.0 (PCI): IRQ=[10]  MMIO=[f6ffd800-f6ffdfff]  Max Packet=[2048]

ieee1394: unsolicited response packet received - np

ieee1394: contents: ffc00160 ffc00000 00000000 31e20404

ieee1394: unsolicited response packet received - np

ieee1394: contents: ffc00560 ffc00000 00000000 31e20404

ieee1394: unsolicited response packet received - np

ieee1394: contents: ffc00960 ffc00000 00000000 31e20404

ieee1394: ConfigROM quadlet transaction error for node 00:1023

```

instead, when unloading i get:

```

bad: scheduling while atomic!

Call Trace: [<c011bf69>]  [<c011c2d9>]  [<c011bfc0>]  [<c011bfc0>]  [<c0129142>]  [<e28f4435>]  [<e28f8ec0>]  [<e28f8ed8>]  [<e28efd76>]  [<e28e6168>]  [<e28e3b3d>]  [<c018531d>]  [<c01e4e9b>]  [<c021a3b6>]  [<e28e61b0>]  [<e28e61b0>]  [<c021a3eb>]  [<e28e6168>]  [<c021a64d>]  [<e28e6168>]  [<e28e6168>]  [<c021aa83>]  [<e28e6168>]  [<e28e6140>]  [<c01e5166>]  [<e28e6168>]  [<e28e6200>]  [<e28e3f2f>]  [<e28e6140>]  [<c0133fcf>]  [<e28e6200>]  [<c0148f24>]  [<c010aedb>]

```

sb has an idea if that's hw related?

i'm thinking to try installing windoze to see if get the drive working with iomega's drivers, but i'm worry to loose my linux partititions doing so...

and u know, the only possible backup device doesn't work...  :Sad: 

----------

