Hi Oliver, Thank you for your very quick response and straightforward answers - they're very helpful. I am not sure if my next (and possibly last) set of questions makes sense - and that is, I've noticed that only a few platforms have enabled CONFIG_USB_ACM in their *_defconfigs. I've checked Linux Kernel version 5.10.83 and only about 28 out of the 390 there have this enabled (of course I do get that some might not have USB ports in the first place). For one, the x86_64_defconfig there doesn't have CONFIG_USB_ACM enabled, but weirdly, my laptop is an x86_64 but I can see cdc_acm in my modinfo (I have Ubuntu 18.04 LTS and my Linux Kernel version is 5.4.0.91). I'm sure I have not changed my laptop's Linux Kernel before - though it does seem to be updating for some reason because Ubuntu 18.04's tagged kernel version is v4.15. My questions are: 1. With CONFIG_USB_ACM very common and useful, why is it not enabled by default in most platforms with USB ports like the x86_64 (normal for laptops and Intel NUCs)? 2. Is there any rule or official statement from Linux Kernel maintainers/experts, highly recommending platform developers (or specific Ubuntu releases) to support this? (if there is, may I have a link of the documentation mentioning such?) 3. And is there a possibility for that module to get installed in the Linux Kernel just by the usual Linux commands (eg, "apt get update/upgrade")? Again, thank you very much for your assistance. Regards, Maggie On Thu, Dec 9, 2021 at 9:30 PM Oliver Neukum <oneukum@xxxxxxxx> wrote: > > > On 09.12.21 14:09, Maggie Maralit wrote: > > From my understanding of: > > - CONFIG_USB_ACM (reference, how to enable in kernel) that produces > > cdc-acm.ko under /lib/modules/<kernel > > version>/kernel/drivers/usb/class > Correct > > - CONFIG_USB_CDC_COMPOSITE (reference, how to enable in kernel) that > > produces g_cdc.ko under /lib/modules/<kernel > > version>/kernel/drivers/usb/gadget/legacy > Yes, though that driver is the older of the two versions available > > CONFIG_USB_ACM is the one the user needs to have in their Linux-based > > Host PC's Linux Kernel because this is the USB CDC ACM handler for > > the Host PC side (having USB Host/Master settings). > Correct > > > > CONFIG_USB_CDC_COMPOSITE seems to be the USB CDC ACM handler for the > > device side (having USB Device/Slave settings) which is on the side of > > our Product. > Yes > > > > We assume that as an outcome of enabling our users enabling > > CONFIG_USB_ACM in their Linux Kernels, the Linux-based Host PC don't > > have to install any extra USB drivers to communicate with our product. > Correct. This driver is for all devices which advertise a the correct > interfaces for the CDC ACM class of devices. > > HTH > Oliver >