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