1

У меня проблемы с получением жесткого диска FireWire для надежной работы в Linux. Контроллер и накопитель, похоже, опознаны, но я не знаю, как получить к нему доступ.

Некоторый контекст:

# lspci
00:00.0 PCI bridge: Device 16c3:abcd (rev 01)
01:00.0 PCI bridge: Texas Instruments XIO2213A/B/XIO2221 PCI Express to PCI Bridge [Cheetah Express] (rev 01)
02:00.0 FireWire (IEEE 1394): Texas Instruments XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] (rev 01)

Драйвер, используемый для контроллера FireWire

# lspci -vv | grep firewire
Kernel driver in use: firewire_ohci

# lsmod
Module                  Size  Used by
firewire_sbp2          10670  0
firewire_ohci          26356  0
ov5642_camera          74186  0
camera_sensor_clock      721  1 ov5642_camera
firewire_core          45592  2 firewire_ohci,firewire_sbp2

/dev/fw0 присутствует после загрузки (как я понимаю, контроллер firewire).

Когда диск подключен, в dmesg отображается следующее:

firewire_core: skipped bus generations, destroying all nodes
firewire_core: rediscovered device fw0
firewire_core: phy config: card 0, new root=ffc1, gap_count=5
firewire_core: phy config: card 0, new root=ffc1, gap_count=5
scsi0 : SBP-2 IEEE-1394
firewire_core: created device fw1: GUID 0050a035e0500a51, S400, 1 config ROM retries
firewire_sbp2: fw1.0: logged in to LUN 0000 (0 retries)

и /dev/fw1 создан.

Тем не менее, cat /proc /scsi /scsi не дает никаких подключенных устройств.

# ls /sys/bus/firewire/drivers/sbp2/fw1.0
driver        modalias      model_name    rom_index     subsystem     version
host0         model         power         specifier_id  uevent

Итак, насколько я могу судить, многое работает. Но у меня нет устройства, чтобы играть с? Не уверен, что делать с /dev/fw1

# od /dev/fw1

не получает меня ничего.

cat /sys /class /scsi_disk /* /device /model не раскрывает ничего, касающегося дисковода FireWire.

Когда диск отключен, регистрируется следующее сообщение:

firewire_sbp2: released fw1.0, target 0:0:0

Если у меня подключено устройство при загрузке, все время от времени будет работать (возможно, после каждой двадцатой перезагрузки), диск отображается как /dev /sd [n], и я могу получить к нему доступ как к любому другому диску, он отображается в /proc /scsi /scsi и т. д. Разве я не могу иметь возможность воссоздать его вручную при горячем подключении или когда он не отображается? С чем-то вроде "Удевадм триггер"? (не работает)

Есть идеи, как поступить?

Примечание: это работает на встроенном Linux на основе ARM:

# uname -a
Linux nitrogen6x 3.0.35-1.1.0+g2dc5560 #6 SMP PREEMPT Wed Apr 2 11:12:25 CEST 2014 armv7l GNU/Linux

0