# Having trouble mounting Sansa Fuze+

## jayseejc3191

As stated above, i'm having trouble mounting my fuze+ media player.

when i try and mount it i get the following:

```

mount: wrong fs type, bad option, bad superblock on /dev/sdb,

       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try

       dmesg | tail  or so

```

Running dmesg|tail gives me the following:

```

[ 9431.393159] usb 2-4: link qh0-00ff/ffff88003a1f7800 start 0 [2/0 us]

[ 9431.393369] usb 2-4: unlink qh0-00ff/ffff88003a1f7800 start 0 [2/0 us]

[ 9431.493093] usb 2-4: link qh0-00ff/ffff88003a1f7800 start 0 [2/0 us]

[ 9431.493362] usb 2-4: unlink qh0-00ff/ffff88003a1f7800 start 0 [2/0 us]

[ 9431.568097] usb 2-4: link qh0-00ff/ffff88003a1f7800 start 0 [2/0 us]

[ 9431.568356] usb 2-4: unlink qh0-00ff/ffff88003a1f7800 start 0 [2/0 us]

[ 9431.650093] usb 2-4: link qh0-00ff/ffff88003a1f7800 start 0 [2/0 us]

[ 9431.650348] usb 2-4: unlink qh0-00ff/ffff88003a1f7800 start 0 [2/0 us]

[ 9431.726091] usb 2-4: link qh0-00ff/ffff88003a1f7800 start 0 [2/0 us]

[ 9431.726344] usb 2-4: unlink qh0-00ff/ffff88003a1f7800 start 0 [2/0 us]

```

the lsusb output for the player is here:

```

Bus 001 Device 008: ID 0781:74e1 SanDisk Corp. 

Device Descriptor:

  bLength                18

  bDescriptorType         1

  bcdUSB               2.00

  bDeviceClass            0 (Defined at Interface level)

  bDeviceSubClass         0 

  bDeviceProtocol         0 

  bMaxPacketSize0        64

  idVendor           0x0781 SanDisk Corp.

  idProduct          0x74e1 

  bcdDevice            1.00

  iManufacturer           1 

  iProduct                2 

  iSerial                 0 

  bNumConfigurations      1

  Configuration Descriptor:

    bLength                 9

    bDescriptorType         2

    wTotalLength           57

    bNumInterfaces          2

    bConfigurationValue     1

    iConfiguration          0 

    bmAttributes         0xc0

      Self Powered

    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     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     0x01  EP 1 OUT

        bmAttributes            2

          Transfer Type            Bulk

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0200  1x 512 bytes

        bInterval               0

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        1

      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     133

         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               8

Device Status:     0x0001

  Self Powered

```

If it makes any difference the player's running rockbox

----------

## Hu

What is the output of file -s /dev/sdb*?

----------

## jayseejc3191

The output's here:

```
/dev/sdb: x86 boot sector, code offset 0x58, OEM-ID "MSDOS5.0", Bytes/sector 2048, sectors/cluster 8, Media descriptor 0xf8, heads 255, sectors 3851520 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 940, serial number 0xc0379d9b, unlabeled

```

The whole player's formatted, no partition table.I'm having the exact same issues with the sd slot on the device, the output being the same with the following for file

```
/dev/sdc:  DOS-executable (

/dev/sdc1: x86 boot sector, code offset 0x0, OEM-ID "        ", sectors/cluster 64, reserved sectors 4404, Media descriptor 0xf8, heads 255, hidden sectors 8192, sectors 15515648 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 1894, reserved3 0x800000, serial number 0x630da2d5, unlabeled

```

The player works out of the box with almost every live cd i've booted but it doesn't even work with genkernel

----------

## Hu

That output is not the same.  If you have it working with a LiveCD, then you can work out from it which module handles your device.  Go to /sys/bus/usb/drivers, run ls -l */, plug in your device, and run ls -l */.  Compare the output.  The directory that gained an entry is important to the proper handling of your device.

----------

## jayseejc3191

OK, this is more in depth than i've ever gone and is a bit over my head currently, though i want to learn this for future reference. Which file exactly am i looking at to tell me which module is loaded. And once i've got that, how would i modify my .config as to enable it into the kernel?

If there's a tutorial out there that could help me with this, i'd love to have a look at it and keep it for further reference.

----------

## Hu

You can examine /proc/modules to see what modules are loaded, but that is not what I suggested.  The files I suggested will allow you to see which of your loaded modules claimed the hardware.  The LiveCD tends to load many more modules than it needs, so there is a good chance that it will have already loaded the required module before you first connect the device.  Thus, examining the change in the loaded module list would not help.  Once you have the module name, you can post it here or you can examine the Kconfig help text to map it back to a kernel configuration option.

----------

## jayseejc3191

 *Hu wrote:*   

> You can examine /proc/modules to see what modules are loaded, but that is not what I suggested.  The files I suggested will allow you to see which of your loaded modules claimed the hardware.  The LiveCD tends to load many more modules than it needs, so there is a good chance that it will have already loaded the required module before you first connect the device.  Thus, examining the change in the loaded module list would not help.  Once you have the module name, you can post it here or you can examine the Kconfig help text to map it back to a kernel configuration option.

 

I understand that. What i'm trying to figure out is what i look at once i see the new device in /sys/bus/usb/drivers to tell me what module is claiming the device. I've seen the change in the listings and it was a symlink to another folder (i forget where) that gave me a lot of info files about the device but i couldn't figure out which one of those files told me the module name.

----------

## Hu

The subdirectory immediately under drivers/ has the same name as the module that handled the new device.

----------

