首页 > 其他分享 >驱动相关指令

驱动相关指令

时间:2023-07-03 17:12:41浏览次数:33  
标签:总线 driver udev 指令 内核 相关 驱动 PTP

驱动相关指令

自定义驱动的加载

depmod

depmod:分析可载入模块的依赖性

 

which

which: 在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果

 

trap

内建命令,用于执行接收到信号后将要采取的动作,常见用于在脚本被中断时完成清理工作

 trap  ""  SIGINT #忽略SIGINT信号
 SIGINT:只对当前前台进程,和他的所在的进程组的每个进程都发送SIGINT信号,之后这些进程会执行信号处理程序再终止.

 

modprobe

modprobe:用于智能的向内核中加载模块,或者从内核中移除模块,若在载入过程中发生错误,modprobe会卸载整组的模块。内核模块加载成功或失败信息,可使用dmesg指令来查看

 

ptp

ptp :一个通过网络同步时钟的协议;

操作系统的PTP: PTP 被分开在 kernel 和 user space,比如CentOS,内核支持 PTP 时钟,由网络驱动提供(硬件 PTP 依赖物理网卡提供硬件时钟),可以手动检查网卡是否支持 PTP

比如liquidio驱动

image-20230703133337774

 

irabalance

irqbalance:用于优化中断分配,为避免影响CPU的使用均衡,建议服务器环境中关闭

 killall irqbalance

udev

 

示例:

 # udev规则,重命名网口
 DIR="/etc/udev/rules.d"
 FILEPATH="/etc/udev/rules.d/70-persistent-net.rules"
 MESSAGE="ACTION==\"add\", SUBSYSTEM==\"net\", ATTRS{vendor}==\"0x177d\", ATTRS{device}==\"0x9702\", NAME=\"oct%n\""
 ​

 

 

驱动

 

driver: 通过driver_register()注册到总线上(bus_type)上,代表了系统(服务器)具备了操作(驱动)某种设备(网卡)的能力;

当某个driver被注册到同样的总线的时候(总线枚举是发现),总线驱动会对driver和device会通过一定的策略进行binding,如果匹配成功,总线驱动会调用driver的probe()函数,把设备信息(如端口,中断号)传递给驱动,驱动就可以对真实的物理部件进行初始化,并把该设备的控制接口注册到linux其他子系统上(如字符设备),这样操作系统的其他部分就可以通过这些通用接口来访问设备。

 

不同操作系统的驱动不能兼容,驱动存在的意义——适应系统需要

 

.ko文件

kernel object(内核模块),文件的意义就是把内核的一些功能移动到内核外,需要时的时候插入内核,不需要时卸载

module_init

image-20230703143458628

 

Makefile

学习:liquidio驱动的makefile文件

  1. ./configure 后跟SDK路径

image-20230703160558515

配置环境:

SDK路径:

 ./configure /usr/local/Cavium_Networks

image-20230703160329269

.PHONY

在Makefile中,.PHONY后面的target表示的也是一个伪造的target, 而不是真实存在的文件target

注意: Makefile的target默认是文件

 

固件

程序使用和操作系统完全不同的指令集。但firmware通常由驱动去加载。

 

 

 

 

 

标签:总线,driver,udev,指令,内核,相关,驱动,PTP
From: https://www.cnblogs.com/senorita-18/p/17523384.html

相关文章

  • rysnc相关
    rsync拷贝您可以使用rsync命令将远程文件拷贝到本地。以下是rsync命令的语法:rsync[OPTION]...SRC[SRC]...[USER@]HOST:DESTrsync[OPTION]...[USER@]HOST:SRCDESTrsync[OPTION]...SRC[SRC]...DESTrsync[OPTION]...[USER@]HOST::SRC[DEST]rsync[OPTION]...rs......
  • 在ubuntu22.04上为无线网卡RTL8821CU安装驱动
    因为工作需要,我要在ubuntu22.04系统上使用无线网卡,网卡芯片是RTL8821CU,网卡驱动要自己编译安装。我最初在github找到了以下驱动代码https://github.com/brektrou/rtl8821CU结果编译出错。循着出错信息,我在github论坛上发现有人推荐了一个新版本的驱动代码,即https://github.co......
  • 与 TDengine 性能直接相关——3.0 的落盘机制优化及使用原则
    许多用户会有一个疑问,“落盘”俩字听起来就很底层,似乎无法和手头的性能问题联系到一起,本篇文章的目的就是让大家对它们俩建立起直观的认识。写到数据库的数据总要保存起来——所以时序数据库(TimeSeriesDatabase)TDengine中经常提到的“落盘”,其实指的是内存中的数据持久化到存......
  • 第2章 计算机指令集系统
    1.按照寄存器对指令集结构的分类三大类:堆栈、累加器、通用寄存器组通用寄存器组分三类:RM、RR、MM(R为寄存器,M为存储器)2.操作数寻址方式描述 3.指令集结构的功能设计在确定哪些基本功能用硬件来实现时,主要考虑的因素有3个:速度、成本与灵活性。用硬件实现的特点是速度快、成......
  • Linux SPI-NAND 驱动开发指南
    文章目录LinuxSPI-NAND驱动开发指南1概述1.1编写目的1.2适用范围1.3相关人员3流程设计3.1体系结构3.2源码结构3.3关键数据定义3.3.1flash设备信息数据结构3.3.2flashchip数据结构3.3.3aw_spinand_chip_request3.3.4ubi_ec_hdr3.3.5ubi_vid_hdr3.4关键接口说明3......
  • 如果串口驱动有问题,怎么调
    有很多人问我,为什么不录串口驱动?实际上串口裸板很简单,但是串口驱动还是挺复杂的;另外基本上所有芯片的内核源码中基本上都会有串口驱动。所以我认为对于串口,我们只要会APP编程即可,不需要去写它的驱动程序。现在有2个问题:1.怎么写串口APP?2.如果串口驱动有问题,怎么调?第1个问题挺简单,百......
  • Linux系统驱动之编程_配置LCD控制器_基于IMX6ULL
    资料下载coding无法使用浏览器打开,必须用git工具下载:gitclonehttps://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git视频观看百问网驱动大全编程_配置LCD控制器_基于IMX6ULL参考资料,GIT仓库里:芯片资料IMX6ULL\开发板配套资料\datasheet\Core_board\CPU\IMX6ULL......
  • Linux系统驱动之编程_配置引脚_基于IMX6ULL
    资料下载coding无法使用浏览器打开,必须用git工具下载:gitclonehttps://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git视频观看百问网驱动大全编程_配置引脚_基于IMX6ULL参考资料,GIT仓库里:芯片资料IMX6ULL\开发板配套资料\datasheet\Core_board\CPU\IMX6ULLRM.pd......
  • Linux系统驱动之分析内核自带的LCD驱动程序_基于IMX6ULL
    资料下载coding无法使用浏览器打开,必须用git工具下载:gitclonehttps://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git视频观看百问网驱动大全分析内核自带的LCD驱动程序_基于IMX6ULL参考资料,GIT仓库里:IMX6ULL\开发板配套资料\datasheet\Core_board\CPU\IMX6ULLR......
  • 车灯芯片 AP2915 一切二降压恒流驱动IC
    产品描述 AP2915是一款可以一路灯串切换两路灯串的降压恒流驱动器,高效率、外围简单、内置功率管,适用于5-80V输入的高精度降压LED恒流驱动芯片。内置功率管输出最大功率可达12W,最大电流1.2A。AP2915一路灯亮切换两路灯亮,其中一路灯亮可以全亮,可以半亮。AP2915工作频......