Helloworld模块编译.ko
来源:互联网 发布:tsp问题算法源代码 编辑:程序博客网 时间:2024/05/01 01:33
首先引用网上最常见的Helloworld模块:
Helloworld.c
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
static int hello_init(void)
{
printk("Hello world.\n");
return 0;
}
static void hello_exit(void)
{
printk("Goodbye world.\n");
return;
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("John");
MODULE_LICENSE()指明认证方式,现在支持的有:“GPL” “GPL v2" "GPL and additional rights" "Dual BSD/GPL" "Dual MIT/GPL" "Dual MPL/GPL" ,module_init()指明模块的入口,这是必需的;module_exit()指明模块的出口,这也是必需的。
编写自己的Makefile:
obj-m:=helloworld.o
KDIR:=/lib/modules/2.6.31-14-generic/build
MAKE:=make
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
helloworld.o为目标文件产生的.o文件,KDIR指明了内核的位置,这需要根据具体情况修改该文件。
接下来,make命令,就可以进行编译了,这是可以产生我们需要的.ko文件。
在终端下进入adb,执行以下命令来加载模块
adb push ~/helloworld.ko /system/vendor/modules/
adb shell
cd /system/vendor/modules/
insmod helloworld.ko
这是模块被加载到平板中,卸载使用rmmod命令,打印信息使用dmesg。
注:根据不同平台,加载方法多用化,android设备使用adb比较方便,ARM直接可以使用SecureCRT的终端比较方便。
- Helloworld模块编译.ko
- 添加内核模块之入门helloworld.ko
- linux 系统 ko模块编译
- Andriod编译内核模块*.ko
- Andriod编译内核模块*.ko
- Andriod编译内核模块*.ko
- Andriod编译内核模块*.ko
- linux 系统 ko模块编译
- linux 系统 ko模块编译
- 为Android系统编译tun.ko模块
- 如何编译和加载.ko模块
- 内核模块编译-helloworld
- 一个通用的编译模块Makefile,编译结果xxxx.ko
- 新增/编译/运行helloworld模块
- linux 模块层叠技术和多个ko的编译
- 模块编译KO文件Makefile 2.6内核通用
- 初学者编译Linux内核,最简单ko模块
- 编译模块出现WARNING: "xxxx" [xxxx.ko] undefined!的警告
- spring webservice (一) 服务器端开发
- iOS 各种网络编程总结--进程、线程、Socket、HTTP、TCP/IP、TCP和UDP
- C/C++结构体详解
- 单元测试之测试目的
- android camera setParameters failed 类问题分析总结
- Helloworld模块编译.ko
- C++实现字符串和整数之间的相互转换
- Apache Camel框架之HTTP路由
- VMware CentOS 7 最小化安装 上网问题
- TCP的建立连接和关闭连接
- r1309151-逻辑回归小结
- C++|单链表的实现源代码
- 浏览器请求URL www.qq.com页面时会发生什么现象
- 数据结构:实验一 VC++编程环境的灵活应用