CN114020159A - 一种Linux***内核虚拟键盘的定制方法、装置、设备和介质 - Google Patents
一种Linux***内核虚拟键盘的定制方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN114020159A CN114020159A CN202111134151.2A CN202111134151A CN114020159A CN 114020159 A CN114020159 A CN 114020159A CN 202111134151 A CN202111134151 A CN 202111134151A CN 114020159 A CN114020159 A CN 114020159A
- Authority
- CN
- China
- Prior art keywords
- keyboard
- virtual keyboard
- kernel
- kernel virtual
- file
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/0202—Constructional details or processes of manufacture of the input device
- G06F3/0219—Special purpose keyboards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种Linux***内核虚拟键盘的定制方法、装置、设备和介质,方法包括:S1、在Input设备新增所需数量的按键,为各个按键自定义相应的键值,并设置键盘名;S2、对***进行编译,生成一个标准的KO文件;S3、设备启动时,通过启动脚本把所述KO文件注册到***上,***就多了一个键盘名为所设键盘名的内核虚拟键盘。本发明通过***的Input设备新增按键,自定义相应的键值,并编译成一个标准的KO文件,再通过启动脚本把所述KO文件注册到***上,即可得到kernel上的内核虚拟键盘,以供Linux内核使用,由于其不是针对某个芯片平台专用的内核虚拟键盘,通用性强,利于移植。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种嵌入式设备内核虚拟键盘的定制方法、装置、设备和介质。
背景技术
很多嵌入式设备的许多应用场景需要按键来触发,比如需要在一个语音设备上播放第三方应用youtube,当用户通过语音唤醒***,例如:"alexa,what'sthetime",或者“小度小度,现在是什么时间?”,这个时候必然会有混音,为了解决混音问题,在唤醒***的时候,需要在Linux内核发送pause指令到键盘,然后到wayland(是一个简单的"显示服务器"(Display Server)),最后才到youtube,去暂停视频播放。因此语音设备需要提供可供Linux内核使用的键盘。
但目前很多嵌入式设备,一般不带键盘,也不支持USB键盘,或者虽有带有键盘,但键值太多或太少,从而影响使用效率或使用的便利性。如此,开发人员因要在第三方应用新增一些特殊的功能,需要使用到特殊的自定义的特殊按键时,比如在一些第三方应用新增play/pause/forward/backword/next/previous等特殊按键等,就需要一个自定义的内核虚拟键盘。
adc-keys也是一种Linux***内核虚拟键盘,但由于其是某个芯片平台专用的内核虚拟键盘,耦合度太高,不利于移植,没有通用性。因此,需要有一种通用性强的内核虚拟键盘,以提高嵌入式设备的适应性。
发明内容
本发明要解决的技术问题,在于提供一种可定制虚拟键盘的方法、装置、设备和介质,通过模拟来实现一种虚拟键盘以供内核使用,且利于移植,通用性强。
第一方面,本发明提供了一种Linux***内核虚拟键盘的定制方法,包括下述步骤:
S1、在Input设备上新增所需数量的按键,为各个按键自定义相应的键值,并设置键盘名;
S2、对***进行编译,生成一个标准的KO文件;
S3、设备启动时,通过启动脚本把所述KO文件注册到***上,***就多了一个键盘名为所设键盘名的内核虚拟键盘。
第二方面,本发明提供了一种Linux***内核虚拟键盘的定制装置,包括:
自定义模块,用于在Input设备上新增所需数量的按键,为各个按键自定义相应的键值,并设置键盘名;
编译模块,用于对***进行编译,生成一个标准的KO文件;
键盘注册模块,设备启动时,通过启动脚本把所述KO文件注册到***上,***就多了一个键盘名为所设键盘名的内核虚拟键盘。
第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:通过***的Input设备新增所需数量的按键,为各个按键自定义相应的键值,并编译成一个标准的KO文件,再通过启动脚本把所述KO文件注册到***上,即可得到kernel上的内核虚拟键盘,可供Linux内核使用,由于其不是针对某个芯片平台专用的内核虚拟键盘,通用性强,利于移植,比如st、ali、hisilicom、mtk、nvt、rockchip等芯片平台都可以使用。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明实施例一中方法中的流程图;
图2为本发明一实施例的测试结果示意图;
图3为本发明实施例二中装置的结构示意图;
图4为本发明实施例三中电子设备的结构示意图;
图5为本发明实施例四中介质的结构示意图。
具体实施方式
本申请实施例通过提供一种可定制虚拟键盘的方法、装置、设备和介质,通过模拟来实现一种虚拟键盘以供内核使用,且利于移植,通用性强。
本申请实施例中的技术方案,总体思路如下:采用模拟方式,通过***的Input设备新增所需数量的按键,为各个按键自定义相应的键值,并编译成一个标准的KO文件,再通过启动脚本把所述KO文件注册到***上,即可得到kernel上的内核虚拟键盘,可供Linux内核使用。以解决不带键盘或按键不够的嵌入式设备的内核输入问题,由于其不是针对某个芯片平台专用的内核虚拟键盘,通用性强,利于移植。
实施例一
如图1所示,本实施例提供一种Linux***内核虚拟键盘的定制方法,包括下述步骤:
S1、在Input设备新增所需数量的按键,为各个按键自定义相应的键值,并设置键盘名;
S2、对***进行编译,生成一个标准的KO文件;
S3、设备启动时,通过启动脚本把所述KO文件注册到***上,***就多了一个键盘名为所设键盘名的内核虚拟键盘。
使用所述内核虚拟键盘时,通过***以命令行的形式给所述内核虚拟键盘键盘发送相应的按键的键值,然后发送给相应的应用。
为了查看发送给内核虚拟键盘的键值是否会被内核虚拟键盘键盘接收到,可以通过weston日志进行查看。具体做法是:
打开weston日志开关,修改westonlibinput方法,主要是加入调试代码,重新编译wetston根目录下makeweston-rebuild即可把刚才的修改带上新增两个读写指定event的方法,比如:新增的读指定event的方法是M8_read_test.out,新增的写指定event的方法是M8_write_test.out。
具体测试步骤:
先通过insmod指令向内核注册KO文件,其中,zeasn_keyboard.ko为文件名,system/lib/modules/就是Ko文件所在的路径。
insmod/system/lib/modules/zeasn_keyboard.ko拉起ko;
然后通过cat/pro...指令进行查看,具体命令如下:
cat/proc/bus/input/devices;
即可看到如下打印,说明virtual_kb以及运行情况:
I:Bus=0000Vendor=0000Product=0000Version=0000
N:Name="zeasn_virtual_kb"
P:Phys=
S:Sysfs=/devices/virtual/input/input5
U:Uniq=
H:Handlers=kbdevent5cpufreqdmcfreq
B:PROP=0
B:EV=3
B:KEY=100000000000000
#tail-f/userdata/weston.log查看weston.log日志
#./M8_read_test.out5让event5处于读取状态
./M8_write_test.out5116往event5写一个keycode,这里的“116”为键值。
从图2可以看出:通过***以命令行的形式给所述内核虚拟键盘键盘发送相应的按键的键值,weston可以读到该键值。
基于同一发明构思,本申请还提供了与实施例一中的方法对应的装置,详见实施例二。
实施例二
如图3所示,在本实施例中提供了一种一种Linux***内核虚拟键盘的定制装置,包括:
自定义模块,用于在Input设备上新增所需数量的按键,为各个按键自定义相应的键值,并设置键盘名;
编译模块,用于对***进行编译,生成一个标准的KO文件;
键盘注册模块,设备启动时,通过启动脚本把所述KO文件注册到***上,***就多了一个键盘名为所设键盘名的内核虚拟键盘。
所述内核虚拟键盘在收到键值后,再转发给相应的应用,所述键值以命令行的形式进行发送。
由于本发明实施例二所介绍的装置,为实施本发明实施例一的方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的电子设备实施例,详见实施例三。
实施例三
本实施例提供了一种电子设备,如图4所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。
由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
实施例四
本实施例提供一种计算机可读存储介质,如图5所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:通过***的Input设备新增所需数量的按键,为各个按键自定义相应的键值,并编译成一个标准的KO文件,再通过启动脚本把所述KO文件注册到***上,即可得到kernel上的内核虚拟键盘,可供Linux内核使用,由于其不是针对某个芯片平台专用的内核虚拟键盘,通用性强,利于移植。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置或***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (6)
1.一种Linux***内核虚拟键盘的定制方法,其特征在于:包括下述步骤:
S1、在Input设备新增所需数量的按键,为各个按键自定义相应的键值,并设置键盘名;
S2、对***进行编译,生成一个标准的KO文件;
S3、设备启动时,通过启动脚本把所述KO文件注册到***上,***就多了一个键盘名为所设键盘名的内核虚拟键盘。
2.根据权利要求1所述的一种Linux***内核虚拟键盘的定制方法,其特征在于:使用所述内核虚拟键盘时,通过***以命令行的形式给所述内核虚拟键盘键盘发送相应的按键的键值,然后发送给相应的应用。
3.一种Linux***内核虚拟键盘的定制装置,其特征在于:包括:
自定义模块,用于在Input设备上新增所需数量的按键,为各个按键自定义相应的键值,并设置键盘名;
编译模块,用于对***进行编译,生成一个标准的KO文件;
键盘注册模块,设备启动时,通过启动脚本把所述KO文件注册到***上,***就多了一个键盘名为所设键盘名的内核虚拟键盘。
4.根据权利要求3所述的一种Linux***内核虚拟键盘的定制装置,其特征在于:所述内核虚拟键盘在收到键值后,再转发给相应的应用,所述键值以命令行的形式进行发送。
5.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1或2所述的方法。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1或2所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111134151.2A CN114020159A (zh) | 2021-09-27 | 2021-09-27 | 一种Linux***内核虚拟键盘的定制方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111134151.2A CN114020159A (zh) | 2021-09-27 | 2021-09-27 | 一种Linux***内核虚拟键盘的定制方法、装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114020159A true CN114020159A (zh) | 2022-02-08 |
Family
ID=80055000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111134151.2A Pending CN114020159A (zh) | 2021-09-27 | 2021-09-27 | 一种Linux***内核虚拟键盘的定制方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020159A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870316A (zh) * | 2014-04-11 | 2014-06-18 | 烽火通信科技股份有限公司 | 一种智能操作***上的java虚拟机实现方法 |
CN106293756A (zh) * | 2016-08-16 | 2017-01-04 | 汉柏科技有限公司 | 一种用于快速更换的自定义Linux内核*** |
CN106341777A (zh) * | 2016-08-11 | 2017-01-18 | 深圳创维-Rgb电子有限公司 | Usb虚拟设备创建方法、设备及*** |
CN109142868A (zh) * | 2018-08-10 | 2019-01-04 | 上海电机学院 | 电力谐波检测仪 |
-
2021
- 2021-09-27 CN CN202111134151.2A patent/CN114020159A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870316A (zh) * | 2014-04-11 | 2014-06-18 | 烽火通信科技股份有限公司 | 一种智能操作***上的java虚拟机实现方法 |
CN106341777A (zh) * | 2016-08-11 | 2017-01-18 | 深圳创维-Rgb电子有限公司 | Usb虚拟设备创建方法、设备及*** |
CN106293756A (zh) * | 2016-08-16 | 2017-01-04 | 汉柏科技有限公司 | 一种用于快速更换的自定义Linux内核*** |
CN109142868A (zh) * | 2018-08-10 | 2019-01-04 | 上海电机学院 | 电力谐波检测仪 |
Non-Patent Citations (2)
Title |
---|
UNI-少林寺武功: "适配自定义按键", Retrieved from the Internet <URL:https://blog.csdn.net/yikunbai5708/article/details/103842904> * |
宇宙的蚂蚁: "雷柏无线键盘linux驱动程序,虚拟键盘驱动程序", Retrieved from the Internet <URL:https://blog.csdn.net/weixin_29775447/article/details/116777445> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106970873B (zh) | 线上mock测试方法、装置及*** | |
US8627296B1 (en) | Unified unit and integration test with automatic mock creation | |
US20110154299A1 (en) | Apparatus and method for executing instrumentation code | |
US20110154110A1 (en) | Verifying a Register-Transfer Level Design of an Execution Unit | |
US10095611B1 (en) | Methodology for unit test and regression framework | |
CN111538659B (zh) | 业务场景的接口测试方法、***、电子设备和存储介质 | |
CN105512031A (zh) | 一种移动终端及其自动测试方法 | |
CN111111201A (zh) | 一种基于游戏的技能创建方法、装置、服务器及介质 | |
CN112650658A (zh) | 应用程序的异常记录和复现方法、装置及存储介质 | |
CN105512276B (zh) | 一种构建垃圾文件的方法、装置及电子设备 | |
CN109284222B (zh) | 软件单元、数据处理***中的项目测试方法、装置及设备 | |
CN110888628B (zh) | 生成控制工具的方法、装置、设备和存储介质 | |
CN112947907B (zh) | 一种创建代码分支的方法 | |
CN111176663B (zh) | 应用程序的数据处理方法、装置、设备及存储介质 | |
CN115656788B (zh) | 一种芯片测试***、方法、设备及存储介质 | |
US20230101154A1 (en) | Resumable instruction generation | |
CN114020159A (zh) | 一种Linux***内核虚拟键盘的定制方法、装置、设备和介质 | |
CN112069158A (zh) | 一种数据修复方法、装置、设备和存储介质 | |
CN111399926A (zh) | 下载启动程序的方法和装置 | |
CN111459547B (zh) | 一种函数调用链路的展示方法和装置 | |
CN110096888B (zh) | 一种加快验证及分析smm安全隐患的方法及*** | |
CN103513989B (zh) | 按键数据获取方法及装置 | |
CN116775202A (zh) | 模糊测试方法、装置、介质、电子设备及计算机程序产品 | |
CN113672465A (zh) | 进程名生成进程日志***的方法、***、介质、终端、无人机 | |
CN116431518B (zh) | 一种基于仿真平台的多层级、多模式软件故障注入方法 |
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 |