3

Что является эквивалентом Mac OS X для команды Linux udevadm info /dev/ttyACM0?

Я пытаюсь получить информацию USB об устройстве TTY (/dev/tty.whatever) в сценарии.

ОБНОВЛЕНИЕ: я ищу информацию об устройстве TTY / последовательного порта (не диск). Это тип вывода, который я ищу (критические поля выделены):

[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

Я действительно заинтересован в сопоставлении DEVNAME (/dev/ttyACM3) с информацией о VENDOR и MODEL .

1 ответ1

1

Основываясь на поиске и поиске этой цепочки вопросов и ответов на сайте Unix и Linux Stack Exchange, кажется, что в Mac OS X нет эквивалента udevadm один-к-одному». В Stack также есть эта ветка вопросов и ответов. Переполнение, которое, по-видимому, решает проблему программно с помощью рекомендаций на основе Python, но опять-таки это не однозначный эквивалент.

Самая близкая вещь, которую я могу встретить, - это собственный инструмент командной строки Apple, diskutil. Итак, используя ваш пример:

diskutil info /dev/ttyACM0

Даст вам список данных, связанных с дисками и разделами, таких как этот. Для этого примера я запустил diskutil info /dev/disk0 на моем Mac Mini, и это вывод:

Device Identifier:        disk0
Device Node:              /dev/disk0
Part of Whole:            disk0
Device / Media Name:      APPLE HDD HTS545050A7E362 Media

Volume Name:              Not applicable (no file system)

Mounted:                  Not applicable (no file system)

File System:              None

Content (IOContent):      GUID_partition_scheme
OS Can Be Installed:      No
Media Type:               Generic
Protocol:                 SATA
SMART Status:             Verified

Total Size:               500.1 GB (500107862016 Bytes) (exactly 976773168 512-Byte-Units)
Volume Free Space:        Not applicable (no file system)
Device Block Size:        512 Bytes

Read-Only Media:          No
Read-Only Volume:         Not applicable (no file system)
Ejectable:                No

Whole:                    Yes
Internal:                 Yes
Solid State:              No
OS 9 Drivers:             No
Low Level Format:         Not supported
Device Location:          "Lower"

Теперь это полезно для реальных устройств уровня блока, таких как диски, но если по какой-то причине вам нужны данные на USB-элементах, которые не являются дисками, вы можете использовать версию system_profiler командной строки и фильтровать ее только на USB-элементах с помощью SPUSBDataType например:

system_profiler SPUSBDataType

В зависимости от того, сколько USB-устройств вы подключили к вашему Mac, этот список может быть довольно большим. Но это полезно с точки зрения сценариев / командной строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .