linux硬件驱动层

1.make menuconfig

scripts/kconfig/lxdialog/menubox.o: In function `print_buttons‘:
menubox.c:(.text+0x4b1): undefined reference to `wrefresh‘
collect2: ld 返回 1
make[1]: *** [scripts/kconfig/mconf] 错误 1
make: *** [menuconfig] 错误 2

解决方法:

http://www.cnblogs.com/Ph-one/p/4283122.html

2.

drivers/hello/hello.c: In function ‘hello_create_proc‘:
drivers/hello/hello.c:238:14: error: ‘struct proc_dir_entry‘ has no member named ‘owner‘
make[2]: *** [drivers/hello/hello.o] 错误 1
make[1]: *** [drivers/hello] 错误 2
make: *** [drivers] 错误 2
make: *** 正在等待未完成的任务....
[email protected]:/opt/FriendlyARM/tiny4412/android/linux-3.0.31# make
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: “include/generated/mach-types.h”是最新的。
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  CC      drivers/hello/hello.o
drivers/hello/hello.c: In function ‘hello_create_proc‘:
drivers/hello/hello.c:238:14: error: ‘struct proc_dir_entry‘ has no member named ‘owner‘
make[2]: *** [drivers/hello/hello.o] 错误 1
make[1]: *** [drivers/hello] 错误 2
make: *** [drivers] 错误 2
解决方法:

由错误信息可以看出struct proc_dir_entry结构体中没有找到owner的成员。

看到引用的proc_fs.h头文件,发现里面的struct proc_dir_entry结构体中,的确没有owner成员,

在该结构体中添加以下代码:

  1. struct module *owner;

保存后,重新编译,OK了。

proc_fs.h文件在kernel源码下的include/linux目录下面

时间: 2024-12-12 15:19:10

linux硬件驱动层的相关文章

s5p4418 Android 4.4.2 驱动层 HAL层 服务层 应用层 开发流程记录(一 硬件驱动层)

本文章是记录Android开发中驱动层.HAL层.应用层之间的关系,以及其开发方法,本文将会以实现LED的控制为例来进行记录. 一是可以给以后自己做开发做参考,二是希望可以帮助正在学习的朋友参考. 一般的app不需要我们去关注hal和驱动,但在设计一个硬件系统时,原生的Android并未提供合适的服务,所以我们才需要去了解这个流程.由于也是刚入门,很多还不太懂,朋友们有什么疑问可以留言. 首先需要了解,Android的app想要操作硬件,是什么样的一个流程.一般是这样的,app应用层.服务层.硬

linux nandflash驱动之MTD层

MTD,Memory Technology Device即内存技术设备,在Linux内核中,引入MTD层为NOR FLASH和NAND FLASH设备提供统一接口.MTD将文件系统与底层FLASH存储器进行了隔离. 如上图所示,MTD设备通常可分为四层,从上到下依次是:设备节点.MTD设备层.MTD原始设备层.硬件驱动层. Flash硬件驱动层:Flash硬件驱动层负责对Flash硬件的读.写和擦除操作.MTD设备的Nand Flash芯片的驱动则drivers/mtd/nand/子目录下,No

Linux下的硬件驱动——USB设备(转载)

usb_bulk_msg函数 当对usb设备进行一次读或者写时,usb_bulk_msg 函数是非常有用的; 然而, 当你需要连续地对设备进行读/写时,建议你建立一个自己的urbs,同时将urbs 提交给usb子系统. 转载于此http://os.chinaunix.net/a2003/0630/1056/000001056933.shtml Linux下的硬件驱动——USB设备(上)(驱动配置部分) USB设备越来越多,而Linux在硬件配置上仍然没有做到完全即插即用,对于Linux怎样配置和

linux 输入设备驱动

<输入子系统简介> a:背景 内核的输入子系统是对"分散的","多种不同类别"的输入设备(键盘,鼠标,跟踪杆,触摸屏,加速度计等)进行"统一处理"的驱动程序.具有如下特点: a-1:统一各种形态各异的相似的输入设备的处理功能(鼠标,不论是PS/2形的鼠标,还是usb形式的鼠标,还是蓝牙形式的鼠标),都做一样的处理. a-2:提供用于分发"输入报告"给用户应用程序的简单事件(event)接口.(驱动程序不必创建和管理

Linux 网卡驱动学习(分析一个虚拟硬件的网络驱动例子)

在Linux,网络分为两个层,分别是网络堆栈协议支持层,以及接收和发送网络协议的设备驱动程序层.网络堆栈是硬件中独立出来的部分,主要用来支持TCP/IP等多种协议,网络设备驱动层是连接网络堆栈协议层和网络硬件的中间层. 网络设备驱动程序的主要功能是: (1)模块加载或内核启动相关的初始化处理 (2)清除模块时的处理 (3)网络设备的检索和探测 (4)网络设备的初始化和注册 (5)打开或关闭网络设备 (6)发送网络数据 (7)接收网络数据 (8)中断处理(在发送完数据时,硬件向内核产生一个中断,告

Linux 网卡驱动学习(一)(分析一个虚拟硬件的网络驱动样例)

在Linux,网络分为两个层,各自是网络堆栈协议支持层,以及接收和发送网络协议的设备驱动程序层. 网络堆栈是硬件中独立出来的部分.主要用来支持TCP/IP等多种协议,网络设备驱动层是连接网络堆栈协议层和网络硬件的中间层. 网络设备驱动程序的主要功能是: (1)模块载入或内核启动相关的初始化处理 (2)清除模块时的处理 (3)网络设备的检索和探測 (4)网络设备的初始化和注冊 (5)打开或关闭网络设备 (6)发送网络数据 (7)接收网络数据 (8)中断处理(在发送完数据时.硬件向内核产生一个中断.

Linux Framebuffer 驱动框架之一概念介绍及LCD硬件原理【转】

本文转载自:http://blog.csdn.net/liuxd3000/article/details/17464779 一.基本概念 帧缓冲(Framebuffer)是Linux系统为显示设备提供的一个接口,它将显示缓冲区抽象,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作.用户不必关心物理显示缓冲区的具体位置及存放方式,这些都是由帧缓冲设备驱动本身来完成.对于帧缓冲设备而言,只要在显示缓冲区与显示点对应的区域写入颜色值,对应的颜色会自动在屏幕上显示,下一小

Linux 网卡驱动学习(六)(应用层、tcp 层、ip 层、设备层和驱动层作用解析)

本文将介绍网络连接建立的过程.收发包流程,以及当中应用层.tcp层.ip层.设备层和驱动层各层发挥的作用. 1.应用层 对于使用socket进行网络连接的server端程序.我们会先调用socket函数创建一个套接字: fd = socket(AF_INET, SOCK_STREAM, 0); 以上指定了连接协议,socket调用返回一个文件句柄,与socket文件相应的inode不在磁盘上,而是存在于内存. 之后我们指定监听的port.同意与哪些ip建立连接,并调用bind完毕port绑定:

Linux中断(interrupt)子系统之二:arch相关的硬件封装层【转】

转自:http://blog.csdn.net/droidphone/article/details/7467436 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] CPU的中断入口 初始化 中断控制器的软件抽象struct irq_chip 进入流控处理层 中断控制器的级联 Linux的通用中断子系统的一个设计原则就是把底层的硬件实现尽可能地隐藏起来,使得驱动程序的开发人员不用关注底层的实现,要实现这个目标,内核的开发者们必须把硬件相关的内容剥离出来,然后定义一些列标准