
linux学习笔记
加油2019
想学的太多,路上满是坎坷,越是如此,越要勇往直前
展开
-
像OOM打印一样,查看各进程的内存信息,追踪内存泄漏
linux中当内存不够时,可能会触发OOM(out of mem),一般系统出现OOM,可能是系统中有进程存在内存泄漏。当系统出OOM时,会有各进程的内存信息和OOM评分,评分高的task_struct会被kill掉。为了追踪内存泄漏是哪个进程造成,需要像OOM的信息一样,从开机的时候的内存信息,和OOM时的内存信息作比较,差量最大的进程就很大可能是出内存泄漏。我们写一个KO,来给用户侧查看各进程的内存信息;提供proc文件task_meminfo,给用户cat。上代码:#include <l原创 2020-07-30 22:44:49 · 1757 阅读 · 0 评论 -
linux内核源码中的size-- >0是什么?
最近在啃linux源码,在vsprintf.c 中遇到一个语法很奇怪,size–&gt;0,自诩对c语言还掌握的不错?这是什么语法?不是指针也不是结构体啊!!难道是我没有掌握的的生僻语法?转眼才想起来,这就是个size-- 后和0比较啊!!结构指针学的脑子都短路了…linux源码中有很多自减自加的语法,–后比较这是我们上层开发中少遇到的,我们为了理解方便通常会分为两步运算,但是内核中,语法简洁为...原创 2018-10-30 23:46:02 · 387 阅读 · 0 评论 -
随笔misc:给你的嵌入式linux串口设置登录密码
passwd设置密码passwd命令设置root密码,然后copy /etc/passwd中加密后的密码到rootfs,重新制作根文件系统。设置inittab设置/etc/inittab条目::respawn:/bin/login 启动脚本最后启动login程序/bin/login注意如果inittab中login加 -f root,则登录界面可以被control + c杀掉。::respawn:/bin/login -f root...原创 2020-07-23 22:51:45 · 1450 阅读 · 0 评论 -
linux下编写驱动找不到linux/module.h头文件
刚学linux下驱动编写,第一天照着优快云上教程编写,发现没有问题,但是第二天又写了一个.c文件,编译时提醒找不到linux/module.h头文件百思不得其解!!看了对比原代码没有问题。最终原来是Makefile 写的出了问题obj-m:=__.o才对啊!! 居然少了个等号,很奇怪为甚么少了个等号也能编译。最终加上=后编译成功!!...原创 2018-10-26 23:35:33 · 12448 阅读 · 1 评论 -
linux下调用动态库.so ld能找到库文件但是找不到对应的函数,undefined reference to `myprint‘,用nm查看.so符号表函数名正常解决办法
编译命令解决办法:-L. -l库名 要放到.c之后ok!!!折腾了一个晚上,网上找了半天,才在一个评论里找到的,往其他新手少走弯路另外可以用nm工具查看.so .o文件的符号表要导出的函数名...原创 2019-03-10 13:32:45 · 3364 阅读 · 0 评论 -
linux信号处理会唤醒sleep的进程
最近在学习韦东山老师的字符型驱动 异步通知课程关于信号处理 驱动通知app进行读取按键值测试程序如下 :主循环中 休眠并printf ;信号处理函数中读取按键值并printf但是 测试时发现 主循环中的并不会定时打印,而是当信号处理函数触发时和信号处理函数中的printf一块打印。这是否和printf的不可重入有关的?还是信号处理的机制应该相当与中断主循环吧?信号处理的机制不是很懂。求...原创 2019-06-15 17:22:20 · 1666 阅读 · 0 评论 -
关于韦东山uboot移植,烧写yaffs文件系统中,烧写oob值不对,找不到init的解决方案
定位问题:<nand_util.c>nand_write_skip_bad 中在if (flags & WITH_YAFFS_OOB) { 之前就已经返回了;此处代码:会检查是否需要skip,不需要的话直接nand_write,这个函数是不会写原始的oob数据的。条件中添加不是写yaffs文件系统是才判断need_skip,直接进入后面的写ob流程,其中的两处修改...原创 2019-08-16 23:01:22 · 344 阅读 · 0 评论