在menuconfig中添加编译驱动设备

2024-03-16 05:58

本文主要是介绍在menuconfig中添加编译驱动设备,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我采用的是2.6.26的内核。

例:在drivers里添加个设备文件夹如(buzzer文件夹),里面有buzzer.c和buzzer.h文件把他们变成模块。

1.       在arch/arm/kconfig 和drivers/kconfig 里添加source "drivers/buzzer/Kconfig"选择模块的选项。

2.       在/drivers/里的makefiel文件添加编译的路径

     obj-$(CONFIG_NEW_BUZZERS)     += buzzer/

3.       在/drivers/buzzer/里编写Makefile文件。

     obj-$(CONFIG_NEW_BUZZERS)     += buzzer.o

4.       在/drivers/buzzer/里编写kconfig文件

    menuconfig NEW_BUZZERS

       bool "BUZZER Support"

       help

         Say Y to enable Linux BUZZER support.  This allows control of supported

         BUZZERs from both userspace and optionally, by kernel events (triggers).

 

         This is not related to standard keyboard BUZZERs which are controlBUZZER

         via the input system.

若没有选择相应的模块就不会被编译。

方法2

以模块的方式加载进去。其makefile文件如下:

obj-m := buzzer.o

 

 

KSRCDIR = ../linux-2.6.26.5

KOBJDIR = /home/s3c2410/

 

EXTRA_CFLAGS += -I../modules

 

default:

       $(MAKE) -C $(KSRCDIR) O=$(KOBJDIR) SUBDIRS=$(PWD) ARCH=arm CROSS_COMPILE=/usr/local/arm/3.4.1/bin/arm-linux- modules

 

clean:

       rm -f *.o *.ko *.mod.c .*.cmd Module.symvers .tmp_versions *.order

       rm -rf .tmp_versions

注意:

1.在编写driver/设备/   下的Makefile 时,生成的.O要和.C文件同名,否则编译会出错。


2.编译的设备文件和编译的内核要处于同一个目录下,而且内核要先进行编译过

这篇关于在menuconfig中添加编译驱动设备的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/814517

相关文章

如何在Ubuntu上安装NVIDIA显卡驱动? Ubuntu安装英伟达显卡驱动教程

《如何在Ubuntu上安装NVIDIA显卡驱动?Ubuntu安装英伟达显卡驱动教程》Windows系统不同,Linux系统通常不会自动安装专有显卡驱动,今天我们就来看看Ubuntu系统安装英伟达显卡... 对于使用NVIDIA显卡的Ubuntu用户来说,正确安装显卡驱动是获得最佳图形性能的关键。与Windo

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1

嵌入式Linux驱动中的异步通知机制详解

《嵌入式Linux驱动中的异步通知机制详解》:本文主要介绍嵌入式Linux驱动中的异步通知机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、异步通知的核心概念1. 什么是异步通知2. 异步通知的关键组件二、异步通知的实现原理三、代码示例分析1. 设备结构

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为