public inbox for linux-usb@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Giacinto Cifelli <gciofono@gmail.com>
Cc: linux-usb@vger.kernel.org
Subject: Re: usb composition without class
Date: Thu, 20 Jun 2024 08:40:59 +0200	[thread overview]
Message-ID: <2024062010-facing-refining-c204@gregkh> (raw)
In-Reply-To: <CAKSBH7H=TEFtsQLr3=L-Eh9odeEej2j028G2RcbM0H=CTZWrQQ@mail.gmail.com>

On Thu, Jun 20, 2024 at 08:32:39AM +0200, Giacinto Cifelli wrote:
> On Thu, Jun 20, 2024 at 8:06 AM Greg KH <gregkh@linuxfoundation.org> wrote:
> > On Thu, Jun 20, 2024 at 07:58:13AM +0200, Giacinto Cifelli wrote:
> > > greetings,
> > >
> > > question:
> > >
> > > on a system (yocto), I have a usb composition that doesn't assign the
> > > class for the interfaces:
> > >     |__ Port 3: Dev 3, If 10, Class=, Driver=cdc_mbim, 480M
> > >     |__ Port 3: Dev 3, If 8, Class=, Driver=cdc_acm, 480M
> > >     |__ Port 3: Dev 3, If 6, Class=, Driver=cdc_acm, 480M
> > >     |__ Port 3: Dev 3, If 4, Class=, Driver=cdc_acm, 480M
> > >     |__ Port 3: Dev 3, If 2, Class=, Driver=cdc_acm, 480M
> > >     |__ Port 3: Dev 3, If 11, Class=, Driver=cdc_mbim, 480M
> > >     |__ Port 3: Dev 3, If 0, Class=, Driver=cdc_acm, 480M
> > >     |__ Port 3: Dev 3, If 9, Class=, Driver=cdc_acm, 480M
> > >     |__ Port 3: Dev 3, If 7, Class=, Driver=cdc_acm, 480M
> > >     |__ Port 3: Dev 3, If 5, Class=, Driver=cdc_acm, 480M
> > >     |__ Port 3: Dev 3, If 3, Class=, Driver=cdc_acm, 480M
> > >     |__ Port 3: Dev 3, If 1, Class=, Driver=cdc_acm, 480M
> > > Kernel: Linux version 6.1.35 (oe-user@oe-host) (x86_64-poky-linux-gcc
> > > (GCC) 11.4.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP
> > > PREEMPT_DYNAMIC Thu Jun 22 18:03:13 UTC 2023
> > >
> > > instead of (arch):
> > >     |__ Port 004: Dev 004, If 0, Class=Communications, Driver=cdc_acm, 5000M
> > >     |__ Port 004: Dev 004, If 1, Class=CDC Data, Driver=cdc_acm, 5000M
> > >     |__ Port 004: Dev 004, If 2, Class=Communications, Driver=cdc_acm, 5000M
> > >     |__ Port 004: Dev 004, If 3, Class=CDC Data, Driver=cdc_acm, 5000M
> > >     |__ Port 004: Dev 004, If 4, Class=Communications, Driver=cdc_acm, 5000M
> > >     |__ Port 004: Dev 004, If 5, Class=CDC Data, Driver=cdc_acm, 5000M
> > >     |__ Port 004: Dev 004, If 6, Class=Communications, Driver=cdc_acm, 5000M
> > >     |__ Port 004: Dev 004, If 7, Class=CDC Data, Driver=cdc_acm, 5000M
> > >     |__ Port 004: Dev 004, If 8, Class=Communications, Driver=cdc_acm, 5000M
> > >     |__ Port 004: Dev 004, If 9, Class=CDC Data, Driver=cdc_acm, 5000M
> > >     |__ Port 004: Dev 004, If 10, Class=Communications, Driver=cdc_mbim, 5000M
> > >     |__ Port 004: Dev 004, If 11, Class=CDC Data, Driver=cdc_mbim, 5000M
> > > Kernel: Linux 6.6.34-1-lts #1 SMP PREEMPT_DYNAMIC Sun, 16 Jun 2024
> > > 14:45:31 +0000 x86_64 GNU/Linux
> > >
> > > This lack of class creates too many /dev/ttyACMx ports, and
> > > ModemManager tries to access them all, perhaps also blocking the
> > > device, and the whole system doesn't work.
> > >
> > > For completeness, the device is:
> > >     Bus 002 Device 004: ID 1e2d:0065 Gemalto M2M GmbH LTE Modem
> > > which is supported without any customs in the cdc-acm and cdc_mbim drivers.
> > >
> > > I spotted only two options not compiled-in in the yocto .config
> > > (compared with the arch one), but I strongly doubt this is related:
> > >     CONFIG_USB_G_MULTI
> > >     CONFIG_USB_G_MULTI_CDC
> > >
> > > Would you know why the class is not assigned?
> >
> > This is just a userspace issue, right?
> 
> I think the class is assigned by the kernel/driver.
> 
> > Or are you saying that somehow
> > the same device plugged into two different systems works differently?
> 
> correct: the same device works differently in the two systems...  in
> the sense of the class not assigned.

It's not that it is not assigned, it's that something isn't figuring it
out properly.

Can you provide the output of 'lsusb -v -d 1e2d:0065' for both systems?

> The device boots in the same way, the difference is not in the device.

True, but this type of device has had a lot of quirks added to it for
the cdc_ether driver for other ones by this vendor, but not for this
specific device from what I can tell.  So perhaps we got it right in
newer kernels, but not older ones?

thanks,

greg k-h

  reply	other threads:[~2024-06-20  6:41 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-20  5:58 usb composition without class Giacinto Cifelli
2024-06-20  6:06 ` Greg KH
2024-06-20  6:32   ` Giacinto Cifelli
2024-06-20  6:40     ` Greg KH [this message]
2024-06-20  9:25       ` Giacinto Cifelli
2024-06-20  9:58         ` Greg KH
2024-06-20 10:19           ` Giacinto Cifelli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2024062010-facing-refining-c204@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=gciofono@gmail.com \
    --cc=linux-usb@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox