我们有一个嵌入式 Linux 版本,它从处于睡眠模式(硬件)的 HDD 开始。然后软件启动并启用驱动器的电源。Linux 检测到驱动器正常:
ata1: exception Emask 0x10 SAct 0x0 SErr 0x4050000 action 0x42 frozen
ata1: soft resetting port
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl F0000)
ata1.00: ATA-8, max UDMA/133, 976773168 sectors: LBA48 NCQ (depth 0/32)
ata1.00: ata1: dev 0 multi count 0
ata1.00: configured for UDMA/133
ata1: EH complete
Vendor: ATA Model: Hitachi HCS5C105 Rev: JC2O
Type: Direct-Access ANSI SCSI revision: 05
SCSI device sda: 976773168 512-byte hdwr sectors (500108 MB)
sda: Write Protect is off
SCSI device sda: drive cache: write back
SCSI device sda: 976773168 512-byte hdwr sectors (500108 MB)
sda: Write Protect is off
SCSI device sda: drive cache: write back
sda: sda1 sda2
sd 0:0:0:0: Attached scsi disk sda
sd 0:0:0:0: Attached scsi generic sg0 type 0
不幸的是,软件会在上述 SCSI 检测发生之前尝试访问驱动器。我们可以添加一个睡眠,但这不是一个可靠的机制,因为我们注意到检测所花费的时间是不确定的。
有什么方法可以获取内核/热插拔/等。系统在检测到 HDD 时报告?
谢谢。