linux内核驱动01-helloworld
2015-12-31 09:41
459 查看
从今天起,记录学习内核驱动的点点滴滴,方便以后自己查阅。
系统:ubuntu8.10
嵌入式系统内核:2.6.32.10
开发板:TQ2440
在编译驱动的时候,需要用到内核源码树,源码树的内容在之前的博客里说了,这里就不说的。
hello.c
Malkefile
执行 make 命令,编译得到hello.ko
拷贝hello.ko到开发板,
执行insmod hello.ko
# insmod hello.ko
Hello world
执行rmmod hello
# rmmod hello
Goodbye world
rmmod: module 'hello' not found
系统:ubuntu8.10
嵌入式系统内核:2.6.32.10
开发板:TQ2440
在编译驱动的时候,需要用到内核源码树,源码树的内容在之前的博客里说了,这里就不说的。
hello.c
#include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> static int __init hello_init (void) { printk (KERN_INFO "Hello world\n"); return 0; } static void __exit hello_exit (void) { printk (KERN_INFO "Goodbye world\n"); } module_init (hello_init); //insmod hello.ko 调用module_init函数 module_exit (hello_exit); //rmmod hello 调用module_exit函数 MODULE_LICENSE ("Dual BSD/GPL");
Malkefile
ifeq ($(KERNELRELEASE),) #KERNELDIR ?= /your/target/source/directory/ KERNELDIR ?= /opt/linux-2.6.32.10/ PWD := $(shell pwd) modules: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules modules_install: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install clean: rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions *.order *.symvers .PHONY: modules modules_install clean else obj-m := hello.o endif
执行 make 命令,编译得到hello.ko
拷贝hello.ko到开发板,
执行insmod hello.ko
# insmod hello.ko
Hello world
执行rmmod hello
# rmmod hello
Goodbye world
rmmod: module 'hello' not found
相关文章推荐
- CentOS 7 安装mysql
- centOS下快速安装FFMPEG
- How I came to find Linux
- linux常用命令(二)
- Linux 动态链接库的编译和使用实例
- linux系统分区与挂载
- Linux下动态库so的生成与使用
- Linux配置
- Ubuntu15.10_64位安装Theano+cuda7.5详细笔记
- window与linux文件传输工具
- 在 Linux 终端下看《星球大战》
- 默认ACL权限和递归ACL权限-linux35
- Linux运维面试题及解答
- 以编译方式安装python 2.7(linux)
- Unix/Linux 脚本中 “set -e” 的作用
- Linux BUS error问题记录
- 查看LInux内核版本的命令
- How to configure the kernel parameter "console"
- 【Mage作业】linux运维实战练习案例-2015年12月20日-12月31日(第一次)
- 作业2016-001