Re: Fwd: MT65xx Preloader 0e8d:2000, Kernel 4.20.5.1

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

 



Adding Oliver and Macpaul Lin.

On Thu, Jan 31, 2019 at 06:54:24PM -0600, Carlos Salvador Pérez Salgado wrote:
> ---------- Forwarded message ---------
> >From: Johan Hovold <johan@***************>
> >Date: Thu, Jan 31, 2019 at 9:27 AM
> >Subject: Re: MT65xx Preloader 0e8d:2000, Kernel 4.20.5.1
> >To: Carlos Salvador Pérez Salgado <ing.salvadorperez@***************>
> >Cc: Johan Hovold <jhovold@***************>
> 
> >On Thu, Jan 31, 2019 at 05:57:01AM -0600, Carlos Salvador Pérez Salgado wrote:
> >> Hello,
> >>
> >> first of all, I want to apologize for the annoyance this message could
> >> cause to you.
> >> The matter is that I want to flash a pair of cell phones which are
> >> softbricked and I don't use MS Windows at any of my computers.
> ><
> >> I am currently using Artix linux with kernel 4.20.5.1. When I plug any of
> >> the phones with their battery removed, the Kernel identifies the device as
> >> MT65xxx Preloader and cdc_acm kicks in; the problem is that probing the
> >> device fails with error -22, and the reason given is "Zero length
> >> descriptor references", which as far I could understand in the source file
> >> of cdc_acm, is the response given when the driver fails.
> >>
> >> Should I need any firmware to get it work? Am I doing something wrong?
> >>
> >> Salvador Pérez
> >
> >You can try setting the NO_UNION_NORMAL flag for your device (e.g. in
> >the driver).
> >Make sure to include the output of "lsusb -v" for your device in your
> >report. And make sure to include any privacy footers in your mail when
> >posting to the list.

> Here I add the requested information.
> I had to use a loop in order to pipe this to a file because the device
> disappears very fast.

Judging from a quick look, the descriptors look fine (and you don̈́'t need
NO_UNION_NORMAL). Not sure why we have decided to try to bind the data
interface, which could result in the -EINVAL (-22) error you're seeing.
The ACM interface should bind though. Can you confirm this by for
example running

	udevadm monitor -k

while connecting the device?

Could it be that you don't simply don't have the required software to
actually initiate the firmware loading before the device disconnects?

> $ lsusb -v -d 0e8d:2000
> 
> Bus 001 Device 002: ID 0e8d:2000 MediaTek Inc. MT65xx Preloader
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.00
>   bDeviceClass            2 Communications
>   bDeviceSubClass         0
>   bDeviceProtocol         0
>   bMaxPacketSize0        64
>   idVendor           0x0e8d MediaTek Inc.
>   idProduct          0x2000 MT65xx Preloader
>   bcdDevice            1.00
>   iManufacturer           1 MediaTek
>   iProduct                2 MT65xx Preloader
>   iSerial                 0
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength       0x0046
>     bNumInterfaces          2
>     bConfigurationValue     1
>     iConfiguration          3 USB CDC ACM for preloader
>     bmAttributes         0xc0
>       Self Powered
>     MaxPower              500mA
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           2
>       bInterfaceClass        10 CDC Data
>       bInterfaceSubClass      0
>       bInterfaceProtocol      0
>       iInterface              4 CDC ACM Data Interface
>       Endpoint Descriptor:
>         bLength                 8
>         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                 8
>         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
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        1
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         2 Communications
>       bInterfaceSubClass      2 Abstract (modem)
>       bInterfaceProtocol      1 AT-commands (v.25ter)
>       iInterface              5 CDC ACM Communication Interface
>       CDC Header:
>         bcdCDC               1.10
>       CDC ACM:
>         bmCapabilities       0x0f
>           connection notifications
>           sends break
>           line coding and serial state
>           get/set/clear comm features
>       CDC Union:
>         bMasterInterface        1
>         bSlaveInterface         0
>       CDC Call Management:
>         bmCapabilities       0x03
>           call management
>           use DataInterface
>         bDataInterface          0
>       Endpoint Descriptor:
>         bLength                 8
>         bDescriptorType         5
>         bEndpointAddress     0x83  EP 3 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval              16
> can't get debug descriptor: Resource temporarily unavailable
> Device Status:     0x0001
>   Self Powered
> 
> I had also found this thread which seems related:
>  https://www.spinics.net/lists/linux-usb/msg175130.html

Yeah, that's the patch adding support for your device. The descriptors
reported there appear to match yours (again, after a quick comparison),
so everything should work (unless I'm missing something).

Johan



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

  Powered by Linux