kernel

CentOS6.4 内核优化

吃可爱长大的小学妹 提交于 2020-03-02 21:04:26
vi /etc/sysctl.conf net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_max_syn_backlog = 65536 net.core.netdev_max_backlog = 32768 net.core.somaxconn = 32768 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_mem = 94500000 915000000 927000000 net.ipv4.tcp_max_orphans =

OpenCV 图像处理之膨胀与腐蚀

可紊 提交于 2020-03-02 16:46:08
OpenCV 膨胀与腐蚀 文章目录 1、什么是膨胀与腐蚀 2、形态学处理——膨胀 2.1 更改卷积核大小 2.2、更改迭代次数 3、形态学处理——腐蚀 3.1、更改卷积核大小 3.2、更改迭代次数 4、开运算和闭运算 4.1、开运算 4.2、闭运算 5、梯度计算 6、高帽和黑帽 6.1、高帽计算 6.2、黑帽计算 最后 1、什么是膨胀与腐蚀   膨胀与腐蚀属于形态学范围,具体的含义根据字面意思来理解即可。但是更形象的话就是“增肥”与“减肥”。   它们的用途就是用来处理图形问题上。总结性的来说: 膨胀用来 处理缺陷 问题; 腐蚀用来 处理毛刺 问题。   膨胀就是把缺陷给填补了,腐蚀就是把毛刺给腐蚀掉了。这里其实说的并不严谨,也是为了大家理解方便。下面我们就用实例来进行演示。 2、形态学处理——膨胀   我们先引入一张图片进行分析。 程序实现: img = cv2 . imread ( 'Pic/corrode.png' ) def cv_show ( img ) : cv2 . imshow ( '' , img ) cv2 . waitKey ( 0 ) cv2 . destroyAllWindows ( ) cv_show ( img )   图中我们可以看到,这张图片是一个二值图片(只有黑白),而且还增加了一些 毛刺 。而且还包含字体中还包含一些小的 间隙 (缺陷)。  

Jupyter Notebook 删除不需要的 Kernels

99封情书 提交于 2020-03-01 23:18:43
之前用某个python IDE 创建python项目的时候,不知怎地创建了一个 Kernel,现在使用 Juputer Notebook 后发现这个 Kernels 一直报错 Kernel error ,所以想把它删除掉! 1、先查看一下 Jupyter 下面有多少个 kernels : jupyter kernelspec list 2、然后执行下面的命令,删除指定的 kernel : jupyter kernelspec remove 需要删除的 kernel 名称 3、再次查看一下 list,删除的那个 kernel 是不是已经消失了: 4、刷新一下 Jupyter Notebook 页面,发现之前的那个 kernel 已经没有了: 来源: CSDN 作者: David_jiahuan 链接: https://blog.csdn.net/David_jiahuan/article/details/104600644

unable to open / read text file from kernel module on linux kernel version 4.2.3

别说谁变了你拦得住时间么 提交于 2020-03-01 17:19:44
问题 I have written a kernel module which I'm loading on kernel 4.2.3 . I am trying to read a simple text file in my init_module which basically loads some configuration data by reading the contents of the text file. This same code works on previous versions of kernel but not on 4.2.3 Below is my code snippet for reference : struct file* pFile = NULL; pFile = filp_open(fileName, mode, 0); if(pFile != NULL){ if(IS_ERR(pFile)) { printk("<1>error %p for %s**\n", pFile, fileName); pFile = NULL; } else

Ubuntu 12.10安装Bochs 2.6, 调试linux-0.11内核

主宰稳场 提交于 2020-03-01 11:56:20
http://blog.csdn.net/sinzou1/article/details/5903968 Linux(ubuntu)安装bochs http://wenku.baidu.com/view/f968e23b0912a21614792914.html ubuntu下安装bochs http://www.linuxidc.com/Linux/2011-07/38371.html Ubuntu 10.04安装Bochs 2.4.5笔记 http://blog.csdn.net/traceless/article/details/3200169 bochs的安装与使用 http://hi.baidu.com/_0x55aa/item/38e3ac01d72f0e1bcc34eae6 linux bochs的启动 本文介绍在SUSE Linux Enterprise Desktop系统下如何使用bochs调试内核linux-0.11版本 前言: linux-0.11虽然是早期内核代码,代码不超过2万行,但却基本是现今内核代码的精简版本,麻雀虽小,五脏俱全. 阅读理解完整代码,可以对整个系统的运作过程有深刻理解. 一. 准备工作(以root用户执行): 下载调试工具bochs: 在 http://sourceforge.net/projects/bochs/ 下载.tar

NUC980开源项目9-官方Kernel编译

