- 博客(61)
- 资源 (32)
- 收藏
- 关注
原创 Linux文件的扩展属性
其中capability,selinux为常用项,capability 是linux内核对能力的的配置参数,selinux则是内部强访等使用的配置参数。在进程启动后,他每通过一个系统调用时,都会使用cap_capable 来检查它的cred中的cap_effective是否有效。启动一个bash,以centos的用户名,此用户名的capability为cap_net_admin。这两个命令的关键字是attr,不是xattr,但他们是文件的扩展属性的另一个基础版本。
2023-05-31 16:57:19
1695
1
原创 centos7(redhat7) 中localtime_r有一个BUG
centos7(redhat7) 中localtime_r有一个BUG。具体过程如下:step1 后台进程启动。step2 用户修改时区。step3 后进进程在使用localtime_r取时间时,不会更新时区。取得时间还是旧的时间。但是localtime使用新的时区计算时间。step4 此时再使用localtime调用后,localtime_r才使用新时区,计算时间。PS, centos6...
2020-03-03 11:34:11
1022
原创 epoll的注意事项
最近使用了epoll发现。在epoll_create 返回的fd,被配置FD_CLOEXEC,是不起作用的。子进程可以继续使用它。并可以继续使用epoll_ctl增加侦听文件句柄。而父进程可以收到此句柄的读写事件。但是父进程由于没有此句柄,所以读失败。在高版本的epoll_create1(flags),此flags可以EPOLL_CLOEXEC,完成CLOEXEC的功能。...
2020-03-03 10:54:34
388
原创 函数指针的用法。
#include <stdlib.h>#include <stdio.h>#include <unistd.h>#include <sys/types.h>typedef int (*funtcb)(void);int functa(void){ printf("%s %d \n",__func__,__LINE...
2018-10-27 09:51:14
635
原创 疑问:进程启动时如何加载动态库。
A程序与B程序都需要同一个动态库libc.so那A程序已经运行了,并加载了libc.so到内存,那么此时启动B程序,还需要加载动态库libc.so嘛?还是说B程序直接调用A程序已经加载了个libc.so呢?https://blog.youkuaiyun.com/YEYUANGEN/article/details/37657937...
2018-08-10 16:54:53
1184
转载 关于asmlinkage
关于asmlinkage 声明,仅为了便于自己记忆和查询,非原创,摘自:http://blog.youkuaiyun.com/skywalkzf/archive/2009/12/24/5068966.aspx 什么是 "asmlinkage"?相信大家在看linux的source code的时候,都会注意到asmlinkage这个宏,它是用来做什么的呢?The asmlinka...
2018-08-10 15:35:18
730
原创 高通里的extender_ap,proxysta,qwrap
在谈以上三个技术时,需要先谈一下WDS。这些技术都是对WDS的扩展与增强。WDS技术是把两个AP连接起来,一个做主,一个作从。从AP把信号范围进行了扩展(range extender)。那么可以多级扩展吗?如下:在一个方向上进行多级扩展?ROOTAP ----- wdsAp -----wdsap.我感觉是不可行的。高通的extender_AP技术组网图:AP-----extender_ap -...
2018-05-24 11:56:50
2083
原创 TC 队列规定家族:根、句柄、兄弟和父辈
TC parenthandle参数的用法tc class上的parent :参数是队列ID。classid是自己的ID。tc qdisc parent 参数是类的ID。见下例: tc qdisc add dev eth0 root handle 9: htb default 11 #root id 9 tc class add dev eth0 pare
2018-04-17 14:48:09
1465
原创 gcc同时连接静态库和动态库。
我在centos7上的测试:makefile文件all: test static_mainCC=gccQ=E=echo%.o: %.c $(Q)$(CC) -c -o $@ $(CFLAGS) $< $(Q)$(E) " CC " $<libdyn.so:dyn.o $(CC) -shared -fPIC -o $@ ...
2018-04-08 17:33:22
1754
原创 C语言可变参数打印。
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/errno.h>#define __log(t,fmt,...) \ printf("mesg level: %d |"fmt,t,##__VA_ARGS__);#d...
2018-03-30 15:13:08
994
原创 又见高通板子flash分区问题。
高通的4028芯片。板子是:IPQ40xx/AP-DK01.1-C2Uboot可能见到128Mflashlinux系统只看到64M ,见下图的mtd8看到uboot代码,bootipq命令的过程先配置一些环境变量setenv bootargs 'ubi.mtd=rootfs root=mtd:ubi_rootfs rootfstype=squashfs rootwait'setenv fsboot...
2018-03-21 14:49:15
5169
原创 linux与应用层通信方式 之nf_sock_opt
//内核部分代码。大家可以COPY ipt_sockopts//#include #include #include #include #include "hello_sock_opt.h"#include #include #include #include #include #include #include #include #include #include
2018-01-19 15:07:32
657
转载 OFDM+sym的立体图
这个图很好的解释了wifi的“信息符号”,“guard interval",子载波。三个概念。PS:这个图是从一个国外网上COPY下来的,但忘了源地址了。
2018-01-15 13:43:36
377
原创 修改高通IPQ4019/4018的flash的分区
修改IPQ4019/4018的MTD分区简介高通的IPQ4018的SoC使用了ARM的CPU,并使用了高通的QSDK.在开发中发现很难在它的架构中去修改MTD分区信息。今天就提供一种可以修改MTD分区的方式。 MTD分区信息是如何从Uboot传到linux的,有几种方式?换一种问法 uboot如何把参数传入linux呢?cmdline和FTD(设备树)先讲一下简单的cmdlineUboot以boo...
2018-01-05 15:40:38
9472
原创 python类的动态方法是否可以访问到私有变量。
python的类,类的私有属性__attr。私有属性只能通过类的方法来访问。又学习到了实例和类都可以动态增加方法和属性。在此我就有一个疑问。类的动态增加的新方法,可以修改类里的私有属性吗?class Student(object): def __init__(self,name,score): self.__name=name;
2017-12-28 10:42:47
1358
原创 http与CGI的测试之POST的方式。
在httpRequester发出POST时,可以由两种返回参数(提交参数)的方式。1是在URL里;2是在content里。如下图在CGI中进行接收时,对两种方式的接收方式也不一样。URL后面的参数由HTTP服务器放到全局变量QUERY_STRING里带给cgi.content里的则由HTTP服务器启动CGI后,使用stdin发给CGI。由CGI read stdin来得
2017-08-30 11:14:20
3909
原创 尾递归与尾调用
在很多的高级语言中,都会提到尾递归的特性。当年在大学里学递归时,老师特别强调递归次数与进程栈的关系。递归越多,函数入栈越多,由于进程有栈空间有线,会生成栈越界。下图是一个入栈的过程。main call funcA ;funcA call funcB
2017-08-28 09:11:58
1123
翻译 centos7 64位系统安装32位库时发生冲突
冲突的日志如下:Transaction Check Error:file /usr/share/man/man1/ca.1ssl.gz from install of openssl-0.9.8e-27.el5_10.3.x86_64 conflicts with file from package openssl-0.9.8e-27.el5_10.1.i686file /usr/shar
2017-08-23 10:39:41
3855
原创 Vbox error: cannot be closed because it is still attached to 1 virtual machines
在使用vritualBox时,手动移动了一下虚拟机的物理位置。再双击win7.vbox发生了如下错误。通过google, 得到了解决方式。1,先把win7.vbox 备份。2,使用文本工具打开win7.vbox,3,,删除有关hd的一项配置信息。
2017-08-23 07:43:49
4550
1
原创 为linux内核子目录里的makefile增加-g
在相应的子目录里的Makefile里增加一句。EXTRA_CFLAGS +=-g此这个目录里的.o文件会带有debug。
2017-08-21 17:29:24
3537
转载 printk(%p的各种方式)
https://www.kernel.org/doc/Documentation/printk-formats.txtIf variable is of Type, use printk format specifier:--------------------------------------------------------- int %d or %x unsign
2017-06-21 11:55:37
10285
1
原创 https原理交互图
http://www.ruanyifeng.com/blog/search.html?cx=016304377626642577906%3Ab_e9skaywzq&cof=FORID%3A11&ie=UTF-8&q=cdn&sa.x=0&sa.y=0http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.htmlhttp://www.
2017-06-16 11:27:13
931
原创 BPF socket filter
伯克利包过滤(Berkeley Packet Filter,BPF)以dhcpc过滤udp port 68为例,进行一下说明static const struct sock_filter filter_instr[]
2017-06-06 19:26:57
2148
原创 IPQ4019MTD分区生成的过程
简介本文介绍一个IPQ4019的MTD分区信息是如何从配置文件一步步传递到linux内核的。这个过程有几个部分组成,分区信息在编译过程中的传递;升级时写入flash区;设备上电时linux如何得到分区信息。 上电后linux打印的MTD分区如下图。 分区信息在编译过程中的传递原始的配置文件BOOT.BF.3.1.1/boot_images/build/ms/bin/
2017-04-21 13:37:17
11025
6
原创 从设备树的reg到/proc/iomem
在linux系统中,iomem_resource的信息被输出到/proc/iomem中。我们以高通IPQ4019芯片为例进行一下示例说明step1 在/proc/iomem中看一下iomem_resource的情况[root@Abloomy:~]# cat /proc/iomem060f8800-060f88ff : qscratch_base078af000-07
2017-04-20 17:26:15
4328
2
原创 嵌入式系统linux 记录内存panic
简介在内存发生panic时,需要把panic的日志保存下来。以方便日后进行分析。目前有三种记录的方式: kdump; mtdoops; crashlog(这是openwrt特别的功能,正式linux内核中没有)大家对kdump比较了解。它主要使用于x86系统。因为它使用占用大量内存和硬盘。mtdoops和crashlog主要用于嵌入式的环境。也只是记录文本日志。mtdo
2017-04-19 15:17:51
5724
原创 ipq4019 识别板卡型号的过程
openwrt系统启动后,会在/tmp/sysinfo/生成两个文件。其中保存了板卡型号的信息。如下日志。[root@Abloomy:sysinfo]# pwd/tmp/sysinfo[root@Abloomy:sysinfo]# lsboard_name model[root@Abloomy:sysinfo]# # cat board_nameap-dk01.1-c1
2017-04-17 18:35:00
6621
1
原创 强制目标
例子下:.PHONY: fileB #在makefile中.PHONY:表示fileB是一个标签,不是一个真文件。每一次更新fileB时,它的Recipe(制作方式)都会执行。fileB: echo `date` >>$@ #fileA 的 prerequisite是FORCE,FORCE是一个无prerequisite无recip
2017-02-28 09:04:43
441
原创 在新linux中使用proc_create_data编写proc
主要讲使用proc_create_data如何传递私有数据。其中可以参考/fs/proc/uptime.c以下是我在工作中,针对一个phy驱动写的一个procconst char *___dev_name(const struct device *dev){ /* Use the init name until the kobject becomes avail
2016-07-19 15:03:04
15463
1
原创 openwrt编译qca驱动不成功。gcc -isystem问题。
在最新openwrt里移植qca驱动发现,编译不成功,错误如正下:GNU C (OpenWrt/Linaro GCC 4.8-2014.04 unknown) version 4.8.3 (mips-openwrt-linux-uclibc) compiled by GNU C version 4.4.7 20120313 (Red Hat 4.4.7-16), GMP v
2016-01-09 16:10:58
8251
1
原创 MCS速率计算公式
MCS速率计算公式HT20的方式。MCS索引调制方式子载波个数52/56数据载波为总子载波-4。FEC有效信息和整个编码的比率3/4 或是5/6空间流数1/2信息符号间隔GI800ns的速率信息符号间隔GI400ns 的速率0BPSK
2015-07-27 17:44:35
11738
原创 lsdk无线驱动与管理层的接口
lsdk无线驱动与管理层的接口在linux的应用层,有wlanconfig 和iwconfig,iwpriv三个命令来配置和管理无线接口,在内核里有三种不同的处理方式与三者对应。Wlanconfig 主要是创建虚拟接口; iwconfig 和iwpriv则可以配置无线接口。当然还有hostpad也会对无线虚拟接口进行配置。命令Ioctl号驱动
2015-07-27 17:02:50
2336
原创 dd命令,分割文件。合入文件。
/tmp # /tmp # dd if=a.bin of=c.bin bs=128k skip=18 //一个块为128K,跳过前18块。18+1 records in18+1 records out/tmp # dd if=a.bin of=b.bin bs=128k count=18 //bs=128k,表示一个块128k, 从文件头开始,读取18块。18+0
2015-05-26 17:33:30
12404
USB官网文档
2017-01-05
USB 2.0英文规范
2017-01-04
makefile中文手册
2014-11-13
Linux_event层机制分析.pdf
2013-10-18
《Qt Creator快速入门》代码
2013-10-18
Linux 的高级路由和流量控制HOWTO --中文版
2012-11-29
漫谈兼容内核--毛德操
2011-09-23
Linux内核源码详解
2010-05-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人