MT7601U with on-board storage reports incorrect capacity

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I have this wifi device with on-board storage for the Windows driver:

New USB device found, idVendor=148f, idProduct=2878, bcdDevice= 0.01

After switching to wifi mode, we can see it's a MT7601U:

New USB device found, idVendor=148f, idProduct=7601, bcdDevice= 0.00

The problem with this one is that it can't be mounted, nothing happens
for a long time. I'm testing with kernel 6.12.8-arch1-1 but it's been
like this for at least two years. 

The problem seems to be that reading from the "end" of the device
takes 17 seconds. I assume the reason for that is the fake capacity:

SCSI Payload (Read Capacity(10) Response Data)
    [LUN: 0x0000]
    [Command Set:CD-ROM (0x05) ]
    [MMC Opcode: Read Capacity(10) (0x25)]
    [Request in: 212]
    [Response in: 217]
    LBA: 65280 
    Block size in bytes: 2048
    Read capacity: 133693440 bytes (127.50 MiB)

The real capacity is probably just 8 MiB. The driver files stored in
it are ~7 MiB total.

This takes 17 seconds and returns 4096 bytes filled with 0xff:

SCSI CDB Read(10)
    [LUN: 0x0000]
    [Command Set:CD-ROM (0x05) ]
    [Response in: 565]
    Opcode: Read(10) (0x28)
    Flags: 0x00
    Logical Block Address (LBA): 0x0000fefc (65276)
    ...0 0000 = Group: 0x00
    Transfer Length: 2
    Control: 0x00

Windows never tries to read that far. (The device works in Windows.)

How can this be fixed?

usb_modeswitch can switch it to wifi mode, so it's not a huge problem.
I'm just curious.

Attachment: mt7601u-linux.pcapng
Description: application/pcapng

Attachment: mt7601u-windows.pcapng
Description: application/pcapng


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux