Linux 2.6驱动开发环境搭建

本文详细介绍了如何在Ubuntu 11.04上为Linux 2.6.38内核搭建驱动开发环境,包括安装必要的开发工具包、下载并配置内核源码等步骤,并通过一个简单的helloworld示例验证了环境的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽然网上已经有很多关于linux驱动开发环境的介绍,但作为一个刚刚涉入linux驱动的菜鸟来说,凡是还是得事必躬亲,亲自操作一番,如果其中某些地方配置错误或不得要领,往往要花费很多时间。权且当做回顾吧,记录下我的具体的搭建过程。

内核版本: 2.6.38

操作系统: ubuntu 11.04

开发环境搭建过程:

1, 下载必要的开发工具包(binutils)

        sudo apt-get install build-essential 

2  下载linux源码(具体版本要和当前os的内核版本保持一致,uname -a查询)

sudo apt-get install linux-source-2..6.38  <移除: sudo apt-get remove linux-source-2.6.38>

   下载完成后,进入/usr/src目录下会发现linux源码包,执行 tar -xvf 解包

3  进入到解压后的目录,执行下列操作<如果不想每次都输入sudo,可以执行一次sudo -s,那么只要当前终端不退出,会一直保留root权限>

sudo make oldconfig    生成配置

sudo make  编译内核,需要一段时间,耐心等待

sudo make modules 编译模块

sudo make modules_install  安装模块

 

执行外上述操作,ubuntu的驱动开发环境基本搭建完成。下面就用经典的hello world进行测试。

hello.c:

#include <linux/init.h>
#include <linux/module.h>

static int hello_init(void)
{
    printk(KERN_ALERT "Hello World \n");
    return 0;
}

static void hello_exit(void)
{
    printk(KERN_ALERT "Goodbye \n");
}

module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("jiangming.fu@163.com");

Makefile如下:

obj-m := hello.o
KDIR= /lib/modules/$(shell uname -r)/build
PWD=$(shell pwd)
all:
	$(MAKE) -C $(KDIR) M=$(PWD) #modules

.PHONY:clean
clean:
	rm -f *.mod.c *.mod.o *.ko *.o *.tmp_versions

执行完make之后,会在当前目录下生成hell.ko(驱动模块),下面可以通过sudo insmod(rmmod) hello.ko 安装(卸载)模块.关于驱动模块的输出信息,可以通过dmsg查看。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值