- 博客(32)
- 资源 (9)
- 收藏
- 关注
原创 通过 Swap 文件缓解 Linux 内存不足
当物理内存不足时,可通过创建 Swap 文件临时扩展虚拟内存,避免进程因 OOM(Out Of Memory)被终止。以下为详细操作指南,适用于大多数 Linux 发行版。count=8192:总大小为 8GB(1M * 8192)。分区需为 ext4、xfs 或 btrfs 等原生文件系统。步骤 3:格式化为 Swap 分区。步骤 4:启用 Swap 文件。bs=1M:块大小为 1MB。步骤 1:生成空文件。步骤 2:设置权限。
2025-03-07 11:32:37
236
原创 openwrt编译时出现Checking ‘gcc‘... failed. Checking ‘g++‘... failed.问题
解决openwrt固件编译时,出现的gcc/g++版本不匹配问题
2024-12-20 13:46:36
403
原创 移远5G模块500U型号调试指南
可以用转接板接到WINDOWS下发送命令,或者在linux 下用minicom发AT,掉电不丢失。ls -l /dev/ttyUSB*,如果有如下设备,说明驱动已经集成进来。airmon-ng check kil 查看引起出错的进程。RM500U直接AT命令拨号不是quectel-CM。插上mini-pci转USB接口模块。安装minicom软件。lsusb查看是否有。
2023-05-18 09:44:29
4090
原创 使用arecord、aplay命令实现音频的采集和播放
arecord 采集原始音频arecord -r 8000 -t raw -c 1 -f S16_BE ./testaplay 播放原始音频aplay -t raw -r 8000 -f S16_BE -c 1 test参数说明:-r 采样频率 8000 48000 44100等-t 录音文件类型 voc, wav, raw or au-c 声道数,1:单声道;2:双声道-f 采样格式,S16:16位; BE: 大端 ; LE: 小端最后是 文件路径注意:播放异常时,..
2022-04-22 15:48:08
6941
原创 Linux组播编程 组播发送和组播接收
接收端int init_recv_socket(int *pSockfd){ int recv_sockfd = -1; struct ip_mreq mreq; bzero(&mreq, sizeof(struct ip_mreq)); mreq.imr_multiaddr.s_addr = inet_addr(MCAST_ADDR); mreq.imr_interface.s_addr = htonl(INADDR_ANY); struct
2022-04-14 17:31:55
2177
原创 openwrt系统 3G 4G模块配置
openwrt系统 3G 4G模块网络配置文件,主要配置文件/etc/config/network:config interface ‘wan’ option device ‘/dev/cdc-wdm0’ option proto ‘qmi’ option service ‘umts’
2022-04-14 14:53:55
2077
原创 atheros 无线驱动接收流程
无线驱动rx流程request_irq(pdev->irq, ath_isr, IRQF_SHARED, “ath9k”, sc);irqreturn_t ath_isr(int irq, void *dev) tasklet_schedule(&sc->intr_tq); void ath9k_tasklet(unsigned long data) int ath_rx_tasklet(struct ath_softc *sc,
2022-04-06 09:30:57
208
原创 openwrt移植开源库并编译
openwrt移植开源库并编译方法:导出环境变量:export STAGING_DIR=STAGINGDIR:/home/mike/openwrt/stagingdirexportPATH="STAGING_DIR:/home/mike/openwrt/staging_direxport PATH="STAGINGDIR:/home/mike/openwrt/stagingdirexportPATH="PATH:/home/mike/openwrt/staging_dir/toolchain-
2022-02-11 09:47:50
1138
原创 Openwrt使用Hexdump 查看分区内容
Openwrt中有时候需要查看分区里面的内容,如下命令:查看分区root@OpenWrt:/# cat /proc/mtddev: size erasesize namemtd0: 00040000 00010000 “u-boot”mtd1: 00010000 00010000 “u-boot-env”mtd2: 00630000 00010000 “rootfs”mtd3: 00400000 00010000 “rootfs_data”mtd4: 00160
2021-10-25 16:16:26
2527
原创 Ubuntu系统下的dos2unix和tofrodos
Ubuntu下默认没有安装dos2unix工具,但是有一个替代工具——tofrodos。安装:sudo apt-get install tofrodos实际上它安装了两个工具:todos(相当于unix2dos),和fromdos(相当于dos2unix)安装完即可,现在你已经可以进行文本格式的转换啦。比如: todos test.cpp (即unix2dos test.cpp)fromdos test.cpp (即dos2unix test.cpp)...
2021-09-23 10:15:05
644
原创 linux strip的使用方法及注意事项
/home # file hellohello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-uClibc.so.0, with debug_info, not strippedstrip之前文件大小/home # ls -l hello-rwxrwxr-x 1 hxy hxy 18932 May 19 07:20 hellostrip之前的函数符号
2021-05-19 16:56:33
1153
原创 kcp使用中出现的异常退出问题
程序使用KCP协议,代码使用的多线程循环调用ikcp_update(kcp, millisec); 不定期会出现异常退出问题,经过调试每次停在void ikcp_flush(ikcpcb *kcp)函数中,经过反复调试问题在for(p=kcp->snd_buf.next; p!=&kcp->snd_buf; p=p->next)函数中,p指针和p->next指针指向是同一个地址,导致无限循环。后改为单线程,使用定时器驱动后正常。...
2021-05-19 16:02:33
563
原创 判断H264 Keyframe实现
bool h264_is_keyframe(const char buffer, int len) {if(!buffer || len < 6)return FALSE;/ Parse H264 header now */uint8_t fragment = *buffer & 0x1F;uint8_t nal = (buffer+1) & 0x1F;if(fragment == 7 || ((fragment == 28 || fragment == 29) &
2021-05-12 13:58:56
512
原创 Linux服务器自动清理缓存
读写文件时,Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这就是Cache Memory(缓存内存)。即使程序运行结束后,Cache Memory也不会自动释放。这就会导致程序频繁读写文件后,可用物理内存会很少。其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以不必担心没有内存可用。当服务器很多时,为了让服务器始终处于高性能状态,需要设置预警值,然后自动清理缓存,假如我们的内存利用率预警值为80%,示例shell:MemThr=80MemPer=free
2021-05-12 11:00:18
2489
原创 802.11协议WIFI扫描
802.11协议I扫描主要有主动扫描和被动扫描被动扫描通过侦听AP定期发送的Beacon帧来发现网络, Beacon帧中包含该AP所属的BSS的基本信息以及AP的基本能力级,包括: BSSID (AP的MAC地址)、 SSID、支持的速率、支持的认证方式,加密算法、Beacons帧发送间隔,使用的信道等。当未发现包含期望的SSID的BSS时,STA可以工作于IBSS状态。主动扫描在每个信道上发送Probe request报文,从Probe Response中获取BSS的 基本信息, Probe Re
2021-05-12 09:56:19
1000
原创 RTOS SDK 和 Non-OS SDK 有何区别?
主要差异点如下:Non-OS SDKNon-OS SDK 主要使用定时器和回调函数的方式实现各个功能事件的嵌套,达到特定条件下触发特定功能函数的目的。Non-OS SDK 使用espconn 接口实现网络操作,用户需要按照 espconn 接口的使用规则进行软件开发。RTOS SDKRTOS 版本 SDK 使用 freeRTOS 系统,引入 OS 多任务处理的机制,用户可以使用 freeRTOS 的标准接口实现资源管理、循环操作、任务内延时、任务间信息传递和同步等面向任务流程的设计方式。具体接口使
2021-05-08 15:42:08
2790
1
原创 MySQL在Linux下的常用命令
MySQL在Linux下的常用命令1.连接本机上的MySQLmysql -u用户名 -p用户密码2.连接到远程主机上的MySQLmysql -h主机地址 -u用户名 -p用户密码3.显示多少个数据库show databases;4.创建数据库create database 数据库名字;5.选择数据库use 数据库名字;6.删除数据库drop database 数据库名字;7.显示表选中数据库的所有表名show tables;8.显示某个表具体结构describe 表名;9.
2021-05-07 08:49:57
87
原创 海思设备Uboot下命令烧写设备固件
uboot下手工命令烧写的流程先确认好板子的IP和tftp的IP设置:printenvsetenv ipaddr 192.168.2.123setenv serverip 192.168.2.195然后在PC上启动tftp服务器,设置好roms的文件路径1、烧写uboot自身mw.b 0x42000000 0xff 0x100000tftp 0x42000000 full-boot.binnand erase 0x0 0x100000nand write 0x42000000 0x0 0x
2021-05-06 10:25:58
1019
原创 在海思设备上使用GDB
gdb的可执行程序位于“~/osdrv/tools/board/gdb”目录下,请把对应编译器的gdb拷贝到单板的/usr/bin目录下,改名为gdb,加上可执行权限(用chmod a+x gdb命令),然后即可在单板上使用gdb。或者挂载nfs目录后,使用gdb的绝对路径运行gdb。一般碰到的问题是gdb会打印:Program received signal SIG32, Real-time event 32.0x4052d940 in __rt_sigsuspend () from /lib/li
2021-05-06 10:04:18
349
1
原创 RTP协议报文
RTP数据传输协议RTP报头的格式如下。每个RTP数据包都包含特定数据源标识符前的12个字节。仅当混合器插入CSRC标识符时,RTP数据包包含该标识符。各字段的长度和含义如下:RTP报头格式V(Version): 2位。定义RTP版本号,当前版本号为2.0P (Padding) : 1位。该位置1时,数据包的尾部有一个或多个补充字节(Padding Octet)。补充字节不是净荷的组成部分。最后一个补充字节包含应该勿略的字节数。具有固定块长度的某些加密算法或底层协议的数据单元要携带多个RTP数据包
2021-05-06 09:46:44
1827
原创 TC(Traffic Control)
TC(Traffic Control)TC(Traffic Control)用于Linux内核的流量控制,它利用队列规定建立处理数据包的队列,并定义队列中的数据包被发送的方式,从而实现对流量的控制。该工具让用户可以设定并配置几乎所有的流量控制框架要素,比如排队规则(qdisc)、类(class)及过滤器(filter),他们之间的关系如下: 排队规则:每个网络设备配有一个排队规则。通常,要发送的报文被送到一个排队规则中并且按照特定规则在此队列中排序。 类:排队规则可以有多个接口,这些接口用于向队列
2021-05-03 08:17:43
580
原创 h264_qsv
在ffmpeg硬件编解码中经常使用到h264_qsv。ffplay播放的命令:ffplay -vcodec h264_qsv 文件/URL。在ffmpeg的demo有这样一段关键代码:ret = avcodec_send_packet(decoder_ctx, pkt);if (ret < 0) {fprintf(stderr, “Error during decoding\n”);return ret;}ret = avcodec_receive_frame(decoder_ctx,
2021-05-02 23:04:29
3132
原创 lua语言
lua语言读取打印命令行local ps = luci.util.execi(“br showmacs br-lan”)读取arp表中的ip地址 cat /proc/net/arp | grep br-lan |awk ‘{print $1}’ipairs pairs的区别ipairs是一个数组 循环遍历 1 2 3 遇到nil直接退出 ipairs则不能返回nil,只能返回数字0,如果遇到nil则退出pairs是table表 pairs可以遍历表中所有的key,并且除了迭代器本身以及
2021-04-30 21:18:28
247
1
原创 WIFI模块
WIFI模块MTK7681:没有mcu,32bit-RISC 80Mhz ,没有系统,裸奔,Wi-Fi的SoC(片上系统)的单芯片Broadlink:Cortex-M3处理器+WIFI模块,具体芯片是marvell的88MC200+88W878288MC200:ARM Cortex M3的核,处理器时钟高达200Mhz88W8782:集成Marvell Feroceon CPU(ARMv5TE-compliant)高达128Mhz处理器时钟MXCHIP EMW3162模块,这是由上海庆科电子推出的
2021-04-30 21:12:17
624
1
原创 iwpriv常用命令
iwpriv常用命令隐藏SSIDiwpriv ra0 set HideSSID=1uci set wireless.@wifi-iface[0].hidden=enableuci commit wireless关闭隐藏SSID 即开启SSIDiwpriv ra0 set HideSSID=0uci set wireless.@wifi-iface[0].hidden
2021-04-30 21:02:25
1556
1
原创 rt2860驱动框架
rt2860驱动框架路径:rt2860v2\os\linux文件:pci_main_dev.crt2880_module_init ---------> RtmpPhyNetDevInit-------->MainVirtualIF_open ---->VIRTUAL_IF_UP----->rt28xx_open----->rt28xx_init------>pNetDevHook->open = MainVirtualIF_open;&nbs
2021-04-30 20:39:01
529
1
原创 海思HI35xx如何调整内存分配
媒体业务需要占用一定的内存(主要占用 MMZ 内存)以支持业务正常运转,HiMPP平台按典型业务形态分配内存。用户产品内存使用紧张时,可根据实际情况尝试采用相关的策略调整内存分配大小。
2021-04-30 14:42:43
786
libevent+socket+消息队列 高效实现网络数据的接收处理
2022-04-18
嵌入式Linux/openwrt MAC烧录工具及代码
2021-09-13
802.11协议中RTS-CTS技术细节介绍.docx
2021-04-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人