我的是2C8核(每个CPU4个核)/sys/devices/system/cpu 如图,一共8个(0~7)禁用第二个(第
原创 2022-07-03 01:16:40
10000+阅读
Linux操作系统是一个基于开源内核的操作系统,其内核的主要功能是管理应用程序与计算机硬件之间的通信。而内核模块则是内核的一个重要组成部分,负责对硬件进行输入输出控制,从而实现操作系统与硬件设备之间的交互。 在Linux系统中,驱动内核模块的一种,用于控制与硬件相关的操作。Linux内核中的驱动程序负责管理设备的输入输出,以及资源的分配与释放,保证计算机系统的正常运作。Linux内核支持大量的
一、网卡驱动架构  由上到下层次依次为:应用程序→系统调用接口→协议无关接口→网络协议栈→设备无关接口→设备驱动。二、重要数据结构  1、Linux内核中每一个网卡由一个net_device结构来描述。  2、网卡操作函数集:net_device_ops,这个数据结构是上面net_device的一个成员。  3、网络数据包:sk_buff。三、网卡驱动代码分析  所用文件为cs89x0.c,主要分
一、写在前面合格的linux驱动工程师需要满足下面的条件,本文的目标就是用最简练的语言把这些条件讲清楚:1、有一定的硬件基础,懂得SRAM,Flash,SDRAM,磁盘的读写方式,了解UART,IIC,USB等设备接口,了解轮询,中断,DMA的原理,PCI总线的工作方式以及CPU的内存管理单元(MMU)等。2、有一定的C语言基础,能够熟练使用结构体,指针,函数指针,以及内存的动态申请和释放。3、有
通用串行总线(USB)是一个在主机和许多外设之间的连接. 最初它被创建来替代许多慢速和不同的总线- 并口, 串口, 和键盘连接--有一个单个的所有设备都可以连接的总线类型.[45] USB 已经成长超出了这些 慢速连接并且现在支持几乎每种可以连接到 PC 的设备. USB 规范的最新版本增加了高速连
转载 2019-07-07 18:45:00
310阅读
2评论
Linux内核作为一款开源操作系统内核,一直以来都备受关注和赞誉。而在Linux内核中,驱动程序扮演着至关重要的角色,它们负责与硬件设备进行通信和协调,保证操作系统可以正确地识别、控制和利用硬件设备。在Linux内核中,红帽公司是一个广受认可的开源软件公司,其对Linux内核驱动程序的贡献不可忽视。 红帽公司对Linux内核驱动的贡献不仅仅体现在代码层面,更体现在技术研发和社区支持方面。作为
Linux操作系统中,内核驱动是一个非常重要的部分,它负责管理硬件设备和与用户空间之间的交互。红帽作为一家知名的Linux发行版提供商,在内核驱动开发领域拥有丰富的经验和技术。 Linux内核驱动开发是一个复杂而严谨的过程,需要开发人员精通Linux内核的原理和机制,以及各种硬件设备的工作特性。红帽的开发团队在这方面拥有丰富的经验,能够为用户定制各种内核驱动,以满足不同硬件设备的需求。 在L
 Linux内核理论基础 组成Linux内核的5个子系统:进程调度(SCHED)/内存管理(MM)/虚拟文件系统(VFS)/网络接口(NET)/进程间通信(IPC)。进程调度(SCHED)在设备驱动编程中,当请求的资源不能得到满足时,驱动一般会调度其他进程执行,并使本进程进入睡眠状态,直到它请求的资源被释放,才会被唤醒而进入就绪态。睡眠分成可被打断的睡眠和不可被打断的睡眠,两者
设备模型跟踪所有对系统已知的驱动. 这个跟踪的主要原因是使驱动核心能匹配驱动和新 设备. 一旦驱动在系统中是已知的对象, 但是, 许多其他的事情变得有可能. 设备驱动可 输出和任何特定设备无关的信息和配置变量, 例如: 驱动由下列结构定义: struct device_driver { char *
转载 2019-07-07 21:36:00
267阅读
2评论
Linux 内核驱动编译是一个重要的环节,对于使用 Linux 操作系统的开发者来说尤为重要。在 Linux 系统中,驱动程序是连接硬件和操作系统之间的桥梁,它的正确编译和加载是系统正常运行的关键。本文将介绍一些关于 Linux 内核驱动编译的基本知识和步骤。 首先,我们需要明确一个概念:内核驱动程序和模块之间的关系。内核是操作系统的核心,负责管理系统的资源、调度进程等。而驱动程序则是为硬件设
原创 6月前
30阅读
【视频】 Linux驱动开发篇Linux内核模块分析(module_init宏)
原创 2023-03-26 20:40:21
526阅读
在使用Kali Linux系统的过程中,有时候我们可能需要禁用显卡驱动禁用显卡驱动可以有很多原因,比如某些驱动与系统不兼容、导致系统崩溃或者出现其他问题等。在这种情况下,我们需要找到正确的方法来禁用显卡驱动,以保证系统的稳定性和性能。 首先,我们需要确定当前系统中的显卡驱动类型。在Kali Linux系统中,通常会使用NVIDIA、AMD或Intel等品牌的显卡驱动。确定显卡驱动类型后,我们可
原创 4月前
60阅读
Linux系统中,开源驱动是用户们选择的一种常见方式。然而,有些情况下用户可能需要禁用特定的开源驱动,比如禁用nouveau驱动。nouveau是一个开源的NVIDIA显卡驱动程序,虽然它提供了对NVIDIA显卡的支持,但有时候用户可能会遇到一些问题,比如性能不佳或者兼容性问题。 禁用nouveau驱动并不是一件复杂的事情,但需要谨慎处理,以免对系统造成不良影响。以下是一些简单的步骤来禁用no
welcome to my blog禁用nouveau驱动一.执行 sudo vim /etc/modprobe.d/blacklist.conf, 在文件末尾添加一句blacklist nouveau二.执行sudo update-initramfs -u并重启三.重启电脑后执行lsmod | grep nouveau,如果没有输出则说明禁用nouveau成功...
原创 2023-01-18 00:54:14
1556阅读
【不一定是原创,不一定很高深,但一定都是实用的,或许某一天你就能用到】Linux系统安装时,通常会自带显卡驱动 Nouveau Kernel Driver,当你想安装其他如Nvidia显卡专用驱动时,会提示冲突,必须禁用Nouveau,Nvidia的驱动开发者也够懒的,尽然能识别到是Nouveau在作怪却不进一步来个自动禁用。1)把驱动加入黑名单中: /etc/modprobe.d/blackli
原创 2014-04-28 15:08:56
6718阅读
1、 linux 内核模块简介内核整体结构非常庞大,其包含的组件也非常多。我们怎么把需要的部分都包含在内核中呢?一种办法是把所有的需要的功能都编译到内核中。这会导致两个问题,一是生成的内核会很大,二是如果我们要在现有的内核中新增或删除功能,不得不重新编译内核,工作效率会非常的低,同时如果编译的模块不是很完善,很有可能会造成内核崩溃。 提供了另一种机制来解决这个问题,这
USB驱动介绍Linux内核支持两种主要类型的USB驱动程序:USB主机(Host)驱动程序和USB设备(device)驱动。主机驱动程序控制插入其中的USB设备,而USB设备驱动程序控制该设备如何作为一个USB设备和主机通信(注重的是方式)。一、USB驱动概览在Linux驱动中,处于USB驱动最底层的是USB主机控制器硬件,在其上的是USB主机控制器驱动,在主机控制器驱动上的为USB核心层,再上
linux分为用户态和内核态,内核态拥有更高的权限(例如可以关闭中断实现更高的优先级),这周在内核态开发了一个简单的驱动,做个经验总结。任务背景:由于业务需求433Mhz通讯,而采用的芯片为纯透传模式(无fifo寄存器),所以产生了较高的序要求,用户态无法 完成该工作,故在内核态开发(最高优先级,关闭所有中断,相当于百分百占用cpu)。对于内核态与用户态最直观浅显的理解是:用户态运行程序的方式为:
    现在Android已经很火了,我的一个哥们儿上个月找到一个Android应用开发的职位,月薪就有6K了,羡慕啊。这里分析下Android的内核结构,主要介绍Android和Linux之间的关系,以备以后可能的转型。大家都知道Android是基于Linux内核的操作系统,也曾经和Linux基金会因为内核问题产生过分歧。    
本文主要是总结出应用层与内核驱动层的主要交互方式,并提供示例代码分析交互过程。但不涉及更细节的内核代码的分析。 应用层与内核驱动层交互的方式多种多样,这里只写出了我目前理解到的3种方式,至于其它等以后再做整理。应用与驱动3种方式所谓的应用与驱动层的交互主要是数据的传递,这里主要是使用内核提供给应用层的API接口,从而实现应用与驱动数据传递。应用层操作硬件设备也是通过内核层提供的API接口或文件设备
转载 2023-10-17 23:16:28
76阅读
  • 1
  • 2
  • 3
  • 4
  • 5