Macos – Mac OS X equivalent of “udevadm info -a -n /dev/ttyACM0”

macosudevusb

What is the Mac OS X equivalent of the Linux command udevadm info /dev/ttyACM0?

I am attempting get the USB information about a TTY device (/dev/tty.whatever) in a script.

UPDATE: I'm looking for information about a TTY / serial port device (not a disk). This is the type of output I am looking for (critical fields are highlighted):

[rhwood@localhost ~]$ udevadm info /dev/ttyACM3
P: /devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-2/2-2.2/2-2.2:1.0/tty/ttyACM3
N: ttyACM3
S: digitrax-pr3-3
E: DEVLINKS=/dev/digitrax-pr3-3
E: DEVNAME=/dev/ttyACM3
E: DEVPATH=/devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-2/2-2.2/2-2.2:1.0/tty/ttyACM3
E: ID_BUS=usb
E: ID_FOR_SEAT=tty-pci-0000_02_00_0-usb-0_2_2_1_0
E: ID_MM_CANDIDATE=1
E: ID_MODEL=VC0M_Port
E: ID_MODEL_ENC=VC0M\x20Port
E: ID_MODEL_ID=ff7e
E: ID_PATH=pci-0000:02:00.0-usb-0:2.2:1.0
E: ID_PATH_TAG=pci-0000_02_00_0-usb-0_2_2_1_0
E: ID_REVISION=0001
E: ID_SERIAL=Digitrax_Inc._VC0M_Port
E: ID_TYPE=generic
E: ID_USB_CLASS_FROM_DATABASE=Communications
E: ID_USB_DRIVER=cdc_acm
E: ID_USB_INTERFACES=:020201:0a0000:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=Digitrax_Inc.
E: ID_VENDOR_ENC=Digitrax\x20Inc.
E: ID_VENDOR_FROM_DATABASE=Microchip Technology, Inc.
E: ID_VENDOR_ID=04d8
E: MAJOR=166
E: MINOR=3
E: SUBSYSTEM=tty
E: TAGS=:seat:systemd:uaccess:
E: USEC_INITIALIZED=292186515

I am really interested in matching the DEVNAME (/dev/ttyACM3) to the VENDOR and MODEL information.

Best Answer

I think this is what you're looking for:

ioreg -lp IOUSB

Specimen feedback from plugging in an rj45 serial cable into my OSX 10.14.6 Mojave Macbook's USB-C port is reported below:

+-o FT232R USB UART@14300000  <class AppleUSBDevice, id 0x10000ee76, registered, matched, active, busy 0 (7 ms), retain 14>
    {
      "sessionID" = 573143338571350
      "iManufacturer" = 1
      "bNumConfigurations" = 1
      "idProduct" = 24577
      "bcdDevice" = 1536
      "Bus Power Available" = 250
      "USB Address" = 1
      "bMaxPacketSize0" = 8
      "iProduct" = 2
      "iSerialNumber" = 3
      "bDeviceClass" = 0
      "Built-In" = No
      "locationID" = 338690048
      "bDeviceSubClass" = 0
      "bcdUSB" = 512
      "USB Product Name" = "FT232R USB UART"
      "PortNum" = 3
      "non-removable" = "no"
      "IOCFPlugInTypes" = {"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
      "bDeviceProtocol" = 0
      "IOUserClientClass" = "IOUSBDeviceUserClientV2"
      "IOPowerManagement" = {"DevicePowerState"=0,"CurrentPowerState"=3,"CapabilityFlags"=65536,"MaxPowerState"=4,"DriverPowerState"=3}
      "kUSBCurrentConfiguration" = 1
      "Device Speed" = 1
      "USB Vendor Name" = "FTDI"
      "idVendor" = 1027
      "IOGeneralInterest" = "IOCommand is not serializable"
      "USB Serial Number" = "A9I2IIK0"
      "IOClassNameOverride" = "IOUSBDevice"
    }

I know this was posted over (4) year's ago, but noticed nobody answered it. Hey, better late than never! HTH-

Related Question