diff options
author | Matthijs Kooijman <matthijs@stdin.nl> | 2019-06-08 21:50:17 +0200 |
---|---|---|
committer | Matthijs Kooijman <matthijs@stdin.nl> | 2019-06-08 21:50:17 +0200 |
commit | b237dcc8e23abb9e79228e3a175a5286131f9f7a (patch) | |
tree | 5d76b60c7236496e8b562b7450edc58ddc0d4842 /cores/arduino/Stream.h | |
parent | 7a2e1cd815266fef3012a5c9b48f88d78551f838 (diff) |
Do not claim AT-protocol in CDC interface descriptor
The CDC code presents itself as a virtual serial port. However, it also
sets the "bFunctionProtocol" value to 1, which means it supports
AT-commands, which is not actually the case. This might cause problems
with some software, such as ModemManager.
Originally, ModemManager would be very liberal with probing serial
devices, using a blacklist to prevent probing non-modems such as
Arduinos.
Since version 1.7.990, it has supported a "strict" mode where it tries to be
more restrained in what devices it probes. For CDC ACM devices, this
means it will only probe devices that claim to support AT-commands.
However, it also stopped applying the blacklist (intending to eventually
remove the blacklist), meaning it would again probe Arduinos.
This new strict policy is not the upstream default, but is enabled in
Debian (since Buster) and Ubuntu (since bionic 18.04.2).
The proper way to fix this, is to not claim AT comand support in the USB
device descriptor, which is what this commit does. The Arduino will
still show up as a virtual serial port, just not be probed by
ModemManager in strict mode.
For the commit that introduced the strict mode in ModemManager, see
https://cgit.freedesktop.org/ModemManager/ModemManager/commit/src?id=ee570d44dc117dc69f23e83313dd877f76c5e3e0
Diffstat (limited to 'cores/arduino/Stream.h')
0 files changed, 0 insertions, 0 deletions