/sys目录下各个子目录的具体说明

/sys下的子目录内容/sys/devices该目录下是全局设备结构体系,包含所有被发现的注册在各种总线上的各种物理设备。一般来说,所有的物理设备都按其在总线上的拓扑结构来显示,但有两个例外,即platform devices和system devices。platform devices一般是挂...

2018-07-14 17:00:22

阅读数:143

评论数:0

谈谈 Linux 内核驱动的编码风格

最近在向Linux内核提交一些驱动程序,在提交的过程中,发现自己的代码离Linux内核的coding style要求还是差很多。当初自己对内核文档里的CodingStyle一文只是粗略的浏览,真正写代码的时候在很多细节上会照顾不周。不过, 在不遵守规则的程序员队伍里,我并不是孤独的。如果去看dri...

2017-10-18 11:38:01

阅读数:143

评论数:0

linux设备驱动第三篇:写一个简单的字符设备驱动

在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动。本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分配的一些内存。 下面就开始学习如何写一个简单的字符设备驱动。首先我们来分解一下字符设备驱动都有那些结构或者方法...

2017-09-15 09:06:39

阅读数:170

评论数:0

向内核添加自己的模块

向内核添加自己的模块 http://www.cnblogs.com/timkyle/archive/2012/04/13/2444975.html 说明: 我开发板的内核启动参数环境变量bootargs内容为root=/dev/nfs nfsroot=192.168.1.10:/nf...

2017-09-15 09:06:30

阅读数:224

评论数:0

linux设备驱动第一篇:设备驱动程序简介

首先,我们知道驱动是内核的一部分,那么驱动在内核中到底扮演了什么角色呢? 设备驱动程序在内核中的角色:他们是一个个独立的“黑盒子”,使某个特定的硬件响应一个定义良好的内部编程接口,这些接口完全隐藏了设备的工作细节。(说白了,驱动程序除了对外提供特定的接口外,任何实现细节对应用程序都是不可见的。)用...

2017-09-15 09:06:10

阅读数:147

评论数:0

Linux内核模块简介

一. 摘要 这篇文章主要介绍了Linux内核模块的相关概念,以及简单的模块开发过程。主要从模块开发中的常用指令、内核模块程序的结构、模块使用计数以及模块的编译等角度对内核模块进行介绍。在Linux系统开发过程中,以模块的形式开发其重要性不言自明,而在嵌入式设备驱动开发中将驱动程序以模块的形式发布...

2017-09-15 09:05:32

阅读数:149

评论数:0

ati-driver在2.16.18-gentoo-r2内核编译有问题及解决方法!!!

今天把我的gentoo同步了一下,发现内核从2.16.17-gentoo-r8升级到了2.16.18-gentoo-r2,就直接make oldconfig,升级了内核,紧接着执行module-rebuild rebuild命令来重新编译依赖于内核的相关模块。 发现在编译ati-driver的时候...

2017-09-14 09:10:35

阅读数:176

评论数:0

关于EXPORT_SYMBOL的作用浅析

在查看内核驱动代码的时候会经常看到在一些函数后面总会跟EXPORT_SYMBOL()这样的宏定义,通过网上查阅,它的作用大致总结如下: 1、定义说明      把内核函数的符号导出,也可以理解成将函数名作为符号导出;符号的意思就是函数的入口地址,或者说是把这些符号和对应的地址保存起来的,在内核...

2017-09-14 09:10:18

阅读数:2507

评论数:0

Linux内核模块开发实例学习

注:以下程序只是在我机器上测试通过,但代码不一定合理或高效,只是想了解一下内核模块的开发流程,以及工作流程 例子来源于网络,在此表示感谢 [cpp] view plain copy [root@localhost module]# cat /proc/version    Li...

2017-09-14 09:09:12

阅读数:164

评论数:0

How to sleep in the Linux kernel?

Can I use the msleep() function to sleep for a specified amount of time in kernel space? If so, which header files do I need to include? #include  d...

2017-09-14 09:08:49

阅读数:250

评论数:0

调用linux 内核模块测试

[root@openstack01 TestModule2]# uname -a Linux openstack01 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux ...

2017-09-14 09:08:40

阅读数:196

评论数:0

手动创建设备 mknod命令

insmod 加载驱动模块 也可以使用modprobe  加载驱动模块 例如:驱动模块为leds.ko, insmod leds.ko modprobe leds就可以了 这里两条命令的区别,还有区别就是modprobe会检测与该驱动相关的模块,并自动加载相应需要的模块。   加载后,就需要创建设...

2017-09-14 09:08:26

阅读数:166

评论数:0

Linux:内核模块实现替换系统调用的简单例子

原文链接:http://blog.csdn.net/ddk3001/article/details/51485135 编写Linux内核模块,可以实现替换系统调用功能。  本文提供一个替换open系统调用的样例代码,功能和说明见代码。 参考代码:https://github.com/ricar...

2017-09-14 09:08:01

阅读数:401

评论数:0

Re: Removing of UTS_RELEASE in include/linux/version.h

From: Sam Ravnborg  Date: Thu Aug 17 2006 - 00:50:14 EST Next message: Eric W. Biederman: "Re: [RFC] ps command race fix"Previous message...

2017-09-14 09:08:00

阅读数:173

评论数:0

Linux内核模块间函数调用正确方法

模块之间发生调用关系是常有的事情,下面以两个模块A、B,B使用A模块提供的函数为例,讲解正确使用的方法。 模块A中使用EXPORT_SYMBOL或EXPORT_SYMBOL_GPL将要提供给B模块的函数导出; 模块B中用extern 声明需要用到的A模块提供的函数。 代码如下: 模块A的代...

2017-09-13 09:07:33

阅读数:393

评论数:0

nf_hook_ops 钩子的注册

nf_hook_ops 钩子的注册 在filter表的初始化函数static int __init init(void)中除了有一个nf_register_hook函数注册一个tables外,还由nf_register_hook函数注册了3个hook   1    nf_hook_ops数...

2017-09-13 09:07:01

阅读数:183

评论数:0

nf_register_hooks NF_HOOK

如果我们想加入自己的代码,便要用nf_register_hook函数,其函数原型为: int nf_register_hook(struct nf_hook_ops *reg) struct nf_hook_ops://结构 struct nf_hook_ops { struct list_he...

2017-09-13 09:06:28

阅读数:327

评论数:0

嵌入式Linux菜鸟学习之路

1.设备驱动的作用 计算机系统由硬件、软件组成,而对于实际开发来说,硬、软件间耦合性应尽量低,即应用开发工程师不需关心 硬件,而硬件开发工程师无暇顾及软件。为了降低硬、软耦合性,产生了设备驱动工程师。 2.操作系统驱动设计架构 在无操作系统时,硬件工程师可以自定义API供应用开发工程师使用;...

2017-09-13 09:05:13

阅读数:386

评论数:0

【整理】uclibc,eglibc,glibc之间的区别和联系

【glibc,uclibc,eglibc的简介】 1.Glibc glibc = GNU C Library 是GNU项(GNU Project)目,所实现的 C语言标准库(C standard library)。 目前,常见的桌面和服务器中的GNU/Linux类的系统中,都是用的这套C语...

2017-09-12 09:12:16

阅读数:134

评论数:0

嵌入式linux内核组成

Linux内核主要由进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC)5个子系统组成,如图1所示。      图1 Linux内核的组成部分与关系     1.进程调度     进程调度控制系统中的多个进程对CPU的访问,使得多个进程能...

2017-09-12 09:10:08

阅读数:265

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