- 博客(31)
- 收藏
- 关注
原创 【Linux】
void sendmsg_packet_to_client(struct dhcp_packet *dhcp_pkt, int force_broadcast){int fd = server_socket;struct ifreq ifr;struct msghdr msg;struct sockaddr_in dest;struct cmsghdr *cmptr;struct i...
2022-07-16 13:10:33
229
原创 【Linux】UDP广播报文接收速率问题
项目采用的是3.10.108的kernel,在测试时使用发包功率高速发送DHCP Request报文,发现busybox中的udhcpd 进程状态为D,抓包看,没有offer包,而且样机ping不通。分析发现是在kernel中的函数udp_queue_rcv_skb中:if (sk_rcvqueues_full(sk, skb, sk->sk_rcvbuf)){//printk("%......
2019-09-18 15:38:10
1692
原创 【Linux】线程互斥问题
semTakesemTake返回-100,而不是阻塞等待信号量释放,是因为kernel配置中CONFIG_FUTEX没有打开;
2019-07-30 17:20:54
310
原创 sys.fork_exec和os.excute实现的差异
函数sys.fork_exec和os.excute实现的差异os.excute是lua os库中实现的函数/lua/src/src/loslib.cstatic const luaL_Reg syslib[] = {236 {“clock”, os_clock},237 {“date”, os_date},238 {“difftime”, os_diff...
2018-09-29 09:27:17
1717
原创 【工具】git命令使用小记
git使用例子1.克隆远程仓库git clone URL2.切换到某个分支git checkout branch_name3.提交某个文件修改git add file /*对修改的文件先add到本地缓存区,然后通过commit加入到本地仓库,在push到远程仓库*/git commit filename4.显示文件的修改记录git diff...
2018-06-16 14:09:41
253
原创 【LUA】调试小技巧
Lua调试记录项目需要调试lua,有两个小方法记录一下:通过下载明文的lua脚本,在开发板上直接修改和调试lua脚本在拷贝到文件系统后,通过luac进行加密,软件运行时,在文件系统中是看不到明文的lua脚本内容。可以通过删除tmp目录下的luci-modulecache/ luci-sessions/目录,重新下载明文的lua脚本代替加密的lua脚本,这时候就可以直接在板子上调试...
2018-06-15 17:36:00
2877
原创 【无线】hostapd cli用法
hostapd是用户态的守护进程,用于无线station接入和安全认证,hostapd_cli是用于访问hostapd并且获取当前ap信息和对ap进行操作的客户端程序。用法如下:/*查看帮助*/@OpenWrt:/tmp# ./hostapd_cli --helphostapd_cli v2.0-develCopyright (c) 2004-2012, Jouni Malinen <j@w...
2018-03-29 17:41:39
15143
原创 【Linux】SD卡调试
1)hotplugEventsocket = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);socket 返回Protocol not supported,跟踪libc库中的文件socketcalls.c,socket的系统调用:int socket(int family, int type, int protocol){ u...
2018-02-09 16:30:14
2726
原创 【Linux】【Kernel】BUG: scheduling while atomic问题分析
scheduling while atomic
2017-06-07 20:40:05
14535
原创 【Linux】Posix信号量操作中的函数
主要函数sem_init#include <semaphore.h\int sem_init(sem_t *sem, int pshared, unsigned int value);Link with -lrt or -pthread.sem_init函数是posix信号量操作中的函数。sem_init初始化一个地址有参数sem指定的匿名信号量,value参数指定该信号量的初始值
2017-03-28 09:36:53
1430
原创 【Linux】【编译】libmpc.so.3: cannot open shared object file: No such file or directory
交叉编译zlib出现找不到libmpc.so.3问题
2016-11-16 15:17:26
21849
2
原创 【无线】【流程】QCA无线驱动收包流程分析
概述:无线驱动的收包过程是基于中断的处理方式。在准备接收数据之前,驱动需要先进行初始化接收数据使用到的相关结构( sc_rxbuf和rxfifo )。当数据包到达时,硬件会首先进行 DMA,完成以后产生Rx中断。中断处理过程又分为两个部分,首先是立即执行的上半段处理,负责将数据包从软件接收缓冲队列中取出,并补全接收缓冲区,以便继续接收数据;然后就是一个 tasklet机制的调度,进行数据包
2016-11-10 18:05:08
4086
原创 【Wireless】【加密】WPA/2-PSK密码格式
hostapd的帮助文档中对WPA PSK的描述:# WPA pre-shared keys for WPA-PSK. This can be either entered as a 256-bit# secret in hex format (64 hex digits), wpa_psk, or as an ASCII passphrase# (8..63 characters)
2016-07-15 09:18:44
5320
原创 【Linux】【Makefile】开源软件的编译问题
在编译服务器Jenkins上为新平台的MTK方案新建了一个job,但是在编译的时候发现当编译开源软件cloud_client时出现问题,表现的现象是配置脚本configure出现错误,控制台输出的错误信息是: checking whether C compiler accepts -Wunused-result... nochecking whether C compiler acc
2016-07-06 11:37:05
1961
原创 【C语言】数据类型转换导致读取参数错误
一个数据结果定义如下:typedef struct {int enabled;unsigned char type;int size;unsigned char name[8]} MY_STRUCT;然后定义一函数接口,本意是对MY_STRUCT中的int类型和string进行读取,这里函数接口的作者忽视了unsigned char,视为int类型_
2016-05-31 14:36:28
994
原创 【Wireless】WEP和WPA的基本概念和实现方法
WEP用以保护数据的RC4秘密(cipher)属于对称性流密码,流密码用到称之为密钥流的位流,密钥流随后和信息结合,产生密文。为了还原原始信息,接收端会以相同的密钥流处理密文。RC4会利用异或(XOR)运算结合密钥流和密文。流密码的与做方式通常是选用一把较短的密钥,然后将之展开成和信息等长的伪随机密码流。伪随机数生成器(pseudoradom number generator,PRNG)是一组
2016-05-31 13:52:06
1153
原创 【Wireless】通过WE扩展获取当前信道
通过无线的WE扩展可以获取无线的相关参数,Wireless Extension (WE)是一组通用的API,能在用户空间对通用Wireless LANs进行配置和统计。它的好处在于仅通过一组单一的工具就能对各种各样的Wireless LANs进行管理,不过它们是什么类型,只要其驱动支持Wireless Extension就行;另一个好处就是不用重启驱动或Linux就能改变这些参数以下通过获取当
2016-04-15 15:35:48
778
原创 【Linux】【文件系统】squashfs文件系统挂载失败问题
最近负责将A公司一个比较稳定的代码分支移植到新平台上,新平台中包含了M公司和B公司的代码,这样的一个代码架构方便以后不同公司芯片方案的添加和开发。在移植的过程中,编译成功后DUT上电,但是出现解压文件系统失败,串口信息:0.760000] unlzma 632[ 0.760000] unlzma 634[ 0.764000] unlzma 632[ 0
2016-03-18 10:49:31
9571
原创 【Linux】【驱动】MTD分区表信息解析方法分析
static const char *part_probes[] __initdata = {"cmdlinepart", "RedBoot", NULL}; 这个说明MTD分区参数的分析有两种方法,一个是命令行,一个是通过redboot在xxx_flash_init函数(xxx是芯片代号)中会调用np = parse_mtd_partitions(mtd, part_probes, &mtd
2016-01-28 14:31:40
5424
原创 【Linux】【Debug】编译错误error: two or more data types in declaration specifiers
在项目开发时,遇到编译出错,看提示是重复的定义,错误信息如下:In file included from ./include/wrn/wm/common/wm.h:176, from ./include/wrn/wm/http/httpLib.h:55, from ./include/wrn/wm/common/wmAut
2016-01-26 13:55:00
2143
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人