Seagate / openSeaChest

Cross platform utilities useful for performing various operations on SATA, SAS, NVMe, and USB storage devices.
Other
489 stars 61 forks source link

Problems scanning Seagate IronWolf disk thorough PCIe controller #15

Closed tuxd3v closed 5 years ago

tuxd3v commented 5 years ago

Hello xahmad,

I noticed that there have been some problems scanning disks attached to pcie controllers..

" $$ openSeaChest_Basics --scan

openSeaChest_Basics - openSeaChest drive utilities - NVMe Enabled Copyright (c) 2014-2018 Seagate Technology LLC and/or its Affiliates, All Rights Reserved openSeaChest_Basics Version: 2.8.0-1_19_0 ARM Build Date: Feb 28 2019 Today: Sat Mar 2 18:13:39 2019

open: Bad address open failure Error: 14 - Bad address open: Bad address open failure Error: 14 - Bad address " I know that openSeachest tools offers options for "pass-through": ata - show only ATA (SATA) devices usb - show only USB devices scsi - show only SCSI (SAS) devices interfaceATA - show devices on an ATA interface interfaceUSB - show devices on a USB interface interfaceSCSI - show devices on a SCSI or SAS interface sd - show sd device handles sgtosd - show the sd and sg device handle mapping

Is there any option for PCIe controllers that work? Nowadays Pcie controllers are very used due to their bandwidth and amount of drives we can put there..

Does you know how to surpasse this? Thanks in Advance for your time.

xahmad commented 5 years ago

@tuxd3v would you please clone the latest & test again? From your output it seems like you are a few versions behind.

tuxd3v commented 5 years ago

Hello, Thanks in advance for the tip.

I cloned the last stable release v19.01.31 I could clone the master repo :)

Thanks in Advance, Regards

xahmad commented 5 years ago

@tuxd3v please clone the latest on the develop branch & if it fixes your issues, please let me know.

tuxd3v commented 5 years ago

Hello xahmad, One more time, thanks for the help, on this. I git cloned the develop branch, but no success with a pcie->sata 'ASMedia ASM1061' chipset.. maybe with the 'ASM1062' it could be possible has it advertize SMART..don't know..

1.1) First we tried: `/opt/test/openSeaChest/Make/gcc/openseachest_exes# ./openSeaChest_Basics --scan --scanFlags interfaceSCSI interfaceATA interfaceUSB sd sgtosd ata scsi -V 4

openSeaChest_Basics - openSeaChest drive utilities - NVMe Enabled Copyright (c) 2014-2018 Seagate Technology LLC and/or its Affiliates, All Rights Reserved openSeaChest_Basics Version: 2.8.0-1_19_2 ARM Build Date: Mar 3 2019 Today: Sun Mar 3 18:35:13 2019

Version Info for openSeaChest_Basics: Utility Version: 2.8.0 opensea-common Version: 1.18.0 opensea-transport Version: 1.19.2 opensea-operations Version: 1.23.0 Build Date: Mar 3 2019 Compiled Architecture: ARM Detected Endianness: Little Endian Compiler Used: GCC Compiler Version: 6.3.0 Operating System Type: Linux Operating System Version: 4.4.154-1132 Operating System Name: Debian GNU/Linux 9 (stretch) Bus error`

1.2) then with deep search: `/opt/test/openSeaChest/Make/gcc/openseachest_exes/openSeaChest_Basics --Scan --scanFlags sd sgtosd ata scsi -V 4

openSeaChest_Basics - openSeaChest drive utilities - NVMe Enabled Copyright (c) 2014-2018 Seagate Technology LLC and/or its Affiliates, All Rights Reserved openSeaChest_Basics Version: 2.8.0-1_19_2 ARM Build Date: Mar 3 2019 Today: Mon Mar 4 12:49:20 2019

Version Info for openSeaChest_Basics: Utility Version: 2.8.0 opensea-common Version: 1.18.0 opensea-transport Version: 1.19.2 opensea-operations Version: 1.23.0 Build Date: Mar 3 2019 Compiled Architecture: ARM Detected Endianness: Little Endian Compiler Used: GCC Compiler Version: 6.3.0 Operating System Type: Linux Operating System Version: 4.4.154-1132 Operating System Name: Debian GNU/Linux 9 (stretch) Bus error`

2.1) Then with a generic search:

`/opt/test/openSeaChest/Make/gcc/openseachest_exes/openSeaChest_Basics --scan --scanFlags sd sgtosd ata scsi -V 4

openSeaChest_Basics - openSeaChest drive utilities - NVMe Enabled Copyright (c) 2014-2018 Seagate Technology LLC and/or its Affiliates, All Rights Reserved openSeaChest_Basics Version: 2.8.0-1_19_2 ARM Build Date: Mar 3 2019 Today: Mon Mar 4 12:49:20 2019

Version Info for openSeaChest_Basics: Utility Version: 2.8.0 opensea-common Version: 1.18.0 opensea-transport Version: 1.19.2 opensea-operations Version: 1.23.0 Build Date: Mar 3 2019 Compiled Architecture: ARM Detected Endianness: Little Endian Compiler Used: GCC Compiler Version: 6.3.0 Operating System Type: Linux Operating System Version: 4.4.154-1132 Operating System Name: Debian GNU/Linux 9 (stretch) Bus error`

