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个终端串口就都绑定且同步了。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ScilogyHunter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值