`
yutiansky
  • 浏览: 197060 次
  • 性别: Icon_minigender_1
  • 来自: 本溪
社区版块
存档分类
最新评论

ubuntu下驱动程序的hello world

阅读更多

本文纯属转贴,原文如下

http://dev.firnow.com/course/6_system/linux/Linuxjs/200865/122399.html

 

记录几个命令。

1.源码树建立

//OS版本取得
shana@shana:~$ uname -r

//查询源码
shana@shana:/usr/src$ apt-cache search linux-source

//取得源码
shana@shana:/usr/src$ sudo apt-get install linux-source-2.6.22

//解冻源码
root@shana:/usr/src#tar jxvf linux-source-2.6.20.tar.bz2

//配置源码
root@shana:/usr/src/linux-source-2.6.22# make oldconfig

//编译源码
shana@shana:/usr/src/linux-source-2.6.22$ make
shana@shana:/usr/src/linux-source-2.6.22$ make bzImage
root@shana:/usr/src/linux-source-2.6.22#make modules
root@shana:/usr/src/linux-source-2.6.22#make modules_install

//确认源码树
cd /lib/modules/2.6.22-14-generic/

 

2.驱动程序例子

    hello.c

//hello.c
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");

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

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

module_init(hello_init);
module_exit(hello_exit);

 

    Makefile

obj-m := hello.o
KERNELDIR := /lib/modules/2.6.20/build
PWD := $(shell pwd)

modules:
	$(MAKE) -C $(KERNELDIR) M=$(PWD) modules

modules_install:
	$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
 

3.编译,加载,卸载

//加载驱动
root@shana:/home/shana/driver# insmod ./hello.ko

//查看驱动
root@shana:/home/shana/driver# lsmod

//卸载驱动
root@shana:/home/shana/driver# rmmod hello

//查看日志
shana@shana:~/driver$ cat /var/log/syslog |grep world
 

 

分享到:
评论

相关推荐

    Ubuntu下驱动开发HelloWorld_linux_Ubuntu!_ubuntu驱动开发_armrb9_

    Ubuntu下驱动开发HelloWorld

    Ubuntu下驱动开发HelloWorld.pdf

    ### Ubuntu下驱动开发HelloWorld.pdf知识点解析 #### 一、驱动开发概述 在Linux环境下进行驱动开发是一项重要的技能,尤其对于那些希望深入了解操作系统内部工作原理的技术人员而言。本文档主要介绍如何在Ubuntu...

    ubuntu下更新声卡驱动的程序包

    本文将详细讲解如何在Ubuntu下更新声卡驱动的程序包,特别是使用alsa(Advanced Linux Sound Architecture,高级Linux声音架构)来解决外接耳机仍有外放声音的问题。 1. **认识ALSA**: ALSA是Linux内核中的核心...

    UBUNTU14.04下helloworld内核驱动源文件与makefile

    "Hello World"内核驱动程序是一个简单的起点,它可以帮助初学者熟悉内核模块的构建过程。这里我们将深入探讨如何在Ubuntu 14.04上创建并编译一个"Hello World"内核驱动,以及涉及到的关键文件。 首先,`hello.c`是...

    Ubuntu下内核编程之第一个模块helloworld(附源码)

    首先,我们需要创建一个C源文件,比如`helloworld.c`,并在其中写入以下代码: ```c #include #include MODULE_LICENSE("GPL"); MODULE_AUTHOR("Your Name"); MODULE_DESCRIPTION("A simple kernel module to ...

    学习内核的肯定要些第一个程序helloworld

    2. **创建源代码文件**:创建一个C语言源代码文件,例如`helloworld.c`。在这个文件中,我们将编写基本的“Hello, World!”输出功能。 ```c #include #include #include MODULE_LICENSE("GPL"); MODULE_AUTHOR...

    虚拟机搭建ubuntu驱动编程环境.docx

    本篇文章将介绍如何使用 VMware Workstation 搭建 Ubuntu 驱动编程环境,从虚拟机的安装到第一个 HelloWorld 程序的调通。 一、虚拟机的安装 首先需要安装 VMware Workstation,选择 Typical 安装模式,按照默认...

    Ubuntu10.04下驱动开发环境搭建

    本文将详细介绍如何在Ubuntu 10.04系统上搭建一个完整的驱动开发环境,包括Linux内核的下载、编译以及替换旧内核的过程,并通过示例说明如何创建一个简单的“Hello World”驱动模块。 #### 二、准备工作 首先需要...

    实验七 设备驱动程序实践 by lilan.pdf

    1. 编写并加载卸载"Hello World"驱动程序,熟悉基本流程。 2. 创建字符设备驱动程序,实现挂载、卸载,并通过读、写和查询设备状态的函数进行验证。 实验步骤包括安装Ubuntu 10.10操作系统,确保GCC和GDB的安装,...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    到这里helloworld 程序便完成了。 Qt Creator 编译的程序,在其工程文件夹下会有一个debug 文件夹,其中有程序的.exe 可执行文件。但Qt Creator 默认是用动态链接的, 就是可执行程序在运行时需要相应的.dll 文件。...

    实验七 设备驱动程序实践 by lilan.docx

    1. 编写并正确加载、卸载“Hello World”驱动程序。 2. 编写字符设备驱动程序,实现读、写和查看设备状态的功能。 实验步骤大致如下: 1. 安装Ubuntu 10.10操作系统。 2. 安装必要的开发工具,如GCC和GDB。 3. 检查...

    程序人生-Hello’s P2P

    【程序人生-Hello’s P2P】这篇报告深入探讨了编程世界中经典的“Hello World”程序在计算机系统中的生命周期,从源代码到运行过程的每一个阶段。报告详细介绍了C语言的Hello World程序如何通过预处理、编译、汇编、...

    哈工大计算机系统大作业-程序人生-Hello’s P2P

    在Ubuntu下,可以通过`gcc hello.o -o hello`命令完成链接,生成可执行文件。 #### 6. 动态链接 动态链接是指在程序运行时动态加载外部库的过程。这种方式能够减少内存占用,提高程序间的资源共享。动态链接库通常...

    hello nasm masm linux

    压缩包内的子文件“hello-masm”、“hello-nasm”和“hello-linux”可能分别代表了使用MASM、NASM和Linux环境编写的“Hello World”程序示例。在汇编语言中,"Hello World"程序通常是学习汇编基础知识的第一步,它...

    乌班图安装qt4

    在 Ubuntu 下安装 Qt4 需要进行以下几个步骤:获取 Qt4 的源码、安装 Qt Creator、设置 QtCreator、编写最简单的 HELLO WORLD 程序。 首先,需要获取 Qt4 的源码,方法是将天嵌主光盘目录\TQ2440\Linux 资源\ QT源 ...

    FS4412内核各类模块实验代码

    FS4412内核hello world模块实验代码、ubuntu18.04_helloworld实验代码、FS412 LED 字符设备驱动程序 传统模型、FS4412 LED字符设备、FS4412 LED字符设备驱动程序 平台总线(platformbus)模型、FS4412 串口模块实验...

    Ubuntu--helloword.zip_Ubuntu!

    这个压缩包"Ubuntu--helloworld.zip_Ubuntu!"显然与Ubuntu的内核编程相关,特别是针对初学者的教程。从文件列表来看,我们可以推测这是一个关于在Ubuntu上编译和编写内核模块的入门教程。 首先,我们看到一个名为...

    ubuntu-Server-Configuration.zip_Ubuntu C_Ubuntu!

    最后,使用`gcc hello.c -o hello`编译,`./hello`运行程序。 C语言还涉及到预处理器宏、结构体、联合体、位运算等高级主题,以及标准库(如stdio、stdlib、string等)的使用。通过不断实践和学习,你可以深入理解...

Global site tag (gtag.js) - Google Analytics