热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何连接捕获串口信息

串口1.使用背景在开发,生产,测试等环节,遇到问题导致无法继续使用,例如:关机卡死,开机卡死等,串口信息可以帮助我们收集一些系统日志看不到的细节,以及硬件的返回值2.

串口


1. 使用背景

在开发,生产,测试等环节,遇到问题导致无法继续使用,例如:关机卡死,开机卡死等,串口信息可以帮助我们收集一些系统日志看不到的细节,以及硬件的返回值


2. 串口介绍

​ 串口(串行端口),一般场景下使用的串口多为三针角,分别为:TXD、RXD、GND

TXD:发送数据

RXD:接收数据

GND:信号地



主板对应上也会有三个同样的接口,连接需要硬件厂商提供串口线,将对应发送、接收、地址连接即可

值得注意的是,有些机器主板上(大多为笔记本)串口针不是突出的(只有一个焊锡的小点点),此时就需要联系硬件同事把串口线利用焊锡焊在主板上



串口线长这样(在主板上俗称公口,连接是为下图母口加 USB 转接线):



3. 连接串口修改参数

为了能更好的更全面的记录串口输出的日志信息,需要修改 grub 中的内核参数


修改分为两种:

  1. 单词修改(进入系统后就会失效)
  2. 长久修改(s3,s4,reboot等会一直生效)

3.1 gurb菜单单次修改

此方法启动后就会失效,重启,s4再次到grub菜单时需要再次修改,适用于临时改动

修改步骤:

  1. 开机后在弹出 grub 菜单界面,按 e 进入 grub 编辑模式


  1. 进入 grub 编辑模式后,将 quiet 参数去掉,并将 loglevel=0 修改为 loglevel=7 如下图


  1. 修改完成后,按 ctrl + x 即可启动系统,并在串口输出端完成完整打印信息(串口输出端配置见标题 4)

3.2 长久修改

长久修改是进系统之后,修改 grub.cfg 此种方式修改后会长久生效,每次重启,s4时不需要再次改动

需要注意的是,更新内核或执行命令 update-grub 后,该修改会失效


  1. 桌面右击 - 打开终端,执行 sudo su 获取 root 权限

  2. 编辑文件 vim /boot/efi/boot/grub.grub.cfg(efi 和 传统引导的 grub 文件位置不同,配置文件根据自己的环境来更改哦)

    进入到 grub 菜单后,找到 grub 菜单默认启动内核入口 menuentry ‘Kylin V10 4.4.131-20200710.kylin.x86-generic’,可参考下列修改后 grub,实际情况根据环境变化而定

menuentry \'Kylin V10 4.4.131-20200710.kylin.x86-generic\' --class kylin --class gnu-linux --class gnu --class os $menuentry_id_option \'gnulinux-simple-a2533f78-c422-4b9a-a355-5a7b555a6daf\' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_msdos
        insmod ext2
        set root=\'hd0,msdos1\'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  3fe01578-2edf-454b-bf0a-35066831d915
        else
          search --no-floppy --fs-uuid --set=root 3fe01578-2edf-454b-bf0a-35066831d915
        fi
        linux   /vmlinuz-4.4.131-20200710.kylin.x86-generic root=UUID=a2533f78-c422-4b9a-a355-5a7b555a6daf ro locale=zh_CN splash loglevel=7 resume=UUID=a7260390-d01c-4e72-aee8-160140054ce1 security= 
        initrd  /initrd.img-4.4.131-20200710.kylin.x86-generic
}

3.3 其他修改

3.3.1 稳定性测试参数

若是在做稳定性测试时出现异常,则需要在 gurb 参数行尾(loglevel=7 那一行)添加 initcall_debug=1 ,此参数会在做 shutdown、reboot、s3、s4 测试时打印更为详细的内核日志


