Question: How to set up a Firewire400 external drive?

Hi I purchased a nice Firewire 400 drive on ebay. It works great with the USB 2.0 option. But I want to set it up to run it as a Firewire400 drive. It uses a 6 pin cable at the drive housing and a 1394 connector at my laptop. (My Dell M1330 laptop has that port!) I have the cable for it. :slight_smile:

For starters: What modprobe command do I use?
Any help would be appreciated.

lspci -m gives me:

03:01.0 “FireWire (IEEE 1394)” “Ricoh Co Ltd” “R5C832 IEEE 1394 Controller” -r05 -p10 “Del
l” “Device 0209”

Hi @deroberts1 :wave:

While I never used sich a connection, I would say it is this module:

modinfo sbp2

When loading this module:

sudo modprobe -v sbp2

a new drive must be there recognized.

lsblk --fs 
dougrrr@dougs-linux ~ $ modinfo sbp2
filename:       /lib/modules/5.17.1-1-rt16-MANJARO/kernel/drivers/firewire/firewire-sbp2.ko.xz
alias:          sbp2
license:        GPL
description:    SCSI over IEEE1394
author:         Kristian Hoegsberg <krh@bitplanet.net>
srcversion:     252A8F54BEEA287456BA453
alias:          ieee1394:ven*mo*sp0000609Ever00010483*
depends:        firewire-core
retpoline:      Y
intree:         Y
name:           firewire_sbp2
vermagic:       5.17.1-1-rt16-MANJARO SMP preempt_rt mod_unload 
sig_id:         PKCS#7
signer:         Build time autogenerated kernel key
sig_key:        30:8C:9A:8E:6E:BF:33:5C:2C:AE:BB:48:74:C7:AD:91:C1:39:EC:4D
sig_hashalgo:   sha512
signature:      90:DE:32:27:EF:41:2D:67:EC:76:5D:03:D2:A4:FF:CF:2A:78:76:AD:
                D0:20:A7:89:AB:82:A9:5E:96:80:C4:1E:59:19:59:F1:8C:D6:B8:F8:
                4C:57:1A:CF:98:69:C1:75:5D:75:CC:6F:CE:66:00:F3:AF:61:F3:FE:
                3F:B3:57:D4:5F:D0:85:1E:22:9C:14:CE:C4:FB:0B:DD:66:E9:2A:FF:
                B1:C3:97:70:04:D2:3D:D6:84:DB:AB:E0:69:26:BF:D0:7A:73:F1:FB:
                67:B7:00:E8:C7:2E:6B:10:E4:17:CA:5F:59:58:29:27:F9:69:B7:EA:
                DC:89:A5:85:6F:33:2A:33:0E:4E:76:99:94:F4:B7:FC:EE:59:2D:DE:
                CE:FD:5C:8B:77:0E:38:26:4E:8B:7E:88:30:F5:04:F9:B4:DA:42:6C:
                6E:35:A0:8C:DA:2C:19:33:6A:C9:0A:0E:F7:29:1B:F9:50:A9:BC:21:
                3C:55:7D:B0:F0:2A:17:0D:C6:64:D8:CD:63:E1:44:47:26:42:7E:8D:
                60:F3:1D:CC:B0:3A:0D:C6:EE:2F:E9:12:37:15:B6:D2:25:58:CE:AE:
                D6:49:DE:2E:8D:D3:61:FF:AE:E3:9F:F1:3C:85:FF:AE:40:12:80:3F:
                B2:34:9D:F1:91:8E:B2:FE:CC:08:4A:EE:23:D7:CE:D5:5E:B8:5E:BF:
                98:52:77:B3:95:6C:CC:90:0A:CB:93:D5:AD:A1:DF:60:20:7D:91:AF:
                B7:21:C0:66:71:3D:32:82:1F:2A:88:70:75:C4:D9:6F:56:60:48:C6:
                61:B0:E9:61:C0:F7:92:A0:67:53:98:34:7A:7C:EF:F6:DA:88:05:64:
                2D:DB:9A:41:6E:F6:78:6E:E9:F1:6B:EC:A6:39:DE:38:4E:B2:51:3E:
                7D:1B:AB:BD:7F:CB:B8:63:2D:B3:37:A3:91:F8:A0:76:C3:EA:44:01:
                E0:37:96:45:16:5F:38:3E:B1:F4:02:F0:F0:F8:9D:56:98:77:8D:E5:
                64:50:E6:DF:CA:0B:FD:61:B7:D2:4A:E2:9A:29:B4:F8:8B:31:34:17:
                C6:B3:1E:D2:FF:09:8B:5B:EC:16:17:9D:F2:0A:BB:BF:AE:38:B1:AC:
                20:98:47:E2:97:DF:C7:82:BC:3C:57:39:C6:3A:86:FE:69:F1:5D:19:
                66:13:AA:85:EA:98:52:A3:EC:98:A4:28:8D:8C:C4:9E:3B:E4:38:1C:
                BA:B6:48:8B:33:DC:B1:D8:80:74:00:1A:5E:AB:D2:3B:3C:21:E6:9A:
                D7:F2:04:91:28:51:CB:49:94:11:9F:F9:A8:83:D3:D2:09:B2:19:80:
                D0:FD:D1:07:3C:0A:48:62:4B:AB:65:91
