linux
jun_renascence
这个作者很懒,什么都没留下…
展开
-
linux下的timerfd机制
timerfd是Linux为用户程序提供的一个定时器接口。这个接口基于文件描述符,通过文件描述符的可读事件进行超时通知,所以能够被用于select/poll的应用场景。timerfd是linux内核2.6.25版本中加入的借口。timerfd、eventfd、signalfd配合epoll使用,可以构造出一个零轮询的程序,但程序没有处理的事件时,程序是被阻塞的。这样的话在某些移动设备上程序更省电...转载 2019-11-13 11:14:47 · 1445 阅读 · 0 评论 -
利用LinuxPTP进行时间同步(软/硬件时间戳)
PTP的一些名词PTP域中的节点称为时钟节点,PTP协议定义了以下三种类型的基本时钟节点:OC(Ordinary Clock,普通时钟):只有一个PTP通信端口的时钟是普通时钟。BC(Boundary Clock,边界时钟):有一个以上PTP通信端口的时钟。TC(Transparentclock,透明时钟):与BC/OC相比,BC/OC需要与其它时钟节点保持时间同步,而TC则不与其它时钟...转载 2019-11-06 15:19:06 · 22860 阅读 · 9 评论 -
Linux系统调用(syscall)原理
引言:分析Android源码的过程中,要想从上至下完全明白一行代码,往往涉及app、framework、native一直到kernel,可能迷失到代码世界,明白了系统调用原理,或许能帮你峰回路转,找到进入kernel函数的入口。本文主要讲解ARM架构相关源码:/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h/bionic/libc/arch-a...转载 2019-11-01 10:39:48 · 650 阅读 · 0 评论 -
kernel:NMI watchdog: BUG: soft lockup - CPU#6 stuck for 28s! CentOS7linux中内核被锁死
内核软死锁(soft lockup)bug原因分析Soft lockup名称解释:所谓,soft lockup就是说,这个bug没有让系统彻底死机,但是若干个进程(或者kernel thread)被锁死在了某个状态(一般在内核区域),很多情况下这个是由于内核锁的使用的问题。 Linux内核对于每一个cpu都有一个监控进程,在技术界这个叫做watchdo...转载 2019-04-30 16:04:41 · 39610 阅读 · 2 评论 -
linux下PCI设备的注册及初始化流程分析
在前面我们已经看到,PCI的注册就是将PCI驱动程序挂载到其所在的总线的drivers链,同时扫描PCI设备,将它能够进行驱动的设备挂载到driver上的devices链表上来,这里,我们将详细地查看这整个流程的函数调用关系。 pci_register_driver()->__pci_register_driver()[Copy to clipboard...转载 2019-04-20 11:00:53 · 2360 阅读 · 0 评论 -
在飞腾平台移植SNMP服务过程
1. 从官网下载指定版本的SNMP,此处选择5.7.3,地址为:https://sourceforge.net/projects/net-snmp/files/net-snmp/5.7.3/2. 解压:tar -zxvf net-snmp-5.7.3.tar.gz,解压后生成一个net-snmp-5.7.3目录;3. 设置系统时间:date -s "2019-01-02 01:01:01"...原创 2019-02-19 15:50:48 · 2030 阅读 · 0 评论 -
在飞腾平台安装测试SNMP服务
一、安装SNMP1.1、下载Net-SNMP的源代码 选择一个SNMP版本,比如5.7.1,下载地址如下:https://sourceforge.net/projects/net-snmp/files/net-snmp/5.7.3/,如下图所示:1.2、编译安装1. 解压:tar -zxvf net-snmp-5.7.3.tar.gz,解压后生成一个net-snmp-5.7...转载 2019-02-19 13:59:13 · 775 阅读 · 0 评论 -
linux下如何打包链接文件
我们在打包linux文件夹时,经常出现打包后的文件在windows下解压出来丢失了很多文件,像linux下的链接文件都无法正常打包,先看下tar的常用参数tar 参数-c :建立一个压缩文件的参数指令(create 的意思)。-x :解开一个压缩文件的参数指令。-t :查看 tarfile 里面的文件。特别注意,在参数的下达中,c/x/t 仅能存在一个,不可同时存在, 因为不可能同时压...原创 2018-10-21 10:57:39 · 2570 阅读 · 0 评论 -
为什么modprobe一直提示无法找到对应的ko文件
加载内核驱动模块有两种方式,一种是通过insmod,一种是 modprobe,后者的好处 是他可以检测对应驱动模块的依赖项,但是,在使用中发现,使用modprobe经常提示指定目录下无法找到该驱动模块,但实际上该目录下已有该文件……此处,需注意这两个命令使用的一点区别:insmod:需指定到对应驱动模块的目录下,目录可以不固定, 加载模块时需带 后缀,如:先cd到ixgbe.ko驱动模...原创 2018-10-09 12:01:50 · 3767 阅读 · 0 评论 -
linux下如何实现开机自动加载驱动模块
一. 替换原有模块模块名:ixgbe.ko1. 添加需开机自启动加载的驱动模块:打开vim/etc/modules 添加对应模块名称: ixgbe(注意不要ko后缀)2. 拷贝驱动模块到对应的目录下将模块放到对应的位置,注意将驱动按类别放,因万兆网卡属于pci设备,因此就将其放在了drivers下的pci下。具体目录如下:/lib/modules/2.6.35-2...原创 2018-10-09 15:04:24 · 17863 阅读 · 2 评论 -
如何在linux下搭建mips交叉编译环境
【参考原文】http://blog.csdn.net/gubenpeiyuan/article/details/7895469由于要在本地编译程序,在嵌入式系统上运行,因此需要在本地装编译器,目前主要需要mipsel-linux-gcc。之前一直以为可以用apt-get install找到,结果找了好久找不到,发现还是得自己编。 主要是参考上面的那个链接,然后这对自己需求改了改配置。...转载 2018-09-06 20:25:41 · 14528 阅读 · 1 评论 -
linux下的应用模块传参及驱动模块传参的区别
在用户态下编程可以通过main(intargc,char*argv[])来传递命令行参数,而编写一个内核模块则通过module_param ()来传递参数一. 应用程序命令行传参运行结果如下:二. 内核模块传参module_param(name, type, perm)是一个宏,表示向当前模块传入参数。参数用 module_param 宏定义来声明, 它定义在 module...原创 2018-09-11 22:24:34 · 718 阅读 · 0 评论