最近在学习linux,之前几年也有接触过,不过都半途而废了,这次我要坚持下来,好好学习。这两个根据网络写了一个hello驱动。
/* ===========================================
# FileName: hello.c
# Desc: hello world code
# Author: Allen
# Version: 0.0.1
# History:
============================================== */
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int __init hello_init(void){
printk(KERN_ALERT "Hello, world\n");
return 0;
}
static void __exit hello_exit(void){
printk(KERN_ALERT "Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
---------------------------------------------------
#hello__makefile
obj-m :=hello.o
KERNELDIR :=/usr/src/linux-headers-3.13.0-52-generic
PWD :=$(shell pwd)
all:
make -C $(KERNELDIR) M=$(PWD) modules
.PHONY :clean
clean:
rm -rf *.o *ko
KERNELDIR后的路径,要根据自己的linux系统来决定,打开终端(Ctrl+Alt+T)
uname -r //查看自己的linux系统版本号,然后到/usr/src下找到自己的版本
然后就可以
make//编译成功就可以insmod hello.ko
现在还存在一个问题,就是不打印数据
使用dmesg可以看得到,但是加载驱动时候没有打印,也修改过printk(KERN_ALERT)的等级,即使最高级还是不打印,还在网络上找解决方案,到时候解决了会贴出来。
我的第一个Linux驱动hello world问题记录:http://www.linuxdiyf.com/linux/16290.html
Node.js入门基础知识:Hello world!:http://www.linuxdiyf.com/linux/12876.html
Linux(CentOS)下安装Java运行环境及输出Hello World:http://www.linuxdiyf.com/linux/12517.html
Linux下安装JDK并测试开发“Hello World!”:http://www.linuxdiyf.com/linux/12356.html
制作Ubuntu的deb格式包 从Hello World做起:http://www.linuxdiyf.com/linux/8110.html