Linux下查看串口信息
查看串口是否可用,可以对串口发送数据比如对com1口,echo helloworld >/dev/ttyS0
查看串口名称使用 ls -l /dev/ttyS*一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS*,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的;
查看usb设备 lsusb
查看串口驱动:cat /proc/tty/drivers/serial
[root@dy root]# cat /proc/tty/driver/* serinfo:1.0 driver revision: 0: uart:MPC52xx PSC mmio:0x80011300 irq:40 tx:10 rx:129 CTS|DSR|CD usbserinfo:1.0 driver:2.0例如,在终端输入:dmesg | grep tty显示从系统启动到现在串口插入拔出的信息,让后我在电脑上插入一个usb转rs232线,再在终端输入:dmesg | grep tty ,会显示:usb 2-2.1:pl2303 converter now attached to ttyUSB0;可以通过此法确定我新插入的串口线对应的串口号。
minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利,下面将讲解minicom的安装和配置。
一、安装minicom:
使用以下命令:
# sudo apt-get install minicom以下为安装的详细信息:
# sudo apt-get install minicom正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会安装下列额外的软件包:
lrzsz
下列【新】软件包将被安装:
lrzsz minicom
共升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 2 个软件未被升级。
需要下载 270kB 的软件包。
解压缩后会消耗掉 1389kB 的额外空间。
您希望继续执行吗?[Y/n]y
获取:1 http://ubuntu.uestc.edu.cn hardy/universe lrzsz 0.12.21-4.1 [97.0kB]
获取:2 http://ubuntu.uestc.edu.cn hardy/main minicom 2.3~rc1-2 [173kB]
下载 270kB,耗时 1s (184kB/s)
选中了曾被取消选择的软件包 lrzsz。
(正在读取数据库 ... 系统当前总共安装有 101203 个文件和目录。)
正在解压缩 lrzsz (从 .../lrzsz_0.12.21-4.1_i386.deb) ...
选中了曾被取消选择的软件包 minicom。
正在解压缩 minicom (从 .../minicom_2.3~rc1-2_i386.deb) ...
正在处理用于 man-db 的触发器...
正在设置 lrzsz (0.12.21-4.1) ...
正在设置 minicom (2.3~rc1-2) ...
PS:ubuntu 现在做的真是没话说,相当的实用和智能啊,把相关的依赖包(lrzsz)都相互关联并且安装上去了。但是如果使用ubuntu 8.10以前的版本可能就要单独安装lrzsz软件包了(lrzsz包括了x/y/zmodem协议)。也就是说,在通过串口用xmodem协议烧写内核 时会提示没有xmodem协议,所以这时就要安装lrzsz软件包了:
# sudo apt-get install lrzsz然后就可以正常地使用minicom通过串口烧写内核了。
二、配置minicom:
1、在使用minicom之前,首先要保证你对串口有读/写的权限。我们知道,Linux的设备对应于/dev/目录中的某个文件,串口COM1对应ttyS0,COM2对应ttyS1,使用以下命令来查看你对COM1的权限:
$ ls -l /dev/ttyS0 crw-rw---- 1 root dialout 4, 64 2009-08-01 11:05 /dev/ttyS0可以看到,它的属主是root。
2、正如在Windows中要配置超级终端一样,在使用minicom之前,先要对串口进行配置。
运行
# sudo minicom -s选择Serial port setup,此时所示光标在"Change which setting"上,键入"A",此时光标移到第A项对应处:串口COM1对应ttyS0,COM2对应ttyS1(注意选择)。
然后对波特率,数据位和停止位进行配置,键入"E",波特率选为115200 8N1(数据位8,奇偶校验无,停止位1),硬/软件流控制分别键入"F"和"G",并且都选No。在确认配置正确之后,可键入回车返回上级配置界面,并 将其保存为默认配置(即save setup as dfl)。最后,选择"Exit from Minicom"命令退出。
注意:非正常关闭minicom,会在/var/lock下创建几个文件LCK*,这几个文件阻止了minicom的运行,将它们删除后即可恢复
具体的配置信息如下所示:
Serial port setup [Enter]
+-------------------------------------------------------------+ | A - Serial Device : /dev/ttyUSB0 | | B - Lockfile Location : /var/lock | | C - Callin Program : | | D - Callout Program -: | | E - Bps/Par/Bits : 115200 8N1 | | F - Hardware Flow Control : No | | G - Software Flow Control : No | | | | Change which setting? | +-------------------------------------------------------------+注意:如果没有使用USB转串口,而是直接使用串口,那么Serial Device要配置为/dev/ttyS0。
然后重启minicom(即直接在shell下执行minicom命令就可以进入minicom的控制台)使刚才的配置生效,再连上开发板的串口线后,就可以在minicom中打印出正确的串口信息了。在控制台下通过组合键Ctrl+A Z可以进入minicom菜单。
组合键的用法是:先按Ctrl+A组合键,然后松开这两个键,再按Z键。另外还有一些常用的组合键。
(1)S键:发送文件到目标系统中;
(2)W键:自动卷屏。当显示的内容超过一行之后,自动将后面的内容换行。这个功能在查看内核的启动信息时很有用。
(3)C键:清除屏幕的显示内容;
(4)B键:浏览minicom的历史显示;
(5)X键:退出mInicom,会提示确认退出。
3、配置文件所在目录
Ctrl + A --> O
+-----[configuration]------+ | Filenames and paths | | File transfer protocols -| | Serial port setup | | Modem and dialing | | Screen and keyboard | | Save setup as dfl | | Save setup as.. | | Exit | +--------------------------+选择"Filenames and paths"
+-----------------------------------------------------------------------+ | A - Download directory : /home/crliu | | B - Upload directory : /tmp | | C - Script directory : | | D - Script program : runscript | | E - Kermit program : | | F - Logging options | | | | Change which setting? | +-----------------------------------------------------------------------+(1)A - download 下载文件的存放位置(开发板 ---> PC)
开发板上的文件将被传输到PC机上的/home/crliu目录下。
(2)B - upload 从此处读取上传的文件(PC ---> 开发板)
PC机向开发板发送文件,需要发送的文件在/tmp目录下(PC机上的目录)。做了此项配置后,每次向开发板发送文件时,只需输入文件名即可,无需输入文件所在目录的绝对路径。
三、Linux下如何使用USB转串口设备
对没有串口的笔记本持有者来说,做硬件开发经常为没有串口而烦恼,不过现在有了USB转串口设备。但是新的问题又出现了,比如说对于Minicom下的PC机和目标机通信还是存在着一些配置问题,下面就说一下linux下USB转串口的具体配置和问题:
注意:默认情况下ubuntu已经安装了USB转串口驱动(pl2303)。
1、# lsmod | grep usbserial
如果有usbserial,说明系统支持USB转串口。
2、插上USB转串口,在终端输入命令#dmesg | grep ttyUSB0,如果出现连接成功信息,则说明ubuntu系统已经识别该设备了。
注意:虚拟机环境下的ubuntu默认情况下是不能自动识别的,需要在虚拟机窗口右下角点击"Prolific USB-Serial Controller",然后选择"Connect (Disconnect from Host)",这样才能被ubuntu系统识别。
3、在上面minicom的配置中设置Serial Device: /dev/ttyUSB0,重启开发板,这样基本上就可以正常使用minicom来打印串口信息了。
4、问题
如果经过上面的步骤minicom还是不能正常工作,出现如下错误提示:
# sudo minicomminicom: cannot open /dev/ttyUSB0: 没有该文件或目录
这时可以尝试换一个USB口,然后再次操作以上流程。如果还是提示这个错误,那么可以使用下面的方法来解决。
这种方法是在硬件里添加串口设备,将window下的设备添加到虚拟机里。也就是 说,要在window获得焦点的时 候加入usb转串口,然后再到虚拟机下将这个设备添加进去,这时就可以在ubuntu下查看添加的这个设备的设备文件,一般是/dev/tty0或者 /dev/ttyS0。
这种方法其实是将window的usb转串口作为虚拟机的串口,所以就是tty0或者ttyS0了,而不是真正在ubuntu下加载的。
具体步骤如下:
(1)打开虚拟机环境,然后选择"VM-->Settings(Ctrl+D)"。
(2)点"Add",进入添加硬件向导,选择"Serial Port",点"Next"。
(3)选择第一项"Use physical port on the host",点"Next"。
(4)选择"Physical serial port"方式为"Auto detect",勾选"Connect at power on",点"Finish"完成。
(5)然后在上面minicom的配置中设置Serial Device: /dev/tty0或者Serial Device: /dev/ttyS0,重启开发板,这样就可以正常运行minicom了。
Linux下如何使用USB转串口设备
对没有串口的笔记本持有者来说,做硬件开发经常为没有串口而烦恼,不过现在有了USB转串口设备。但是新的问题又出现了,比如说对于Minicom下的PC机和目标机通信还是存在着一些配置问题,下面就说一下linux下USB转串口的具体配置和问题:
注意: 默认情况下ubuntu已经安装了USB转串口驱动(pl2303)。
1、# lsmod | grep usbserial
如果有usbserial,说明系统支持USB转串口。
2、插上USB转串口,在终端输入命令#dmesg | grep ttyUSB0,如果出现连接成功信息,则说明ubuntu系统已经识别该设备了。
注意: 虚拟机环境下的ubuntu默认情况下是不能自动识别的,需要在虚拟机窗口右下角点击"Prolific USB-Serial Controller",然后选择"Connect (Disconnect from Host)",这样才能被ubuntu系统识别。
3、在上面minicom的配置中设置Serial Device: /dev/ttyUSB0,重启开发板,这样基本上就可以正常使用minicom来打印串口信息了。
4、问题
如果经过上面的步骤minicom还是不能正常工作,出现如下错误提示:
# sudo minicom minicom: cannot open /dev/ttyUSB0: 没有该文件或目录这时可以尝试换一个USB口,然后再次操作以上流程。 如果还是提示这个错误,那么可以使用下面的方法来解决。
这种方法是在硬件里添加串口设备,将window下的设备添加到虚拟机里。也就 是说,要在window获得焦点的时 候加入usb转串口,然后再到虚拟机下将这个设备添加进去,这时就可以在ubuntu下查看添加的这个设备的设备文件,一般是/dev/tty0或者 /dev/ttyS0。
这种方法其实是将window的usb转串口作为虚拟机的串口,所以就是tty0或者ttyS0了,而不是真正在ubuntu下加载的。
具体步骤如下:
(1)打开虚拟机环境,然后选择"VM-->Settings(Ctrl+D)"。
(2)点"Add",进入添加硬件向导,选择"Serial Port",点"Next"。
(3)选择第一项"Use physical port on the host",点"Next"。
(4)选择"Physical serial port"方式为"Auto detect",勾选"Connect at power on",点"Finish"完成。
(5)然后在上面minicom的配置中设置Serial Device: /dev/tty0或者Serial Device: /dev/ttyS0,重启开发板,这样就可以正常运行minicom了。
------------------------
使用
Minicom是基于窗口的。要弹出所需功能的窗口,可按下Ctrl-A (以下
使用C-A来表示Ctrl-A),然后再按各功能键(a-z或A-Z)。先按C-A,再
按'z',将出现一个帮助窗口,提供了所有命令的简述。配置minicom
(-s 选项,或者C-A、O)时,可以改变这个转义键,不过现在我们还
是用Ctrl-A吧。
以下键在所有菜单中都可用:
UP arrow-up 或 'k'
DOWN arrow-down 或 'j'
LEFT arrow-left 或 'h'
RIGHT arrow-right 或 'l'
CHOOSE Enter
CANCEL ESCape.
屏幕分为两部分:上部24行为终端模拟器的屏幕。 ANSI或VT100转义
序列在此窗口中被解释。若底部还剩有一行,那么状态行就放在这儿;
否则,每次按C-A时状态行出现。 在那些有专门状态行的终端上将会
使用这一行,如果termcap信息完整且加了-k标志的话。
下面按字母顺序列出可用的命令:
C-A 两次按下C-A将发送一个C-A命令到远程系统。如果你把"转义字符"
换成了C-A以外的什么字符,则对该字符的工作方式也类似。
A 切换"Add Linefeed"为on/off。若为on,则每上回车键在屏幕上
显示之前,都要加上一个linefeed。
B 为你提供一个回卷(scroll back)的缓冲区。可以按u上卷,按d下卷,
按b上翻一页,按f下翻一页。也可用箭头键和翻页键。可用s或S键
(大小写敏感)在缓冲区中查找文字串,按N键查找该串的下一次出现。
按c进入引用模式,出现文字光标,你就可以按Enter键指定起始行。
然后回卷模式将会结束,带有前缀'>'的内容将被发送。
C 清屏。
D 拨一个号,或转向拨号目录。
E 切换本地回显为on/off (若你的minicom版本支持)。
F 将break信号送modem。
G 运行脚本(Go)。运行一个登录脚本。
H 挂断。
I 切换光标键在普通和应用模式间发送的转义序列的类型(另参下面
关于状态行的注释)。
J 跳至shell。返回时,整个屏幕将被刷新(redrawn)。
K 清屏,运行kermit,返回时刷新屏幕。
L 文件捕获开关。打开时,所有到屏幕的输出也将被捕获到文件中。
M 发送modem初始化串。若你online,且DCD线设为on,则modem被初始化
前将要求你进行确认。
O 配置minicom。转到配置菜单。
P 通信参数。允许你改变bps速率,奇偶校验和位数。
Q 不复位modem就退出minicom。如果改变了macros,而且未存盘,
会提供你一个save的机会。
R 接收文件。从各种协议(外部)中进行选择。若filename选择窗口和下
载目录提示可用,会出现一个要求选择下载目录的窗口。否则将使用
Filenames and Paths菜单中定义的下载目录。
S 发送文件。选择你在接收命令中使用的协议。如果你未使文件名选择
窗口可用(在File Transfer Protocols菜单中设置),你将只能在一
个对话框窗口中写文件名。若将其设为可用,将弹出一个窗口,显示
你的上传目录中的文件名。可用空格键为文件名加上或取消标记,用
光标键或j/k键上下移动光标。被选的文件名将高亮显示。 目录名在
方括号中显示,两次按下空格键可以在目录树中上下移动。最后,按
Enter发送文件,或按ESC键退出。
T 选择终端模拟:ANSI(彩色)或VT100。此处还可改变退格键,打开或
关闭状态行。
W 切换linewrap为on/off。
X 退出minicom,复位modem。如果改变了macros,而且未存盘,会提供
你一个save的机会。
Z 弹出help屏幕。
2.1 修改 在终端输入如下指令
[plain] view plaincopyprint?
sudo nano /boot/cmdline.txt
[plain] view plain copy
print?
sudo nano /boot/cmdline.txt
打开后将红色部分删除
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
删除后,变成如下结果保存退出
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
2.2 修改 /etc/inittab
在终端输入如下指令
$sudo nano /etc/inittab打开后将最后一行注释掉 在前面加上一个#号即可
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
3.修改完毕后,需要在树莓派上安装一个minicom,这里的minicom是Linux平台的串口调试工具,相当于Windows上的串口调试助手
3.1 安装minicom,输入以下命令
$ sudo apt-get install minicon3.2 安装完毕后需要对minicom进行配置,此处配置文件需要root权限,不然无法保存配置的参数,那么在命令行中输入如下命令
$ sudo passwd root执行此命令后系统会提示输入两遍的root密码,输入你想设的密码即可,然后在执行
$ sudo passwd --unlock这样就解锁了root账户
3.3 切换到root账户,再次打开命令行,输入minicom参数配置命令
$ minicom -s在主菜单的第三项Serial Port Setup,进入下一级菜单,根据菜单项的提示字母选择,按A将串口设备修改为 /dev/ttyAMA0
,按E将波特率修改为9600或者自己需要的数值,设置好以后返回主菜单,选择Save Setup as Dfl
然后选择Exit,此时如果正常的话就可以进行串口收发了,这里我的树莓派是连接到一台PC上去的,我利用PC的串口调试软件成功进行了收发
tips: 按CTRL+A,接着按Z可以查看minicom的帮助