项目起源:

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个终端串口就都绑定且同步了。

SylixOS下影子终端工具相关推荐

  1. Mac下安装终端工具,可使用终端下载软件

    Mac book pro上面,我想实现像Linux下面那样用命令行下载软件,查看资料后,Mac使用一个工具叫brew,用网上给出的命令无法安装.在终端中后来试了下下面的命令完成了安装: ruby -e ...

  2. windows下的终端工具和产品力

    终端工具产品力: 1.和linux.unix基本命令兼容 2.字体大小可以设置,最好按键+滚轮可以控制字体大小 1.0时期cmd时代 cmd唤起命令行 2.0时期 powershell时代 Power ...

  3. java~mac下的终端工具oh-my-zsh

    mac操作系统类似于linux,很多命令都是兼容的,确实挺好用,对于java,docker,git等开发来说,终端命令行是非常必要的工具,这里我介绍一下item2+oh-my-zsh的安装与使用. 安 ...

  4. linux 下qt 终端隐藏在后台_20 个 Linux 终端下的生产力工具 | Linux 中国

    来试下这些开源工具.你的效率一定会提升. 来源:https://linux.cn/article-12274-1.html 作者:Alan Smithee 译者:Xiaobin.Liu 诚然,很多人使 ...

  5. linux的screen工具下载,Linux终端下的强大工具 - screen

    使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的session.screen命令可以解决这个问题. Screen工具是一个终 ...

  6. linux 终端工具 win10,win10下使用Windows terminal安装wsl子系统教程

    不少做计算机方向的朋友肯定遇到过有些软件或者环境需要Linux系统进行操作,这时候就必须在虚拟机里安装这些系统,打开时不方便不说,系统的流畅度也有很大的问题.一旦资源分配不均或者出现磁盘配置问题,也很 ...

  7. 终端主题_再见 XShell 和 ITerm 2,是时候拥抱全平台高颜值终端工具 Hyper 了!

    点击上方"涛哥聊Python",选择"星标"公众号 重磅干货,第一时间送达 转自:运维之美 不论是 macOS 还是 Windows 下,我们都不推荐使用系统自 ...

  8. 推荐7款好用的cmd命令行终端工具

    1.Cmder 下载地址:https://cmder.net/ Cmder是一个代替cmd的终端工具.只能操作Windows. 它的好处是: 支持大部分Linux命令,比如ls: 鼠标选中默认复制,鼠 ...

  9. [转]12款最佳Linux命令行终端工具

    摘要 "工欲善其事必先利其器",作为菜鸟,也是从别人那里偷学来的一些东东.今天看到同事用到一个终端命令行工具,觉得自己弱爆了.然后在网上搜了下该工具.发现类似的工具还是挺多的,只是 ...

最新文章

  1. “Hey Siri” 背后的黑科技大揭秘!
  2. 【Rollo的Python之路】Scrapy Selector选择器的学习
  3. oracle数据库SQL入门
  4. 只出现一次的数字Python解法
  5. 学习笔记02:直播串讲02
  6. Ubuntu 查看默认软件安装位置
  7. 【单机实现系列】SharePoint2010与Exchange Server2010 结合
  8. mysql 1236错误_MySQL主主同步环境出现1236错误
  9. sql server利用开窗函数over() 进行分组统计
  10. Jvm虚拟机下载和安装教程
  11. 服务器专用影子系统,试试最牛X的影子系统!瞬间创建N个账号
  12. 普通IC、M1、UID、CUID、FUID、UFUID卡的区别
  13. 芯片开发语言的简单区别介绍。Verilog、VHDL、System Verilog、SystemC、Matlab、C/C++等
  14. android wps页面设置背景图片,wps word怎么设置背景图片
  15. 自己动手搭建聊天APP
  16. 百度富文本编辑器php设置图片上传,手把手教你百度富文本编辑器的相关配置包括图片上传(for jsp)...
  17. matlab求合同矩阵,matlab-线性代数 判断 合同矩阵
  18. 大数据产品开发流程规范_大数据系统开发步骤流程是怎样的
  19. larval框架数据表的填充
  20. NaN是什么? NaN == NaN 的结果是什么?为什么?

热门文章

  1. ‘struct lws_context_creation_info’ has no member named ‘ws_ping_pong_interval’
  2. 小苏的Shell编程笔记之一
  3. 【设计模式】五种创建者模式
  4. 【JS】对象方法(工作常用)
  5. 计算机主机上授权许可标签,计算机安装软件抽查登记表填表及操作说明.DOC
  6. 生信笔记 | 文本挖掘的一般流程
  7. tfs 修改服务器路径,TFS更改服务器密码
  8. 云朵左右移动上下漂浮
  9. pve安装黑苹果实录
  10. hive的set优化_Hive优化(整理版)