Samsung Xcover 271 B2710 mass storage does not mount automatically

Bug #755342 reported by Sleft
44
This bug affects 9 people
Affects Status Importance Assigned to Milestone
usb-modeswitch (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Steps to reproduce:
1. In the interface of the Samsung Xcover 271 B2710, set it to connect as mass storage.
2. Connect it to the computer via USB cabel.

Notice that it does not mount automatically. Also it does mount automatically when instead of step 1 it is set to connect to Samsung Kies or to sync with a media player.

Below I provide output from dmesg and lsusb -vv.

Output from dmesg as it is connected (step 2):
[101332.680133] usb 2-6: new high speed USB device using ehci_hcd and address 6
[101333.630726] Initializing USB Mass Storage driver...
[101333.630861] scsi5 : usb-storage 2-6:1.0
[101333.630956] usbcore: registered new interface driver usb-storage
[101333.630958] USB Mass Storage support registered.

Output from lsusb -vv:
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 1.10
  bDeviceClass 9 Hub
  bDeviceSubClass 0 Unused
  bDeviceProtocol 0 Full speed (or root) hub
  bMaxPacketSize0 64
  idVendor 0x1d6b Linux Foundation
  idProduct 0x0001 1.1 root hub
  bcdDevice 2.06
  iManufacturer 3
  iProduct 2
  iSerial 1
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 25
    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 0x0002 1x 2 bytes
        bInterval 255
can't get hub descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)

Bus 006 Device 002: ID 046d:c01b Logitech, Inc. MX310 Optical Mouse
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.00
  bDeviceClass 0 (Defined at Interface level)
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 8
  idVendor 0x046d Logitech, Inc.
  idProduct 0xc01b MX310 Optical Mouse
  bcdDevice 18.00
  iManufacturer 1
  iProduct 2
  iSerial 0
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 34
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower 98mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 1
      bInterfaceClass 3 Human Interface Device
      bInterfaceSubClass 1 Boot Interface Subclass
      bInterfaceProtocol 2 Mouse
      iInterface 0
        HID Device Descriptor:
          bLength 9
          bDescriptorType 33
          bcdHID 1.10
          bCountryCode 0 Not supported
          bNumDescriptors 1
          bDescriptorType 34 Report
          wDescriptorLength 64
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 3
          Transfer Type Interrupt
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0005 1x 5 bytes
        bInterval 10
can't get device qualifier: Operation not permitted
can't get debug descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)

Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 1.10
  bDeviceClass 9 Hub
  bDeviceSubClass 0 Unused
  bDeviceProtocol 0 Full speed (or root) hub
  bMaxPacketSize0 64
  idVendor 0x1d6b Linux Foundation
  idProduct 0x0001 1.1 root hub
  bcdDevice 2.06
  iManufacturer 3
  iProduct 2
  iSerial 1
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 25
    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 0x0002 1x 2 bytes
        bInterval 255
can't get hub descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)

Bus 005 Device 003: ID 046d:c30e Logitech, Inc. UltraX Keyboard (Y-BL49)
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 1.10
  bDeviceClass 0 (Defined at Interface level)
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 8
  idVendor 0x046d Logitech, Inc.
  idProduct 0xc30e UltraX Keyboard (Y-BL49)
  bcdDevice 1.80
  iManufacturer 1
  iProduct 2
  iSerial 0
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 59
    bNumInterfaces 2
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower 100mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 1
      bInterfaceClass 3 Human Interface Device
      bInterfaceSubClass 1 Boot Interface Subclass
      bInterfaceProtocol 1 Keyboard
      iInterface 0
        HID Device Descriptor:
          bLength 9
          bDescriptorType 33
          bcdHID 1.10
          bCountryCode 0 Not supported
          bNumDescriptors 1
          bDescriptorType 34 Report
          wDescriptorLength 62
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 3
          Transfer Type Interrupt
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0008 1x 8 bytes
        bInterval 10
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 1
      bAlternateSetting 0
      bNumEndpoints 1
      bInterfaceClass 3 Human Interface Device
      bInterfaceSubClass 0 No Subclass
      bInterfaceProtocol 0 None
      iInterface 0
        HID Device Descriptor:
          bLength 9
          bDescriptorType 33
          bcdHID 1.10
          bCountryCode 0 Not supported
          bNumDescriptors 1
          bDescriptorType 34 Report
          wDescriptorLength 107
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x82 EP 2 IN
        bmAttributes 3
          Transfer Type Interrupt
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0008 1x 8 bytes
        bInterval 10
cannot read device status, Operation not permitted (1)

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 1.10
  bDeviceClass 9 Hub
  bDeviceSubClass 0 Unused
  bDeviceProtocol 0 Full speed (or root) hub
  bMaxPacketSize0 64
  idVendor 0x1d6b Linux Foundation
  idProduct 0x0001 1.1 root hub
  bcdDevice 2.06
  iManufacturer 3
  iProduct 2
  iSerial 1
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 25
    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 0x0002 1x 2 bytes
        bInterval 255
can't get hub descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 1.10
  bDeviceClass 9 Hub
  bDeviceSubClass 0 Unused
  bDeviceProtocol 0 Full speed (or root) hub
  bMaxPacketSize0 64
  idVendor 0x1d6b Linux Foundation
  idProduct 0x0001 1.1 root hub
  bcdDevice 2.06
  iManufacturer 3
  iProduct 2
  iSerial 1
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 25
    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 0x0002 1x 2 bytes
        bInterval 255
can't get hub descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 1.10
  bDeviceClass 9 Hub
  bDeviceSubClass 0 Unused
  bDeviceProtocol 0 Full speed (or root) hub
  bMaxPacketSize0 64
  idVendor 0x1d6b Linux Foundation
  idProduct 0x0001 1.1 root hub
  bcdDevice 2.06
  iManufacturer 3
  iProduct 2
  iSerial 1
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 25
    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 0x0002 1x 2 bytes
        bInterval 255
can't get hub descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)

Bus 002 Device 006: ID 04e8:f000 Samsung Electronics Co., Ltd
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.00
  bDeviceClass 0 (Defined at Interface level)
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 64
  idVendor 0x04e8 Samsung Electronics Co., Ltd
  idProduct 0xf000
  bcdDevice 0.00
  iManufacturer 3
  iProduct 2
  iSerial 4
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 32
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 1
    bmAttributes 0xe0
      Self Powered
      Remote Wakeup
    MaxPower 500mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 2
      bInterfaceClass 8 Mass Storage
      bInterfaceSubClass 6 SCSI
      bInterfaceProtocol 80 Bulk (Zip)
      iInterface 0
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x01 EP 1 OUT
        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 0x81 EP 1 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0200 1x 512 bytes
        bInterval 0
can't get device qualifier: Operation not permitted
can't get debug descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.00
  bDeviceClass 9 Hub
  bDeviceSubClass 0 Unused
  bDeviceProtocol 0 Full speed (or root) hub
  bMaxPacketSize0 64
  idVendor 0x1d6b Linux Foundation
  idProduct 0x0002 2.0 root hub
  bcdDevice 2.06
  iManufacturer 3
  iProduct 2
  iSerial 1
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 25
    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
can't get hub descriptor: Operation not permitted
can't get device qualifier: Operation not permitted
can't get debug descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.00
  bDeviceClass 9 Hub
  bDeviceSubClass 0 Unused
  bDeviceProtocol 0 Full speed (or root) hub
  bMaxPacketSize0 64
  idVendor 0x1d6b Linux Foundation
  idProduct 0x0002 2.0 root hub
  bcdDevice 2.06
  iManufacturer 3
  iProduct 2
  iSerial 1
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 25
    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
can't get hub descriptor: Operation not permitted
can't get device qualifier: Operation not permitted
can't get debug descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)

ProblemType: Bug
DistroRelease: Ubuntu 10.10
Package: linux-image-2.6.35-28-generic 2.6.35-28.49
Regression: No
Reproducible: Yes
ProcVersionSignature: Ubuntu 2.6.35-28.49-generic 2.6.35.11
Uname: Linux 2.6.35-28-generic x86_64
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.23.
AplayDevices:
 **** List of PLAYBACK Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: AD198x Analog [AD198x Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
Architecture: amd64
ArecordDevices:
 **** List of CAPTURE Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: AD198x Analog [AD198x Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: repabil 2065 F.... pulseaudio
CRDA: Error: [Errno 2] Filen eller katalogen finns inte
Card0.Amixer.info:
 Card hw:0 'Intel'/'HDA Intel at 0xe4804000 irq 47'
   Mixer name : 'Analog Devices AD1981'
   Components : 'HDA:11d41981,103c30c0,00100200 HDA:11c11040,103c1378,00100200'
   Controls : 11
   Simple ctrls : 9
Date: Sat Apr 9 10:31:37 2011
EcryptfsInUse: Yes
HibernationDevice: RESUME=UUID=6ba2ce7b-a355-41ea-8739-2ac5d6880bac
InstallationMedia: Ubuntu 10.04 LTS "Lucid Lynx" - Release amd64 (20100429)
MachineType: Hewlett-Packard HP Compaq 6710b (GR680ET#AK8)
PccardctlIdent:
 Socket 0:
   no product info available
PccardctlStatus:
 Socket 0:
   no card
ProcCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.35-28-generic root=UUID=f2ce1134-f38f-44b3-8d47-09aee83b83b9 ro quiet splash
ProcEnviron:
 LANGUAGE=sv_SE:sv:en
 LANG=sv_SE.UTF-8
 SHELL=/bin/bash
RelatedPackageVersions: linux-firmware 1.38.5
SourcePackage: linux
dmi.bios.date: 08/09/2010
dmi.bios.vendor: Hewlett-Packard
dmi.bios.version: 68DDU Ver. F.16
dmi.board.name: 30C0
dmi.board.vendor: Hewlett-Packard
dmi.board.version: KBC Version 71.2E
dmi.chassis.asset.tag: CNU7372L3G
dmi.chassis.type: 10
dmi.chassis.vendor: Hewlett-Packard
dmi.modalias: dmi:bvnHewlett-Packard:bvr68DDUVer.F.16:bd08/09/2010:svnHewlett-Packard:pnHPCompaq6710b(GR680ET#AK8):pvrF.16:rvnHewlett-Packard:rn30C0:rvrKBCVersion71.2E:cvnHewlett-Packard:ct10:cvr:
dmi.product.name: HP Compaq 6710b (GR680ET#AK8)
dmi.product.version: F.16
dmi.sys.vendor: Hewlett-Packard

Revision history for this message
Sleft (sleft) wrote :
description: updated
description: updated
description: updated
summary: - Samsung X Cover 271 B2710 mass storage does not mount automatically
+ Samsung Xcover 271 B2710 mass storage does not mount automatically
Brad Figg (brad-figg)
Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
Sleft (sleft) wrote :

This bug is still active in Natty.

Revision history for this message
Michael B (a-launchpad-bretterklieber-com) wrote :

This is a problem with the usb-modeswitch, if you disable it in /etc/usb_modeswitch.conf => DisableSwitching=1 then it works

Revision history for this message
Andrew Simpson (andrew-simpson) wrote :

Confirming the fix by Michael B also works with a Samsung S5510.

The problem is with usb_mode_switch and the associated udev rules in /lib/udev.d/rules/40-usb_modeswitch.rules:

# Samsung U209
#ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="f000", RUN+="usb_modeswitch '%b/%k'"

These lines do not represent a unique product; the Samsung Xcover 271 B2710 and Samsung S5510 (and others??) also match this line (lsusb gives 04e8:f000).

Commenting out this line fixes the problem on the Samsung 5S5510, and I would guess the Xcover 271 B2710 too.

affects: linux (Ubuntu) → usb-modeswitch (Ubuntu)
Revision history for this message
Josua Dietze (digidietze) wrote :

The instant "fix" is O.K.

For a proper solution I need the "lsusb -v" output of the U209.

usb_modeswitch can check attributes of a device (USB or SCSI) to identify specific models even if the USB IDs are identical. See the notorious "05c6:1000" ID ...

I'll try to reach the original contributor of the U209 information.

Revision history for this message
Josua Dietze (digidietze) wrote :

No reply from the original contributor, but I finally found this usb_modeswitch output via Google, after several fruitless attempts:

Received inquiry data (detailed identification)
-------------------------
  Vendor String: SAMSUNG
 Product String: SCH-U209 Install
Revision String: 2.31
-------------------------

Device description data (identification)
-------------------------
Manufacturer: SAMSUNG Electronics Co.,Ltd.
     Product: USB MMC Storage
  Serial No.: 000000000002
-------------------------

The page is here, see post #14:
http://forum.ubuntu-fr.org/viewtopic.php?id=370414

I consider this information correct; this enables us to identify the modem apart from the phones.
I think I can assume that the USB ID strings are not specific to the modem, so the SCSI strings need to be used.

The file "/usr/share/usb_modeswitch/04e8:f000" has to be renamed to
"/usr/share/usb_modeswitch/04e8:f000:sMo=U209". This should do the trick and leave other Samsung devices alone.

Can anyone test that fix?

Thanks!

Revision history for this message
Josua Dietze (digidietze) wrote :

Addendum:
Due to the way usb_modeswitch works, the udev rules line WILL match with all devices using the Samsung ID, but the dispatcher mechanism will NOT start the switching process except for the U209 modem. It will just exit.

So commenting out the udev rule can not be considered a general fix.

Revision history for this message
Andrew Simpson (andrew-simpson) wrote :

Comment #6: Works for me with Samsung GT-S5510T.

The file at "/usr/share/usb_modeswitch/" is an archive "configPack.tar.gz" that contained the various settings files.

[ 6917.232046] usb 1-9: new high speed USB device using ehci_hcd and address 3
[ 6917.432759] cdc_acm 1-9:1.0: ttyACM0: USB ACM device
[ 6917.435607] usbcore: registered new interface driver cdc_acm
[ 6917.435615] cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters
[ 6961.538549] usb 1-9: USB disconnect, address 3
[ 6961.904051] usb 1-9: new high speed USB device using ehci_hcd and address 4
[ 6962.091062] usbcore: registered new interface driver uas
[ 6962.122318] Initializing USB Mass Storage driver...
[ 6962.122516] scsi6 : usb-storage 1-9:1.0
[ 6962.124644] usbcore: registered new interface driver usb-storage
[ 6962.124651] USB Mass Storage support registered.
[ 6963.130812] scsi 6:0:0:0: Direct-Access Samsung GT-S5510T 2.31 PQ: 0 ANSI: 2
[ 6963.137871] sd 6:0:0:0: Attached scsi generic sg3 type 0
[ 6963.139923] sd 6:0:0:0: [sdc] 3854336 512-byte logical blocks: (1.97 GB/1.83 GiB)
[ 6963.141679] sd 6:0:0:0: [sdc] Write Protect is off
[ 6963.141688] sd 6:0:0:0: [sdc] Mode Sense: 0f 0e 00 00
[ 6963.141693] sd 6:0:0:0: [sdc] Assuming drive cache: write through
[ 6963.144672] sd 6:0:0:0: [sdc] Assuming drive cache: write through
[ 6963.148547] sdc: sdc1
[ 6963.151654] sd 6:0:0:0: [sdc] Assuming drive cache: write through
[ 6963.151663] sd 6:0:0:0: [sdc] Attached SCSI removable disk

Changed in usb-modeswitch (Ubuntu):
status: Confirmed → Fix Committed
Revision history for this message
Didier Raboud (odyx) wrote :

This was fixed in usb-modeswitch upstream update 20111023, available in Ubuntu Precise. It affects all previous Ubuntu releases though.

Changed in usb-modeswitch (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
ptah (brett-h-l) wrote :

Samsung 2710 does not connect in U-12.04. Reverted to /etc/usb_modeswitch.conf => DisableSwitching=1 for fix.

Revision history for this message
Josua Dietze (digidietze) wrote :

Please be a little bit more specific. Why do you conclude that usb_modeswitch is responsible for the connection problems?
Mind that the orignal bug was about the mass storage mode of the phone, not about connecting issues.

Also, the committed fix will prevent *any* mode-switching action for this phone. Disabling usb_modeswitch will change nothing.

Revision history for this message
sko (sebastianus13) wrote :

I can confirm that the fix in ubuntu 12.04 does not fix the connection problems of
a Samsung B2710 mobile phone. The phone is recognized by the kernel but does not show
up as a usable device (the device file will not be created). (USB mass storage mode)
After setting "DisableSwitching=1" in /etc/usb_modeswitch.conf device is working
as expected.

For reference:
# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 0bda:0151 Realtek Semiconductor Corp. Mass Storage Device (Multicard Reader)
Bus 001 Device 005: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 003 Device 002: ID 1131:1001 Integrated System Solution Corp. KY-BT100 Bluetooth Adapter
Bus 002 Device 002: ID 046d:c00e Logitech, Inc. M-BJ58/M-BJ69 Optical Wheel Mouse
Bus 001 Device 009: ID 04e8:f000 Samsung Electronics Co., Ltd

# tar tzvf /usr/share/usb_modeswitch/configPack.tar.gz |grep 04e8
-rw-rw-r-- root/root 166 2011-11-10 23:42 04e8:689a
-rw-rw-r-- root/root 142 2011-11-10 23:42 04e8:f000:sMo=U209

Revision history for this message
Josua Dietze (digidietze) wrote :

Please create a usb_modeswitch log file by editing /etc/usb_modeswitch.conf and set EnableLogging to 1.

Revision history for this message
Andrew Simpson (andrew-simpson) wrote :

Regarding comment #8. Can now confirm that usb_modeswitch is not working with Kubuntu 12.04. Changing the config file to 'DisableSwitching=1' provides a fix.

Have enabled debugging (EnableLogging=1) and collected debugging information with 'DisableSwitching=0'. File is attached.

Revision history for this message
ikletti (ikletti) wrote :

I can confirm that this problem still exists with Kubuntu 14.04 and a Samsung B2710.

Using the fix from comment #3 works.

Revision history for this message
Josua Dietze (digidietze) wrote :

The problem is obvious in the log from #14:

Warning: SCSI attribute "vendor" not readable.
Warning: SCSI attribute "model" not readable.
Warning: SCSI attribute "rev" not readable.

The filter "sMo=U209" which should prevent usb_modeswitch from doing anything in this case does not work - because the SCSI identification fails.

The problem is in the dispatcher part of the Ubuntu fork of usb_modeswitch.

ikletti, can you check out these SCSI attributes in the /sys tree when your phone is plugged in?

You'll find it under
/sys/bus/usb/drivers/usb-storage/<device>/host*/targetX:X:X/X:X:X:X

Revision history for this message
Andrew Simpson (andrew-simpson) wrote :

This is with the same phone from #14

$ cd /sys/bus/usb/drivers/usb-storage/2-1.6:1.0/host7/target7:0:0/7:0:0:0
$ cat vendor
Samsung
$ cat model
GT-S5510T
$ cat rev
2.31

I couldn't find directory 'usb-storage' in /sys/usb/drivers unless I did 'DisableSwitching=1'.

Revision history for this message
Josua Dietze (digidietze) wrote :

Yes, it's correct to disable mode-switching when checking out the SCSI attributes. This is what usb_modeswitch sees when a phone/modem is plugged in. Then it has to determine if any action is required.

Bottom line:

The dispatcher part of the usb_modeswitch Ubuntu fork has trouble reading the SCSI attributes, which are however present and readable.

I have not seen problems like this with the original (upstream) package which is also used on Debian.

Ubuntu Developers?

Revision history for this message
Josua Dietze (digidietze) wrote :

Hint:

It may well be that there is a timing problem if the dispatcher tries to read the values when the storage driver has not completed the initialization of the storage interface.

Revision history for this message
udippel (udippel) wrote :

Only as an update: As of today, it still doesn't work out of the box.
The workaround fixes it.

Allow me a bit of comment that sounds sarcastic, and yet bugs me as an oldtimer with 20 years on Linux: I always advocate FOSS. Should someone hit this snag, how can I honestly defend this shortcoming? Asking Aunt Tilly to search Google and end with her using the CL to vi a parameter in a file?
Could I blame her on going back to the monopolist?

I would defend my beloved Linux, were she the first to encounter this. Alas, it has been around for > 5 years.
And I am afraid, not only this particular mobile phone will simply not work as mass storage.

Revision history for this message
Josua Dietze (digidietze) wrote :

udippel, instead of ranting generally you could just use Debian instead of Ubuntu. It's likely that you would not run into this bug.

Revision history for this message
Oleg Moiseichuk (berroll) wrote :

This bug still exists in Kubuntu 20.04. Samsung Xcover B2710 isn't connected properly.
Long ago I fixed it on Ubuntu 12.04 by "DisableSwitching=1" and forgot about it. Now found this bugreport once again and old fix still works.
If my help is needed in debugging of this issue, I'm ready.
P.S. Does this disabled switching affects other USB devices somehow or only mobile phones?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.