how to slow down SATA drive to 1.5Gb/s ?

Kernels & Hardware, configuring network, installing services

how to slow down SATA drive to 1.5Gb/s ?

Postby dieselnutjob » 2019-01-22 21:49

Many years ago I built a mini server with a nanoITX motherboard (or something like that).
It wouldn't boot from SATA so I bought a Kingspec PATA SSD and it had a Western Digital WD10EACS 1TB drive.

Roll forward many years and 1TB isn't enough, so I bought a 4TB drive for my desktop with the idea to repurpose the 2TB drive from that into the server.

The idea is supposed to be that on the desktop I have a 2TB home partition and a 2TB backup partition, and it can have a script that rsync the data from the server onto that partition every now and again.

I also found a spare 60Gb SSD.

So now the mini server has a the PATA SSD with just grub on it.
60gB SSD with Debian stretch
2TB st2000dm001 as /home

The problem is that as soon as I try to write to /home I get
[ 4.252095] ata4.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
[ 4.252113] ata4.00: BMDMA stat 0x26
[ 4.252124] ata4.00: failed command: WRITE DMA EXT
[ 4.252145] ata4.00: cmd 35/00:08:00:08:44/00:00:74:00:00/e0 tag 0 dma 4096 out
res 51/84:01:b7:b1:88/84:00:74:00:00/e0 Emask 0x30 (host bus error)
[ 4.252163] ata4.00: status: { DRDY ERR }
[ 4.252172] ata4.00: error: { ICRC ABRT }
and stuff...

then I remember that that there was something odd about the SATA speed on this motherboard. I looked on the old WD10EACS and sure enough there is a jumper fitted in "opt1" which the manual says slows it to 1.5Gbps.

I remember that all those years ago I had to do this to make it work.

