IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> SylixOS下影子终端工具 -> 正文阅读

[嵌入式]SylixOS下影子终端工具

项目起源:

2020.01.20 v1.0.0
影子终端(shadowTerminal)工具的开发来自于实际需求,x86平台下调试网卡驱动,需要查看内核调试信息,但x86平台下内核终端是在显示器上的,屏幕不能滚动显示,当调试信息较多时就看不到前面的打印了,所以需要有方法将系统终端转移到开发主机上。

解决方法:

  1. 修改系统启动参数,将内核终端映射到串口上。现今的电脑很少再有原生串口了,即便有些台式机有,也是在主板
    上并未引出。
  2. 使用USB转串口或PCI串口,此类串口一般需要系统启动后,加载完驱动,使用特殊操作才能将内核终端映射过来。
  3. 使用syslog将信息传到外部服务器,需要修改内核或驱动中的打印函数,且一般只能以文件方式读取。
  4. 给系统增加一个强大的图形显示的终端软件,可以拖动滚动条查看以往信息。
  5. 将内核终端映射到一个文本文件,再通过ftp下载该文件进行查看。
  6. 能不能在Telnet下,执行个命令,就把内核终端映射过来呢?通过网络的话,速度快,不限定距离,连接方便。

功能:

  1. 可以使得内核终端映射到多个设备,且各设备间保持同步状态。
  2. 映射到内核终端设备可以是,串口,文本文件,和Telnet。
  3. 不需要改动内核或驱动,部署启动一个内核模块,再执行一条命令即可。
  4. 完美实现了上面解决方法中的2、5、6。
  5. 启动后不影响原有终端设备功能,新增加的终端设备如同原有终端设备的影子一样,具有完全相同的状态。
  6. 原理上除了可以映射内核终端外,其他进程终端(每个进程有各自独立的标准输入输出)也是可以映射的。

应用情景:

  1. 避免内核终端在显示器上时,查看不全的问题。
  2. 调试过程中需要暂停终端当前显示内容,以便查看分析。
  3. 需要同时开启多个内核终端,便于多人协作。
  4. 在开启多个内核终端时,其中一路可以开启会话日志,将内容保存为文件,其他路可以暂停、关闭等,而互不影响。
  5. 设备不在身边(比如在隔壁房间),或机箱不便打开,或连接串口终端缺少线缆,接头,USB转串口模块等情况下。
  6. 黑进同事的设备,给他来个恶作剧。
  7. 呼叫你隔壁屋沉迷调试bug中的同事,该去吃饭了。

操作方法:

  1. 到gitlab仓库拉去最新版本shadowTerminal工程源码,shadowTerminal是一个内核模块工程。
  2. 根据目标板处理器体系结构,导入对应的工作空间,关联base,编译,编译后得到shadowTerminal.ko文件。
  3. 部署shadowTerminal.ko文件到目标板,并安装:insmod /lib/modules/shadowterminal.ko
    安装后只会注册sterminal命令。
  4. sterminal -help 命令,查看命令帮助信息。
  5. 在系统默认内核终端中执行 sterminal 命令,无变化;在Telnet终端中执行sterminal命令。会将当前Telnet终端
    映射到内核终端。
  6. sterminal -f /dev/ttyUSB0 -b 115200 -o none 命令, 将串口/dev/ttyUSB0绑定到内核终端,同时设置串口波
    特率和帧格式。
  7. sterminal -f /apps/log命令, 新建普通文件/apps/log绑定到内核终端。

更新记录:

2020.01.20 v1.0.0

  • 初始版本,基本实现telnet映射系统终端的功能。

2022.04.24 v1.1.0

  • 修正telnet映射连接时出现卡动的问题。
  • 解决telnet映射断开时原有命令行无法使用的问题。

下载地址:

目前对外只提供了x86/x64平台的可执行程序下载,内核版本是V1.12.9,shadowTerminal版本是V1.1.0。
shadowTerminal_x86.ko
shadowTerminal_x64.ko

翼辉内部人员可在公司内部Git仓库查看及下载源码。

测试截图

当前版本只在x86虚拟机上进行了测试。

模拟显示器下的控制台启动界面。
在这里插入图片描述
putty下串口0的命令行启动界面。
在这里插入图片描述

SecureCRT下telnet连接的命令行启动界面。
在这里插入图片描述

telnet下安装shadowTerminal操作。
在这里插入图片描述

telnet下安装映射系统中断操作,注意x86平台下的系统终端在显示器上,不是串口0。映射成功后系统输出都会显示在telnet界面,telnet界面下的输入也是同步到系统终端中,两处命令行是完全同步的。而此时串口0并未映射系统终端,所以是独立不受印象的。
在这里插入图片描述
在这里插入图片描述

串口0的命令行也可以映射到系统终端,这样3个终端串口就都绑定且同步了。
在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:55:19  更:2022-04-26 11:55:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:21:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码