I have a Thermaltake BlackX external SATA “enclosure” (it doesn’t really enclose the drive, the drive just slips in from the top). This device can connect to a USB 2,0 or an eSATA port on the host computer.
When I have it connected via USB I can slip in a drive and power it up and will be notified in a few seconds of the availability of new media ( the partitions on the drive). I’d like the same thing to happen when using the eSATA port.
I know that all of the hardware is working because I can boot openSUSE 12.3 i586 via the eSATA interface and everything works great. But if I reboot from the internal drive, that external drive is never made available. I doesn’t matter if it’s powered on at bootup or if I do a “hotplug” by powering up the drive after the system is running.
I assume that it’s probably some udev rule that’s not configured to permit this, but I’m not proficient enough in udev speak to have an idea of where or how to start.
> I know that all of the hardware is working because I can boot openSUSE
> 12.3 i586 via the eSATA interface and everything works great. But if I
> reboot from the internal drive, that external drive is never made
> available. I doesn’t matter if it’s powered on at bootup or if I do a
> “hotplug” by powering up the drive after the system is running.
I have seen this, and where I have seen it, it is a hardware issue. Nothing hotplugged on some
sockets of the motherboard is ever recognized, except if it is present on boot. However, on another
set of sockets, the same devices are recognized instantly whenever I plug them.
Sigh… such is life.
–
Cheers / Saludos,
Carlos E. R.
(from 13.1 x86_64 “Bottle” (Elessar))
But how can it be hardware when none of the hardware changes?
The exact, same hardware configuration:
Computer with 3 internal drives
Bootable hard drive in external “enclosure” connected via an eSATA port (the same port).
The BIOS sees all 4 drives in the same order (the internal drive w/ openSUSE 12.3 x86_64 is the default boot drive).
I can manually select (via F12) the external drive as the boot drive. As long as I already have that port configured as eSATA in the BIOS, the system boots and runs fine. I’ve even successfully booted WindowsXP and 7 from this external enclosure in this configuration (by preloading the appropriate driver).
I then, via software, reboot the system without changing anything (including power). I just let it boot from the default internal drive into openSUSE 12.3 x86_64. That system will not see the external drive.
It won’t see it when it boots up with external enclosure already powered on (it booted from that drive/enclosure just a few seconds ago). Nor will it see it if I power down the external enclosure. wait a minute or so, and then reapply power to simulate a “hotplug”.
BTW, this may (or may not) be related to am issue I’m having with openSUSE not recognizing LVM2 partitions (to be described in a forthcoming post) that are not referenced in /etc/fstab during bootup.
I agree that occasionally there will be issues with certain ports on some motherboards, but in this case the hardware doesn’t change at all. In my opinion if the hardware works in one software environment but not another, it’s a software issue.
On 2013-12-27 14:46, r widell wrote:
>
> robin_listas;2611677 Wrote:
> But how can it be hardware when none of the hardware changes?
In my case, it does. It is one motherboard, yes, but I have at least 3 disk interface hardware
modules. Two of the ports simply do not work with hotplug.
>
> The exact, same hardware configuration:
…
> I can manually select (via F12) the external drive as the boot drive. As
> long as I already have that port configured as eSATA in the BIOS, the
> system boots and runs fine. I’ve even successfully booted WindowsXP and
> 7 from this external enclosure in this configuration (by preloading the
> appropriate driver).
>
> I then, via software, reboot the system without changing anything
> (including power). I just let it boot from the default internal drive
> into openSUSE 12.3 x86_64. That system will not see the external drive.
Curious. :-o
> I agree that occasionally there will be issues with certain ports on
> some motherboards, but in this case the hardware doesn’t change at all.
> In my opinion if the hardware works in one software environment but not
> another, it’s a software issue.
Can you try another port?
An eSATA por is not really special, you can just buy the socket and cable, and plug it on any
motherboard SATA port. It just needs to support hotplug.
I just tried mine, and they work in 13.1 (this is a test partition).
–
Cheers / Saludos,
Carlos E. R.
(from 13.1 x86_64 “Bottle” (Elessar))
I can try another port but it’s coming from the same controller chip. This mobo (Gigibyte GA-990FXA-UD5) has a total of 10 SATA ports, 8 internal and 2 external (eSATA). Six of the internal ports are driven by the AMD SB950 southbridge chip, with the other 2 driven by a Marvell 88SE9172. The 2 eSATA ports are driven by a separate Marvell 88SE9172.
Each of those ports can be configured for various operating modes:
IDE- Basic PATA command set
AHCI- Advanced SATA command set, including NCQ (native command queueing) and hotplug.
RAID- Enables hardware support permitting that drive to be part of a RAID set.
Interestingly, if I configure the eSATA ports for IDE mode, openSUSE won’t boot from the external drive. Grub will load the kernel and the initrd and halts waiting for the root partition to become available. In AHCI mode it boots up fine.
Anyway, I believe that I have tried both eSATA ports without success, but will confirm that tomorrow and report back.
I don’t have a SATA-to-eSATA adapter cable. I’ll have to get one and try it from one of the spare SB950 ports.
Unfortunately, there were apparently no events processed
# udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
But this may explain why
~> dmesg | tail -20
[30485.727001] Buffer I/O error on device sr0, logical block 8
[40984.516476] usb 2-2: USB disconnect, device number 3
[41091.777387] ata5: exception Emask 0x10 SAct 0x0 SErr 0x4000000 action 0xe frozen
[41091.777397] ata5: irq_stat 0x80000040, connection status changed
[41091.777405] ata5: SError: { DevExch }
[41091.777418] ata5: hard resetting link
[41101.770198] ata5: softreset failed (1st FIS failed)
[41101.770209] ata5: hard resetting link
[41103.412012] ata5: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[41103.412461] ata5.00: failed to IDENTIFY (INIT_DEV_PARAMS failed, err_mask=0x80)
[41108.408368] ata5: hard resetting link
[41109.326696] ata5: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[41109.327144] ata5.00: failed to IDENTIFY (INIT_DEV_PARAMS failed, err_mask=0x80)
[41109.327154] ata5: limiting SATA link speed to 1.5 Gbps
[41114.323078] ata5: hard resetting link
[41115.241413] ata5: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[41115.241853] ata5.00: failed to IDENTIFY (INIT_DEV_PARAMS failed, err_mask=0x80)
[41120.237776] ata5: hard resetting link
[41121.156068] ata5: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[41121.156087] ata5: EH complete
There seems to be some problem negotiating the appropriate handshaking to enable establishing a SATA link.
(well at least that eliminates a udev rule quirk for now)
I’m currently running openSUSE 12.3 x86_64 (64-bit) with KDE.
Thanks for the guidance. I guess I’ll now have to try:
Adding a Windows drive to this box and see if Windows can successfully connect to my Thermaltake “enclosure”.
Get a SATA-to-eSATA adapter to see if I can connect through the SB950 southbridge.
Get a different eSATA device to see if the connection problem is on the Thermaltake end.
I still confused why I can successfully boot from that device if I’m seeing those kind of errors on hotplug.