The 2TB Seagate st2000dm001 doesn't appear to have such an option. It's weird that the SSD drive on / seems okay (or maybe it isn't).

Anyway. Is there a way to slow the /home drive to 1.5Gbps (I guess UDMA 133 or something?) in software instead?

thanks
dieselnutjob
 
Posts: 80
Joined: 2011-04-12 10:25

Re: how to slow down SATA drive to 1.5Gb/s ?

Postby bw123 » 2019-01-22 22:03

...
so I bought a Kingspec PATA SSD and it had a Western Digital WD10EACS 1TB drive.

Roll forward many years and 1TB isn't enough, so I bought a 4TB drive for my desktop with the idea to repurpose the 2TB drive from that into the server.
...


You lost me here, you bought a SSD that had a 1TB drive? Then you bought a 4TB to repurpose the 2TB which was a 1TB SSD?

maybe post fdisk -l (blkid would help too?) and some people will help figure it out? DRDY errors are usually hardware problem though, not a good sign. Did you look it up on a search engine?

p.s. please use code tags!!
User avatar
bw123
 
Posts: 3751
Joined: 2011-05-09 06:02
Location: TN_USA

Re: how to slow down SATA drive to 1.5Gb/s ?

Postby dieselnutjob » 2019-01-22 22:15

Sorry.
The server had a WD10EACS drive with a jumper to slow it to 1.5Gbps. This worked.
Now it has a Seagate st2000dm001 which I cannot slow to 1.5Gbps and so it doesn't work well.
I think it's because it isn't a "real" SATA port but instead is a PATA / SATA bridge and it only likes SATA version 1.

Is there a way to set the drive to SATA 1 mode in Debian?
dieselnutjob
 
Posts: 80
Joined: 2011-04-12 10:25

Re: how to slow down SATA drive to 1.5Gb/s ?

Postby dieselnutjob » 2019-01-22 23:15

I just found this
Code: Select all
--phySpeed [0 | 1 | 2 | 3 | 4 | 5] (Seagate Only)
      Use this option to change the PHY speed to a new maximum value.
      This change persists over power cycles and resets. On SAS, this
      option will set all phys to the specified speed unless the
      --sasPhy option is given to select a specific phy.

      0 - allow full negotiation (default drive behavior)
      1 - allow negotiation up to 1.5Gb/s
      2 - allow negotiation up to 3.0Gb/s
      3 - allow negotiation up to 6.0Gb/s
      4 - allow negotiation up to 12.0Gb/s (SAS Only)
      5 - allow negotiation up to 22.5Gb/s (SAS Only)


in this document http://support.seagate.com/seachest/SeaChest_Combo_UserGuides.html
dieselnutjob
 
Posts: 80
Joined: 2011-04-12 10:25

Re: how to slow down SATA drive to 1.5Gb/s ?

Postby p.H » 2019-01-23 07:45

Try adding this option to the kernel command line :
Code: Select all
libata.force=1.5Gbps

It should limit the speed on all SATA ports. If you want to limit the speed only on a given port/device, see instructions in https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt.
p.H
 
Posts: 754
Joined: 2017-09-17 07:12

Re: how to slow down SATA drive to 1.5Gb/s ?

Postby dieselnutjob » 2019-01-23 11:01

Thank you for the reply. Unfortunately it didn't work.

output of root@debserv:~/seachest# ./SeaChest_Configure_1122_1183_64 -d /dev/sg2 -i
Code: Select all
        Interface speed:
                Max Speed (Gb/s): 6.0
                Negotiated Speed (Gb/s): 3.0


however; this did work
Code: Select all
root@debserv:~/seachest# ./SeaChest_Configure_1122_1183_64 -d /dev/sg2 --phySpeed 1
==========================================================================================
 SeaChest_Configure - Seagate drive utilities - NVMe Enabled
 Copyright (c) 2014-2018 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
 SeaChest_Configure Version: 1.12.2-1_18_3 X86_64
 Build Date: Oct 18 2018
 Today: Wed Jan 23 11:16:13 2019
==========================================================================================

/dev/sg2 - ST2000DM001-9YN164 - Z240HZYB - ATA
Successfully set the PHY speed. Please power cycle the device to complete this change.


After a power cycle

Code: Select all
root@debserv:~/seachest# ./SeaChest_Configure_1122_1183_64 -s
==========================================================================================
 SeaChest_Configure - Seagate drive utilities - NVMe Enabled
 Copyright (c) 2014-2018 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
 SeaChest_Configure Version: 1.12.2-1_18_3 X86_64
 Build Date: Oct 18 2018
 Today: Wed Jan 23 11:49:49 2019
==========================================================================================
Vendor   Handle       Model Number            Serial Number          FwRev
ATA      /dev/sg0     KingSpec KDM-40VS.2-008GMS 984081900110           20131216
ATA      /dev/sg1     INTEL SSDSC2CT060A3     CVMP248302XY060AGN     300i
ATA      /dev/sg2     ST2000DM001-9YN164      Z240HZYB               CC4H

root@debserv:~/seachest# ./SeaChest_Configure_1122_1183_64 -d /dev/sg2 -i
==========================================================================================
 SeaChest_Configure - Seagate drive utilities - NVMe Enabled
 Copyright (c) 2014-2018 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
 SeaChest_Configure Version: 1.12.2-1_18_3 X86_64
 Build Date: Oct 18 2018
 Today: Wed Jan 23 11:49:59 2019
==========================================================================================

/dev/sg2 - ST2000DM001-9YN164 - Z240HZYB - ATA
        Model Number: ST2000DM001-9YN164
        Serial Number: Z240HZYB
        Firmware Revision: CC4H
        World Wide Name: 5000C5004F1DCB20
        Drive Capacity (TB/TiB): 2.00/1.82
        Native Drive Capacity (TB/TiB): 2.00/1.82
        Temperature Data:
                Current Temperature (C): 39
                Highest Temperature (C): 41
                Lowest Temperature (C): 15
        Power On Time:  1 year 90 days 19 hours
        Power On Hours: 10939.00
        MaxLBA: 3907029167
        Native MaxLBA: 3907029167
        Logical Sector Size (B): 512
        Physical Sector Size (B): 4096
        Sector Alignment: 0
        Rotation Rate (RPM): 7200
        Form Factor (inch): Not Reported
        Last DST information:
                DST has never been run
        Long Drive Self Test Time:  3 hours 52 minutes
        Interface speed:
                Max Speed (Gb/s): 6.0
                Negotiated Speed (Gb/s): 1.5
        Annualized Workload Rate (TB/yr): 11271.67
        Total Bytes Read (PB): 12.21
        Total Bytes Written (PB): 1.86
        Encryption Support: Not Supported
        Cache Size (MiB): Not Reported
        Read Look-Ahead: Enabled
        Write Cache: Enabled
        Low Current Spinup: Disabled
        SMART Status: Good
        ATA Security Information: Supported, Frozen
        Firmware Download Support: Full, Segmented
        Specifications Supported:
                ATA8-ACS
                ATA/ATAPI-7
                ATA/ATAPI-6
                ATA/ATAPI-5
                ATA/ATAPI-4
                SATA 3.0
        Features Supported:
                SATA NCQ
                SATA Software Settings Preservation [Enabled]
                SATA Device Initiated Power Management
                HPA
                Power Management
                Security
                SMART [Enabled]
                DCO
                48bit Address
                APM [Enabled]
                GPL
                SMART Self-Test
                SMART Error Logging
                Write-Read-Verify
                SCT Write Same
                Host Logging


dieselnutjob
 
Posts: 80
Joined: 2011-04-12 10:25

Re: how to slow down SATA drive to 1.5Gb/s ?

Postby llivv » 2019-01-23 16:15

dieselnutjob wrote:The server had a WD10EACS drive with a jumper to slow it to 1.5Gbps. This worked.
Now it has a Seagate st2000dm001 which I cannot slow to 1.5Gbps and so it doesn't work well.
I think it's because it isn't a "real" SATA port but instead is a PATA / SATA bridge and it only likes SATA version 1.
not an answer to the your question specifically
but some of the kernels in the stretch repos will hickup on the difference between sata (150) and sata2 (300).
The hickup wouldn't show up in an easy way to find it either.
It's an archaic ACPI notice very early in dmesg.

from busters old kernel
and the install isn't fully upgraded to buster so it shows some behaviors of either
stable or possibly oldstable (can't remember the upgrade downgrade upgrade order this install went through. It was fuggly though.... :shock:
Code: Select all
$ uname -r
4.18.0-2-686-pae
# dmesg  | grep -i acpi
[    2.625213] ACPI Error: AE_AML_PACKAGE_LIMIT, Index (0x0FFFFFFFF) is beyond end of object (length 0x4) (20180531/exoparg2-396)
[    2.625265] ACPI Error: Method parse/execution failed \_SB.PCI0.IDE1.GTM, AE_AML_PACKAGE_LIMIT (20180531/psparse-516)
[    2.625312] ACPI Error: Method parse/execution failed \_SB.PCI0.IDE1.CHN1._GTM, AE_AML_PACKAGE_LIMIT (20180531/psparse-516)
[    2.625359] ata4: ACPI get timing mode failed (AE 0x300b)
In memory of Ian Ashley Murdock (1973 - 2015) founder of the Debian project.
User avatar
llivv
 
Posts: 5738
Joined: 2007-02-14 18:10
Location: cold storage

Re: how to slow down SATA drive to 1.5Gb/s ?

Postby llivv » 2019-01-23 19:01

and stretch
Code: Select all
$ uname -r
4.9.0-8-amd64

# dmesg | grep -i acpi
[    0.778545] ACPI Exception: AE_AML_PACKAGE_LIMIT, Index (0x0FFFFFFFF) is beyond end of object (length 0x4) (20160831/exoparg2-427)
[    0.778644] ACPI Error: Method parse/execution failed [\_SB.PCI0.IDE1.GTM] (Node ffff95357cdb4e88), AE_AML_PACKAGE_LIMIT (20160831/psparse-543)
[    0.778779] ACPI Error: Method parse/execution failed [\_SB.PCI0.IDE1.CHN1._GTM] (Node ffff95357cdb4be0), AE_AML_PACKAGE_LIMIT (20160831/psparse-543)
[    0.778914] ata4: ACPI get timing mode failed (AE 0x300b)
In memory of Ian Ashley Murdock (1973 - 2015) founder of the Debian project.
User avatar
llivv
 
Posts: 5738
Joined: 2007-02-14 18:10
Location: cold storage

Re: how to slow down SATA drive to 1.5Gb/s ?

Postby dieselnutjob » 2019-01-25 10:09

This is the same commands on my box, however note that the Seagate drive is now reconfigured to 1.5Gbps

Code: Select all
root@debserv:~# uname -r
4.9.0-8-amd64
root@debserv:~# dmesg | grep -i acpi
[    0.000000] BIOS-e820: [mem 0x000000003f660000-0x000000003f6effff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000003f6f3000-0x000000003f6fefff] ACPI data
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x00000000000FE020 000014 (v00 INTEL )
[    0.000000] ACPI: RSDT 0x000000003F6FD038 000038 (v01 INTEL  D945GLF2 000000B6      01000013)
[    0.000000] ACPI: FACP 0x000000003F6FC000 000074 (v01 INTEL  D945GLF2 000000B6 MSFT 01000013)
[    0.000000] ACPI: DSDT 0x000000003F6F7000 0045EC (v01 INTEL  D945GLF2 000000B6 MSFT 01000013)
[    0.000000] ACPI: FACS 0x000000003F6A3000 000040
[    0.000000] ACPI: APIC 0x000000003F6F6000 000078 (v01 INTEL  D945GLF2 000000B6 MSFT 01000013)
[    0.000000] ACPI: WDDT 0x000000003F6F5000 000040 (v01 INTEL  D945GLF2 000000B6 MSFT 01000013)
[    0.000000] ACPI: MCFG 0x000000003F6F4000 00003C (v01 INTEL  D945GLF2 000000B6 MSFT 01000013)
[    0.000000] ACPI: ASF! 0x000000003F6F3000 0000A6 (v32 INTEL  D945GLF2 000000B6 MSFT 01000013)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1])
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.004118] ACPI: Core revision 20160831
[    0.015905] ACPI: 1 ACPI AML tables successfully acquired and loaded
[    0.107651] PM: Registering ACPI NVS region [mem 0x3f660000-0x3f6effff] (589824 bytes)
[    0.136134] ACPI: bus type PCI registered
[    0.136139] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.152325] ACPI: Added _OSI(Module Device)
[    0.152330] ACPI: Added _OSI(Processor Device)
[    0.152332] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.152335] ACPI: Added _OSI(Processor Aggregator Device)
[    0.157675] ACPI: Interpreter enabled
[    0.157735] ACPI: (supports S0 S1 S3 S4 S5)
[    0.157740] ACPI: Using IOAPIC for interrupt routing
[    0.157843] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.175909] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.175928] acpi PNP0A03:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[    0.175945] acpi PNP0A03:00: _OSC failed (AE_NOT_FOUND); disabling ASPM
[    0.175975] acpi PNP0A03:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-7f] only partially covers this bridge
[    0.179862] pci 0000:00:1b.0: System wakeup disabled by ACPI
[    0.180300] pci 0000:00:1c.0: System wakeup disabled by ACPI
[    0.180721] pci 0000:00:1c.2: System wakeup disabled by ACPI
[    0.181137] pci 0000:00:1c.3: System wakeup disabled by ACPI
[    0.181593] pci 0000:00:1d.0: System wakeup disabled by ACPI
[    0.182044] pci 0000:00:1d.1: System wakeup disabled by ACPI
[    0.182500] pci 0000:00:1d.2: System wakeup disabled by ACPI
[    0.182962] pci 0000:00:1d.3: System wakeup disabled by ACPI
[    0.183477] pci 0000:00:1d.7: System wakeup disabled by ACPI
[    0.183849] pci 0000:00:1e.0: System wakeup disabled by ACPI
[    0.184166] pci 0000:00:1f.0: quirk: [io  0x0400-0x047f] claimed by ICH6 ACPI/GPIO/TCO
[    0.196833] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 7 9 10 *11 12)
[    0.197086] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 7 9 10 11 12) *0, disabled.
[    0.197337] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 7 *9 10 11 12)
[    0.197585] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 7 9 10 *11 12)
[    0.197839] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 7 9 10 11 12) *0, disabled.
[    0.198087] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 7 9 10 11 12) *0, disabled.
[    0.198334] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 7 *9 10 11 12)
[    0.198580] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 7 9 *10 11 12)
[    0.200413] ACPI: Enabled 3 GPEs in block 00 to 1F
[    0.200794] PCI: Using ACPI for IRQ routing
[    0.246541] pnp: PnP ACPI init
[    0.246908] system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.247499] pnp 00:01: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.247718] system 00:02: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.247988] system 00:03: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.249146] pnp 00:04: Plug and Play ACPI device, IDs PNP0401 (active)
[    0.249847] pnp 00:05: Plug and Play ACPI device, IDs PNP0501 (active)
[    0.250190] pnp: PnP ACPI: found 6 devices
[    0.263527] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[    1.511535] ACPI: bus type USB registered
[    1.549736] ACPI Warning: SystemIO range 0x0000000000002000-0x000000000000201F conflicts with OpRegion 0x0000000000002000-0x0000000000002016 (\_SB.PCI0.LPC.SMB1) (20160831/utaddress-247)
[    1.549760] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    3.451013] ACPI: Sleep Button [SLPB]
[    3.451462] ACPI: Power Button [PWRF]
[    3.491771] parport_pc 00:04: reported by Plug and Play ACPI
[    4.331780] ACPI Warning: SystemIO range 0x0000000000000428-0x000000000000042F conflicts with OpRegion 0x0000000000000428-0x0000000000000429 (\GPE0) (20160831/utaddress-247)
[    4.331800] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    4.331806] ACPI Warning: SystemIO range 0x0000000000000500-0x000000000000052F conflicts with OpRegion 0x000000000000050C-0x000000000000050F (\IGPO) (20160831/utaddress-247)
[    4.331816] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
dieselnutjob
 
Posts: 80
Joined: 2011-04-12 10:25


Return to System configuration

Who is online

Users browsing this forum: No registered users and 7 guests

fashionable