linux驱动-熟悉输入子体系源码以及裁剪

[复制链接]
发表于 2025-12-29 10:41:44 | 显示全部楼层 |阅读模式
引入:输入子体系的代码在内核源码的哪个路径下?那些是事故处置惩罚层,那些是核心层,装备驱动层对应的代码
        .input子体系源码所在内核源码路径、kernel/driver/input。

        输入子体系又分为输入事故处置惩罚层,核心层,装备驱动层 。
        在前面已经知道了evdev是事故处置惩罚层的代码,input_compat是核心层代码,剩下的都是装备层的代码吗?
apm-power.c-提供了与 APM(Advanced Power Management)相干的输入装备接口。
evkug.c-提供了一个用于调试的捏造输入装备,可以模拟按键、鼠标移动等事故。
evdev.c和 evdevo-提供了一个通用的输入事故层,将全部输入装备的事故转化为标准化
的输入事故格式,并提供给上层用户空间步调使用。
ff-core.c 和 ff-core.o-提供了力反馈装备的支持,允许输入装备发送力反馈信息。
ff-memless.c 和 ff-memless.0-提供了一种无需分配内存的力反馈装备支持,可以在只能使
用静态内存的体系中使用。
samepont/-提供了支持游戏控制器的驱动步调。
input.c 和 input.o-提供了输入子体系的初始化和事故处置惩罚等操纵。
imput-compac 和 imput-cempat.h-提供了向后兼容的接口,用于支持旧版本的输入体系。
imput-ledsc 和 jmnput-leds.0-提供了 LED 指示灯装备的支持,比方在条记本电脑键盘上的
NumLock、CapsLock、Scrolllock等键。
input-mt.c 和 input-mt.o-提供了多点触控装备的支持,如在触摸屏上使用多个手指举行探作。
input-poldevc 和 input-polldev.o-提供了轮询式输入装备的支持,比方通过串口或并口吸取数据的输入装备。
jgydeyc-提供了支持游戏杆的驱动步调
keyboard/-提供了支持键盘的驱动步调。
matrix-keymap.c和 matrix-keymap.o-提供了矩阵键盘的支持。
misc/-提供了其他范例输入装备的驱动步调,如红外线遥控器、输入音频等,
mouse/和mousedev.c-提供了支持鼠标的驱动步调。
modules.builtin 和 modules.order-提供了内核中使用的模块列表。
remotect!/-提供了支持远程控制的驱动步调。
rmi4/-提供了支持触控板和其他12C 装备的驱动步调。                                                                           ......。
        只要分清晰那些是事故处置惩罚层代码和那些是装备驱动层的就可以了,由于我工作中就是以这两部分为主。那怎样分辨呢?最简单也是最有用的方法就是用vim打开你先知道的源文件。
        以input-leds.c为例,看看他有没有驱动入口,看到它在驱动入口有一个注册handler事故,就是事故处置惩罚层的源码。

        再来看一个,ff-core.c,一样的方法,vim ff-core.c,这个代码没有入口函数,但是有这个__set_bit关键符,它就是装备驱动层的代码

        下一个用 joydev.c看看,老规则vim joydev.c,很显着也是事故处置惩罚层

         源码目次下另有一些目次,进到这里touchscreen内里,在这个目次文件下一样平常都是和触摸屏芯片相干的。看一下vim edt-ft5x06.c 

         没有发现什么注册相干的,也没有看到__set_bit,但是这内里都是对硬件初始化以是也是装备驱动层
 
        像刚刚touchscreen目次下,每一个文件就代表一个名字,但是我们应该装备要用得了那么多屏幕驱动吗?很显然不是,以是不是都要编写进内核内里的,根据需求,以是这个时间就必要用到裁剪
 三怎样裁剪这部分的代码
上图中我看出,,默认支持了很多装备,而且有些代码默认已经编译支持了
如果举行裁剪,打开 make menconfig,图像化设置界面。先export ARCH=arm64设置一下
进到以下路径举行裁剪。
Device Drivers --->
        Input device support --->
                _*. Generic input layer (needed for keyboard, mouse,...) //input 核心层
                   <>    Mouse interface //事故处置惩罚层
                   <>   Joystick interface//事故处置惩罚层
                   <>    Event interface//事故处置惩罚层 event.c
                   
  •     Keyboards//装备驱动层--->   
                       
  •     Mice ---> //装备驱动层                                                                                               
  •     Joysticks/Gamepads //装备驱动层
                       
  •    Touchscreens  --->    //装备驱动层


     

    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金
  • 本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×
    回复

    使用道具 举报

    登录后关闭弹窗

    登录参与点评抽奖  加入IT实名职场社区
    去登录
    快速回复 返回顶部 返回列表