parm:           exclusive_login:Exclusive login to sbp2 device (default = Y, use N for concurrent initiators) (bool)
parm:           workarounds:Work around device bugs (default = 0, 128kB max transfer = 0x1, 36 byte inquiry = 0x2, skip mode page 8 = 0x4, fix capacity = 0x8, delay inquiry = 0x10, set power condition in start stop unit = 0x20, override internal blacklist = 0x100, or a combination) (int)

Does this drive require a special login?

lsblk --fs
NAME FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                         
├─sda1
│    ext4   1.0   Current Pics
│                       7e3e4ba4-01ac-4020-b8e7-84d9f3097a48    6.5G    66% /run/media/dougrrr/Current Pics
├─sda2
│                                                                           
├─sda5
│    swap   1           8a99da3b-909d-3bfb-ded7-0e23dda7e60d                [SWAP]
├─sda6
│    ext4   1.0         3e92a86c-02d3-4713-a91b-25cc8e788b68   50.1G    48% /
├─sda7
│    ext4   1.0         02f13436-7816-4203-b6ff-4d05738d8f10   17.4G    30% /home
└─sda8
     ext4   1.0         b88b938d-0ddc-4d9b-8682-c997769cf658  231.3G    11% /run/media/dougrrr/b88b938d-0ddc-4d9b-8682-c997769cf658
sdb                                                                         
├─sdb1
│                                                                           
├─sdb2
│                                                                           
├─sdb3
│                                                                           
├─sdb4
│                                                                           
├─sdb5
│                                                                           
├─sdb6
│                                                                           
└─sdb10

Are the sdb* references the available mount points for the firewire drive?

