CN109344107A - 一种Linux系统控制台设置的方法和装置 - Google Patents
一种Linux系统控制台设置的方法和装置 Download PDFInfo
- Publication number
- CN109344107A CN109344107A CN201810951455.XA CN201810951455A CN109344107A CN 109344107 A CN109344107 A CN 109344107A CN 201810951455 A CN201810951455 A CN 201810951455A CN 109344107 A CN109344107 A CN 109344107A
- Authority
- CN
- China
- Prior art keywords
- usb
- console
- interface
- linux system
- equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种Linux系统控制台设置的方法,使用USB接口作为console控制台接口,包括如下步骤:系统启动时加载Linux系统内核命令行参数;判断console控制台参数是否为多控制台且USB接口为高优先级;若是进入下一步骤;监测USB接口是否插入USB转RS232设备;以USB接口作为控制台接口启动init进程。本发明还公开了一种Linux系统控制台设置的装置,本发明克服了国网集中器Ⅱ型终端的串口不在外壳表面而设备难以调试的问题,可广泛应用于嵌入式计算机领域。
Description
技术领域
本发明涉及嵌入式计算机领域,具体的,涉及一种使用USB接口作为Linux系统控制台接口的方法。
背景技术
嵌入式Linux系统具有性能优异、软件移植容易、代码开放、应用产品开发周期短等优点,是国网集中器Ⅱ型终端的理想选择,嵌入式Linux系统默认的console控制台输出口为串口UART0,而国家标准Q/GDW1375.2-2013《电力用户用电信息采集系统型式规范第二部分:集中器型式规范》中规定UART0不能引用到结构的外端,这就使得集中器在安装后基于console控制台的调试非常困难,因为有必要发明一种方法解决上述问题。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的是提供一种Linux系统控制台设置的方法和装置。
本发明所采用的技术方案是:
一种Linux系统控制台设置的方法,用USB接口作为console控制台接口,包括如下步骤:
系统启动时加载Linux系统内核命令行参数;
判断console控制台参数是否为多控制台且USB接口为高优先级;若是进入下一步骤;
监测USB接口是否插入USB转RS232设备;
启动init进程。
优选的,所述监测USB接口是否插入USB转RS232设备包括如下步骤:
监测到USB口中有电流的变化;
触发预设主机控制器中断;
唤醒预设内核线程,对当前接入到USB端口中的设备进行枚举,获取厂商ID及设备ID;
将USB设备添加到USB子系统总线;
在USB子系统中创建USB转RS232设备接口;
匹配USB转RS232设备驱动;
完成内核对象初始化。
优选的,所述监测USB接口是否插入USB转RS232设备还包括预先设置Linux系统内核命令行参数,使得console控制台接口包括USB接口和串口,且USB接口为高优先级接口。
优选的,还包括设置USB转RS232设备的系统文件的序列号为固定值。
优选的,若所述参数为单控制台或者USB接口中不包含USB转RS232设备,以串口作为控制台接口。
优选的,所述启动init进程包括解析Cramfs根文件系统的/etc/inittab初始表文件。
本发明还提出一种Linux系统控制台设置的装置,包括:
Linux系统内核命令行加载单元,用于系统启动时加载Linux系统内核命令行参数;
控制台接口判断单元,用于判断console控制台参数是否为多控制台且USB接口为高优先级;
USB接口监测单元,用于监测USB接口是否插入USB转RS232设备;
init进程执行单元,用于执行init进程。
优选的,所述USB接口监测单元包括:
USB接口电流感应单元,用于监测到USB口中有电流的变化;
预设主机控制器中断单元,用于触发预设主机控制器中断;
预设内核唤醒单元,用于唤醒预设内核线程,对当前接入到USB端口中的设备进行枚举,获取厂商ID及设备ID;
设备添加单元,用于将USB设备添加到USB子系统总线;
接口创建单元,用于在USB子系统中创建USB转RS232设备接口;
驱动匹配单元,用于匹配USB转RS232设备驱动;
内核对象初始化单元,用于完成内核对象初始化。
优选的,还包括串口输出单元,用于当console控制台参数为单控制台或者USB接口中不包含USB转RS232设备时,使用串口作为console控制台接口。
本发明的有益效果是:本发明通过将系统的console控制台输出口从串口转为USB端口,避免了因国网集中器Ⅱ型终端的串口不在外壳表面而设备难以调试的问题,可广泛应用于嵌入式计算机领域。
附图说明
图1是国网集中器Ⅱ型终端的外壳结构示意图;
图2是本发明一种Linux系统控制台设置的方法一具体实施例的方法流程图;
图3是本发明一种Linux系统控制台设置的方法中监测USB接口是否插入USB转RS232设备一具体实施例的方法流程图;。
图4是本发明一种Linux系统控制台设置的装置框图;
图5是本发明一种Linux系统控制台设置的装置中USB接口监测单元的框图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示,国网集中器Ⅱ型终端的串口(图中未示出)在设备外壳内部,然而USB接口1在结构的外壳上,所以采用USB接口作为console控制台的调试接口方案。
重新修改Linux系统内核命令行为:
Kernel command line:root=/dev/mtdblock4rootfstype=cramfs console=ttyUSB0,dconsole=ttyS0,115200n8rdinit=/sbin/init ro mem=64M
其中,各参数含义为:
1.root=/dev/mtdblock4:根文件系统挂载分区路径;
2.rootfstype=cramfs:根文件系统为cramfs;
3.console=ttyUSB0,dconsole=ttyS0,115200n8:设定两个内核控制台为ttyUSB0、ttyS0,通信波特率为115200n8;
4.rdinit=/sbin/init:内核启动之后运行的第一个进程,即1号进程init;
5.mem=64M:物理内存RAM为64M。
与原命令行Kernel command line:root=/dev/mtdblock4rootfstype=cramfsconsole=ttyS0,d115200n8rdinit=/sbin/init ro mem=64M相比:修改了console内核控制台参数,增加了USB接口并将USB接口设置为高优先级。当USB接口中未插入显示设备时,可继续采用串口作为控制端的的调试接口。
修改/etc/inittab文件,添加如下部分console::respawn:-/bin/sh,用于设置启动console控制台进程。
如图2所示,具体工作步骤如下:
S0加载Linux系统内核命令行参数,系统上电加载Linux内核运行,内核启动过程中加载内核命令行;
S1判断console控制台参数是否为多控制台且USB接口为高优先级;若是,进入步骤S2;
S2判断USB转RS232设备文件是否生成,若是,进入步骤S3,若否进入步骤S4;
S3以USB接口作为控制台接口,执行USB接口程序;
S4以串口作为控制台接口,执行串口程序;
S5启动init进程,解析/etc/inittab文件完成控制台环境初始化,如打开三个I/O设备文件:标准输入文件stdin,标准输出文件stdout,标准错误输出文件stderr,分别得到文件描述符0,1,2等。
执行/etc/init.d/rcS加载需要调试的应用程序。
若系统启动运行中检测到console控制台设置了多控制台,且USB端口作为高优先级,并检测到USB接口中已经插入了USB转RS232设备,则使用USB接口作为输出接口,将系统日志及应用程序报文通过syslog系统输出到USB端口中,解决了国网集中器Ⅱ型终端因串口不在外壳表面,而导致难以调试的问题。
如图3所示,步骤S2还包括,检测USB接口是否插入USB转RS232设备,并匹配对应驱动,包括如下步骤:
S20检测USB口中有电流变化,当出现电流变化时,代表USB口上有设备插入;
S21触发预设主机控制器中断,触发echi-usb(EHCI)主机控制器中断;
S22唤醒预设内核线程,对当前设备进行枚举,获取厂商ID及设备ID;唤醒正在休眠的hub_thread线程,对当前插入的USB转RS232设备进行枚举,获取设备厂商ID及设备ID值。
S23将USB设备添加到USB子系统总线;
S24创建USB设备接口(interface),通过设备驱动的probe函数将设备枚举的厂商ID及设备ID与内核的USB子系统上注册的驱动进行匹配,创建其对应接口;
S25匹配USB转RS232设备驱动,通过厂商ID及设备ID匹配到usb-serial总线上的设备驱动,
S26在系统中创建USB转RS232设备;在usb-serial子系统总线上完成内核对象的初始化,创建USB设备;
以上为Linux系统接入USB设备安装流程。
在插拔USB设备时,在/dev/目录下会依次生成/dev/ttyUSB0,/dev/ttyUSB1,/dev/ttyUSB2,/dev/ttyUSB3,……/dev/ttyUSB255的USB设备,由于内核命令中Kernelcommand line:root=/dev/mtdblock4rootfstype=cramfs console=ttyUSB0,dconsole=ttyS0,115200n8rdinit=/sbin/init ro mem=64M中限定了console控制台为USB0,因此还需要修改usb-serial驱动程序,固定插入USB设备设后,系统中均生成/dev/ttyUSB0文件夹。
如图4所示,本发明还提出了一种Linux系统控制台设置的装置,包括
Linux系统内核命令行加载单元110,用于系统启动时加载Linux系统内核命令行参数;
控制台接口判断单元120,用于判断console控制台参数是否为多控制台且USB接口为高优先级;
USB接口监测单元130,用于监测USB接口是否插入USB转RS232设备;
init进程执行单元140,用于执行init进程。
如图5所示,其中控制台接口判断单元120包括,
USB接口电流感应单元121,用于监测到USB口中有电流的变化;
预设主机控制器中断单元122,用于触发预设主机控制器中断;
预设内核唤醒单元123,用于唤醒预设内核线程,对当前接入到USB端口中的设备进行枚举,获取厂商ID及设备ID;
设备添加单元124,用于将USB设备添加到USB子系统总线;
接口创建单元125,用于在USB子系统中创建USB转RS232设备接口;
驱动匹配单元126,用于匹配USB转RS232设备驱动;
内核对象初始化单元127,用于完成内核对象初始化。
本发明通过设置USB端口为console控制台调试端口,解决了国网集中器Ⅱ型终端的串口不在外壳表面而设备调试困难的问题,在USB端口没有接入显示设备时,仍然采用串口作为输出接口,提高了控制台输出的灵活性。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (9)
1.一种Linux系统控制台设置的方法,其特征在于,使用USB接口作为console控制台接口,包括如下步骤:
系统启动时加载Linux系统内核命令行参数;
判断console控制台参数是否为多控制台且USB接口为高优先级;若是进入下一步骤;
监测USB接口是否插入USB转RS232设备;
以USB接口作为控制台接口;
启动init进程。
2.根据权利要求1所述的一种Linux系统控制台设置的方法,其特征在于,所述监测USB接口是否插入USB转RS232设备包括如下步骤:
监测到USB口中有电流的变化;
触发预设主机控制器中断;
唤醒预设内核线程,对当前接入到USB端口中的设备进行枚举,获取厂商ID及设备ID;
将USB设备添加到USB子系统总线;
在USB子系统中创建USB转RS232设备接口;
匹配USB转RS232设备驱动;
完成内核对象初始化。
3.根据权利要求1所述的一种Linux系统控制台设置的方法,其特征在于,还包括预先设置Linux系统内核命令行参数,使得console控制台接口包括USB接口和串口,且USB接口为高优先级接口。
4.根据权利要求2所述的一种Linux系统控制台设置的方法,其特征在于,还包括设置USB转RS232设备的系统文件的序列号为固定值。
5.根据权利要求1所述的一种Linux系统控制台设置的方法,其特征在于,还包括若所述参数为单控制台或者USB接口中不包含USB转RS232设备,以串口作为控制台接口。
6.根据权利要求1所述的一种Linux系统控制台设置的方法,其特征在于,所述启动init进程包括解析Cramfs根文件系统的/etc/inittab初始表文件。
7.一种Linux系统控制台设置的装置,其特征在于,包括:
Linux系统内核命令行加载单元,用于系统启动时加载Linux系统内核命令行参数;
控制台接口判断单元,用于判断console控制台参数是否为多控制台且USB接口为高优先级;
USB接口监测单元,用于监测USB接口是否插入USB转RS232设备;
init进程执行单元,用于执行init进程。
8.根据权利要求7所述的一种Linux系统控制台设置的装置,其特征在于,所述USB接口监测单元包括:
USB接口电流感应单元,用于监测到USB口中有电流的变化;
预设主机控制器中断单元,用于触发预设主机控制器中断;
预设内核唤醒单元,用于唤醒预设内核线程,对当前接入到USB端口中的设备进行枚举,获取厂商ID及设备ID;
设备添加单元,用于将USB设备添加到USB子系统总线;
接口创建单元,用于在USB子系统中创建USB转RS232设备接口;
驱动匹配单元,用于匹配USB转RS232设备驱动;
内核对象初始化单元,用于完成内核对象初始化。
9.根据权利要求7所述的一种Linux系统控制台设置的装置,还包括串口输出单元,用于当console控制台参数为单控制台或者USB接口中不包含USB转RS232设备时,使用串口作为console控制台接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810951455.XA CN109344107A (zh) | 2018-08-21 | 2018-08-21 | 一种Linux系统控制台设置的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810951455.XA CN109344107A (zh) | 2018-08-21 | 2018-08-21 | 一种Linux系统控制台设置的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109344107A true CN109344107A (zh) | 2019-02-15 |
Family
ID=65296702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810951455.XA Pending CN109344107A (zh) | 2018-08-21 | 2018-08-21 | 一种Linux系统控制台设置的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109344107A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256513A (zh) * | 2020-10-29 | 2021-01-22 | 成都菁蓉联创科技有限公司 | 一种调试串口和数据串口复用的方法、装置和控制器 |
WO2021120960A1 (zh) * | 2019-12-18 | 2021-06-24 | 深圳先进技术研究院 | Linux系统控制台的USB串口实现方法及相关产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697531A (zh) * | 2009-10-30 | 2010-04-21 | 北京星网锐捷网络技术有限公司 | 一种端口复用方法、装置和设备 |
CN203606648U (zh) * | 2013-07-03 | 2014-05-21 | 安美世纪(北京)科技有限公司 | 一种具有无线功能的多功能中控单元 |
CN105205022A (zh) * | 2015-09-25 | 2015-12-30 | 瑞斯康达科技发展股份有限公司 | 一种多Console口配置方法和系统 |
US20160170931A1 (en) * | 2014-12-12 | 2016-06-16 | Lantronix, Inc. | Console server with usb console port |
-
2018
- 2018-08-21 CN CN201810951455.XA patent/CN109344107A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697531A (zh) * | 2009-10-30 | 2010-04-21 | 北京星网锐捷网络技术有限公司 | 一种端口复用方法、装置和设备 |
CN203606648U (zh) * | 2013-07-03 | 2014-05-21 | 安美世纪(北京)科技有限公司 | 一种具有无线功能的多功能中控单元 |
US20160170931A1 (en) * | 2014-12-12 | 2016-06-16 | Lantronix, Inc. | Console server with usb console port |
CN105205022A (zh) * | 2015-09-25 | 2015-12-30 | 瑞斯康达科技发展股份有限公司 | 一种多Console口配置方法和系统 |
Non-Patent Citations (1)
Title |
---|
网友: "usb转串口如何配置?", 《HTTPS://BLOG.51CTO.COM/U_15069498/3891683》, 3 December 2013 (2013-12-03) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021120960A1 (zh) * | 2019-12-18 | 2021-06-24 | 深圳先进技术研究院 | Linux系统控制台的USB串口实现方法及相关产品 |
CN112256513A (zh) * | 2020-10-29 | 2021-01-22 | 成都菁蓉联创科技有限公司 | 一种调试串口和数据串口复用的方法、装置和控制器 |
CN112256513B (zh) * | 2020-10-29 | 2023-10-20 | 成都菁蓉联创科技有限公司 | 一种调试串口和数据串口复用的方法、装置和控制器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102314388B (zh) | 支持智能型平台管理接口的服务器的测试方法 | |
CN103218280B (zh) | 一种usb设备的硬件通用测试方法 | |
CN102662708B (zh) | 一种Linux操作系统及其显卡驱动装置 | |
CN102693136A (zh) | 计算机的快速启动方法、快速启动系统及启动系统 | |
CN103455350A (zh) | 一种bios更新的方法 | |
WO2022148072A1 (zh) | PCIe switch工作模式更新方法及相关组件 | |
CN103150188A (zh) | 非x86指令集计算机的x86兼容显卡快速初始化方法 | |
CN103019758A (zh) | 电子装置开机加速方法以及相关的电子装置 | |
CN109344107A (zh) | 一种Linux系统控制台设置的方法和装置 | |
CN103902329A (zh) | 可更新基本输入输出系统的电子装置及其更新方法 | |
CN203982359U (zh) | 可同时连接多个模块的flash程序烧写装置 | |
CN106371876B (zh) | 产品外部程序升级的方法及系统 | |
CN103902400A (zh) | 超频设定系统及其超频设定方法 | |
CN109918250A (zh) | 一种服务器电源时序测试的方法、装置及可读存储介质 | |
CN102880479B (zh) | 一种远程修改bios属性参数的方法及装置 | |
CN103729219A (zh) | 一种uefi bios架构方法及系统 | |
CN103176808B (zh) | 一体成型桌上型电脑的开机方法 | |
CN101436097B (zh) | 电子装置及其唤醒方法 | |
CN106909346A (zh) | 一种基于一体计算机的uefi固件实现方法 | |
CN104166579A (zh) | 一种利用bmc实现关机状态下刷新bios的硬件设计方法 | |
CN102375747A (zh) | 加速开机方法及系统 | |
CN105468549A (zh) | 芯片装置及其电子系统 | |
CN108153553A (zh) | 一种高端服务器启动方法、系统、装置及计算机存储介质 | |
CN107885630A (zh) | 一种可编程虚拟键盘检测装置及方法 | |
CN106980569A (zh) | 一种利用 usb键盘灯表示bios post进度的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190215 |