A40i使用笔记:加载驱动的几种方式(自动、手动、程序加载)

一、前言

今日收获颇多,抓紧机会写上调试心得,否则日后又忘记了

本编文章介绍加载驱动的方式,亲测可用,可能还有更好的方式,欢迎补充

二、环境

window10

全志A40i

linux3.10

三、正文

总共总结了3种方式加载驱动ko文件,编译进入内核的这里不介绍,只说明广义上的手动加载驱动的方式

将驱动放入到目标机器中,共有开机自动加载,开机手动加载,和执行某个程序在加载3种

1.开机自动加载(飞凌配套源码。全志A40i。)

在rcS文件中加入如下

#指向开发环境中需要在开发板中执行的驱动路径
TS_MODULE=`cat /etc/init.d/autorun_drv`
#加载驱动文件
insmod ${TS_MODULE}

然后在rcS同级放入文件auto_config_drv,文件内容为/system/vendor/modules/gt9xxnew_ts.ko

这种方式有个缺点就是每次不同的驱动需要修改rcS文件,而且一个命令只能加载一个驱动

改进如下

#指向开发环境中需要在开发板中执行的驱动路径
#TS_MODULE=`cat /etc/init.d/autorun_drv`
#加载驱动文件
#insmod ${TS_MODULE}
sh /etc/init.d/autorun_drv

注释掉原来改为使用脚本去加载,自动调用脚本名称仍为auto_config_drv

脚本内容为

#!/bin/sh

insmod /system/vendor/modules/gt9xxnew_ts.ko &
insmod /system/vendor/modules/gt9xxnew_ts1.ko &
insmod /system/vendor/modules/gt9xxnew_ts2.ko &
insmod /system/vendor/modules/gt9xxnew_ts3.ko &

这种方式的好处是每次不用修改rcS文件,只改脚本auto_config_drv内的驱动名称和数量即可。

2.通过应用程序加载(qt程序)

在已知目标机的驱动路径后,使用system("insmod /xxx/xxx/xxx.ko");函数去加载驱动

3.手动加载驱动

  • modinfo linux_test.ko查看内核模块信息
  • lsmod查看当前已经加载的内核模块
  • insmod linux_test.ko加载内核模块到内核中
  • rmmod linux_test.ko卸载内核模块
  • dmesg查看日志信息
  • dmesg -c清除日志信息

四、结语

Guess you like

Origin blog.csdn.net/qq_37603131/article/details/121125563