改模块加载的内容
1、修改.c文件 vi hello.c
到目录ubuntu@ubuntu:/work1/1168MP/kernel/msm-3.18/drivers/misc$ vi hello.c
然后进行修改
2、重新建立.c文件 touch hello.c
ubuntu@ubuntu:/work1/1168MP/kernel/msm-3.18/drivers/misc$ touch hello.c
3、编译内核 make bootimage -j4 (如果第一次编,需要先:source build/envsetup.sh 然后lunch)
ubuntu@ubuntu:/work1/1168MP$ make bootimage -j4
4、刷机,把内核下载到手机
1)zqp1168_p2lite:/ # reboot bootloader //使手机进入 bootloader状态
或者:ubuntu@ubuntu:/work1/1168MP$ adb reboot bootloader //这样也可以
2)ubuntu@ubuntu:/work1/1168MP$ fastboot flash boot out/target/product/zqp1168_p2lite/boot.img //下载boot.img
3)ubuntu@ubuntu:/work1/1168MP$ fastboot reboot //重启手机
5、加载.ko文件
1)zqp1168_p2lite:/ # cd data/my //进入到这个目录,没有的话可以自己建一个,名字随便
2)1|zqp1168_p2lite:/data/my # insmod hello.ko //加载.ko模块
3)zqp1168_p2lite:/data/my # lsmod //查看有没有(这步可以不要)
4)1|zqp1168_p2lite:/data/my # dmesg |grep hangjia //查看是否有相关驱动(如果有,说明成功)
[ 146.771271] hangjia test! //它运行的是 init入口函数的内容
[ 146.771282] hangjia liang
5)zqp1168_p2lite:/data/my # rmmod hello.ko //卸载.ko模块
zqp1168_p2lite:/data/my # dmesg |grep hangjia //再查
[ 146.771271] hangjia test!
[ 146.771282] hangjia liang
[ 2807.582468] hangjia hello exit //发现它运行有exit出口函数的内容
成功!
注意:grep后面是搜索驱动的关键字,不是.c文件的文件名 。不然是找不到的,第一次就是因为这个找了老半天
第一次加载文件,需要$:adb push hello.ko /data/my/ 可以在这里先看有木有hello.ko文件
ubuntu@ubuntu:/work1/1168MP/out/target/product/zqp1168_p2lite/obj/kernel/msm-3.18/drivers/misc$ adb push hello.ko /data/my/
[100%] /data/my/hello.ko