- 博客(141)
- 资源 (3)
- 收藏
- 关注
原创 Openwrt patch 管理工具 quilt
在没有版本控制的source code 去查看 diff 等比较困难, 但是openwrt 提供了quilt 来进行管理。常用命令:初始化:quilt init。创建一个新 quilt 项目。创建补丁文件:quilt new <patchname>.patch。创建一个新的空补丁文件。添加文件到补丁:quilt add <filename>。将更改的文件添加到当前补丁中。编辑文件:quilt edit <filename>。将文件标记为已编辑,通常与 quilt add 一起使用。
2025-01-10 17:07:03
533
原创 OpenWrt-study
Detail please refer openwrt offical website[OpenWrt Wiki] The OpenWrt source codeHow to add oneself package into to openwrt please refer it. https://zhuanlan.zhihu.com/p/663797787
2024-11-29 09:36:14
208
原创 Hostapd-parameters introduction
Hostapd - Gentoo wikihttps://wiki.gentoo.org/wiki/Hostapdplease refer the offical tutorial websit.
2024-11-29 09:34:05
214
原创 git 命令
reback one specific file to latest(恢复那个文件)download code (-b 带banches 名字)reset all file to a commit-id (退code)only return one change (推其中的一笔)reivew 提交到特定的branches。reset 到具体的braches。
2024-09-23 16:33:42
449
原创 wifi MSDU MPDU BA
用于指示位图中的第一个MPDU的序列号,比如上图中Starting Sequence Number是1944,那么位图中的第一个位对应序列号为1944的数据帧,第二个位对应序列号为1945的数据帧,以此类推。这个位图中的每一位对应一个数据帧,如果某个数据帧已经被正确接收,那么相应的位就会被设置为1,否则为0。AMPDU在设计上就比较健壮,中间某一个MPDU出现传输异常的时候通常不会影响后面正常传输的MPDU的接收,再配合BA就可以做到对聚合的每个MPDU进行确认应答,这样大大提升了系统效率。
2024-09-14 14:41:47
584
原创 nvim (setup copilot)for code assit
4. Work with Neo Vim4-1. Install Neo Vim (0.9.5 or higher)neovim/neovim: Vim-fork focused on extensibility and usability (github.com)~ $ curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz~ $ sudo rm -rf /opt/nvim~ $
2024-09-12 17:54:33
2280
原创 gcc 安全编译选项参数
fpie 主要影响编译过程中代码的位置无关性生成,而 -pie 则确保最终生成的可执行文件具有位置无关的特性,两者共同作用,使得程序更加安全、灵活,并提高了与不同平台兼容性。1. LDFLAGS += -Wl,-z,relro,-z,now 这个是为了防止内存越界,一旦越界,就会segmentation fault(这个是连接参数)也就是说-fpie 是编译参数, 而-pie 是连接参数。-fPIC:生成位置无关的代码,适用于动态链接。-fPIE:为可执行文件生成位置无关代码。
2024-08-22 17:33:47
324
原创 WiFi - BSS Color /Multi ap condination
区分出MYBSS和OBSS信号后,就可以双标对待了。而对OBSS,OBSS的协议门限可以稍微高点,只要在OBSS的协议门限内,终端即认为不存在同频干扰,这样终端和AP依旧能发起通信,这就能达成了空间复用的效果。BSS Coloring机制原理就是为不同的AP发出的报文套上不同颜色的信封,接收端收到信后,不拆信封就能立马判断是否跟自己相关,颜色相同表示跟自己相关,颜色不同就跟自己无关,对于跟自己无关报文就当不存在,接收端依旧可以发起通信而不必退避,这就达到了空间复用的效果。这样就会减少竞争和资源浪费。
2024-07-26 13:50:45
757
原创 WiFi - NAV/CCA
主要靠txop 来竞争,txop 有两种机制 一种是poll txop就是给每个ap 都分配好一个时间片 轮到了就开始传输,一种是NAV(Network allocate vecotr)网络分配矢量,这种机制就是。NAV本身其实就是一个定时器,用来指定预计要占用媒介多少时间,以微妙为单位。工作站会将NAV设定为预计使用媒介的时间,这包括完成整个操作必须用到的所有帧。以上两个NAV定时器同时工作,如果由任意一个NAV设置为非0,也就是正在定时中,那么就认为信道是忙,正在被占据。
2024-07-26 13:30:49
857
原创 Wi-Fi AuthMode & Encrypt Mode
osa(open system authentication),psk(preshare key),802.1x(radius for enterpris),sae(Simultaneous Authentication of Equals),OWE(open wifi enhance),SKA(挑战帧交换:AP先向STA发送一个挑战明文包(一个字符串),然后STA使用共享的密钥对挑战明文进行对称加密并发送给AP,AP解密然后对比原始挑战明文,对比一致则认证成功)可以有 SAE ,OWE ,802.1x。
2024-07-25 17:57:46
541
原创 Docker use experience
docker run -it -d --name 容器名 -p 宿主机端口:容器端口 -v 宿主机文件存储位置:容器内文位置 镜像名:Tag /bin/bash。docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]docker load -i
2024-07-24 09:46:23
401
原创 WiFi -STBC
在rx tx 数对等时 基本用不到, 单 tx 大于rx 时 为了可靠性 其他的antenna 可以发送 数据拷贝 以用来怎加 数据可靠新和 传输距离。这个概念是在mimo 时 衍生出来的概念, 目的是为了提高 数据传输的 可靠性和传输距离。STBC 是 时空分组编码, 是MUMO 的 增强。
2024-07-19 14:58:48
466
原创 wifi preamble code, 前导码
WiFi packets 很神奇,自从802.11 协议诞生以来 就对信息传输 产生了无尽的影响, 闲来无事 看看wireless 空口包 发现 前导码 非常奇怪。并且 radiotap 是有在包中体现的, 而802.11 radio information 没在包里 为什么。这是因为前导码 就是为了辅助 wilrless 设备通讯的, 就是为了交流信道信息,资源利用状况等。前导码2 是 driver 根据当前的 状况 填写的一些信息。前导码1 是由网卡(NIC)来填写的 一些基本信息。
2024-07-19 14:09:11
470
原创 wifi blog 推荐
#wifi blog https://zhuanlan.zhihu.com/p/375649906https://www.zhihu.com/column/dot11
2024-07-19 11:22:55
394
原创 WiFi EDCA 是什么
wifi 不同于802.3 协议,他的频谱资源需要竞争, 这里既有一种分布式的金证机制。当 EDCA 竞争失败时 他就得不到资源 就无法和sta 进行通讯。EDCA 其实是phy 层 竞争的一种机制。
2024-07-18 19:05:23
810
原创 如何追查一个packet在linux 系统哪里丢失
>我们可以查看cat /proc/sys/net/ipv4/tcp_max_tw_buckets 最大条数, 然后如果cat /proc/sys/net/ipv4/tcp_rw_recycle 开启时, 我们可以用netsta -at | grep "TIME_WAIT" | wc -n 来统计有多少半连接, 然后 在抓包 如果会的RST 那基本就是这个导致的。默认是关闭的,必要时可以开启该配置。=> 检查方法: cat /proc/sys/net/ipv4/tcp_max_syn_backlog。
2024-07-16 16:56:23
920
原创 Linux C embed development (personal rveiew)
bin 结尾的可以用作烧录机器烧录(但一定要注意, 这个bin 有两种,1. 是文件名中带raw 的 1. 名字中没有raw包含bootstrap) 带raw的是不带ecc 的可以用作bootloader tftp 升级. 带bootstrap 的是用作烧录的带ecc.如果不是dongle fw, 则有连个ko for wl test (wl_mfgtest.ko hnd_mfgtest.ko), 这两个 ko 在sdk 中有的有 prebuild 的ko 有的没有就需要自己去编一个test ko。
2024-07-11 14:34:56
864
1
原创 Prpl & openwrt foundation introduce
Prpl 官网: Prpl documents and code introduce:
2024-05-17 13:24:41
893
原创 WiFi PMF
WiFi PMF (Protected Management Frames), 这个功能是 保护管理桢,如果client 也支持的话 pmf 就会加密管理桢。所以在抓包查看时 要注意 解密 后才能看到相应的信息 比如BTM Reqeuest 等系列包。
2024-03-14 11:19:58
1491
原创 A-MSDU 和 A-MPDU 区别
通常,当AP 或无线客户端从协议栈收到报文(MSDU)时,会打上Ethernet报文头,称之为AMSDUSubframe,而A-MSDU技术旨在将若干个A-MSDUSubframe按照802.11协议格 式,封装成一个MPDU报文单元,即是A_MPDUSubframe。MPDU是更低层次的聚合,协议栈收集一定数量的802.11MAC帧,将其聚合后打上PHY标头进行传输,MPDU聚合帧中的每个子帧均有完整的802.11MAC帧头。A-MSDU在进入MAC层之前完成聚合,而A-MPDU在MAC层之后完成聚合。
2024-03-12 16:09:34
1009
原创 OpenAI (ChatGPT)中国免费试用地址
GitHub - click33/chatgpt---mirror-station-summary: 汇总所有 chatgpt 镜像站,免费、付费、多模态、国内外大模型汇总等等 持续更新中……个人能力有限,搜集到的不多,求大家多多贡献啊!汇总所有 chatgpt 镜像站,免费、付费、多模态、国内外大模型汇总等等 持续更新中!个人能力有限,搜集到的不多,求大家多多贡献啊。上边时GitHub 上的 推荐列表。
2024-03-08 17:34:28
6340
原创 github 和 gitee 技巧
找空项目 xx starter /xx boilerplate。找教程:xxx tutorial。找百科 awasome xxx。找例子 xxx sample。
2023-12-01 16:54:15
507
原创 常用网站 概述
ProductHunt网:https://www.producthunt.com/CB Insights网:https://www.cbinsights.com/)CrunchBase网:https://www.crunchbase.com/DataFox网:http://www.datafox.com/因果树网:http://www.innotree.cn/199IT网:http://www.199it.com/1.中华人民共和国统计局。2. 中国互联网络信息中心。7.中国互联网数据资讯中心。
2023-12-01 16:41:35
9653
原创 linux docker 使用详解
这里注意save 时 要保持docker 有足够的空间大于原来imamge 的大小 (docker 剩余空间大小 检查方法 docker info | grep ”Docker Root Dir“ 然后 df -hal 那个目录 比如 df -hal /var/lib/docker) 空间不够会报no left space 的error。想要制作自己的image 必须有原始的docker image 这个可以从github 上下载你想要的image (根据linux 版本等去选择)
2023-12-01 11:29:49
1302
原创 Openwrt linux 启动流程
preinit函数配置了环境变量PREINIT,然后再去fork进程来执行/etc/preinit,执行完毕后,再调用回调函数spawn_procd,在回调函数spawn_procd中调用了execvp函数来启动/sbin/procd,/procd最后执行/etc/init.d/目录下的文件,从而启动系统各个服务。这几个脚本主要定义了shell函数,在preinit.sh中,定义了一些函数挂到hook上,当运行时,这些hook会按函数加入的顺序来启动函数。到此,/etc/preinit执行完毕并退出。
2023-11-24 11:22:05
1267
转载 backtrace 函数来追踪 程序问题
函数backtrace返回调用程序的堆栈回溯,结果保存在参数buffer中,buffer指向数组中的每一项都是void *类型,它们是堆栈中的返回地址。参数size指定buffer中可以存放的最大数目,如果返回地址的数量多于size,则返回最近的size个地址。因此,要想获取完整的返回地址列表,buffer必须足够大。与前面不同的是,其不会返回字符串数组,而是将字符串写入fd所代表的文件,一行一个,还有一个不同的是,它不使用malloc,因此在malloc可能会失败的某些场合,可以使用这个函数来代替。
2023-06-27 18:31:25
748
原创 getrlimit()与setrlimit() 来获得和设置进程资源
终止w/core的含义是:在进程当前目录生成core文件,并将进程的内存映象复制到core文件中,core文件的默认名称就是“core”(这是 Unix类系统的一个由来已久的功能)。当不指定limit的时候,该命令显示当前值。这里要注意的是,当你要修改limit的时候,如果不指定-S或者-H,默认是同时设置soft limit和hard limit。在linux系统中,Resouce limit指在一个进程的执行过程中,它所能得到的资源的限制,比如进程的core file的最大值,虚拟内存的最大值等。
2023-06-27 18:21:11
388
原创 linux c 如何拦截库函数 来做统计
else编译 gcc -fPIC -c -o library_calls_hook.o library_calls_hook.c。
2023-06-16 15:21:34
723
原创 Linux c 中malloc 函数 size为0 时 的结果
有些平台 会返回 malloc 能分配的最小空间 来返回 一个指针,只不过这个指针对变量而言 0 字节可用. 有些平台 min size 是 16 有些是24 还有一些是32。在linux c 中我们经常遇到malloc 去动态分配内存问题, 我们知道 malloc 的函数原型时。不一定 应为libc 在定义这个函数时 对于malloc(0) 对于通平台有不通的反应.有的平台 直接认为 size 为0 是 非法的 所以就return 了NULL。如果我们size 为0 那么 他的返回值 会是什么呢?
2023-06-16 14:58:17
360
转载 wifi7 (11be) 优势简介
异步模式下,多个射频链路之间独立进行信道探测,侦听与数据收发,实现容易,自由度高,适用于链路之间隔离度足够不会产生设备内相互干扰的情况。如果多个射频链路之间共享天线,或天线之间的距离很小,单板走线隔离不理想,频谱间隔不是很大的时候,其中一个射频链路的发射信号功率会部分泄漏到其他射频链路上。采用同步模式,多个射频链路同时进行信号的发送与接收,可以规避设备内的干扰。此外,多链路设备可以通过其中一个链路交换其它链路的工作状态和电源管理信息,使其仅在需要的时候进入工作状态,剩余时间休眠,更有效地节能。
2023-06-09 13:26:18
6868
1
转载 wifi 7 (11be ) 理论速率
支持3个频段2.4GHz, 5.8GHz和5.2GHz,每个频段都支持4*4MIMO, 因此在速率上得到极大的提升,另外全都支持到WIFI7的4K QAM调制,参数中已经标明了理论最高速率,通过前面章节,来计算下这些理论速率,3个频段的速率差异主要来自于带宽上的差异,带宽越大,子载波数越多,支持的速率越高,三个频段速率相加,达到10.024Gbps,即万兆,想要达到这么高的速率,需要3个频段同时工作,并需要支持4*4MIMO,因此天线数量需要3*4=12个,这路由器参数表中也标明了。
2023-06-08 18:29:35
8049
原创 code scan and analysis tool
coverity(https://scan.coverity.com/) and Codechecker(https://github.com/Ericsson/codechecker)
2023-06-07 11:34:40
125
原创 wifi QoS - DSCP MSCS
如果AP接受STA的请求,就会激活用于该STA的MSCS,或者如果已经激活,就更新该MSCS的参数。当进入AP的下行链路IP流无适当DSCP标记(对于源自公用互联网的下行链路IP流,缺少适当的DSCP标记是常见情况,因为中间节点或互联网服务提供商即ISP经常会将源服务器可能已经设定的任何DSCP标记重置为零或对其进行修改),DSCP-to-UP Mapping无法实现基于DSCP实现所需的QoS优先级划分,此时就需要用到MSCS。对于每个STA而言,AP最多有一个激活的MSCS。MSCS的实现是可选的。
2023-04-21 15:08:39
1293
原创 如何统计程序或函数调用时间
1、clock() 函数,返回从 开启这个程序进程 到 程序中调用clock()函数 时之间的CPU时钟计时单元数,返回单位是毫秒,可以用常量CLOCKS_PER_SEC, 这个常量表示每一秒有多少个时钟计时单元。gprof gmon.out -A 得到 一个带注释的“源代码清单”,它会注释源码,指出每个函数的执行次数。这需要在编译的时候增加 -g选项。gprof gmon.out -q 得到call graph,包含了每个函数的调用关系,调用次数,执行时间等信息。
2023-03-24 13:20:41
460
转载 常用网站
我认为,电子设计竞赛不是一个孤立的竞赛,它是同我们电子相关专业的课程密切结合的,是专业课体系化的过程,与培养自身全面素质是紧密相关的。我是资深网站保存爱好者,浏览器分门别类存了应该有几百个网址,关于嵌入式的也有很多,大致按照类别分享下。,覆盖各行各业的智能化解决方案,应用方案可以生产出更多大胆有创意的智能单品,发挥空间会更足。在我看来,电子专业相关的同学参加一些比赛是很有必要的,不单单是一个比赛一次经历。更多的是一种能力,一种态度,与专业结合,用于实践,锻炼实践经验。
2023-03-23 14:05:45
792
原创 inline 函数
在默认的 -O0 编译优化项不能确保 inline 一定起作用,但是可以添加添加 __attribute__((always_inline))强制编译器对 inline 函数做相应的处理。因为 inline 函数会将自己展开,所以编译器通常不会再为 inline 生成汇编代码,不过,如果是通过函数指针的形式调用 inline 函数,编译器为了获得 inline 函数的地址,仍然会为其生成汇编代码的。inline 函数 在c 中是为了解决 有一些小而且频繁调用的 函数儿设计的。
2023-03-15 15:55:48
401
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人