# Having issues getting my USB floppy drive working

## ImageJPEG

I bought a USB floppy drive to transfer files from my modern computer to my vintage ones. I tried compiling the floppy driver in the kernel but that messed some things up. I've compiled the driver as a module instead but when I try to load it, it gives me an error:

```
sudo modprobe floppy

Password: 

modprobe: ERROR: could not insert 'floppy': No such device
```

dmesg gives me this:

```
...[   35.054975] end_request: I/O error, dev sdg, sector 0

[   35.054981] Buffer I/O error on device sdg, logical block 0

[   42.926894] sd 7:0:0:0: [sdg] Unhandled sense code

[   42.926898] sd 7:0:0:0: [sdg]  

[   42.926900] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE

[   42.926902] sd 7:0:0:0: [sdg]  

[   42.926903] Sense Key : Medium Error [current] 

[   42.926907] sd 7:0:0:0: [sdg]  

[   42.926911] Add. Sense: Incompatible medium installed

[   42.926913] sd 7:0:0:0: [sdg] CDB: 

[   42.926915] Read(10): 28 00 00 00 00 00 00 00 08 00 00 00

[   42.926925] end_request: I/O error, dev sdg, sector 0

[   42.926927] Buffer I/O error on device sdg, logical block 0

[   43.171712] EXT4-fs (sda3): re-mounted. Opts: commit=0

[   43.175109] EXT4-fs (sda1): re-mounted. Opts: commit=0

[   43.211283] EXT4-fs (sdb1): re-mounted. Opts: commit=0

[   50.766891] sd 7:0:0:0: [sdg] Unhandled sense code

[   50.766899] sd 7:0:0:0: [sdg]  

[   50.766903] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE

[   50.766907] sd 7:0:0:0: [sdg]  

[   50.766910] Sense Key : Medium Error [current] 

[   50.766917] sd 7:0:0:0: [sdg]  

[   50.766924] Add. Sense: Incompatible medium installed

[   50.766929] sd 7:0:0:0: [sdg] CDB: 

[   50.766931] Read(10): 28 00 00 00 00 00 00 00 08 00 00 00

[   50.766951] end_request: I/O error, dev sdg, sector 0

[   50.766955] Buffer I/O error on device sdg, logical block 0

[  246.940097] floppy0: no floppy controllers found
```

What lsusb -vv shows:

```
Bus 002 Device 002: ID 0644:0000 TEAC Corp. Floppy

Device Descriptor:

  bLength                18

  bDescriptorType         1

  bcdUSB               1.10

  bDeviceClass            0 (Defined at Interface level)

  bDeviceSubClass         0 

  bDeviceProtocol         0 

  bMaxPacketSize0         8

  idVendor           0x0644 TEAC Corp.

  idProduct          0x0000 Floppy

  bcdDevice            2.00

  iManufacturer           1 TEACV0.0

  iProduct                2 TEACV0.0

  iSerial                 0 

  bNumConfigurations      1

  Configuration Descriptor:

    bLength                 9

    bDescriptorType         2

    wTotalLength           39

    bNumInterfaces          1

    bConfigurationValue     1

    iConfiguration          0 

    bmAttributes         0x80

      (Bus Powered)

    MaxPower               98mA

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       0

      bNumEndpoints           3

      bInterfaceClass         8 Mass Storage

      bInterfaceSubClass      4 Floppy (UFI)

      bInterfaceProtocol      0 Control/Bulk/Interrupt

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x82  EP 2 IN

        bmAttributes            2

          Transfer Type            Bulk

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0040  1x 64 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     0x0040  1x 64 bytes

        bInterval               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             127

Device Status:     0x0000

  (Bus Powered)
```

Any ideas?

----------

## eccerr0r

I have a USB floppy, yes these are strange beasts.

No, you don't need the floppy.ko driver - that's for the 8272 clones.  These drives show up as a 1.44MB /dev/sdX drive like a hard disk and just use it as a hard drive, pretty much.

I don't know how you would format these things however.  I think it's best to format floppies in a real floppy controller than one of these things.  I also do not know how it would behave with 720K disks, I've only tested with 1.44MB standard high density PC format disks.

----------

## Logicien

Is the USB floppy detected by the BIOS(EFI) as a bootable drive?

If yes, have you try to use it as a bootable drive to see how it work?

Have you try to make it work with an other Linux live-cd distribution?

It is easier to compile the Linux floppy support as a module if you need to pass it some parameters. Like eccerr0r said you dont need it, this module do not support USB according to it source code. But you may miss some USB support for your floppy.

You have the Linux floppy kernel parameter that can be use to change the kernel behavior. See /usr/src/linux/Documentation/blockdev/floppy.txt.

Have you try to make it work with an other Linux live-cd distribution?

----------

## ImageJPEG

Yes, it does show up as a bootable device in my BIOS.

I'll check to see if I can boot from it.

I currently don't have any live CDs or burnable CD/DVDs.

UPDATE:

It does not boot from the drive...however, the only bootable 3.5" floppy I have is DOS 3.30 for a Tandy 1000 HX.

One thing I do notice thought, about every two seconds, the light on the drive flashes.

Also, when I try to mount the floppy using:

```
sudo mount -t msdos /dev/sdg /mnt/floppy
```

I get this error:

```
mount: /dev/sdg: can't read superblock
```

----------

## Logicien

It's because your floppy disk is not formated in msdosfs. You can execute the command

```
blkid
```

to know the filesystem in which the floppy disk is formated and/or try

```
sudo mount -t auto /dev/sdg /mnt/floppy
```

You may need to format the floppy disk in a filesystem of your choice before mounting it. A dirty filesystem can be the cause of Input/output errors. Use the badblocks command to verify the integrity of the floppy disk. Change it for a new one supported by your floppy drive if the problem persist.

----------

## eccerr0r

The behavior of my usb floppy when a disk is inserted is for the drive to first read it on its own - which makes sense in order to become a real SCSI mass storage device.  I don't know what the behavior is if the disk can't actually be read however.

I'll need to do more experiments on this drive, and I still don't know if it's possible to format disks...

----------

