生活随笔
收集整理的這篇文章主要介紹了
SylixOS下影子终端工具
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
項目起源:
2020.01.20 v1.0.0
影子終端(shadowTerminal)工具的開發(fā)來自于實際需求,x86平臺下調(diào)試網(wǎng)卡驅(qū)動,需要查看內(nèi)核調(diào)試信息,但x86平臺下內(nèi)核終端是在顯示器上的,屏幕不能滾動顯示,當(dāng)調(diào)試信息較多時就看不到前面的打印了,所以需要有方法將系統(tǒng)終端轉(zhuǎn)移到開發(fā)主機上。
解決方法:
修改系統(tǒng)啟動參數(shù),將內(nèi)核終端映射到串口上。現(xiàn)今的電腦很少再有原生串口了,即便有些臺式機有,也是在主板
上并未引出。使用USB轉(zhuǎn)串口或PCI串口,此類串口一般需要系統(tǒng)啟動后,加載完驅(qū)動,使用特殊操作才能將內(nèi)核終端映射過來。使用syslog將信息傳到外部服務(wù)器,需要修改內(nèi)核或驅(qū)動中的打印函數(shù),且一般只能以文件方式讀取。給系統(tǒng)增加一個強大的圖形顯示的終端軟件,可以拖動滾動條查看以往信息。將內(nèi)核終端映射到一個文本文件,再通過ftp下載該文件進行查看。能不能在Telnet下,執(zhí)行個命令,就把內(nèi)核終端映射過來呢?通過網(wǎng)絡(luò)的話,速度快,不限定距離,連接方便。
功能:
可以使得內(nèi)核終端映射到多個設(shè)備,且各設(shè)備間保持同步狀態(tài)。映射到內(nèi)核終端設(shè)備可以是,串口,文本文件,和Telnet。不需要改動內(nèi)核或驅(qū)動,部署啟動一個內(nèi)核模塊,再執(zhí)行一條命令即可。完美實現(xiàn)了上面解決方法中的2、5、6。啟動后不影響原有終端設(shè)備功能,新增加的終端設(shè)備如同原有終端設(shè)備的影子一樣,具有完全相同的狀態(tài)。原理上除了可以映射內(nèi)核終端外,其他進程終端(每個進程有各自獨立的標準輸入輸出)也是可以映射的。
應(yīng)用情景:
避免內(nèi)核終端在顯示器上時,查看不全的問題。調(diào)試過程中需要暫停終端當(dāng)前顯示內(nèi)容,以便查看分析。需要同時開啟多個內(nèi)核終端,便于多人協(xié)作。在開啟多個內(nèi)核終端時,其中一路可以開啟會話日志,將內(nèi)容保存為文件,其他路可以暫停、關(guān)閉等,而互不影響。設(shè)備不在身邊(比如在隔壁房間),或機箱不便打開,或連接串口終端缺少線纜,接頭,USB轉(zhuǎn)串口模塊等情況下。黑進同事的設(shè)備,給他來個惡作劇。呼叫你隔壁屋沉迷調(diào)試bug中的同事,該去吃飯了。
操作方法:
到gitlab倉庫拉去最新版本shadowTerminal工程源碼,shadowTerminal是一個內(nèi)核模塊工程。根據(jù)目標板處理器體系結(jié)構(gòu),導(dǎo)入對應(yīng)的工作空間,關(guān)聯(lián)base,編譯,編譯后得到shadowTerminal.ko文件。部署shadowTerminal.ko文件到目標板,并安裝:insmod /lib/modules/shadowterminal.ko
安裝后只會注冊sterminal命令。sterminal -help 命令,查看命令幫助信息。在系統(tǒng)默認內(nèi)核終端中執(zhí)行 sterminal 命令,無變化;在Telnet終端中執(zhí)行sterminal命令。會將當(dāng)前Telnet終端
映射到內(nèi)核終端。sterminal -f /dev/ttyUSB0 -b 115200 -o none 命令, 將串口/dev/ttyUSB0綁定到內(nèi)核終端,同時設(shè)置串口波
特率和幀格式。sterminal -f /apps/log命令, 新建普通文件/apps/log綁定到內(nèi)核終端。
更新記錄:
2020.01.20 v1.0.0
- 初始版本,基本實現(xiàn)telnet映射系統(tǒng)終端的功能。
2022.04.24 v1.1.0
- 修正telnet映射連接時出現(xiàn)卡動的問題。
- 解決telnet映射斷開時原有命令行無法使用的問題。
下載地址:
目前對外只提供了x86/x64平臺的可執(zhí)行程序下載,內(nèi)核版本是V1.12.9,shadowTerminal版本是V1.1.0。
shadowTerminal_x86.ko
shadowTerminal_x64.ko
翼輝內(nèi)部人員可在公司內(nèi)部Git倉庫查看及下載源碼。
測試截圖
當(dāng)前版本只在x86虛擬機上進行了測試。
模擬顯示器下的控制臺啟動界面。
putty下串口0的命令行啟動界面。
SecureCRT下telnet連接的命令行啟動界面。
telnet下安裝shadowTerminal操作。
telnet下安裝映射系統(tǒng)中斷操作,注意x86平臺下的系統(tǒng)終端在顯示器上,不是串口0。映射成功后系統(tǒng)輸出都會顯示在telnet界面,telnet界面下的輸入也是同步到系統(tǒng)終端中,兩處命令行是完全同步的。而此時串口0并未映射系統(tǒng)終端,所以是獨立不受印象的。
串口0的命令行也可以映射到系統(tǒng)終端,這樣3個終端串口就都綁定且同步了。
總結(jié)
以上是生活随笔為你收集整理的SylixOS下影子终端工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。