我在让 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)
火线控制器使用的驱动程序是
# 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启动后出现(据我所知,这是火线控制器)。
当驱动器连接时,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被建造。
然而猫/ 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/*/设备/型号 没有透露与火线驱动器相关的任何内容。
当驱动器断开连接时,将记录以下消息:
firewire_sbp2: released fw1.0, target 0:0:0
如果我在启动时插入设备,一切偶尔都会正常(可能每二十次重启一次),驱动器显示为 /dev/sd[n] ,我可以像访问任何其他驱动器一样访问它,它显示在/proc/scsi/scsi等等。当热插拔或它不显示时,我是否应该能够手动重新创建它?使用类似“udevadm trigger”之类的东西?(不起作用)
关于如何进行有什么想法吗?
注意:这是在基于 ARM 的嵌入式 Linux 上运行的:
# 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