小德

超级版主
  • 主题:17
  • 回复:42
  • 金钱:142
  • 积分:301

在linux下使用arduino的时候,会发现串口端serialport是灰色的,也就是找不到USB接口。

解决方法是:插上你的arduino到电脑的USB上,在命令行里运行:

dmesg | tail

你会看到

[ 2708.265878] usb 3-2: new full-speed USB device number 7 using xhci_hcd
[ 2708.284651] usb 3-2: New USB device found, idVendor=2341, idProduct=0042
[ 2708.284660] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 2708.284666] usb 3-2: Manufacturer: Arduino (www.arduino.cc)
[ 2708.284670] usb 3-2: SerialNumber: 55431313038351711241
[ 2708.284906] usb 3-2: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
[ 2708.372269] cdc_acm 3-2:1.0: ttyACM0: USB ACM device
[ 2708.372543] usbcore: registered new interface driver cdc_acm
[ 2708.372546] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

再以普通用户键入:

ls-l /dev/ttyACM0 //这个0就是上面检测到的


你会得到比如:

crw-rw----1 root dialout 188, 0 5 AUG ttyACM0之类的。

这个”dialout”名字就是下面我们要用到的组名。


现在把用户加到这个组里面:

usermod -a -G dialout suanier //可以切换成root用户来操作


再键入:

ls-ld /run/lock

ls-ld /var/lock

然后出现以下字样:

drwxrwxrwt5 root root 4096 9 dic 21.39 /var/lock

运行root下的

chmod +rwx /run/lock

chmod +rwx /var/lock


最后断开arduino,系统登出然后再登入再运行arduino就可以看到serialport里出现了/dev/ttyACM0这个选项,你勾选。


运行系统自带的BLINK,就能看到板子上的LED13灯闪烁。


至此arduino在linux下顺利运行。