When pasting terminal output, add three backticks ` OR 3 tilde ~ above and below the text:

text

I did it this time for you. Please do it like this in the future.

Thank you :bowing_man:


Did you load the module?

lsmod | grep sbp2

Check also:

sudo partprobe -s
sudo parted -l

Ok the command
dougrrr@dougs-linux ~ $ lsmod | grep sbp2


firewire_sbp2          28672  0
firewire_core          81920  2 firewire_ohci,firewire_sbp2

So far so good, I think.

BUT these two commands below only show the internal /dev/sda SSD drive.

sudo partprobe -s
sudo parted -l

Then please check the kernel messages:

sudo dmesg | grep -i sbp2

sudo dmesg | grep -i sbp2

Creates this output: 

[ 8.212086] firewire_sbp2 fw1.0: logged in to LUN 0000 (0 retries)
[ 25.302589] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 40.662433] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 56.022471] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 86.230427] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 116.438450] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 146.647452] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 716.095884] firewire_sbp2 fw1.0: released target 5:0:0
[ 728.812530] firewire_sbp2 fw1.0: logged in to LUN 0000 (0 retries)
[ 762.070455] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 777.430452] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 792.790423] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 822.998407] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 853.206453] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 883.414454] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 2693.443571] firewire_sbp2 fw1.0: released target 5:0:0
[ 2706.234070] firewire_sbp2 fw1.0: logged in to LUN 0000 (0 retries)
[ 2723.030452] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 2738.391437] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 2753.752467] firewire_sbp2 fw1.0: sbp2_scsi_abort

I am sorry, no idea what it could be. As said, I never used it. According to my research, it should just work.

New command output:

sudo dmesg | grep -i 1394

~~~.

[    7.616542] scsi host5: SBP-2 IEEE-1394
[  728.171411] scsi host5: SBP-2 IEEE-1394
[ 2705.627491] scsi host5: SBP-2 IEEE-1394
[ 3159.339576] scsi host5: SBP-2 IEEE-1394
[ 3558.292051] scsi host5: SBP-2 IEEE-1394

You can also run it in follow mode:

sudo dmesg -w

I just check the BIOS to see if 1394 is enabled and it is. When I rebooted I ran this command again


sudo dmesg | grep -i sbp2     

[ 8.294072] firewire_sbp2 fw1.0: logged in to LUN 0000 (0 retries)
[ 25.301857] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 40.661881] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 56.021846] firewire_sbp2 fw1.0: sbp2_scsi_abort
[ 86.229892] firewire_sbp2 fw1.0: sbp2_scsi_abort


Different output this time. ???

New command

sudo dmesg | tail


[ 8417.362117] Buffer I/O error on dev sdc10, logical block 12615680, lost sync page write
[ 8417.362119] JBD2: Error -5 detected when updating journal superblock for sdc10-8.
[ 8417.362133] EXT4-fs error (device sdc10): ext4_put_super:1221: comm umount: Couldn't clean up the journal
[ 8417.362136] EXT4-fs (sdc10): Remounting filesystem read-only
[ 8420.796364] firewire_core 0000:03:01.0: phy config: new root=ffc1, gap_count=5
[ 9022.825662] kauditd_printk_skb: 21 callbacks suppressed
[ 9022.825667] audit: type=1100 audit(1651267683.978:297): pid=103525 uid=1000 auid=1000 ses=1 subj==unconfined msg='op=PAM:authentication grantors=pam_faillock,pam_permit,pam_faillock acc
t="dougrrr" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'
[ 9022.826021] audit: type=1101 audit(1651267683.979:298): pid=103525 uid=1000 auid=1000 ses=1 subj==unconfined msg='op=PAM:accounting grantors=pam_unix,pam_permit,pam_time acct="dougrrr"
exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'
[ 9022.827355] audit: type=1110 audit(1651267683.980:299): pid=103525 uid=1000 auid=1000 ses=1 subj==unconfined msg='op=PAM:setcred grantors=pam_faillock,pam_permit,pam_faillock acct="root
" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'
[ 9022.832422] audit: type=1105 audit(1651267683.985:300): pid=103525 uid=1000 auid=1000 ses=1 subj==unconfined msg='op=PAM:session_open grantors=pam_systemd_home,pam_limits,pam_unix,pam_p
ermit acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'

~~~

This command at least sees the first partition.  (They are not in order.)

I downloaded Linux firewire utilities this one gave me results that tell me at least the drive is being seen:

/usr/bin/lsfirewire -v -v

device fw0:
  vendor ID: 0x001f11
  model ID: 0x023901
  vendor: Linux Firewire
  model: Juju
  guid: 0x314fc00036eb41e1
               ROM header and bus information block
               -----------------------------------------------------------------
400  04042483  bus_info_length 4, crc_length 4, crc 9347
404  31333934  bus_name "1394"
408  f000a222  irmc 1, cmc 1, isc 1, bmc 1, pmc 0, cyc_clk_acc 0,
               max_rec 10 (2048), max_rom 2, gen 2, spd 2 (S400)
40c  314fc000  company_id 314fc0     | 
410  36eb41e1  device_id 0036eb41e1  | EUI-64 314fc00036eb41e1

               root directory
               -----------------------------------------------------------------
414  00051b70  directory_length 5, crc 7024
418  0c0083c0  node capabilities per IEEE 1394
41c  03001f11  vendor
420  81000003  --> descriptor leaf at 42c
424  17023901  model
428  81000008  --> descriptor leaf at 448

               descriptor leaf at 42c
               -----------------------------------------------------------------
42c  00064cb7  leaf_length 6, crc 19639
430  00000000  textual descriptor
434  00000000  minimal ASCII
438  4c696e75  "Linu"
43c  78204669  "x Fi"
440  72657769  "rewi"
444  72650000  "re"

               descriptor leaf at 448
               -----------------------------------------------------------------
448  0003ff1c  leaf_length 3, crc 65308
44c  00000000  textual descriptor
450  00000000  minimal ASCII
454  4a756a75  "Juju"

device fw1:
  vendor ID: 0x0023a4
  hardware version ID: 0x00f934
  vendor: OWC Mercury Elite
  hardware version: 934SSA
  guid: 0x0023a409e01157db
  units: 0x00609e:0x010483
  unit fw1.0:
    model ID: 0x000000
    specifier ID: 0x00609e
    version: 0x010483
               ROM header and bus information block
               -----------------------------------------------------------------
400  040456be  bus_info_length 4, crc_length 4, crc 22206
404  31333934  bus_name "1394"
408  00ff5123  irmc 0, cmc 0, isc 0, bmc 0, pmc 0, cyc_clk_acc 255,
               max_rec 5 (64), max_rom 1, gen 2, spd 3 (S800)
40c  0023a409  company_id 0023a4     | 
410  e01157db  device_id 09e01157db  | EUI-64 0023a409e01157db

               root directory
               -----------------------------------------------------------------
414  00063c3a  directory_length 6, crc 15418
418  0c0083c0  node capabilities per IEEE 1394
41c  030023a4  vendor
420  81000057  --> descriptor leaf at 57c
424  0400f934  hardware version
428  8100005d  --> descriptor leaf at 59c
42c  d1000004  --> unit directory at 43c

               unit directory at 43c
               -----------------------------------------------------------------
43c  000d1df4  directory_length 13, crc 7668
440  1200609e  specifier id: INCITS
444  13010483  version: SBP-2
448  3c000113  SBP-2 firmware revision 000113
44c  5400c000  --> SBP-2 management agent CSR at fffff0030000
450  3a003c08  SBP-2 unit char.: mgt_ORB_timeout 30s, ORB_size 8 quadlets
454  3800609e  SBP-2 command set spec id: INCITS
458  390104d8  SBP-2 command set: SCSI Primary Commands 2 and related standards
45c  3b000000  SBP-2 command set revision
460  3d000003  SBP-2 reconnect timeout: max_reconnect_hold 4s
464  21000001  SBP-2 revision 1 = SBP-3
468  144e0000  SBP-2 logical unit number: ordered 1, type RBC, lun 0000
46c  17000000  model
470  81000001  --> descriptor leaf at 474

               descriptor leaf at 474
               -----------------------------------------------------------------
474  0003374e  leaf_length 3, crc 14158
478  00000000  textual descriptor
47c  00000000  minimal ASCII
480  20000000  " "

               descriptor leaf at 57c
               -----------------------------------------------------------------
57c  000778f5  leaf_length 7, crc 30965
580  00000000  textual descriptor
584  00000000  minimal ASCII
588  4f574320  "OWC "
58c  4d657263  "Merc"
590  75727920  "ury "
594  456c6974  "Elit"
598  65000000  "e"

               descriptor leaf at 59c
               -----------------------------------------------------------------
59c  0004886d  leaf_length 4, crc 34925
5a0  00000000  textual descriptor
5a4  00000000  minimal ASCII
5a8  39333453  "934S"
5ac  53410000  "SA"

Update: On a hunch I decided to see if any other Dell M1330 laptop users have my problem. Yes indeed.

Turns out that the firewire controller card is set back too far and the trick to making the drive visible is to shave some of the plastic off of the 1394 connector so it can insert further. Seriously? Ok. Did that. Well knock me over with a feather! The drive is now visible to the lsblk command. See below. Partitions sb2, 3, 4 and 10 are the ones I created and show the correct sizes. Ok? Now what? :smiley:


lsblk

NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda       8:0    0 447.1G  0 disk 
├─sda1    8:1    0  23.6G  0 part /run/media/dougrrr/Current Pics
├─sda2    8:2    0   512B  0 part 
├─sda5    8:5    0   4.8G  0 part [SWAP]
├─sda6    8:6    0 109.3G  0 part /
├─sda7    8:7    0  27.3G  0 part /home
└─sda8    8:8    0 282.2G  0 part /run/media/dougrrr/b88b938d-0ddc-4d9b-8682-c997769cf658
sdb       8:16   0 465.8G  0 disk 
├─sdb1    8:17   0  31.5K  0 part 
├─sdb2    8:18   0  68.7G  0 part 
├─sdb3    8:19   0 218.3G  0 part 
├─sdb4    8:20   0  82.7G  0 part 
├─sdb5    8:21   0     2M  0 part 
├─sdb6    8:22   0    24K  0 part 
└─sdb10   8:26   0  96.1G  0 part

Congratulations! :partying_face:

So at the end it was not a Software Problem :slight_smile:

Now you should be able to mount the partitions like any other.

This works on the commandline for example:

sudo mkdir -pv /media/sdb3
sudo mount -v /dev/sdb3 /media/sdb3

Stuck again. All the mkdir commands worked just fine.

But the partitions are not mounting. I get errors “not a valid block device”. Running this command

sudo fdisk -l /dev/sdb

I get:


fdisk: cannot open /dev/sdb: No such device or address
 

What says?

file /dev/sdb*

file /dev/sdb* yields:


/dev/sdb:   block special (8/16)
/dev/sdb1:  block special (8/17)
/dev/sdb10: block special (8/26)
/dev/sdb2:  block special (8/18)
/dev/sdb3:  block special (8/19)
/dev/sdb4:  block special (8/20)
/dev/sdb5:  block special (8/21)
/dev/sdb6:  block special (8/22)