openWRT USB转串口调试记录

openWRT USB转串口调试记录

1 背景介绍

串口是用来调试开发板的接口,它是开发者与开发板之间的桥梁,通过串口可以输出开发板的启动日志或者输入命令来执行想要的操作。但是,目前大多数设备有USB接口,却不一定有串口。通过USB转串口,可以对外提供调试接口。

2 实验环境

  • 使用的是Banana Pi BPI-R64开发板,上面的主控芯片是联发科的MT7622,其上有一个USB接口。使用的是openwrt开源系统。
  • USB转串口线所使用的芯片是PL2303。
  • 一台台式机,其后有9针的串口。

在这里插入图片描述

3 软件改动

  • 在openwrt menuconfig中增加USB转串口线驱动的支持,目前市面上USB转串口线常用的芯片是PL2303,CH341等。

在这里插入图片描述

  • 更改源码文件openwrt/target/linux/mediatek/base-files/etc/inittab,以将console输出重定向到USB口。

    root@sw101:~/myProject/openwrt$ cat target/linux/mediatek/base-files/etc/inittab
    ::sysinit:/etc/init.d/rcS S boot
    ::shutdown:/etc/init.d/rcS K shutdown
    ::askconsole:/usr/libexec/login.sh
    ttyS0::respawn:/sbin/getty -L ttyUSB0 115200 vt100 //新增内容,将console输出重定向到ttyUSB0
    

    Note:getty命令默认是不支持的,需要更改menuconfig中的配置。

    有些帖子写直接修改/etc/inittab文件,经实测发现reboot后改动消失,而改源码的方式在reboot后仍然有效。

  • 启动系统,将USB转串口线插入开发板的USB口,console会有log输出:

    [   31.910000] usb 1-1: reset full-speed USB device number 2 using xhci-mtk
    [   32.100000] usb 1-1: pl2303 converter now attached to ttyUSB0
    

    查看系统/dev目录,会新增一个ttyUSB0设备,至此,USB转串口驱动加载成功。

  • 通过stty命令设置串口参数

    Note:stty命令默认是不支持的,需要更改menuconfig中的配置。

    stty使用教程参考链接:stty详解

    "stty -F /dev/ttyUSB0 -a"命令用来查看串口参数:

    root@OpenWrt:/# stty -F /dev/ttyUSB0 -a
    speed 115200 baud;stty: /dev/ttyUSB0
     line = 0;
    intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
    eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
    werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
    -parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts
    -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon
    -ixoff -iuclc -ixany -imaxbel -iutf8
    opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
    -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop
    -echoprt -echoctl -echoke -flusho -extproc
    

    由于前面修改inittab文件时,新增内容“ttyS0::respawn:/sbin/getty -L ttyUSB0 115200 vt100”中指定了波特率为115200,若"stty -F /dev/ttyUSB0 -a"命令输出波特率不是115200,需通过命令“stty -F /dev/ttyUSB0 ispeed 115200 ospeed 115200 speed 115200” 设置波特率。

  • 通过MobaXterm软件连接串口

    此时要小心,上面"stty -F /dev/ttyUSB0 -a"命令输出中有一个“-inpck“,表示没有奇偶校验,所以Parity那一项选None。
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值