Saturday, June 22, 2024
HomeAppledriver - macOS acknowledges USB CDC-ACM serial port as dialup modem

driver – macOS acknowledges USB CDC-ACM serial port as dialup modem


I’m lately trying to program STM32 microcontrollers underneath macOS, and I used my CMSIS-DAP suitable interface to flash the microcontroller.

Usually an CMSIS-DAP interface would seem as a USB composite gadget: it accommodates an HID gadget which is used to entry the debug port on STM32, and one other one as USB CDC ACM serial port (from which you’ll entry a bodily serial port on the interface).

Underneath macOS, CDC serial ports are presupposed to be acknowledged as /dev/tty.usbmodemXXX, but it surely would not seem on my Mac in any respect. Later I’d discover out it was really acknowledged as a dial up modem (in Community tab of system preferences):

CMSIS-DAP Link interface recognized as modem

After all I did not like what macOS did so I attempted deleting the gadget from Community tab and selected “No” when it asks me whether or not I would like it to reappear subsequent time I plug it in, hoping it might let me entry the uncooked serial port gadget when community companies just isn’t making an attempt to occupy it, and it didn’t. Serial port gadgets nonetheless would not present up. Later it seems Apple left no strategy to undo that so I am unable to restore my pc to the way it behaved to start with.

From the ioreg output (after I deleted it from Community and did a bit extra analysis on learn how to present macOS gadget hierachy) I can see CDC ACM driver is selecting up the CDC serial port a part of the composite gadget however apparently IOSerialBSDClient just isn’t current, which means serial port is after all not obtainable.

    | |   | | | +-o USB2.1 Hub@00100000  <class IOUSBHostDevice, id 0x100000755, registered, matched, energetic, busy 0 (243 ms), retain 39>
    | |   | | |   +-o AppleUSB20Hub@00100000  <class AppleUSB20Hub, id 0x100000810, registered, matched, energetic, busy 0 (236 ms), retain 23>
    | |   | | |   | +-o AppleUSB20HubPort@00110000  <class AppleUSB20HubPort, id 0x10000081d, registered, matched, energetic, busy 0 (0 ms), retain 12>
    | |   | | |   | +-o AppleUSB20HubPort@00120000  <class AppleUSB20HubPort, id 0x10000081f, registered, matched, energetic, busy 0 (236 ms), retain 16>
    | |   | | |   | | +-o CMSIS-DAP@00120000  <class IOUSBHostDevice, id 0x100000b2d, registered, matched, energetic, busy 0 (234 ms), retain 46>
    | |   | | |   | |   +-o AppleUSBCDCCompositeDevice  <class AppleUSBCDCCompositeDevice, id 0x100000b34, !registered, !matched, energetic, busy 0, retain 4>
    | |   | | |   | |   +-o IOUSBHostInterface@0  <class IOUSBHostInterface, id 0x100000b36, registered, matched, energetic, busy 0 (21 ms), retain 12>
    | |   | | |   | |   | +-o AppleUserUSBHostHIDDevice  <class AppleUserHIDDevice, id 0x100000b41, registered, matched, energetic, busy 0 (1 ms), retain 20>
    | |   | | |   | |   |   +-o IOHIDInterface  <class IOHIDInterface, id 0x100000b4a, registered, matched, energetic, busy 0 (1 ms), retain 6>
    | |   | | |   | |   +-o IOUSBHostInterface@1  <class IOUSBHostInterface, id 0x100000b37, registered, matched, energetic, busy 0 (8 ms), retain 9>
    | |   | | |   | |   | +-o AppleUSBACMControl  <class AppleUSBACMControl, id 0x100000b40, registered, matched, energetic, busy 0 (0 ms), retain 6>
    | |   | | |   | |   +-o IOUSBHostInterface@2  <class IOUSBHostInterface, id 0x100000b38, registered, matched, energetic, busy 0 (220 ms), retain 5>
    | |   | | |   | |   +-o Android File Tra  <class AppleUSBHostDeviceUserClient, id 0x100000b3a, !registered, !matched, energetic, busy 0, retain 6>
    | |   | | |   | |   +-o Android File Tra  <class AppleUSBHostDeviceUserClient, id 0x100000b4e, !registered, !matched, energetic, busy 0, retain 6>

The issue right here is:

  1. Will I have the ability to make macOS cease utilizing a dialup modem driver in my system, and simply let CDC ACM serial ports be TTY serial ports? Or drive it use serial port driver for this gadget?

  2. How do I let the modem driver choose it up once more (i.e. simply undo the delete)? I already tried every part in an earlier put up and it might not work.

(The CMSIS-DAP interface’s flashing skill is completely nice. Simply lacking the digital serial port gadget from macOS. It will work underneath my Home windows pc and even in Asahi Linux)

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments