驱动程序的演变

发布时间:2022-12-03 LINUX驱动开发 LINUX

最简单的驱动程序

一、驱动的硬件操作函数

二、file_operation结构体管理硬件操作函数

三、入口函数,

1、注册file_opeation到内核数组中去

2、将物理地址转换虚拟地址

3、设备节点自动创建函数

四、出口函数

1、撤销地址转换

2、销毁设备节点

分层思想

一、leddrv.c

   硬件操作函数以及它的上司file_operation结构体

  入口函数,

      1、注册file_opeation到内核数组中去

      2、设备节点自动创建函数

  出口函数

      1、销毁设备节点

二、LED资源分配

led_resource

1、定义引脚选择结构体

2、创建一个函数获得引脚选择结构体的指针

board_A_led.c

1、创建引脚选择结构体的实例,并且赋值

2、完善引脚结构体指针函数,返回指向实例的指针

三、LED硬件相关操作

led_opr.h

定义led操作结构体、定义一个函数获得led操作结构体的指针

chip_demo_gpio

1、创建led控制结构体的实例并且立于函数赋值,

2、创建led控制函数、led初始化函数

3、完善函数,获得led控制函数结构体的指针

总线设计思想

一、公共部分

leddrv.h 

定义三个函数封装了底层的设备节点创建、设备节点销毁、注册led_operations结构体(就是换一个指针指向led_operation结构体

设备节点的创建是我们自己创建,因为有多个,后面自己会调用

#ifndef _LEDDRV_H
#define _LEDDRV_H

#include "led_opr.h"

void led_class_create_device(int minor);
void led_class_destroy_device(int minor);
void register_led_operations(struct led_operations *opr);

#endif /* _LEDDRV_H */

leddrv.c

完善设备节点创建、设备节点销毁、注册led_operation封装函数

构建file_operation结构体,并且将对应函数进行赋值

入口函数

注册file_operations,

出口函数

撤销注册的file_operations结构体

撤销设备节点的前置

二、LED资源分配

注册platform_device 函数

       创建驱动资源结构体platform_device结构体

                   创建资源分配结构体数组

三、LED硬件相关操作

chip_demo_gpio

入口函数

1、注册硬件驱动结构体

       匹配成功函数

                       probe记录引脚信息

                      创建设备节点

       匹配失败 

              销毁设备节点

2、注册硬件操作结构体

      led引脚初始化

      控制led引脚

设备树

设备树设计思想

面向对象/分层/分离

  用结构体来表示某个对象

分离思想

将某个有很多类似操作的写在一起,这样我们根据参数就可以替换不同的步骤了

1、上下分层

将设计硬件的比如

初始化gpio、设置GPIO写成board.c

同用的就写在drv.c里面

 

2、左右分离

将board.c分成两部分

1、数据配置(资源)

2、硬件操作

P 20 驱动进化之路

为了使得兼容多个驱动,扩展了分离思想

 硬件操作都在platform_driver 、资源分配都在platform_device上

设备树

将各种引脚配置参数存放在内核之外,配置文件dts(指定使用那个引脚),

然后将dts编译成dtb传给内核

内核解析dtb文件,构造出一系列的strcut platform_device 这类的

更多相关推荐


Linux查看目录文件个数

发布时间:2020-07-15 GREP LINUX LINUX可以怎么玩 SHELL UBUNTU
linux三天不用,有些命令就忘了本博客摘自Linux-查看文件个数有时候需要看文件夹下有多少文件,那么就需要用到以下指令:$ls-l|grep-c'^-'这个grep是啥意思呢?我们man一下$mangrep会看到以下描述:SYNOPSISgrep[OPTIONS]PATTERN[FILE...]grep[OPTIONS][-ePATTERN|-fFILE][FILE...]DESCRIPTIO...

Linux系列(1):利用VirtualBox安装虚拟机和Linux

发布时间:2022-10-23 运维 LINUX 服务器
一、使用虚拟机学习Linux    由于近年来硬件虚拟化技术的成熟,目前普通的中档个人计算机的CPU指令集中,就已经整合了硬件虚拟化指令集。所以,随便一台计算机就能够虚拟化出好几台逻辑独立系统。    由于虚拟化的软件非常多,由于我是Windows系统,我使用VirtualBox软件来通过虚拟机安装Linux系统。VirtualBox官网:https://www.virtualbox.org;Vi...

学习笔记-Ghidra

发布时间:2022-11-02 学习 运维 LINUX 服务器
Ghidra免责声明本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.简介Ghidra是由美国国家安全局(NSA)研究部门开发的软件逆向工程(SRE)套件,用于支持网络安全任务。包括一套功能齐全的高端软件分析工具,使用户能够在各种平台(Windows、MacOS和Linux)分析编译后的代码。功能包括反汇编,汇编,反编译,绘图和脚本,以及数百个其他...

maven国内镜像(maven下载慢的解决方法)

发布时间:2022-08-22 LINUX 大数据 开发语言 MAVEN JAVA
最近在接触Spring的时候经常从网上下载开源项目,但是每次构建都太慢了,刚开始我是直接挂机等待自动下载,有时候一晚上都无法下载完成,于是改为手动下载jar包,也就是从http://maven.aliyun.com/nexus/content/repositories/central/,或者http://maven.aliyun.com/nexus/content/groups/public/又或...

LINUX基本命令及exlainshell的使用

发布时间:2018-10-03 LINUX
1.lsls命令是最常使用的命令之一,因为在命令行下要随时查看目录内容。如果不加任何选项的话,ls命令仅列出当前目录下的文件和目录名如果想要列出当前目录下所有文件,则可以使用下列命令:ls-a如果想要查看/abc目录下的内容,可以使用下列命令:ls/abc2.catcat命令能够显示一个文件的内容,cat命令的执行方式为:cat文件名cat命令的常见用法是查看一个文件的内容,例如,现在想查看一下/...

crontab

发布时间:2018-12-17 LINUX
crond和crontab区别crond是一个后台daemon,Crond服务会定期(默认一分钟检查一次)检查系统中是否有要执行的任务工作。crontab是用于设置周期性被执行的指令,该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取与执行。crontabCrontab分为系统任务调度和用户任务调度系统任务调度在/etc目录下有一个crontab文件,这个就是系统任务...

linux下vi命令大全

发布时间:2017-07-18 LINUX
进入vi的命令 vifilename:打开或新建文件,并将光标置于第一行首 vi+nfilename:打开文件,并将光标置于第n行首 vi+filename:打开文件,并将光标置于最后一行首 vi+/patternfilename:打开文件,并将光标置于第一个与pattern匹配的串处 vi-rfilename:在上次正用vi编辑时发生系统崩溃,恢复filename vifilename....f...

vi 中的命令

发布时间:2010-11-20 LINUX WINDOWS INSERT COMMAND UNIX MICROSOFT
转自:http://linux-vbird.bluedata.org/linux_base/0310vi.htm鸟哥的Linux与ADSL私房菜  vi文字处理软件最近更新日期:2003/02/25 一个系统管理员至少应该要熟悉一种字处理软件,以方便未来的系统管理,包括系统设定与架站时候的参数设定档修订等等工作之进行。在Unix-Like系统中,肯定看的到的文书编辑器就是vi啦,他算是最正规的文字...

Makefile命令与变量

发布时间:2022-11-22 WINDOWS MAKEFILE UNIX LINUX
命令make的命令默认是被“/bin/sh”即UNIX的标准Shell解释执行的。每条规则中的命令和操作系统Shell的命令行是一致的。make会一按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的。在命令行之间中的空格或是空行会被忽略,但是如果该空格或空行是以Tab键开头的,那么make会认为其是一个空命令。显示命令一般情况,make会打印出...

摆脱星空极速

发布时间:2007-01-28 LINUX 读书 电信 工作 IE GOOGLE
今天装了宽带,令我不爽的是被装上了“星空极速”这种莫名其妙的东西。工作人员明显不愿意告诉我怎么在MODEM上设置。不过我读书的时候在寝室里摆弄过宽带猫的配置,最终还是把星空极速请了出去:1、工作人员走的时候,我抄下了用户名和密码。根据网上的资料,别地方的星空极速似乎把用户名和密码作了修改,需要用Sniffer才能得到;而长沙的不需要,用户名和密码是真实的。2、打开IE选项,发现果然新建了一个连接。...

【Ubuntu】【VMware】使用问题记录&解决方法

发布时间:2022-11-21 UBUNTU、LINUX基本使用 VMWARE LINUX UBUNTU
1.镜像所在磁盘空间不够问题起因:从vmware扩展虚拟机磁盘空间后,还需要从ubuntu系统扩展磁盘1.1开机时卡在界面/dev/sda1:clean1.2强制关机,再开机时按shift进入advancedoption界面,选择root1.3先按回车,再输入df-h1.4我是挂载点“/"几乎满了,显示100%,输入find挂载点-size+1G//(查看挂载点下大于某个大小的文件,如大于1G的文...

vim 写入错误,转换失败 (请将 'fenc' 置空以强制执行)

发布时间:2018-01-23 LINUX
vim里面的编码主要跟三个参数有关:enc(encoding),fenc(fileencoding)和fencs(fileencodings)其中fenc是当前文件的编码,也就是说,一个在vim里面已经正确显示了的文件(前提是你的系统环境跟你的enc设置匹配),你可以通过改变fenc后再w来将此文件存成不同的编码。比如说,我:setfenc=utf-8然后:w就把文件存成utf-8的了,:setf...

linux下vim的常见错误

发布时间:2014-11-09 VIM LINUX UNBUNTU 常见问题解决方法
一、vi编辑器方向键和退格键错乱问题:    ->sudoapt-getremovevim-common   ->sudoapt-getinstallvim二、linux配置vim:转载自JusTice123  1.设置文件的位置  在目录/etc/下面,有个名为vimrc的文件,这是系统中公共的vim设置文件,对所有用户都有效。而在每个用户的主目录下,都能自己建立私有的设置文件,命名...

DELPHI开发LINUX包

发布时间:2019-08-02 DELPHI LINUX
DELPHI开发LINUX包我们知道,有了包的存在,开发插件架构的程序,才成为可能。DELPHI在WINDOWS里面的包的扩展名是.bpl。在LINUX里面的包的扩展名是.so。怎样在LINUX里面加载.so的包?不论加载WINDOWS的包,还是加载LINUX的包,都是使用LoadPackage()函数加载。functionLoadPackage(constName:string;AValidat...

Linux命令:alias

发布时间:2022-01-19 LINUX
alias给长命令起别名cd~ll-a//在home文件下打开隐藏文件gvim.cshrc_user//找到.cshrc_user文件aliaslrt"ls-rt"//编辑设置别名aliasliu"cd/scratch/rnd1/liu"...

Linux上简单实现的 ls命令

发布时间:2022-11-04 运维 LINUX 服务器
ls命令是Linux下最常用的指令之一,为英文单词list的缩写,功能是列出指定目录下的内容及其相关属性信息。以下命令是在Linux系统上试验操作的。 ls–a显示所有文件及目录,包括以“.”开头的隐藏文件(在linux中,“.”开头的文件为隐藏文件)ls–l使用长格式列出文件及目录信息,即文件的详细信息文件权限:首位分为“-:文件”,“d:目录”,“l:软链接”,剩下其余9位每三位为一个整体代表...

linux下安装vsftp

发布时间:2015-04-20 VSFTP LINUX
Linux下安装VSFTPD可是一个技术活,但是掌握了方法之后就一切变的很简单了。本文以CentOS6.3为配置环境,进行vsftpd的安装。命令yuminstallvsftpd方法/步骤下载VSFTPDLinux下传统的安装软件方法是下载tar.gz安装包,或者RPM安装包,再经过解压之后进行编译,或者用RPM-i命令安装。过程比较繁琐,其实还有个更为简捷的方法就是使用yum命令在线安装,支持几...

linux 安装vsftp1.1.3是出现的错误

发布时间:2009-11-05 LINUX SOCKET
   客户端连接vsftpd:Socket已连接。正在等候欢迎消息...不动了  /etc/vsftpd/vsftpd.conf里面的配置没有配好! #hasaneffectiftheaboveglobalwriteenableisactivated.Also,youwill#obviouslyneedtocreateadirectorywritablebytheFTPuser.anon_uplo...

根据标题或关键字生成内容-免费api接口

发布时间:2022-11-14 AI LINUX 深度学习 采集 PYTHON 人工智能
根据标题或关键字生成内容-免费api接口官网在线体验:www.lycecho.com请求API:http://www.lycecho.com/api/getContent请求方式:POST名称类型必填说明titlestring是主标题tokenstring是接口密钥可在购买接口后获取tagint否自动标签,默认值:0,1/开启quantityint否聚合数量,默认值:5,最大聚合数量10limit...

Linux文件打包压缩、解压缩、备份命令

发布时间:2010-06-12 算法 LINUX WINDOWS UNIX 扩展 压缩、解压缩
Linux文件打包压缩、解压缩、备份命令使用方法对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rar。可是Linux就不同了,它有.gz、.tar.gz、tgz、bz2、.Z、.tar等众多的压缩文件名,此外windows下的.zip和.rar也可以在Li...

linux定时任务--crontab的用法

发布时间:2009-11-10 LINUX CRON 脚本 SHELL USER 任务
定时执行crontab使用方法详解  使用方式:  crontab[-uuser]filecrontab[-uuser]{-l|-r|-e}  说明:  crontab是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。-uuser是指设定指定user的时程表,这个前提是你必须要有其权限(比如说是root)才能够指定他人的时程表。如果不使用-uuser的话,就是表示...

Linux文件搜索之 find / locate / whereis / which

发布时间:2009-09-22 LINUX 数据库 工具 PATH UBUNTU
1.find wwe-namewwe.txt   /      findwwe-regex.*.txt2.locate是用来通过文件名搜索文件的工具,它的用法也比较简单。locate的应用,首先要通过updatedb建立索引数据库,然后才能应用;如果您新安装了软件或者存放了新的文件,也要先运行updatedb命令,以生成最新索引库。用法:locate文件名我们要先运行updatedb;[root@...

再谈Linux内核中的RCU机制

发布时间:2017-12-11 LINUX
RCU的设计思想比较明确,通过新老指针替换的方式来实现免锁方式的共享保护。但是具体到代码的层面,理解起来多少还是会有些困难。在《深入Linux设备驱动程序内核机制》第4章中,已经非常明确地叙述了RCU背后所遵循的规则,这些规则是从一个比较高的视角来看,因为我觉得过多的代码分析反而容易让读者在细节上迷失方向。最近拿到书后,我又重头仔细看了RCU部分的文字,觉得还应该补充一点点内容,因为有些东西不一定...

有了iscsi存储怎么让主机识别以及使用创建lvm

发布时间:2015-03-14 LINUX
 1.查找安装包:rpm-ivhiscsi-initiator-utils去sf.net下载iscsitarget包makekernel,usr,install开启服务(0)查看iscsi发现记录iscsiadm-mnode(1)发现iscsi存储:iscsiadm-mdiscovery-tst-p192.168.20.100(2)查看iscsi发现记录iscsiadm-mnode(3)删除isc...

1114作业

发布时间:2022-11-15 运维 LINUX 服务器
1、开放/nfs/shared目录,供所有用户查询资料;#服务端:#1.创建目录[root@server~]#mkdir-p/nfs/shared#2.配置文件[root@server~]#cat/etc/exports/data192.168.40.130(rw)/nfs/shared*(ro)/nfs/upload*(rw)#3.重启服务端[root@server~]#systemctlres...

Linux第一次作业

发布时间:2016-08-10 作业 LINUX
1、描述计算机的组成及其功能。计算机是由控制器、运算器、存储器、输入设备和输出设备五部分组成。1)控制器:控制器是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。2)运算器:运算器的主要功能是对数据进行各种运算。这些运算除了常规的加、减、乘、除等基本的算术运算之外,还包括能进行“逻辑判断”的逻辑处理能力,即“与”、“或”、“非”这...

Linux第七次作业

发布时间:2016-09-19 LINUX 第七次
1、创建一个10G分区,并格式为ext4文件系统;  (1)要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl;[root@localhost ~]# mke2fs -t ext4 -b 2048 -m 2 -L "MYDATA" /dev/sda3 [root@localhost ~]# mount -o acl /dev/sda3 /tmp/myda...

Linux第三次作业

发布时间:2016-08-20 作业 LINUX
1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。[root@localhost ~]# who | cut -d ' ' -f 1    //切割字符串,-d指明字符为空格,-f,显示第1列jun_shaojun_shaojun_shaojun_shaorootroot[root@localhost ~]# who | cut -d ' ' -f 1 | ...

虚拟机下ubuntu的minicom使用指南

发布时间:2014-05-22 LINUX 嵌入式
整理自ubuntu下的minicom的使用minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利,下面将讲解minicom的安装和配置。一、安装minicom:使用以下命令:#sudoapt-getinstallminicomPS:ubuntu现在做的真是没话说,相当的实用和智能啊,把相关的依赖包(lrzs...

RHCE练习及解析(5)

发布时间:2022-11-20 CENTOS LINUX 服务器
搭建主DNS服务器,要求如下:该DNS服务器能解析www.qq.com和www.163.com的IP地址下载bind安装包修改DNS服务器主配置文件内容添加区域解析库文件重新启动DNS服务在DNS客户端配置文件(/etc/resolv.conf)添加此自己搭建的DNS服务器[root@localhost~]#vim/etc/resolv.conf;generatedby/usr/sbin/dhcl...

成功研发红旗Linux Desktop 9操作系统

发布时间:2018-01-20 LINUX DESKTOP
北京红旗软件有限公司(红旗软件)与深圳职业信息技术学院(深信职)举办联合开发的红旗桌面产品发布会,双方宣布,经过深信职计算机学院Linux桌面开发组与红旗软件的共同努力,成功研发红旗LinuxDesktop9操作系统。近日,北京红旗软件有限公司(红旗软件)与深圳职业信息技术学院(深信职)举办联合开发的红旗桌面产品发布会,双方宣布,经过深信职计算机学院Linux桌面开发组与红旗软件的共同努力,成功研...

linux开发板网口连接测试方法

发布时间:2022-11-21 ARM 运维 LINUX 服务器
linux开发板网口连接测试方法一、uboot下设备IP设置1.临时设置ip地址(重启开发板失效)ifconfigeth0192.168.2.148netmask255.255.255.0routeadddefaultgw192.168.2.12.永久设置ip地址vi/etc/profile,然后把前面临时配置ip地址的两行命令写到里面。exportPATH=/bin:/sbin:/usr/bin...

linux系统整体监控脚本

发布时间:2010-01-07 LINUX 学习 BASH LINUX ORACLE F# 脚本
os平台:redhatlinux5作为DBA要时刻注意系统的整体状况,我们不能人为的一直监控系统这就需要DBA要写一些日常的监控脚本,帮助DBA分析问题,我们最近要上个新的系统,我于是写了linux系统的整体监控脚本monilog_timeswitch.sh:日志轮询脚本,保留最近5个监控日志,定期删除最陈旧的监控日志moni_system.sh:linux系统整体监控脚本功能:监控系统的资源使用...

几个常用的Linux操作系统监控脚本

发布时间:2013-01-08 LINUX
几个常用的Linux操作系统监控脚本2012-11-0900:00中国IT实验室佚名关键字:Linux  本文介绍了几个常用的Linux监控脚本,可以实现主机网卡流量、系统状况、主机磁盘空间、CPU和内存的使用情况等方面的自动监控与报警。根据自己的需求写出的shell脚本更能满足需求,更能细化主机监控的全面性。  最近时不时有互联网的朋友问我关于服务器监控方面的问题,问常用的服务器监控除了用开源软...

用linux建立自己的mp3广播站

发布时间:2004-11-12 LINUX OPENSOURCE FILE 工具 服务器 LIST
概述:本文将介绍用linux下的开放源码工具icecast和ices创建mp3广播的方法。原理:  icecast是一个基于Mpeg III技术的Internet广播系统,同shoutcast等商业软件相比具有以下特点:Icecast是一个纯粹的OpenSource软件;不需要运行自己的目录服务器;占用更少的系统资源;  我们可以在服务器上运行自己的流服务器——icecast,使用ices提供流源...

Kali Linux桥接、NAT模式与主机IP的关系

发布时间:2022-10-09 网络 LINUX TCP/IP
前言:作业(对你可能没帮助或帮助不大)参考:桥接模式、NAT模式和仅主机模式|ANINEGの小屋一、桥接模式当虚拟机系统的网络连接模式为桥接模式时,相当于在主机系统和虚拟机系统之间连接了一个网桥,而网桥两端的网络都属于同一网络,主机和虚拟机是处于同一网络中的对等主机。简单来说,桥接模式就是将虚拟网卡和主机相连,然后一同连接到网络。在这时,虚拟机相当于一台独立出来的机子虚拟机IP、子网掩码、网关: ...

Nmap的简单使用

发布时间:2022-10-29 网络 运维 LINUX
网络渗透测试实验之Nmap的简单使用1.利用NMAP扫描Metasploitable2(需下载虚拟机镜像)的端口开放情况。并附截图。说明其中四个端口的提供的服务,查阅资料,简要说明该服务的功能。2.利用NMAP扫描Metasploitable2的操作系统类型,并附截图。3.利用NMAP穷举Metasploitable2上dvwa的登录账号和密码。1.利用NMAP扫描Metasploitable2的...

linux虚拟内存管理简要总结

发布时间:2010-06-20 LINUX内核 算法 LINUX 平台 LINUX 杂谈
以下讨论仅限i386平台,一般考虑典型情况linux内核对整个系统的物理内存是通过类型为structpage的数组mem_map来管理的。系统中的伙伴系统分配算法最终是通过操作这个数组来记录物理内存的分配、回收等操作。在这里不要被系统的高端内存、低端内存等概念搞混淆了,高、低端内存的分类主要在于区分物理内存地址是否可以直接映射到内核线性地址空间中。我们知道,linux的内核地址空间大小为1G(用户...

Linux内存管理

发布时间:2013-11-25 LINUX 虚拟内存管理 OS
 摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨重点讨论的内容,无论市面上或...

硬盘安装 Ubuntu 9.04 与 XP 双系统 (含 Grub 不写入 MBR 的方法)

发布时间:2011-06-30 LINUX 活动 XP 终端 DOS UBUNTU
原帖地址,本人一直使用的方法,因为不会修改MBR,所以对于以XP为主要工作平台的用户特别适用。一、安装准备:硬盘安装的关键则在于实现从iso文件启动.从网上下载ubuntu的iso文件,把它放在一个盘的根目录下,这个盘可以ntfs的,也可以是fat32的,当然,它也可以是linux的文件系统.只是不要把这个文件放在你要安装系统的分区上就可以。用winrar或者其它工具从iso文件中提取Casper...

Linux题库100道(附答案)

发布时间:2022-11-22 运维 LINUX 安全 CENTOS 服务器
1.cron后台常驻程序(daemon)用于:A.负责文件在网络中的共享B. 管理打印子系统C.跟踪管理系统信息和错误D.管理系统日常任务的调度2.在大多数Linux发行版本中,以下哪个属于块设备(blockdevices)?A.串行口B.硬盘C.虚拟终端D.打印机3.下面哪个Linux命令可以一次显示一页内容?A.pauseB.catC.moreD.grep4.怎样了解您在当前目录下还有多大空间...

Redis在linux中的安装步骤

发布时间:2022-06-14 REDIS LINUX 数据库
linux中安装redis1.redis的下载路径Indexof/releases/ 2.将文件拖进谋个一目录,解压3.tar-zxvfredis-6.2.1.tar.gz4.再将解压后的文件移动到opt根目录 mv  redis-6.2.1.gz /opt/进入redis文件 输入命令make等编译完成后执行makeinstall执行redis-server 测试是否成功 之后回到原目录 opt...

【博客538】BGP优雅重启机制

发布时间:2022-11-19 KUBERNETES 网络协议 LINUX
bgp优雅重启机制背景以BGP为代表的路由协议,从设计之初,就关注路由表的正确性,因为这是确保整个网络系统正常工作的最基本要求。因此每个BGP路由器,总是会以最快的速度收敛到整个网络最新的状态上。当一个BGPpeer的BGP连接断开时,当前BGP路由器会认为BGPpeer已经不能工作,进而会以最快的速度删除之前从这个BGPpeer收到的路由。但这样敏感的机制其实有一些问题:首先,BGP连接断开了不...

内核将驱动编译成模块报函数或者变量undefined的错误

发布时间:2022-11-16 LINUX C语言
内核驱动编译成模块报undefined的错误在内核里编译时,同样的代码编译成.o放在zImage时可以正常编译的但是选择编译成ko文件后就会报undefined!,但是实际这个未定义的函数或者变量都是可以有的这个时候就和驱动对应的Makefile有关系#obj-$(CONFIG_RADIO_TDA7786)+=radio-tda7786.otuner.otda7786.oobj-$(CONFIG_...

禅道迁移与定时数据备份

发布时间:2022-11-18 DOCKER LINUX UBUNTU
之前是在docker上部署的,团队内部已经开始使用了,因此需要重新在新的服务器上面部署,涉及到平台的搭建与数据的迁移。平台的搭建具体步骤见另一篇博客。需求:平台搭建在内网,但需要nginx实现转发。做法:修改/etc/apache2下的ports.confsudovimports.conf将其中的80端口切换为9876在/etc/apache2/sites-enabled里面新建一个conf文件,...

linux Led 子系统

发布时间:2013-09-02 LED LINUX
数据结构/include/linux/leds.henum led_brightness {    LED_OFF         =0,    LED_HALF    =127,    LED_FULL    =255,};led_classdev代表led的实例:struct led_classdev {    constchar         *name;       //名字    in...