Changes between Version 12 and Version 13 of SAT-with-UAS-Linux


Ignore:
Timestamp:
08/09/2019 03:57:12 PM (2 months ago)
Author:
Nathan Stratton Treadway
Comment:

Add section listing Linux kernel version containing the Seagate patch

Legend:

Unmodified
Added
Removed
Modified
  • SAT-with-UAS-Linux

    v12 v13  
    1717The problem is that certain USB-SATA-bridge chipsets do not properly pass SAT commands on to the SATA device when running in UAS mode, and to work around this problem Linux automatically enables the NO_ATA_1X flag for those chipsets.  This turns off SAT passthrough... which in turn means that smartmontools is prevented from communicating with the device.
    1818
    19 For many of these chipsets, SAT passthrough works correctly is the old [https://en.wikipedia.org/wiki/USB_mass_storage_device_class BOT] (`usb-storage` driver) mode, and so smartmontools may suddenly stop working when the kernel is upgraded to a version which supports UAS, or from one which did did not apply the flag for that device to a newer kernel which does.
     19For many of these chipsets, SAT passthrough works correctly in the old [https://en.wikipedia.org/wiki/USB_mass_storage_device_class BOT] (`usb-storage` driver) mode, and so smartmontools may suddenly stop working when the kernel is upgraded to a version which supports UAS, or from one which did did not apply the flag for that device to a newer kernel which does (see [#NO_ATA_1X-kernel-versions NO_ATA_1X kernel versions]).
    2020
    2121For more information on the usb-storage flags, search for the 'usb-storage.quirks' entry in the [https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html Kernel Parameters Documentation].
     
    244244* Unfortunately the uas driver does not create an equivalent `/proc/scsi/uas/*` file, so this method doesn't help when you are attempting to determine (for example) whether or not the NO_ATA_1X flag is set on a uas device....
    245245
     246[=#NO_ATA_1X-kernel-versions] NO_ATA_1X Kernel Versions
     247
     248* Because SAT pass-through behavior will change suddenly depending on the NO_ATA_1X flag, it can important to determine whether SAT issues are an (unexpected) side-effect of a kernel upgrade:
     249
     250* For most devices this setting will be turned on by a change to the unusual_uas.h file... in which case the "Quirks mode" line in kern.log should show that the 0x02000000 bit is indeed getting set as part of the device initialization.  This doesn't differentiate between entries from the unusual_uas.h file and manual settings from the quirks option string, but if a kernel upgrade (with no change to the quirk options in use) suddenly causes that message to appear, it's very likely a patch was made to unusal_uas.h between the old and new kernel versions.
     251
     252* However, for the patch setting this flag for all Seagate devices there is no specific kern.log message to look for, so one may have to guess the patch status based on the kernel version number.  The patch was created in November 2017 and applied to various kernel.org branches in December of 2017 and early 2018: here is a list some kernel branches with the first release within that branch to include the patch:
     253   * [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/log/drivers/usb/storage/uas-detect.h?h=v4.14.5 4.14.5] (Dec 2017)
     254   * 4.13.x: not included
     255   * [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/log/drivers/usb/storage/uas-detect.h?h=v4.9.68 4.9.68] (Dec 2017)
     256   * [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/log/drivers/usb/storage/uas-detect.h/?h=v4.4.105 4.4.105] (Dec 2017)
     257   * [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/log/drivers/usb/storage/uas-detect.h/?h=v3.16.55 3.16.55] (Mar 2018)
     258   * All kernel.org versions 4.15 and later already include the patch.
     259
     260* Linux distributions may backport patches to their own kernel branches (and those may use somewhat different version numbering schemes), but certainly kernel packages released up through Nov 2017 will not have the patch, and mostly like ones based on the upstream 4.15-or-later branches will include it.
    246261
    247262Web links: