当前位置:   article > 正文

基于ubuntu的驱动开发_乌班图 网卡驱动 开发

乌班图 网卡驱动 开发

  一般的linux驱动开发都是基于交叉编译来进行的,本文尝试着从另一个角度:基于ubuntu的本地驱动开发来学习一下驱动的开发

一、驱动的开发与编译

1.1、编写驱动文件

#include <linux/init.h>
#include <linux/module.h>
static int hello_init(void)
{
    printk("Hello,world\r\n");
    return 0;
}
static void hello_exit(void)
{
    printk("hello,world over\r\n");
}
MODULE_LICENSE("GPL");
module_init(hello_init);
module_exit(hello_exit);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

1.2、查找内核文件位置

在这里插入图片描述

1.3、编写makefile文件

KERNELDIR :=/usr/src/linux-headers-4.15.0-29-generic
CURRENT_PATH := $(shell pwd)
obj-m := hello.o
build: kernel_modules
kernel_modules:
	$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules

clean:
	$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

  其中KERNELDIR 就是前面查找的内核目录

1.4、编译

make
  • 1

在这里插入图片描述

二、驱动的加载与测试

2.1、加载驱动

sudo insmod hello.ko
  • 1

在这里插入图片描述

2.2、卸载驱动

sudo rmmod hello.ko
  • 1

在这里插入图片描述

2.3、查看内核日志信息

dmesg
  • 1

在这里插入图片描述

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号