Ubuntu – Getting Ubuntu working with eSATA (Intel H57 chipset)

driversUbuntu

Does anyone know if there's kernel support for the eSATA controller in the Intel H57 chipset, or if there's a driver for it somewhere? (Full disclosure: Asked over on SuperUser.com, no luck, but as this is more of a *nix-oriented place…)

I'm just having no luck getting my Ubuntu 10.04 LTS desktop (64-bit) to recognise a drive in an eSATA enclosure. It works fine if I use the same enclosure via its USB2 connector instead, which tells me that the drive is installed in the enclosure successfully and that the drive works.

Here's what I've tried / checked:

  1. Connecting the drive naively. Literally, plugging the eSATA cable into the box and turning the drive on, while Ubuntu was running. No reaction, and nothing shows up in the Disk Uility or fdisk -l.

  2. Leaving the drive connected and cold booting Ubuntu (literally from poweroff). Still nothing on DU or fdisk -l.

  3. Ensuring that the BIOS has the eSATA port enabled (it did, I didn't have to change it).

  4. Ensuring that the BIOS is using AHCI. It wasn't, and that hadn't been any problem accessing the internal SATA SSD (the box's primary drive). (The SSD showed up under the PATA controller, because I think the BIOS was doing emulation or something.) Switching the BIOS to use AHCI on the SATA controller didn't make any difference other than that the SSD showed up under the SATA controller instead and was listed as using the ahci driver, as you'd expect.

  5. Looking in dmesg for anything useful. I don't see any mention of the drive at all (except from when I had it attached via USB).

Other info:

  • eSATA is on the motherboard, an Intel DH57JG, which uses the Intel H57 chipset.
  • Enclosure is an Apex (cheap, but other than cable length issues people on Amazon seemed to like it, and it's handsome).
  • Drive is a Samsung F3 HD103SJ.
  • Cable is, well, a cable.
  • Intel doesn't seem to have any specific Linux drivers for the board (Ubuntu or Linux aren't even categories here, for instance), they just list that the chipset is supported "native." But as they don't call out eSATA specifically, that could mean anything.

Unfortunately, I don't have any other machine that supports eSATA so I can do the obvious thing and prove that the rig (enclosure and cable) work over eSATA on another box. 🙁 And I don't have my desktop set up to dual-boot another OS… So at this stage, I don't know it's a software problem, could be hardware, could be cable, but the Ubuntu-oriented vendor I bought it from says they don't know how to get it working either (not that they mentioned that on their product page!), so…

Update:

Someone over on the Ubuntu forums suggested installing scsitools and running rescan-scsi-bus.sh as root, just in case. No luck, but posting that info here for completeness:

root@forge:~# rescan-scsi-bus.sh -c
Host adapter 0 (ahci) found.
Host adapter 1 (ahci) found.
Host adapter 2 (ahci) found.
Host adapter 3 (ahci) found.
Host adapter 4 (ahci) found.
Host adapter 5 (ahci) found.
Scanning SCSI subsystem for new devices
Scanning host 0 channels 0 1 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning for device 0 0 0 0 ...
OLD: Host: scsi0 Channel: 00 Id: 00 Lun: 00
      Vendor: ATA      Model: INTEL SSDSA2M080 Rev: 2CV1
      Type:   Direct-Access                    ANSI SCSI revision: 05
Scanning host 1 channels 0 1 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning host 2 channels 0 1 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning for device 2 0 0 0 ...
OLD: Host: scsi2 Channel: 00 Id: 00 Lun: 00
      Vendor: TSSTcorp Model: CDDVDW SN-S083C  Rev: SB01
      Type:   CD-ROM                           ANSI SCSI revision: 05
Report Luns command not supported (support mandatory in SPC-3)
Scanning for device 2 0 0 0 ...
OLD: Host: scsi2 Channel: 00 Id: 00 Lun: 00
      Vendor: TSSTcorp Model: CDDVDW SN-S083C  Rev: SB01
      Type:   CD-ROM                           ANSI SCSI revision: 05
Scanning host 3 channels 0 1 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning host 4 channels 0 1 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning host 5 channels 0 1 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
0 new device(s) found.               
0 device(s) removed.                 

Any ideas? Thanks in advance.

Best Answer

In case this is helpful to anyone, another quick and dirty way of rescanning your SATA controllers is to issue the following command:

for i in `ls /sys/class/scsi_host/`; do echo "- - -" > /sys/class/scsi_host/$i/scan; done

This works for me even with internal, non hot-swappable SATA controllers where using the rescan-scsi-bus.sh command would not.

Related Question