2.2) Then with generic deep search: `/opt/test/openSeaChest/Make/gcc/openseachest_exes/openSeaChest_Basics --Scan --scanFlags sd sgtosd ata scsi -V 4

openSeaChest_Basics - openSeaChest drive utilities - NVMe Enabled Copyright (c) 2014-2018 Seagate Technology LLC and/or its Affiliates, All Rights Reserved openSeaChest_Basics Version: 2.8.0-1_19_2 ARM Build Date: Mar 3 2019 Today: Mon Mar 4 12:49:20 2019

Version Info for openSeaChest_Basics: Utility Version: 2.8.0 opensea-common Version: 1.18.0 opensea-transport Version: 1.19.2 opensea-operations Version: 1.23.0 Build Date: Mar 3 2019 Compiled Architecture: ARM Detected Endianness: Little Endian Compiler Used: GCC Compiler Version: 6.3.0 Operating System Type: Linux Operating System Version: 4.4.154-1132 Operating System Name: Debian GNU/Linux 9 (stretch) Bus error`

No way.. but via usb with '--scanflags interfaceUSB', on a usb-> sata 'ASMEDIA AS2105' chipset , I info data about a disk ( but its another disk ...Toshiba, I haven't yet experimented with Seagate Ironwolfs ).. `

You need there a pcie->sata way like you have for 'interfaceUSB' like 'interfacePCIe' ;)

Thanks in Advance for your time, Best regards

vonericsen commented 5 years ago

Hi @tuxd3v, I don't know why this chipset wouldn't show up in the scan, but we haven't seen this type of issue before. We have tested various PCIe add-in cards from AHCI cards, SAS HBAs from various manufacturers, USB bridges, and even older add-in cards for PATA devices without issues before. All of these cards have a driver in the kernel, and the SCSI block and SCSI generic drivers should provide handles to the devices attached to them (sd and sg). We use SG_IO to talk to the drives since we are sending specific commands to them, and our scan doesn't care what interface it is on. All the scanFlags do is filter the output to show only the specified things in the list. So when you give a scanFlag for interfaceUSB, it only shows devices attached via USB. If you give a scan flag for ata, then it will only show devices that we detected as ATA devices (PATA and SATA). If you do a scan without any of the scan flags, then we look for all SCSI generic devices that we can find. If we can't find any of those, then we will look for SCSI block devices since the SCSI block driver can send SG_IOs most of the time.

If you have a part number for the add-in card you're using, we can try ordering one and see if we can debug it further.

The reason we don't have an interfacePCIe, is because there is nothing that distinguishes a PCIe add-in card from something built-in to the system. Depending on how we detect the low-level interface, it'll end up being called a SCSI interface, or an ATA interface. We detect this by reading some of the sysfs to figure out the full path of the device we're talking to. For ATA, we look for "ata" in the path and for USB, we look for "usb" etc and anything we don't recognize we consider as SCSI.

If you do ls /dev/sd* and ls /dev/sg* do you get anything in that list? If you do, try doing something like _openSeaChestBasics -d </dev/s??> -i and see if that works or spits anything out. Adding -v 4 | tee someFile.txt will save the results of the commands we attempt on that device which may help point to the issue. Make sure it is a little v as a big V is for the version information. If you use a big V, we may be skipping the scan to show the version information and exit.

jangrewe commented 5 years ago

You may want to have a look here: https://github.com/Seagate/openSeaChest/issues/3

tuxd3v commented 5 years ago

@jangrewe, Thanks for your reply! We detected that it had to do with the kernel not having the SCSI module driver compiled and present, at that time.. :(

Does you Succeed to query your disks even without the SCSI driver 'sg' loaded? Some nice Features to set with this tool, set once since they are persistent..:

# Enable Power UP in Standby
# Its a persistent feature
# No Power Cycle required
${SEA_PATH}/openSeaChest_Configure --device /dev/sda --puisFeature enable

# Enable Low Current SpinUP
# Its a persistent Feature
# Requires a Power Cycle
${SEA_PATH}/openSeaChest_Configure --device /dev/sda --lowCurrentSpinup enable

To set APM Levels in a no persisntent way ie:( /etc/rc.local)

-- Enable APM level to 127
${SEA_PATH}/openSeaChest_PowerControl --device /dev/sda --setAPMLevel 127

I will clone master branch with latest OpenSeaChest-transport version and check :) Many thanks for the tip ;)

vonericsen commented 5 years ago

This seems to be a system related issue and there have not been any updates in a while. Closing.