3.3.2 grub 串口参数

  1. 一般串口识别为 /dev/ttyUSB0,根据情况也可能识别为 /dev/ttyAMA0/dev/ttyS0,具体识别为哪个根据现场环境来判断

  2. 系统串口不输出东西:若串口无法输出信息,检查线序是否接对,检查串口识别成哪个,然后在 grub 行尾添加串口识别信息,例: cOnsole=ttyS0,115200,若还不行可考虑是否为串口线或其他硬件问题

  3. 系统串口输出乱码:可查看系统下有无 pabiometric 软件包,此软件包会影响串口输出,可直接卸载

# dpkg -P pabiometric

串口默认频率是 115200,若一直输出乱码,可通过命令来修改串口频率


1. 查看对应串口频率
# stty -F /dev/ttyUSB0
speed 115200 baud; line = 0; 
min = 1; time = 0; 
-brkint -icrnl -imaxbel iutf8 -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke

2. 修改串口频率
# stty -F /dev/ttyUSB0 115200

4. 串口接收端配置

在 release 版本中,一般都会存在一个命令 minicom

使用方法:

# minicom -s

             +-----[configuration]------+
            | Filenames and paths      |
            | File transfer protocols  |
            | Serial port setup        |
            | Modem and dialing        |
            | Screen and keyboard      |
            | Save setup as dfl        |
            | Save setup as..          |
            | Exit                     |
            | Exit from Minicom        |
            +--------------------------+
  1. 输入该命令后,会弹出如上表,利用光标上线停留在 Serial port setup 选项,然后摁 enter 键,会弹出如下图界面

  1. 利用上面确认串口识别命令确认好串口设备后,按 shift a 切换到 Serial Device 选项上修改对应的串口设备,根据频率按 shift e 切换到 Bps/Par/Bits 选项上修改串口频率,修改完成后按 enter

  2. 然后利用上下光标移动到 save setup as dfl 选项上按 enter 键保存

  3. 然后利用上下光标移动到 exit 选项上按 enter 键进入到串口输出界面


推荐阅读
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 申请地址:https://developer.apple.com/appstore/contact/?topic=expedite 常见申请理由:1. 我们即将发布新产品,这是一个媒体活动,我们无法承担任何风险,因此在多个方面努力提升应用质量。 ... [详细]
  • 在运行于MS SQL Server 2005的.NET 2.0 Web应用中,我偶尔会遇到令人头疼的SQL死锁问题。过去,我们主要通过调整查询来解决这些问题,但这既耗时又不可靠。我希望能找到一种确定性的查询模式,确保从设计上彻底避免SQL死锁。 ... [详细]
  • Ubuntu 22.04 安装搜狗输入法详细指南及常见问题解决方案
    本文将详细介绍如何在 Ubuntu 22.04 上安装搜狗输入法,并提供常见问题的解决方法。包括下载安装包、更新源、安装依赖项等步骤。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • Linux 防火墙与端口管理必备命令
    在使用 Linux 系统进行服务部署和问题排查时,防火墙和端口管理是不可或缺的操作。本文将详细介绍如何查看防火墙状态、端口占用情况,以及如何开放和关闭端口,帮助初学者更好地掌握这些技能。 ... [详细]
  • 面试题总结_2019年全网最热门的123个Java并发面试题总结
    面试题总结_2019年全网最热门的123个Java并发面试题总结 ... [详细]
  • 检查 Kubernetes 系统命名空间中的 Pod 状态时,发现 Metric Server Pod 虽然处于运行状态,但存在异常:日志显示 'it doesn’t contain any IP SANs'。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 在Ubuntu系统中安装Android SDK的详细步骤及解决“Failed to fetch URL https://dlssl.google.com/”错误的方法
    在Ubuntu 11.10 x64系统中安装Android SDK的详细步骤,包括配置环境变量和解决“Failed to fetch URL https://dlssl.google.com/”错误的方法。本文详细介绍了如何在该系统上顺利安装并配置Android SDK,确保开发环境的稳定性和高效性。此外,还提供了解决网络连接问题的实用技巧,帮助用户克服常见的安装障碍。 ... [详细]
author-avatar
凡秘能
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有