Linux
j_j_g_a
这个作者很懒,什么都没留下…
展开
-
linux 内核启动参数
在bootargs中配置的参数。1. 为每句打印添加时间信息printk.time=1 (1/Y/y=enable, 0/N/n=disable)添加后的启动过程打印如:[ 0.768172] RPC: Registered tcp transport module.原创 2015-06-30 08:57:28 · 992 阅读 · 1 评论 -
VI 删除行尾空格
命令:%s/\s\+$//g可以删除行尾多余的空格和tab符号。命令:%s/ *$//g/和*中间有空格,只能删除行尾空格,对于tab不能删除转载 2014-12-31 15:25:11 · 17718 阅读 · 1 评论 -
pm_notifier 接收待机事件
相关函数位于kernel/power/main.c使用时需要包含头文件linux/suspend.hlinux 在待机和唤醒时会发出一些事件,通过注册接口可以在接收到这些事件时做些处理。使用方法:struct notifier_block verify_pm_notifier; //定义变量定义处理函数:static int verify_pm_notifier_func(原创 2015-02-07 17:44:04 · 2885 阅读 · 0 评论 -
linux syscore suspend/resume方法
转载自 http://markzhang.cn原文链接: http://www.markzhang.cn/blog/2014/04/09/linux-driver-suspend-orders/syscore是Linux kernel定义的一个framework,我们可以将我们的驱动注册到syscore中去。syscore比较关键的就是syscore_ops这个结构:struc转载 2015-02-06 18:12:46 · 3707 阅读 · 0 评论 -
[笔记] linux dd命令将一个文件填充到另一个文件中
工作中需要将A文件填充到B文件中的C开始处,长度为D。dd if=A of=B bs=1 seek=C count=D conv=notrunc修改后B文件长度不变。notrunc:不截短输出文件将A文件(长度为100)拷贝成B文件,长度为D(长度为200),但是A文件长度小于D,直接用下面的命令,生成的B文件长度为100:dd if=A of=B改用下面的命令原创 2014-12-27 12:13:31 · 9799 阅读 · 0 评论 -
PPPoE 中的包类型
PADI (PPPoE Active Discovery Initiation)初始化,由客户端广播发送如果一个用户想要使用DSL拨号连入Internet,那么他的计算机必须首先在其ISP的网络服务提供点(POP)找到DSL访问集中器(DSL-AC)。在以太网上通讯只能通过MAC地址。由于计算机不知道DSL-AC的MAC地址,于是就在以太网上广播一个PADI报文。这个报文中包含发送者的原创 2014-09-30 20:45:39 · 1559 阅读 · 0 评论 -
svn 命令行生成补丁
1 svn命令行生成补丁原创 2014-09-13 16:23:59 · 2285 阅读 · 0 评论 -
make 2>&1 | tee build.log 解释
用途编译时将编译log写到build.log文件中,同时在标转载 2014-08-15 16:40:21 · 6769 阅读 · 0 评论 -
启动参数中加上nohlt,使ARM CPU空闲时不进WFI
26 #ifdef CONFIG_GENERIC_IDLE_POLL_SETUP 27 static int __init cpu_idle_poll_setup(char *__unused) 28 { 29 cpu_idle_force_poll = 1; 30 return 1; 31 } 32 __setup("nohlt", cpu原创 2014-08-20 19:12:39 · 2447 阅读 · 0 评论 -
关于procps top 显示CPU占用率
1 背景之前不清楚它的含义,以为系统有问题。procps版本的top,%CPU列的值会给人造成误解,各task的CPU和 大于 顶部的us+sy。 2 top默认显示显示如下: top.t - 04:03:33 up 4:03, 2 users, load average: 1.34, 0.52, 0.38Tasks: 47 total,原创 2014-06-22 23:35:44 · 1507 阅读 · 0 评论 -
[笔记]linux 强制IGMPv2方法
在linux3.10中,默认IGMP使用V3版本。强制使用IGMPV2可输入命令:echo 2 > /proc/sys/net/ipv4/conf/eth0/force_igmp_version原创 2015-01-21 10:00:37 · 4859 阅读 · 0 评论 -
内核下按行读文件方法
内核态下没有fgets函数,如果要按行读取文件,需要用户自己实现。static char *read_line(char *buf, int buf_len, struct file *fp){ int ret; int i = 0; mm_segment_t fs; fs=get_fs();原创 2015-01-26 09:14:25 · 3244 阅读 · 1 评论 -
删除空目录
命令:find . -type d -empty | xargs -exec rmdir执行一次不够,执行后可以再执行:find . -type d -empty看是否还有空目录。如果a/b/c目录下为空,这个c为空目录,第一次执行时,把c删除了,这时b又为空了,需要再扫描一次。转载 2015-02-27 16:01:03 · 734 阅读 · 0 评论 -
linux 设置 tmpfs 大小
默认挂载tmpfs的大小,是可用内存的一半。可以在挂载时加上size选项来指定大小,如:mount -t tmpfs none /ttt -o size=100M也可以设置百分比,如:mount -t tmpfs none /ttt -o size=80%调整已挂载分区的大小mount -o remount,size=80% tmpfs /tmp原创 2015-09-02 18:11:11 · 11267 阅读 · 0 评论 -
linux 根据sp和fp查调用栈
1.ARM寄存器的别名寄存器名字Reg#APCS意义R0a1工作寄存器R1a2"R2a3"R3a4"R4v1原创 2015-08-26 21:22:48 · 3600 阅读 · 0 评论 -
反汇编uimage和查看符号表的方法
当只有uImage,而没有vmlinux,遇到问题时,可以通过这样的方法来查看反汇编。1. 从uImage中提到压缩后的image用UE打开uImage文件,找到1f 8b位置,如下,从0x58d4开始是gzip压缩的文件,使用dd将前面内容截掉。000058c0h: 75 6E 63 6F 6D 70 72 65 73 73 69 6F 6E 20 65 72 ; uncompres原创 2015-07-18 14:36:49 · 5366 阅读 · 0 评论 -
内核中修改和保存defconfig的方法
1. 要修改在arch/arm/configs下的文件xxx_defconfig2. make xxx_defconfig 会生成.config文件。3. make menuconfig 修改配置后保存4. make savedefconfig 生成defconfgi文件5. cp defconfig arch/arm/configs/xxx_defconfig 保存这样保存的原创 2015-07-13 13:55:18 · 12730 阅读 · 0 评论 -
tar.xz 压缩与解压
背景压缩比相对tgz和bz2都有优势,压缩时间长,解压时间短,适合版本发布。 压缩tar cf kernel.tar kernelxz -z kernel.tar和tgz相比,近乎一半:2.4M 2015-05-30 14:14 kernel.tar.xz4.6M 2015-05-30 14:14 kernel.tgz 解压tar xf kernel.t原创 2015-05-30 14:27:04 · 934 阅读 · 0 评论 -
linux下批量替换文件内容
如将当前目录下的所有.c和.h中的aaaa替换成bbbb:sed -i "s/aaaa/bbbb/g" `ls *.c *.h`转载 2015-02-12 10:27:49 · 478 阅读 · 0 评论 -
git patch记录
1. 使用git apply --check xxx.patch检查patch是否能打成功。2. 如果检查没任何显示,则说明可以打成功。使用git am -3 xxx.patch来打补丁。3. 如果不成功,则根据提示,挨个文件比较,修改xxx.patch。patch 的格式: a. 一般在修改前后都会有3行不修改的行,这些不修改的以空格开始; b. -21,33原创 2015-04-18 14:20:24 · 1015 阅读 · 0 评论 -
android下mount loop文件
将根文件系统存成文件,直接mount文件。修改init.rc文件,在on fs下添加mount ext4 loop@/mloop0.img /system原创 2015-04-18 17:58:26 · 1854 阅读 · 0 评论 -
linux新建目录并进入
在个人home目录下.bashrc末尾添加: # function # mkdir and enter it mkcd() { mkdir -p "$1" && cd "$1" }原创 2015-04-03 15:07:09 · 6333 阅读 · 2 评论 -
linux调试早期启动问题
原文地址:http://elinux.org/Debugging_by_printing#Debugging_early_boot_problems在内核启动时,只打印到下面的位置,后面便没有了,不知道卡在什么地方。Starting kernel ...Uncompressing Linux... done, booting the kernel.此时因为终端还没有初始化好,所转载 2015-02-15 16:17:34 · 755 阅读 · 0 评论 -
沐阳JP1081B USB转网口 内核选项
#沐阳JP1081B USB转网口 内核选项Device Drivers ---> Network device support ---> USB Network Adapters ---> Multi-purpose USB Networking Framework Davicom DM96原创 2014-07-29 19:10:52 · 2104 阅读 · 0 评论 -
EXPORT_SYMBOL warning data type
warning: data definition has no type or storage class原创 2014-07-11 14:09:57 · 2712 阅读 · 0 评论 -
iprule 需要的配置项
在使用iprule时,报如下错误:# iprule iprule: RTNETLINK answers: Operation not supportediprule: dump terminated 内核需要原创 2014-07-24 20:38:32 · 4836 阅读 · 0 评论 -
UBI学习笔记
1 概念1.1 什么是UBIUBI:Unsorted Block Image ——无排序区块图像 UBIFS最早在2006年由IBM与Nokia的工程师设计,是为了解决MTD(Memory Technology Device)设备的容量暴涨,YAFFS之类的FS无法再去控制NAND FLASH的空间。UBIFS通过子系统UBI处理与MTD设备之间的动作。与JFFS2一样原创 2013-09-17 22:37:39 · 5972 阅读 · 0 评论 -
cifs记录
搞了一个cifs mount的问题,将了解到的记录一下。一 概述什么是cifs?CIFS - Common Internet File System,即通用internet文件系统。cifs是微软搞出来的东西,CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机的服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它转载 2013-08-18 00:37:45 · 1672 阅读 · 0 评论 -
linux BogoMIPS学习记录
目前遇到一个问题,两颗不同主频的芯片,在android下显示的/proc/cpuinfo中的BogoMIPS竟然是一样的。借机学习一下BogoMIPS是怎么计算的。 BogoMIPS (Bogo--Bogus--伪的,MIPS--millions of instruction per second) 按照字面的解释是“不太真实的MIPS”。之所以不太真实,那是因为其计算方法并不十分转载 2013-08-21 11:27:10 · 4233 阅读 · 0 评论 -
用__LINE__来定义变量
背景在某些场合,定义一些变量,但是代码中并不需要使用这些变量的名字。比如像uboot中的command,将这些command变量统一放在一个区域中,直接去查找就完了。在这种情况下,使用宏定义,每次需要创建一个变量的时候,只需用宏定义来创建就行了,不需要指定变量名,很方便。 示例#define __param_name(line) param_##line#defi原创 2013-08-21 11:41:06 · 2165 阅读 · 1 评论 -
uboot给linux传递参数流程
是用mindmanager转的,格式有点不太好。1 ATAG1.1 为什么用ATAG uboot用atag向kernel传递信息: atag的定义可以在uboot的include/asm/setup.h中找到,对应linux中的定义位于arch/arm/include/asm/setup.h中。两者的定义要相同。 参数链表必须翻译 2013-07-30 11:52:42 · 2178 阅读 · 0 评论 -
VI 命令收集
学习中,收了一些常用的。VI 命令收集命令(normal)说明h 或 backspace左l 或 Space右j下k上^e(ctrl+e) 将屏幕上滚一行^y 将屏幕下滚一行^u 将屏幕上滚半页^d 将屏幕下滚半页^b原创 2013-06-21 08:59:24 · 786 阅读 · 0 评论 -
linux c检查文件是否存在
需要的头文件:#include #include #include 使用stat函数 struct stat stat_buf; int ret; ret = stat("filename", &stat_buf); 如果文件存在,则返回0。可以检查文件或目录。原创 2013-06-01 11:01:47 · 2192 阅读 · 0 评论 -
Kconfig学习记录
Kconfig –与Makefile一起决定编译哪些文件,宏的设置。最后生成.config文件。 在内核的Documentation/kbuild/目录下就格式说明。 主要有三部分组成:变量依赖帮助 变量类型 "bool"/"tristate"/"string"/"hex"/"int" 每一个config选项都必须有一个类型原创 2013-06-09 12:50:22 · 921 阅读 · 0 评论 -
linux服务器No space left on device错误解决方法
今天服务器新建文件时报No space left on device错误,但是用df看磁盘使用情况还剩余很多。于是在网络上找到答案,原来是inode用完了,是某个用户目录下引起的,但是该用户早就没有使用了,不清楚怎么还会出问题。1. 使用df -i 命令查看inode使用情况 如果在IUse%那一列为100%或接近,则是因为有大量的小文件。2. 找出是哪个目录下的 f转载 2013-04-25 20:36:39 · 6815 阅读 · 0 评论 -
VI学习笔记——插入模式下的操作技巧
缩进Ctrl + d 减少缩进Ctrl + t 增加缩进 复制相邻行内容Ctrl + y 复制上一行同一列的字符Ctrl + e 复制下一行同一列的字符 删除Ctrl + w 删除光标左侧的一个单词Ctrl + u 删除光标左侧的行 退出插入模式ESCCtrl + cCtrl + [ 这几个都可以从插入模式转载 2013-03-15 19:13:33 · 1006 阅读 · 0 评论 -
ubuntu 服务器安装记录
记一下,以后应该会用的上。打开root用户 Ubuntu默认没有打开root帐户,可以使用下面的命令打开。sudo passwd rootPassword: ——输入安装时那个用户的密码Enter new UNIX password: ——新的Root用户密码Retype new UNIX password: ——重复新的Root用户密码passwd:已成功原创 2013-05-02 17:36:17 · 825 阅读 · 0 评论 -
linux 网口phy问题记录
问题是这样的,内核启动识别网口的时候,多识别了一个,驱动本身是支持双网口的,理论上另一个phy不存在,应该识别不到。 后来发现是读phy_id的时候,对于不存在的Phy地址,有返回0的情况,但是内核认为只有0x1fffffff的才是空,多加了个判断条件得以解决。 记录下识别phy的过程:1. 在网口驱动的probe中,调用mdiobus_register;2. 在mdio原创 2013-12-12 15:48:13 · 5287 阅读 · 0 评论 -
USB 3G上网卡调试记录
一、运营商号码电信3G设置,CDMA2000:Dail number : #777User name : cardPassword : card中国联通3G设置,WCDMA:APN:3gnetAccess number:*99# (拨号号蚂) User name: 空Password:空中国移动 3G 设置,TD: APN: cmnet原创 2014-02-27 09:24:34 · 2226 阅读 · 0 评论 -
linux 3.10 Broadcast timer无法使用
SMP系统,内核选项CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y启动内核经常原创 2014-07-24 21:06:10 · 1581 阅读 · 0 评论