Устройство CP2102 не указано в / dev в macOS 10.13

У меня есть плата ESP32 с контроллером Silicon Labs CP2102. Когда я подключаю его к своему MacBook, я могу получить подробную информацию об этом устройстве с помощью команды system_profiler SPUSBDataType, но оно не указано в /dev как виртуальный последовательный порт, поэтому я не могу с ним связаться.

    CP2102 USB to UART Bridge Controller:

      Product ID: 0xea60
      Vendor ID: 0x10c4  (Silicon Laboratories, Inc.)
      Version: 1.00
      Serial Number: 0001
      Speed: Up to 12 Mb/sec
      Manufacturer: Silicon Labs
      Location ID: 0x14200000 / 5
      Current Available (mA): 500
      Current Required (mA): 100
      Extra Operating Current (mA): 0

Я использую официальный драйвер, загруженный с https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers.

Есть идеи, как сделать это видимым в /dev? У меня также установлена ​​Windows на том же компьютере, где она работает нормально, поэтому аппаратное обеспечение и USB-кабель в порядке.


person Dominik Palo    schedule 04.11.2017    source источник


Ответы (5)


Я обнаружил, что macOS High Sierra заблокировала расширение ядра SiLabs.

Вот шаги, чтобы разрешить это расширение:

  1. Перейдите в «Системные настройки» -> «Безопасность и конфиденциальность».
  2. Внизу окна вы увидите сообщение «Системное программное обеспечение от разработчика SiLabs заблокировано для загрузки».
  3. Нажмите кнопку «Разрешить».
  4. Перезагрузите ваш Mac

Теперь мое устройство указано как /dev/cu.SLAB_USBtoUART, и все работает, как ожидалось.

person Dominik Palo    schedule 04.11.2017
comment
У Apple есть официальная техническая заметка под названием Technical Note TN2459: User Approved Kernel Extension Loading, в которой описывается этот новый процесс, добавленный Apple в MacOS X High Sierra. Это применимо к любому стороннему расширению ядра. Все расширения ядра для MacOS X должны быть подписаны с использованием специального ключа Apple, а затем должны быть одобрены пользователем. В настоящее время третьим сторонам недоступен дополнительный уровень сертификации, позволяющий загружать расширения ядра в обход этого шага. Это не проблема, специфичная для этого драйвера или специфическая для Silicon Labs. Это не ошибка. - person brant; 07.11.2017

Кнопка Разрешить у меня не работала, пришлось вообще отключить проверку:

  1. Неисправность
  2. Удерживайте mac + R во время загрузки, чтобы войти в режим восстановления.
  3. Открыть терминал
  4. введите spctl kext-consent disable и нажмите ввод
  5. Перезагрузить
  6. Это сработало
person Vlad Nistor    schedule 03.05.2018
comment
При использовании 10.13.6 и после выполнения инструкций по установке драйвера SiLabs CP210x для Mac программа установки сообщает, что она прошла успешно, но я так и не получил всплывающее окно «Безопасность системы», так что нечего было принимать. Это было единственное решение, которое сработало для меня. - person Robert Walters; 27.08.2018
comment
@RobertWalters 2 года спустя, но у меня была точно такая же проблема, как и у вас - никакого сообщения. Хитрость заключается в том, чтобы вручную загрузить расширение, чтобы появилось всплывающее сообщение: sudo kextload /Library/Extensions/SiLabsUSBDriver.kext/ - person gremwell; 04.05.2020

Если вы одобрили это в настройках безопасности, но по-прежнему не видите /dev/cu.SLAB_USBtoUART, скорее всего, вам нужен новый кабель micro-usb. Дело не в том, что ваш кабель сломан, но некоторые кабели предназначены только для питания, поэтому они не могут передавать данные.

Что касается меня, я попробовал четыре кабеля, и работает только последний, который идет от Sony (хотя забыл, где у меня этот кабель)

person Ethan Yanjia Li    schedule 06.01.2020
comment
Я был на 100% уверен, что этого не может быть. Затем, буквально через четыре кабеля, я нашел тот, который работает. - person alexose; 29.10.2020

Я бы установил драйвер, но на экране «Безопасность и конфиденциальность» так и не получил сообщения, которое я должен был разрешить. Решение:

sudo kextload /Library/Extensions/SiLabsUSBDriver.kext/

Это фактически выдаст ошибку:

/Library/Extensions/SiLabsUSBDriver.kext не удалось загрузить - (libkern / kext) системная политика предотвращает загрузку; проверьте журналы системы / ядра на наличие ошибок или попробуйте kextutil (8).

Однако, если вы теперь перейдете в Системные настройки-> Безопасность и конфиденциальность, вы найдете необходимое сообщение и кнопку «Принять», чтобы разрешить загрузку кекста. Нажмите на нее, подключите свое устройство и убедитесь, что оно обнаружено:

ls /dev/cu.*

...
/dev/cu.SLAB_USBtoUART
...
person gremwell    schedule 04.05.2020

Попробуйте другой кабель. Возможно, вы используете его только с подключением к источнику питания, но не с данными.

person asc    schedule 15.08.2020
comment
Добро пожаловать в stackoverflow, прежде чем задать любой другой вопрос, прочтите stackoverflow.com/help/how-to-ask - person Ali Bigdeli; 15.08.2020