在 Arch 上插入 Arduino 后无法立即打开端口错误 Linux
Could not open port error immediately after plugging in Arduino on Arch Linux
我正在使用 PlatformIO 进行编程,使用 Arduino Mega 和 Arduino Uno。我通过串口将它们连接起来,所以每次我想对它们进行编程时,我都必须将它们彼此断开。我还把它们从电脑上拔下来,这样我就不会在移动电线时不小心把它们炸了。
每次我重新插入一个或另一个并尝试立即对其进行编程时,我都会收到此错误消息:
*** [upload] could not open port /dev/ttyACM0: [Errno 16] Device or resource busy: '/dev/ttyACM0'
如果我等待大约一分钟再试一次,那么代码将上传没有问题。可能是什么原因造成的?
ModemManager 可能是您遇到麻烦的原因。尝试禁用它,例如pkill -STOP ModemManager
(使用 -CONT
继续该过程)。
ModemManager 是一款(神奇的)软件,可以让您的 3G 加密狗自动工作。因为 Arduino 显示为串行调制解调器,ModemManager 试图控制它。
您可以通过将某个变量附加到您的设备来阻止 ModemManager 这样做。有关详细信息,请参阅 the documentation。本质上,创建一个 udev 规则,例如/etc/udev/rules.d/99-ttyacms.rules
内容如下:
ATTRS{idVendor}=="0ca6" ATTRS{idProduct}=="a050", ENV{ID_MM_DEVICE_IGNORE}="1
当然,您需要使用您的身份证件。使用 lsusb
查找这些值。
创建此文件后,使用 sudo udevadm control --reload-rules
之类的内容重新加载 udev
我正在使用 PlatformIO 进行编程,使用 Arduino Mega 和 Arduino Uno。我通过串口将它们连接起来,所以每次我想对它们进行编程时,我都必须将它们彼此断开。我还把它们从电脑上拔下来,这样我就不会在移动电线时不小心把它们炸了。
每次我重新插入一个或另一个并尝试立即对其进行编程时,我都会收到此错误消息:
*** [upload] could not open port /dev/ttyACM0: [Errno 16] Device or resource busy: '/dev/ttyACM0'
如果我等待大约一分钟再试一次,那么代码将上传没有问题。可能是什么原因造成的?
ModemManager 可能是您遇到麻烦的原因。尝试禁用它,例如pkill -STOP ModemManager
(使用 -CONT
继续该过程)。
ModemManager 是一款(神奇的)软件,可以让您的 3G 加密狗自动工作。因为 Arduino 显示为串行调制解调器,ModemManager 试图控制它。
您可以通过将某个变量附加到您的设备来阻止 ModemManager 这样做。有关详细信息,请参阅 the documentation。本质上,创建一个 udev 规则,例如/etc/udev/rules.d/99-ttyacms.rules
内容如下:
ATTRS{idVendor}=="0ca6" ATTRS{idProduct}=="a050", ENV{ID_MM_DEVICE_IGNORE}="1
当然,您需要使用您的身份证件。使用 lsusb
查找这些值。
创建此文件后,使用 sudo udevadm control --reload-rules