Sur un tout nouveau MacBook16 exécutant Catalina (10.15.1), j'obtiens l'erreur suivante en essayant de me connecter à un périphérique FTDI FT232R USB UART.
Python 2.7.17 (v2.7.17:c2f86d86e6, Oct 19 2019, 16:07:15)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> ser = serial.Serial('/dev/tty.usbserial-A106NU2I', 38400, timeout=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/cbagwell/.virtualenvs/toolbelt/lib/python2.7/site-packages/serial/serialutil.py", line 240, in __init__
self.open()
File "/Users/cbagwell/.virtualenvs/toolbelt/lib/python2.7/site-packages/serial/serialposix.py", line 268, in open
raise SerialException(msg.errno, "could not open port {}: {}".format(self._port, msg))
serial.serialutil.SerialException: [Errno 16] could not open port /dev/tty.usbserial-A106NU2I: [Errno 16] Resource busy: '/dev/tty.usbserial-A106NU2I'
Je vois les événements suivants sous l'application Console :
006002.877344 python@(null): AppleUSBHostUserClient::openGated: could not open provider USB3.0 Hub . provider already opened for exclusive access by a kernel client
006002.878136 python@(null): AppleUSBHostUserClient::openGated: could not open provider USB2.0 Hub . provider already opened for exclusive access by a kernel client
Il semble donc qu'un client du noyau ait déjà ouvert le fichier "/dev/tty.usbserial-A106NU2I" avec un accès exclusif.
Ma question est la suivante : comment puis-je déterminer quel client du noyau (ou quelle extension du noyau ?) a ouvert ce fichier ?
J'ai essayé d'utiliser "sudo lsof | grep tty" et je ne vois rien.
Le périphérique est visible et reconnu sous About this Mac -> System Report -> USB.
Merci !