当前位置:  技术问答>linux和unix

最简单的驱动程序,大家看看问题在哪儿

    来源: 互联网  发布时间:2015-09-20

    本文导语:  //hello.c: #include MODULE_LICENSE("GPL"); int init_module() {    printk("init");    return 0; } void cleanup_module() {    printk('cleanup"): } gcc -c hello.c -D__KERNEL -DMODULE -Wall warnings implicit declaration of function 'printk' 敲入:insmod hello.o ...

//hello.c:
#include
MODULE_LICENSE("GPL");
int init_module()
{
   printk("init");
   return 0;
}
void cleanup_module()
{
   printk('cleanup"):
}
gcc -c hello.c -D__KERNEL -DMODULE -Wall
warnings implicit declaration of function 'printk'
敲入:insmod hello.o
什么显示都没有
大家提提建议吧

|
需要在非图形界面下面才能看到输出的内容
你可以用ctrl+alt+Fx 切换到文字界面,运行应该就没有问题了

|
首先包含头文件
#include 

其次编译选项是
gcc -c -D__KERNEL__ -DMODULE -Wall

|
如果你用2.6的内核,应该是这样hello.c:
#include 
#include 
MODULE_LICENSE("Dual BSD/GPL");

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

static void hello_exit(void)
{
   printk(KERN_ALERT "Goodbye, cruel worldn");
}
module_init(hello_init);
module_exit(hello_exit);

然后写Makefile:
obj-m := hello.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

然后:
#make
#insmod hello.ko
#rmmod hello.ko

|
#include 
#include 
MODULE_LICENSE("Dual BSD/GPL");

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

static void hello_exit(void)
{
   printk(KERN_ALERT "Goodbye, cruel worldn");
}
module_init(hello_init);
module_exit(hello_exit);

gcc -O2 -I/usr/src//include -c hello.c
 means u must use the real running kernel version,u can get it by uname -r,for exp:
#uname -r
2.4.20-18
#gcc -O2 -I/usr/src/linux-2.4.20-18/include -c hello.c
and the output by printk must in text mode

|
查看/var/log/messages文件

|
//hello.c:
#define MODULE
#define KERNEL
#include
#include
MODULE_LICENSE("GPL");
int init_module()
{
   printk("init");
   printk("current process is %s (pid: %i)",current->comm,current->pid);
   return 0;
}
void cleanup_module()
{
   printk('cleanup"):
}
gcc -c hello.c -i/usr/src/linux/include -o hello.o
准行

|
你可以到这里看:
http://lwn.net/Articles/21817/

|
在insmod中要加一些参数
insmod -f hello.o

|
关注关注

    
 
 

您可能感兴趣的文章:

  • 我的网卡在redhat7.3下不能自动驱动,但我有for linux的驱动程序,请问如何才能驱动我的网卡,我是菜菜,请详细说明,谢谢!
  • 关于Linux 2.6平台下,自定义的USB HID设备是系统提供驱动程序还是需要自己完成驱动程序?
  • 哪位大哥大姐懂驱动驱动程序开发哇?
  • 有两个USB键盘怎么用自己写的USB键盘驱动程序只替换其中一个驱动?
  • -------------- 请问大家,做好一个PCI设备驱动了,如何做个应用程序来使用这个驱动呢??
  • 请问, linux 驱动中, IO 口变化了,驱动如何通知应用程序?
  • 各位老大,你们是从哪些方面改进网卡驱动程序的效率,欧现在写了一个lan91c嵌入式网卡的驱动,需要帮助
  • USB的ADSL驱动程序!!(可以驱动电信的ADSL)
  • 各位高人,关于IDE的驱动程序,我看蒙了,谁能告诉我到底linux源文件中到底那些是跟IDE硬盘驱动有关的?
  • 有触摸屏驱动程序源代码,怎么写一个命令行的程序测试驱动程序?
  • 驱动程序(模块)怎样与应用层交互呀?也就是应用程序怎样控制驱动程序?让其做什么它就做什么。
  • 谁会在DOS下面安装网卡驱动程序?
  • 两个驱动程序能互相访问么?
  • 驱动程序是否需要修改呢?帮顶有分
  • Norflash是否一定要驱动程序
  • 请问UNIX系统下装上WINDOWS的打印机驱动程序,可否打印?
  • 我太菜!!关于驱动程序的问题,急盼拍砖
  • IP地址数字互转 iis7站长之家
  • usbhid妨碍了系统自动加载我的usb驱动程序,求教解决 (主要是加载后设备的驱动被认作usbhid)
  • 用户程序的ioctl是怎么和驱动程序中的ioctl实现联系
  • 想找些鼠标和键盘的驱动源程序看看,去哪找啊?
  • 请大家帮忙看看--->安装Red Hat 10时的显示卡驱动程序及显示器的设置问题<---来者有分
  • arm-pxa270 矩阵键盘驱动程序的疑问~请帮我看看哦~急!!
  • 简单的字符设备驱动程序居然出错!大家帮忙看看哈^_^
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 谁有LINUX设备驱动程序第三版的程序代码,发我一份,非常的感谢!
  • 请问如何设置驱动程序和应用程序的启动顺序和优先级呢?
  • 请问shell 开发能开发什么样的程序?硬件的驱动程序是否能够开发呢?
  • linux驱动程序是怎样通过内核和应用程序通信,还有是怎样和硬件通信,跪求求解,谢谢高手留言。
  • 驱动程序找不到Class.forName("oracle.jdbc.driver.OracleDriver");,在程序中还要设置什么?
  • 菜鸟请教,应用程序如何判断驱动程序已经挂载成功
  • 在哪里可以下载OREILLY的linux设备驱动程序一书的程序源代码?在线送分!
  • 怎样才能得到Redhat8.0支持的所有打印机的驱动程序列表文件,我程序里要用。先谢过
  • linux初学者一简单问题!在线送分!linux设备驱动程序一书的第一个程序.
  • Linux的驱动程序构架怎么看不懂?请进来指点
  • 谁知道哪里有usb驱动程序的详细介绍,我想学习。
  • 驱动程序返回值的问题
  • 有没有这样的驱动程序?
  • 如何调试驱动程序
  • android内核中怎样hook一个驱动程序??
  • 有好多关于《linux设备驱动程序第三版》的问题,哪里问合适呢?
  • 有关于驱动程序的问题。一定给分的。
  • linux和windows的驱动程序是一样的吗??
  • 请问哪里有声卡的驱动程序下载?
  • 移植PCI驱动程序,提示找不到iobuf.h


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3