℡╲_俬逩灬. 提交于 2020-03-01 11:47:48
上面是我创建的群聊,欢迎新朋友的加入。 项目码云地址(国内下载速度快): https://gitee.com/jun626/nuc980-open-source-project 项目github地址: https://github.com/Jun1172/nuc980-open-source-project ubuntu镜像,文件太大,加群私聊。 编译 BSP安装之后会获取到官方的linux kernel。 进入源码目录:cd linux-4.4.y/ 查看配置文件 ls arch/arm/configs/nuc980* 选一个进行配置 make nuc980_iot_defconfig 现在还不能直接编译,会报错找不到文件系统。 到之前下载bsp目录下,将rootfs拷贝到kernel源码同级目录。 官方配置的ramdisk镜像,文件系统会和kernel一起被打包。 同时在kernel同级目录创建image文件夹 mkdir ../image 安装软件 sudo apt-get install u-boot-tools 编译内核镜像 make uImage 编译完成,生成镜像文件 来源: CSDN 作者: Jun626 链接: https://blog.csdn.net/Jun626/article/details/104587747

wpa_supplicant与kernel交互

﹥>﹥吖頭↗ 提交于 2020-03-01 09:50:06
wpa_supplicant与kernel交互的操作,一般需要先明确驱动接口,以及用户态和kernel态的接口函数,以此来进行调用操作。这里分为4个步骤讨论。 1. 首先需要明确指定的驱动接口。 因为有较多的驱动接口可以使用,如 wext 、 nl80211 等。指定了之后,才能调用相应接口的方法。 2. 保存驱动接口 3. 接口函数的实现 ( 分为用户态和 kernel 态 ) 。系统已经定义了,我们只需找到定义的地方,了解有哪些函数。 4. 交互 (a) 用户态向 kernel 态发送请求 ( 通过 ioctl) (b)kernel 态向用户态发送事件通知 ( 通过 netlink) 1. 首先需要明确指定的驱动接口 (1) 查看 init.XX.rc 中指定的 driver 的命令参数; (2) 根据命令参数,在 wpa_driver_ops *wpa_drivers[] 中查找对应接口。 wpa_drivers[] 的定义是在 [-->external/wpa_supplicant_8/src/drivers/drivers.c] 2. 保存驱动接口 在 wpa_supplicant 初始化过程中,在 wpa_supplicant_init_iface 方法中会调用 wpa_supplicant_set_driver 方法。该方法中又会调用 select_driver 方法

Centos 7下PCIe Bus Error: severity=Corrected, type=Data Link Layer解决方案

喜欢而已 提交于 2020-03-01 08:41:51
近期,应测试需求,将批量比较老的联想台式机安装成CentOS 7系统(发现数十台电脑全这样报错)。发现网卡一直报错,经参考网上各类方案,通过修改grub,终于解决了此问题。 错误情况大致如下: Feb 28 11 : 52 : 07 test148 kernel : pcieport 0000 : 00 : 1 c . 5 : device [ 8086 : a115 ] error status / mask = 00001000 / 00002000 Feb 28 11 : 52 : 07 test148 kernel : pcieport 0000 : 00 : 1 c . 5 : [ 12 ] Replay Timer Timeout Feb 28 11 : 52 : 07 test148 kernel : pcieport 0000 : 00 : 1 c . 5 : AER : Corrected error received : id = 00e5 Feb 28 11 : 52 : 07 test148 kernel : pcieport 0000 : 00 : 1 c . 5 : PCIe Bus Error : severity = Corrected , type = Data Link Layer , id = 00e5 ( Transmitter ID )

用brk实现sbrk,关于brk的返回值

好久不见. 提交于 2020-03-01 03:58:32
首先我们已经知道linux下,malloc最后调用的是sbrk函数,而sbrk是对brk的简单封装。 用sbrk模仿malloc很简单,sbrk(0)得到当前breakpoint,再调用sbrk(size)即可。(PS:breakpoint表示堆结束地址) 一直以来让我困惑的是,怎么用brk去实现sbrk,换句话说,就是只有brk系统调用,如何能得知当前的breakpoint...难道就没有人想过这个问题嘛?搜索了各种关键字,来来回回都围绕着sbrk讲,算了,自己动手,丰衣足食,咱求人不如求己,还是自己分析分析好了, glibc中brk的wrapper如下: #include <unistd.h> int brk(void *addr); man手册中对此函数的描述: brk() sets the end of the data segment to the value specified by addr, when that value is reasonable, the system has enough memory, and the process does not exceed its maximum data size (see setrlimit(2)). RETURN VALUE On success, brk() returns zero. On error,

Kdump 学习小结

百般思念 提交于 2020-02-29 19:07:19
没有废话,直奔主题 什么是Kdump? Kdump 是一种的新的crash dump捕获机制,用来捕获kernel crash时候产生的crash dump。Kdump需要配置两个不同目的的kernel,其中一个我们在这里称作standard(production) kernel;另外一个称之为Crash(capture)kernel。 standard(production)kernel,是指我正在使用的kernel,当standard kernel在使用的过程中出现crash的时候, kdump会切换到crash kernel, 简单来说,standard kernel会正运行时发生crash,而crash(capture) Kernel 会被用来捕获production kernel crash时候产生的crash dump。 捕获crash dump是在新的crash(capture) kernel 的上下文中来捕获的,而不是在standard kernel上下文进行。 具体是当standard kernel方式crash的时候,kdump通过kexec(后面介绍)自动启动进入到crash kernel当中。如果启动了kdump服务,standard kernel会预留一部分内存, 这部分内存用来启动crash kernel。 kdump机制主要包括两个组件