Linux 驱动学习
2010-06-06 16:22
169 查看
最近想学习一下,linux驱动,买了这本书已经很长时间, 但是一直都没有看。
也想把这个过程记录下来。
1.Linux驱动程序,第三版。
2.想自己编译个内核, 可是搞了半天都没有运行成功。想以后再搞,先搞一下驱动。
3.运行hello world。
以下是我的环境:
1.Centos 5.3 ,运行在XP上vmare里。
2 . 好在我安装Centos是已经把源代码树也装上了。 所以之前说要进行的linux内核的编译就能放一放。
3.以下是我的第一个程序:
Helloworld.c
#include <linux/init.h>
#include <linux/module.h>
static int hello_init(void)
{
printk(KERN_ALERT "Hello World,This is Ricky's first linux driver programe/n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel world/n");
}
module_init(hello_init);
module_exit(hello_exit);
以下是Makefile:
PWD=$(shell pwd)
KERNEL_SRC = "/usr/src/kernels/2.6.18-128.el5-i686" #这个路径是源代码树的位置
obj-m :=helloworld.o
module-objs := helloworld.o
all:
$(MAKE) -C $(KERNEL_SRC) M=$(PWD)
clean:
rm *.ko
rm *.o
写好这些,在当前位置的命令行输入 make, 就能编译。生成helloworld.ko
在root下 insmod helloworld.ko
然后运行 dmesg
在最后一行就能看到上述的输入。
也想把这个过程记录下来。
1.Linux驱动程序,第三版。
2.想自己编译个内核, 可是搞了半天都没有运行成功。想以后再搞,先搞一下驱动。
3.运行hello world。
以下是我的环境:
1.Centos 5.3 ,运行在XP上vmare里。
2 . 好在我安装Centos是已经把源代码树也装上了。 所以之前说要进行的linux内核的编译就能放一放。
3.以下是我的第一个程序:
Helloworld.c
#include <linux/init.h>
#include <linux/module.h>
static int hello_init(void)
{
printk(KERN_ALERT "Hello World,This is Ricky's first linux driver programe/n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel world/n");
}
module_init(hello_init);
module_exit(hello_exit);
以下是Makefile:
PWD=$(shell pwd)
KERNEL_SRC = "/usr/src/kernels/2.6.18-128.el5-i686" #这个路径是源代码树的位置
obj-m :=helloworld.o
module-objs := helloworld.o
all:
$(MAKE) -C $(KERNEL_SRC) M=$(PWD)
clean:
rm *.ko
rm *.o
写好这些,在当前位置的命令行输入 make, 就能编译。生成helloworld.ko
在root下 insmod helloworld.ko
然后运行 dmesg
在最后一行就能看到上述的输入。
相关文章推荐
- 《Linux内核修炼之道》 之 高效学习Linux驱动开发
- 学习内核---Linux网卡驱动分析
- 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】深入剖析Linux中断机制之四--中断API
- linux学习笔记1:linux驱动设备概述
- 学习linux字符设备驱动心得
- 国嵌--linux字符设备驱动学习之memdev设备
- Linux驱动学习--简单示例
- linux驱动学习
- Linux驱动学习5(详细分析字符设备驱动信号量实现互斥)
- linux 驱动开发第三方学习框架资料整理
- Linux驱动开发学习的一些必要步骤
- Linux驱动学习笔记之一——高精度定时器2
- 嵌入式驱动开发的前期Linux 和C学习(二)
- 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】深入剖析Linux中断机制之一--中断概述
- Linux下USB 输入子系统的学习(以鼠标驱动为例)
- 基于mini6410的linux驱动学习总结(一 驱动程序介绍)
- linux驱动学习之tasklet分析
- Linux内核驱动学习(三)----内核模块基础 | 设计 | 可选项
- linux驱动学习--第二十五天:第十三章:Linux 块设备驱动(二):gendisk(通用磁盘) 结构体
- 【嵌入式Linux学习七步曲之第四篇 Linux内核移植】详解Linux2.6内核中基于platform机制的驱动模型