# USB 3.0 external drive persistent in /dev

## Gabriel_Blake

Hi.

I have a laptop with a USB 3.0 port and an external drive with super-speed transfers - the speed is awesome  :Smile: 

The problem is that even when I unplug my drive it remains in /dev (/dev/sdc, /dev/sdc1, /dev/sdc2). It happens ONLY for the 3.0 port and ONLY with the 3.0 external drive (I've checked other combinations). Could this be an udev or kernel problem ?

The root hub:

```
lsusb -v -d 1d6b:0003

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Device Descriptor:

  bLength                18

  bDescriptorType         1

  bcdUSB               3.00

  bDeviceClass            9 Hub

  bDeviceSubClass         0 Unused

  bDeviceProtocol         3 

  bMaxPacketSize0         9

  idVendor           0x1d6b Linux Foundation

  idProduct          0x0003 3.0 root hub

  bcdDevice            3.07

  iManufacturer           3 Linux 3.7.10-gentoo xhci_hcd

  iProduct                2 xHCI Host Controller

  iSerial                 1 0000:00:14.0

  bNumConfigurations      1

  Configuration Descriptor:

    bLength                 9

    bDescriptorType         2

    wTotalLength           31

    bNumInterfaces          1

    bConfigurationValue     1

    iConfiguration          0 

    bmAttributes         0xe0

      Self Powered

      Remote Wakeup

    MaxPower                0mA

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       0

      bNumEndpoints           1

      bInterfaceClass         9 Hub

      bInterfaceSubClass      0 Unused

      bInterfaceProtocol      0 Full speed (or root) hub

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x81  EP 1 IN

        bmAttributes            3

          Transfer Type            Interrupt

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0004  1x 4 bytes

        bInterval              12

        bMaxBurst               0

Hub Descriptor:

  bLength              12

  bDescriptorType      42

  nNbrPorts             4

  wHubCharacteristic 0x000a

    No power switching (usb 1.0)

    Per-port overcurrent protection

  bPwrOn2PwrGood       10 * 2 milli seconds

  bHubContrCurrent      0 milli Ampere

  bHubDecLat          0.0 micro seconds

  wHubDelay             0 nano seconds

  DeviceRemovable    0x00

 Hub Port Status:

   Port 1: 0000.02a0 5Gbps power Rx.Detect

   Port 2: 0000.0203 5Gbps power U0 enable connect

   Port 3: 0000.02a0 5Gbps power Rx.Detect

   Port 4: 0000.02a0 5Gbps power Rx.Detect

Binary Object Store Descriptor:

  bLength                 5

  bDescriptorType        15

  wTotalLength           15

  bNumDeviceCaps          1

  SuperSpeed USB Device Capability:

    bLength                10

    bDescriptorType        16

    bDevCapabilityType      3

    bmAttributes         0x00

    wSpeedsSupported   0x0008

      Device can operate at SuperSpeed (5Gbps)

    bFunctionalitySupport   3

      Lowest fully-functional device speed is SuperSpeed (5Gbps)

    bU1DevExitLat          10 micro seconds

    bU2DevExitLat         512 micro seconds

Device Status:     0x0001

  Self Powered

```

The device in question:

```
lsusb -v -d 174c:5106

Bus 003 Device 013: ID 174c:5106 ASMedia Technology Inc. Transcend StoreJet 25M3

Device Descriptor:

  bLength                18

  bDescriptorType         1

  bcdUSB               2.10

  bDeviceClass            0 (Defined at Interface level)

  bDeviceSubClass         0 

  bDeviceProtocol         0 

  bMaxPacketSize0        64

  idVendor           0x174c ASMedia Technology Inc.

  idProduct          0x5106 Transcend StoreJet 25M3

  bcdDevice            0.01

  iManufacturer           2 ASMedia

  iProduct                3 AS2105

  iSerial                 1 100208PB4400Q7KEZZXA

  bNumConfigurations      1

  Configuration Descriptor:

    bLength                 9

    bDescriptorType         2

    wTotalLength           32

    bNumInterfaces          1

    bConfigurationValue     1

    iConfiguration          0 

    bmAttributes         0xc0

      Self Powered

    MaxPower                0mA

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       0

      bNumEndpoints           2

      bInterfaceClass         8 Mass Storage

      bInterfaceSubClass      6 SCSI

      bInterfaceProtocol     80 Bulk-Only

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x81  EP 1 IN

        bmAttributes            2

          Transfer Type            Bulk

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0200  1x 512 bytes

        bInterval               0

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x02  EP 2 OUT

        bmAttributes            2

          Transfer Type            Bulk

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0200  1x 512 bytes

        bInterval               0

Binary Object Store Descriptor:

  bLength                 5

  bDescriptorType        15

  wTotalLength           22

  bNumDeviceCaps          2

  USB 2.0 Extension Device Capability:

    bLength                 7

    bDescriptorType        16

    bDevCapabilityType      2

    bmAttributes   0x00000002

      Link Power Management (LPM) Supported

  SuperSpeed USB Device Capability:

    bLength                10

    bDescriptorType        16

    bDevCapabilityType      3

    bmAttributes         0x00

    wSpeedsSupported   0x000e

      Device can operate at Full Speed (12Mbps)

      Device can operate at High Speed (480Mbps)

      Device can operate at SuperSpeed (5Gbps)

    bFunctionalitySupport   1

      Lowest fully-functional device speed is Full Speed (12Mbps)

    bU1DevExitLat          10 micro seconds

    bU2DevExitLat        2047 micro seconds

Device Status:     0x0001

  Self Powered

```

The same device AFTER UNPLUGGING (!):

```
 lsusb -v  -d 174c:5106

Bus 004 Device 004: ID 174c:5106 ASMedia Technology Inc. Transcend StoreJet 25M3

Couldn't open device, some information will be missing

Device Descriptor:

  bLength                18

  bDescriptorType         1

  bcdUSB               3.00

  bDeviceClass            0 (Defined at Interface level)

  bDeviceSubClass         0 

  bDeviceProtocol         0 

  bMaxPacketSize0         9

  idVendor           0x174c ASMedia Technology Inc.

  idProduct          0x5106 Transcend StoreJet 25M3

  bcdDevice            0.01

  iManufacturer           2 

  iProduct                3 

  iSerial                 1 

  bNumConfigurations      1

Couldn't get configuration descriptor 0, some information will be missing

Couldn't get configuration descriptor 0, some information will be missing

```

USB related .config code:

```
cat /usr/src/linux/.config | grep USB

CONFIG_BT_HCIBTUSB=y

# CONFIG_BT_HCIBFUSB is not set

# CONFIG_USB_SWITCH_FSA9480 is not set

# USB Network Adapters

# CONFIG_USB_CATC is not set

# CONFIG_USB_KAWETH is not set

# CONFIG_USB_PEGASUS is not set

# CONFIG_USB_RTL8150 is not set

CONFIG_USB_USBNET=y

CONFIG_USB_NET_AX8817X=y

CONFIG_USB_NET_CDCETHER=y

CONFIG_USB_NET_CDC_EEM=y

CONFIG_USB_NET_CDC_NCM=y

# CONFIG_USB_NET_DM9601 is not set

# CONFIG_USB_NET_SMSC75XX is not set

# CONFIG_USB_NET_SMSC95XX is not set

# CONFIG_USB_NET_GL620A is not set

# CONFIG_USB_NET_NET1080 is not set

# CONFIG_USB_NET_PLUSB is not set

# CONFIG_USB_NET_MCS7830 is not set

CONFIG_USB_NET_RNDIS_HOST=y

CONFIG_USB_NET_CDC_SUBSET=y

# CONFIG_USB_ALI_M5632 is not set

# CONFIG_USB_AN2720 is not set

CONFIG_USB_BELKIN=y

CONFIG_USB_ARMLINUX=y

# CONFIG_USB_EPSON2888 is not set

# CONFIG_USB_KC2190 is not set

CONFIG_USB_NET_ZAURUS=y

# CONFIG_USB_NET_CX82310_ETH is not set

# CONFIG_USB_NET_KALMIA is not set

# CONFIG_USB_NET_QMI_WWAN is not set

# CONFIG_USB_HSO is not set

# CONFIG_USB_NET_INT51X1 is not set

# CONFIG_USB_IPHETH is not set

# CONFIG_USB_SIERRA_NET is not set

# CONFIG_USB_VL600 is not set

# CONFIG_AT76C50X_USB is not set

# CONFIG_USB_ZD1201 is not set

CONFIG_USB_NET_RNDIS_WLAN=y

CONFIG_MOUSE_SYNAPTICS_USB=y

# CONFIG_TABLET_USB_ACECAD is not set

# CONFIG_TABLET_USB_AIPTEK is not set

# CONFIG_TABLET_USB_GTCO is not set

# CONFIG_TABLET_USB_HANWANG is not set

# CONFIG_TABLET_USB_KBTAB is not set

CONFIG_TABLET_USB_WACOM=y

# CONFIG_I2C_TINY_USB is not set

# USB-based Watchdog Cards

# CONFIG_USBPCWATCHDOG is not set

CONFIG_MEDIA_USB_SUPPORT=y

CONFIG_USB_VIDEO_CLASS=y

CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y

# CONFIG_USB_GSPCA is not set

# CONFIG_USB_PWC is not set

# CONFIG_USB_ZR364XX is not set

# CONFIG_USB_STKWEBCAM is not set

# CONFIG_USB_S2255 is not set

# CONFIG_USB_SN9C102 is not set

# Webcam, TV (analog/digital) USB devices

CONFIG_SND_USB=y

CONFIG_SND_USB_AUDIO=y

# CONFIG_SND_USB_UA101 is not set

# CONFIG_SND_USB_USX2Y is not set

# CONFIG_SND_USB_CAIAQ is not set

# CONFIG_SND_USB_US122L is not set

# CONFIG_SND_USB_6FIRE is not set

# USB HID support

CONFIG_USB_HID=y

CONFIG_USB_HIDDEV=y

CONFIG_USB_ARCH_HAS_OHCI=y

CONFIG_USB_ARCH_HAS_EHCI=y

CONFIG_USB_ARCH_HAS_XHCI=y

CONFIG_USB_SUPPORT=y

CONFIG_USB_COMMON=y

CONFIG_USB_ARCH_HAS_HCD=y

CONFIG_USB=y

CONFIG_USB_DEBUG=y

CONFIG_USB_ANNOUNCE_NEW_DEVICES=y

# Miscellaneous USB options

# CONFIG_USB_DYNAMIC_MINORS is not set

CONFIG_USB_SUSPEND=y

# CONFIG_USB_OTG is not set

# CONFIG_USB_DWC3 is not set

CONFIG_USB_MON=y

# CONFIG_USB_WUSB_CBAF is not set

# USB Host Controller Drivers

# CONFIG_USB_C67X00_HCD is not set

CONFIG_USB_XHCI_HCD=y

# CONFIG_USB_XHCI_HCD_DEBUGGING is not set

CONFIG_USB_EHCI_HCD=y

CONFIG_USB_EHCI_ROOT_HUB_TT=y

CONFIG_USB_EHCI_TT_NEWSCHED=y

# CONFIG_USB_OXU210HP_HCD is not set

# CONFIG_USB_ISP116X_HCD is not set

# CONFIG_USB_ISP1760_HCD is not set

# CONFIG_USB_ISP1362_HCD is not set

# CONFIG_USB_OHCI_HCD is not set

CONFIG_USB_EHCI_HCD_PLATFORM=y

CONFIG_USB_UHCI_HCD=y

# CONFIG_USB_SL811_HCD is not set

# CONFIG_USB_R8A66597_HCD is not set

# CONFIG_USB_MUSB_HDRC is not set

# CONFIG_USB_CHIPIDEA is not set

# CONFIG_USB_RENESAS_USBHS is not set

# USB Device Class drivers

CONFIG_USB_ACM=y

CONFIG_USB_PRINTER=y

CONFIG_USB_WDM=y

CONFIG_USB_TMC=y

# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may

# also be needed; see USB_STORAGE Help for more info

CONFIG_USB_STORAGE=y

# CONFIG_USB_STORAGE_DEBUG is not set

# CONFIG_USB_STORAGE_REALTEK is not set

# CONFIG_USB_STORAGE_DATAFAB is not set

# CONFIG_USB_STORAGE_FREECOM is not set

# CONFIG_USB_STORAGE_ISD200 is not set

# CONFIG_USB_STORAGE_USBAT is not set

# CONFIG_USB_STORAGE_SDDR09 is not set

# CONFIG_USB_STORAGE_SDDR55 is not set

# CONFIG_USB_STORAGE_JUMPSHOT is not set

# CONFIG_USB_STORAGE_ALAUDA is not set

# CONFIG_USB_STORAGE_ONETOUCH is not set

# CONFIG_USB_STORAGE_KARMA is not set

# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set

# CONFIG_USB_STORAGE_ENE_UB6250 is not set

# USB Imaging devices

# CONFIG_USB_MDC800 is not set

# CONFIG_USB_MICROTEK is not set

# USB port drivers

CONFIG_USB_SERIAL=y

# CONFIG_USB_SERIAL_CONSOLE is not set

CONFIG_USB_SERIAL_GENERIC=y

# CONFIG_USB_SERIAL_AIRCABLE is not set

# CONFIG_USB_SERIAL_ARK3116 is not set

# CONFIG_USB_SERIAL_BELKIN is not set

# CONFIG_USB_SERIAL_CH341 is not set

# CONFIG_USB_SERIAL_WHITEHEAT is not set

# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set

# CONFIG_USB_SERIAL_CP210X is not set

# CONFIG_USB_SERIAL_CYPRESS_M8 is not set

# CONFIG_USB_SERIAL_EMPEG is not set

CONFIG_USB_SERIAL_FTDI_SIO=y

# CONFIG_USB_SERIAL_FUNSOFT is not set

# CONFIG_USB_SERIAL_VISOR is not set

# CONFIG_USB_SERIAL_IPAQ is not set

# CONFIG_USB_SERIAL_IR is not set

# CONFIG_USB_SERIAL_EDGEPORT is not set

# CONFIG_USB_SERIAL_EDGEPORT_TI is not set

# CONFIG_USB_SERIAL_F81232 is not set

# CONFIG_USB_SERIAL_GARMIN is not set

# CONFIG_USB_SERIAL_IPW is not set

# CONFIG_USB_SERIAL_IUU is not set

# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set

# CONFIG_USB_SERIAL_KEYSPAN is not set

# CONFIG_USB_SERIAL_KLSI is not set

# CONFIG_USB_SERIAL_KOBIL_SCT is not set

# CONFIG_USB_SERIAL_MCT_U232 is not set

# CONFIG_USB_SERIAL_METRO is not set

# CONFIG_USB_SERIAL_MOS7720 is not set

# CONFIG_USB_SERIAL_MOS7840 is not set

# CONFIG_USB_SERIAL_MOTOROLA is not set

# CONFIG_USB_SERIAL_NAVMAN is not set

# CONFIG_USB_SERIAL_PL2303 is not set

# CONFIG_USB_SERIAL_OTI6858 is not set

# CONFIG_USB_SERIAL_QCAUX is not set

# CONFIG_USB_SERIAL_QUALCOMM is not set

# CONFIG_USB_SERIAL_SPCP8X5 is not set

# CONFIG_USB_SERIAL_HP4X is not set

# CONFIG_USB_SERIAL_SAFE is not set

# CONFIG_USB_SERIAL_SIEMENS_MPI is not set

# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set

# CONFIG_USB_SERIAL_SYMBOL is not set

# CONFIG_USB_SERIAL_TI is not set

# CONFIG_USB_SERIAL_CYBERJACK is not set

# CONFIG_USB_SERIAL_XIRCOM is not set

# CONFIG_USB_SERIAL_OPTION is not set

# CONFIG_USB_SERIAL_OMNINET is not set

# CONFIG_USB_SERIAL_OPTICON is not set

# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set

# CONFIG_USB_SERIAL_ZIO is not set

# CONFIG_USB_SERIAL_ZTE is not set

# CONFIG_USB_SERIAL_SSU100 is not set

# CONFIG_USB_SERIAL_QT2 is not set

# CONFIG_USB_SERIAL_DEBUG is not set

# USB Miscellaneous drivers

# CONFIG_USB_EMI62 is not set

# CONFIG_USB_EMI26 is not set

# CONFIG_USB_ADUTUX is not set

# CONFIG_USB_SEVSEG is not set

# CONFIG_USB_RIO500 is not set

# CONFIG_USB_LEGOTOWER is not set

# CONFIG_USB_LCD is not set

# CONFIG_USB_LED is not set

# CONFIG_USB_CYPRESS_CY7C63 is not set

# CONFIG_USB_CYTHERM is not set

# CONFIG_USB_IDMOUSE is not set

# CONFIG_USB_FTDI_ELAN is not set

# CONFIG_USB_APPLEDISPLAY is not set

# CONFIG_USB_SISUSBVGA is not set

# CONFIG_USB_LD is not set

# CONFIG_USB_TRANCEVIBRATOR is not set

# CONFIG_USB_IOWARRIOR is not set

# CONFIG_USB_TEST is not set

# CONFIG_USB_ISIGHTFW is not set

# CONFIG_USB_YUREX is not set

# CONFIG_USB_EZUSB_FX2 is not set

# USB Physical Layer drivers

# CONFIG_OMAP_USB2 is not set

# CONFIG_USB_ISP1301 is not set

CONFIG_USB_GADGET=y

# CONFIG_USB_GADGET_DEBUG is not set

# CONFIG_USB_GADGET_DEBUG_FILES is not set

# CONFIG_USB_GADGET_DEBUG_FS is not set

CONFIG_USB_GADGET_VBUS_DRAW=2

CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2

# USB Peripheral Controller

# CONFIG_USB_R8A66597 is not set

# CONFIG_USB_MV_UDC is not set

# CONFIG_USB_M66592 is not set

# CONFIG_USB_AMD5536UDC is not set

# CONFIG_USB_NET2272 is not set

# CONFIG_USB_NET2280 is not set

# CONFIG_USB_GOKU is not set

# CONFIG_USB_EG20T is not set

# CONFIG_USB_DUMMY_HCD is not set

CONFIG_USB_LIBCOMPOSITE=y

# CONFIG_USB_ZERO is not set

# CONFIG_USB_AUDIO is not set

CONFIG_USB_ETH=y

CONFIG_USB_ETH_RNDIS=y

# CONFIG_USB_ETH_EEM is not set

# CONFIG_USB_G_NCM is not set

# CONFIG_USB_GADGETFS is not set

# CONFIG_USB_FUNCTIONFS is not set

# CONFIG_USB_FILE_STORAGE is not set

# CONFIG_USB_MASS_STORAGE is not set

# CONFIG_USB_G_SERIAL is not set

# CONFIG_USB_MIDI_GADGET is not set

# CONFIG_USB_G_PRINTER is not set

# CONFIG_USB_CDC_COMPOSITE is not set

# CONFIG_USB_G_ACM_MS is not set

# CONFIG_USB_G_MULTI is not set

# CONFIG_USB_G_HID is not set

# CONFIG_USB_G_DBGP is not set

# CONFIG_USB_G_WEBCAM is not set

# CONFIG_NOP_USB_XCEIV is not set
```

----------

## BradN

It looks like a problem internal to kernel USB support - I don't think lsusb depends on udev or things like that to get a device listing - see if the device still shows up inside /proc/bus/usb/devices after removing.  If it does, I think it has to be a kernel bug.  Then you'd be down to generic 'try newer/older kernels' as the easiest first try at fixing it.

Other thoughts:  

Check dmesg for any error messages that pop up after unplug.

Try the /sys/bus/usb/devices/(yourdevice)/remove control file - I believe you can "echo 1 > remove" to tell the kernel to shut down the device before you unplug it, maybe this will help?  (cat "product" file in those directories to find which is the storage device)

----------

## poncho

 *BradN wrote:*   

> I think it has to be a kernel bug.

 

A kernel bug it is.

See https://bugs.gentoo.org/show_bug.cgi?id=453904

----------

