最近公司一项目,要在embedded linux板子上基于mini_httpd的cgi方式做一个web管理界面。正好本人喜欢玩这些嵌入式的东西,哈哈,没有白玩这么久的embedded linux,拿到板子直接putty到RS232串口,嗯,啥都能看到了。
不过现在环境转移,我们来到了Ubuntu的机子上,插上USB2COM线,准备开工。
检查USB2COM在本机上的tty文件名,输入命令:
1
|
$ dmesg |
注意到尾部有类似于如下信息
1
2
3
4
5
6
7
8
|
[ 4858.701759] usb 1-1.1: new full-speed USB device number 7 using ehci_hcd [ 4858.802660] ftdi_sio 1-1.1:1.0: FTDI USB Serial Device converter detected [ 4858.802754] usb 1-1.1: Detected FT232RL [ 4858.802759] usb 1-1.1: Number of endpoints 2 [ 4858.802764] usb 1-1.1: Endpoint 1 MaxPacketSize 64 [ 4858.802770] usb 1-1.1: Endpoint 2 MaxPacketSize 64 [ 4858.802774] usb 1-1.1: Setting MaxPacketSize 64 [ 4858.803468] usb 1-1.1: FTDI USB Serial Device converter now attached to ttyUSB0 |
OK,证明串口线连上了,设备文件名是ttyUSB0。顺便赞一个,客户真不错,用的FTDI的线。
然后查看设备文件有没有存在:
1
2
|
$ ls /dev/ttyUSB0 /dev/ttyUSB0 |
好的,这么顺利,驱动也不要,那让我们装个putty吧。
1
|
$ sudo apt-get install putty |
OK,装好打开,设置连接方式为serial,Serial line里填上设备的绝对文件名:/dev/ttyUSB0,设好相应的speed,点击连接,意外出现了,putty死活不干,总是提示“unable to open serial port”,shift(我们要文明)!
想了想,有这个文件,那么就是权限了,再显示一下文件全部吧,
1
2
|
$ ll /dev/ttyUSB0 // ll是一个命令别名,如果你不能运行ll,那么就把ll改成 ls -al,一样的效果 crw-rw---- 1 root dialout 188, 0 7月 16 11:27 /dev/ttyUSB0 |
仔细看,就root用户和dialout组的用户有读写权,我不可能天天为了putty去sudo吧,那把自己加到dialout组里去吧。
先看看自己在哪些组里面:
1
2
|
$ id -Gn username adm cdrom sudo dip plugdev lpadmin sambashare |
果然不在dialout组里,加进去吧:
1
|
$ sudo adduser username dialout // 这里把username换为你自己的用户名 |
然后注销或重启后检查一次:
1
2
|
$ id -Gn username adm dialout cdrom sudo dip plugdev lpadmin sambashare |
好了,进去了,再用putty连接,搞定。That's fucking cool.
总之,在Linux下面权限很重要啊!遇到文件存在但访问有问题的,请首先查看权限问题。
原文:http://www.600mhz.net/Linux/connect_to_usb2rs232_by_putty_under_ubuntu.html/comment-page-1