linux
文章平均质量分 90
玩意儿他爸
这个作者很懒,什么都没留下…
展开
-
内网穿透frp简单安装
最近看了一些视频,想研究一下内网穿透frp方案,该文档记录了frp的测试和配置过程。能给新入门的朋友一些过程记录。原创 2023-09-12 20:19:34 · 2093 阅读 · 0 评论 -
swupdate linux ota故障安全升级方案
swupdate是一个基于嵌入式的Linux平台的升级服务框架程序,它提供了分区升级,文件升级,差分升级(补丁应用)功能,并提供了开放接口,方便用户添加自定义升级处理函数。swupdate提供了故障安全的升级方案。支持Recovery方案和A/B系统方案来保证断电等异常情况下能保证升级正常。它提供了完整性,签名验证,固件加密等功能,保证了升级固件的安全性和私密性。swupdate 采用cpio的方式进行归档,第一文件是描述文件,默认名称为sw-description。原创 2023-06-20 21:16:04 · 3431 阅读 · 4 评论 -
RockChip3568 MPP硬解码和gstreamer1.0编译
rockchip 3568芯片简单编译gstreamer过程记录。原创 2023-05-26 16:57:05 · 6733 阅读 · 1 评论 -
介绍一个关于小米Zigbee的开源项目
AqaraHub说明:这个是一个开源项目,我只是为了让跟多人看到这个开源项目。项目名称:Frans-Willem/AqaraHub:github连接:https://github.com/Frans-Willem/AqaraHub#get-in-touch项目介绍: 这是...翻译 2020-01-03 18:04:14 · 3496 阅读 · 0 评论 -
安卓at指令与模组通信的ril模块的学习
原创 2019-12-09 17:49:01 · 318 阅读 · 0 评论 -
网络安全通信ssl之证书的前世今生
文中很多地方用到了网友的资源,谢谢你们。知识来源于网络,回馈于网络。一) 在网络数据传输过程中的问题 在现实世界中,没有人愿意裸奔;在互联网世界里也一样。数据在互联网中传播,要解决3+1个问题。分别为数据防偷窥,防篡改(完整性),防伪冒。还有+1问题就是身份认证。二) 解决上述3个问题的办法2.1数据偷窥问题 只要加好密,将明文加密得...原创 2019-10-31 20:46:08 · 432 阅读 · 1 评论 -
ecos运行流程分析
先实践后理论,我使用一块CPE301G-QCA9535的开发板进行分析。这块开发板是在开发中的ecos。一)宏观分析ecos的运行我们从启动日志入手,去一步一步了解ecos的运行。总所周知,板子(soc)启动有3阶段。分别为运行ROM上的固化程序,运行u-boot-spl 和运行uboot。所以我们打包的uboot的名称经常叫uboot-with-spl.bin。细节可以自行百度。...原创 2019-10-23 21:18:23 · 896 阅读 · 0 评论 -
如何使用gcc的__attribute__((section (__sect__)))
__attribute__((section("section_name")))其作用是将作用的函数或数据放入指定名为"section_name"输入段。这里还要注意一下两个概念:输入段和输出段 输入段和输出段是相对于要生成最终的elf或binary时的Link过程说的,Link过程的输入大都是由源代码编绎生成的目标文件.o,那么这些.o文件中包含的段相对li...原创 2019-10-23 15:57:21 · 2375 阅读 · 0 评论 -
从字符串中获取mac地址的获取
记录一下,比较常用。我使用char mac[6]时运行报错。可能是"%02x:%02x:%02x:%02x:%02x:%02x" 每一个%02x对应输出的是4个字节导致mac数组访问越界了。parse_dev_id:105 id src:68:89:75:0A:95:37 dst:6889750a9537*** stack smashing detected ***: <un...原创 2019-10-15 19:49:44 · 1121 阅读 · 0 评论 -
杨氏程序大括弧写法
这个是我的独创,将来是要写到教科书上的,请尊重我的劳动成果。大括弧写法一:if(){ if () { } else { }}大括弧写法二:if (){ if (){ } else{ }}中和写法一和二,将最外层和跨度大的{}按方式一来写,将内层和跨度小的按方式二写:if (){ if(){ } else{ ...原创 2019-10-15 15:36:56 · 227 阅读 · 0 评论 -
编译问题
有些人总是编译报错,而且还不知怎么解决。哈哈,我在这里记录一下。有奖问答。请听题:请问报下面错误是什么造成的?//usr/local/lib/liblua.a(loadlib.o): In function `lookforfunc':loadlib.c:(.text+0x534): undefined reference to `dlsym'loadlib.c:(.text+0x5...原创 2019-09-16 16:47:50 · 930 阅读 · 1 评论 -
解决了git gitlab工程时Too many authentication failures的世界级问题
总结:运行了ssh agent + ssh-add -l(高速缓存)了很多私钥缓存+ssh验证次数比较少三者同时满足时,就会发生Too many authentication failures错误。解决就是把自己的私钥通过ssd-add添加进ssh agent的高速缓存里面,或者修改验证尝试次数。------------------------------------------------...原创 2019-09-07 11:11:46 · 6144 阅读 · 1 评论 -
realloc一个有意思的测试
百度百科: realloc 先判断当前的指针是否有足够的连续空间,如果有,扩大mem_address指向的地址,并且将mem_address返回,如果空间不够,先按照newsize指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来mem_address所指内存区域(注意:原来指针是自动释放,不需要使用free),同时返回新分配的内存区域的首地址。即重新分配存储...原创 2019-09-04 18:28:13 · 313 阅读 · 0 评论 -
c/c++代码的静态检查工具 tscancode
有了代码自动检查工具,妈妈再也不用担心我的程序有bug了。说笑了,但是确实令我很鸡冻。因为我从编写程序以来(时间不长)只写过一些很小的,功能型的代码。所以一般都是写好了,动几下,看功能满足没有,ok了就完事了。出现bug了就再去看代码。做代码检查+测试,这是我在编程路上又向前走了一步。墙裂推荐向我们这些刚入门的人去用一下子。 可以看一下这个博客c++代码质量扫描主流工具深度比较,...原创 2019-09-04 11:56:05 · 5558 阅读 · 0 评论 -
理解接口对接的授权
授权管理,简单介绍一下2种方式。1)apikey 2)oauth(Open Authorization) 一)apikey api(Application Programming Interface) key 就是一个秘钥。 简介一下google的apikey的含义,通过学习google的APIKey来了解一下什么是APIkey。 ...原创 2019-08-12 21:57:30 · 6724 阅读 · 0 评论 -
展示一下telnetd的协商状态机
一)telnetd选项协商简介 telnet工作在不同的平台上和终端上,为了比较灵活,很多选项和配置采用协商的机制。就是说素未蒙面的终端与主机之间,开始的时候,相互之间协商开启什么配置和选项。telnetc与telnetd协商时是完全平等对称的。 telnet的协商指令WILL (251)WONT (251) DO (253) DONT (254),指令格式是 IA...原创 2019-08-21 10:47:33 · 452 阅读 · 0 评论 -
终于看到了一次select的except set的使用
/* * Check a descriptor to see if out of band data exists on it. */int stilloob(int s) /* socket number */{ static struct timeval timeout = { 0, 0 }; fd_set excepts; int value; ...原创 2019-08-20 16:57:21 · 696 阅读 · 0 评论 -
VS code使用ssh登录服务器去编辑代码
开发基本过程,就是编辑代码,然后进行编译,最后进行运行测试。但是有个问题就是,编辑代码一般在windows下进行,编译代码在Linux进行。当在本地主机上搭建一个虚拟机时,可以使用共享目录的方式,nfs或者samba或者ubuntu的共享目录(windows)。但是当你的编译环境移到服务器上的时候(docker),你发现共享目录就行不通了。如何在一个远端服务器上开始工作。(docker...原创 2019-08-20 15:05:54 · 9050 阅读 · 2 评论 -
简单的从调试配置文件获取调试参数
#include <unistd.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <sys/stat.h>#include <fcntl.h>#define DEBUG_FILE1 "/tmp/dbg_param.txt"...原创 2019-08-07 17:00:10 · 191 阅读 · 0 评论 -
老马失前蹄,阴沟里翻船了
哈哈,记录下逗比的事。段错误代码:/* 消息结构体 */typedef struct _message_{ uint headSign; // 消息标识头 uint type; // 消息类型 uint len; // 消息内容长度 char* data;} MESSAGE_T, *MESSAGE_PT;...原创 2019-08-09 12:27:52 · 241 阅读 · 0 评论 -
将ubuntu的目录挂载到开发板
能挂载的前提条件1)PC的ubuntu端,要安装和nfs服务、配置和启动 a) sudo apt-get install nfs-kernel-server (安装nfs-kernel-server时,apt会自动安装nfs-common和portmap) b) 配置/etc/exports这个文件 ,在该文件加上这行语句 /home/username/shared_path ...原创 2018-05-22 09:00:04 · 934 阅读 · 0 评论 -
异或运算与奇偶校验的作用
只有专心于密码学的人,才知道,异或运算(^)就是奇偶校验中国人讲究好事成双,偶数记录。奇偶校验呢,就是好事成双 。10校验位1;11校验位是0...原创 2019-06-14 14:30:19 · 5833 阅读 · 0 评论 -
write+自己做缓存与fwrite
Linux read/write fread/fwrite两者区别原文在此,请双击Linux read/write fread/fwrite两者区别1,fread是带缓冲的,read不带缓冲.2,fopen是标准c里定义的,open是POSIX中定义的.3,fread可以读一个结构.read在linux/unix中读二进制与普通文件没有区别.4,fopen不能指定要创建文件...转载 2019-06-20 15:29:43 · 1240 阅读 · 0 评论 -
mosquitto使用mqtt中一个奇怪的现象
初次使用mqtt,然后就去找了一个库libmosquitto.so.1,然后就看了下头文件mosquitto.h,找了一下例子。然后就跑起来了/* libmosquitto lib init */ mosquitto_lib_init(); /* create a mosquitto client */ mosq = mosquitto_new(device_...原创 2019-06-17 13:53:26 · 3340 阅读 · 3 评论 -
关于linux的系统时间
一句话总结:/etc/localtime 决定了你的时区,如果没有这个文件,系统将设置成utc(0时区)的时间。 这些配置文件在/usr/shara/zoneinfo中,for example 北京时间 /usr/share/zoneinfo/Asia/Shanghai,将这个文件拷贝到/etc/localtime就可以正确设置自己的时区了。 第二点,就是时间戳,tim...原创 2019-06-25 11:27:10 · 508 阅读 · 0 评论 -
很简单的环形前进和后退
我们都知道环形队列这玩意儿,指针指向指针,通过2个指针就能实现双向的环形队列。这很easy。但是今天我们先使用数组的方式来实现环形队列的前进和后退,怎么搞里? 原来傻的一比,a[32] int i = 0前进 a[(i++)%32]后退就开始犯难了,生怕i--,i小与0怎么搞。a[(i+32 -1)%32]这样不就行了嘛,周期函数加一个周期,又何妨。自己太牛逼了,...原创 2019-06-17 19:56:42 · 264 阅读 · 0 评论 -
C++作为自下而上的软件工程师必经之路
我是自下而上的软件渣渣,从51单片机,到stm32,在到arm或mips。软件从裸奔,到ucos,再到linux。像我们这种渣渣,举步维艰,一步一步迈入工地。从玩泥巴,到玩水泥。现在我继续我的步伐,学c++,来进入面向对象的世界。 这篇博客的目的:1)做嵌入式的自下而上的渣渣们,一定要开始学c++了,进入到面向对象的世界。 ...原创 2019-07-09 18:00:49 · 179 阅读 · 1 评论 -
将静态库塞到动态库中
目的:libimp.a libalog.a 和 业务源码 一起打包成libaudioplug.so里面去。总结:要想将libimp.a libalog.a文件打包到ibaudioplug.so里面去,必须在编译libimp.a libalog.a的时候和编译业务源码的时候,都使用-fPIC,才能将3个合二为一。 要实现就使用动态库libimp.so libalog.so,就可以...原创 2019-06-28 19:25:41 · 633 阅读 · 0 评论 -
学一学git,都什么年代了
我是个傻逼程序员,会敲几行代码,但是实操安装和部署什么的很垃圾,而且有惰性。一大把年纪了,还没装过windows系统。就在今天,我突然想用一下git。咬着牙就开始学了一下。反正进步了一点,以后要都学新东西。 我使用的是ubuntu,使用sudo apt-get install git装了一个git, 使用git --version来验证是否装成功。这里有个所谓的仓库(reposi...原创 2019-07-04 14:36:10 · 278 阅读 · 0 评论 -
不用Git的是傻*
不用Git的是sb,还好我已经开始用了,就在今天早上的时候。没有人比我更懂git。 1)我要一个分支,分支进行另外的一个功能进行调试。b是branch(分支)的首字母 rtmps_test_aac是新分支的名称 git checkout -b rtmps_test_aac 等价于 git branchrtmps_test_aac...原创 2019-07-04 20:54:08 · 335 阅读 · 0 评论 -
使用rtmpdump库进行rtmps的推流
写这篇文章的目的:AMF真的很奇葩,rtmp大概样子,rtmpdump库可实现 rtmps推流一)理论1)搞清楚rtmp(Real Time Messaging Protocol)是哪家公司发明的? adobe公司。2)rtmp协议是怎么宏观上怎么组织工作的? client 1 + server + client 2,服务器提供基本的服务,例如连接,...原创 2019-07-05 14:25:38 · 3075 阅读 · 1 评论 -
新手学xml
我是个新手,只json,xml和html这些东东,都是传递信息的组织格式。一步一步,我们来充实自己,学一下xml。http的回复就json。{"msgId": 0,"resultMsg": "Success","onStatus": { "platform": "youtube", "status": "living"}}这就是一个简单的json。今天我们不说js...原创 2019-07-17 21:07:06 · 251 阅读 · 0 评论 -
网络实践第一步
渣渣嵌入式的程序狗学网络 1)理论知识 有个小心得,当FD_ISSET(fd)为真时,处理完fd后,记得FD_CLR(fd, pset)。原因是当有多条session链表时,可能需要将一个session从一条session链表移到另外一条session链表。二每条session链表的处理是有先后顺序的,防止一个session被处理2次,第二次会阻塞。 注意...原创 2019-07-25 15:57:50 · 170 阅读 · 0 评论 -
linux开发常用
#!/bin/bash./configure CC="mips-linux-uclibc-gnu-gcc -march=mips32r2 -O2 -Wall -mhard-float" \ CXX="mips-linux-uclibc-gnu-g++ -march=mips32r2 -O2 -Wall -mhard-float" \ CPP=...原创 2019-07-22 11:25:29 · 629 阅读 · 0 评论 -
linux使用uclibc库时,pthread_cleanup_push无效
我本来开开心心的写了一个select的server和client,在ubuntu上跑的开开心心的。然后就就把程序移植到mips的君正T21的开发板上,后来发现重复调用server(退出再进入),后发现bind err(Address already in use)。 netstat -apn | grep 108 一直被占用着,但是线程确实退出了。我有2个可疑点1)可能是tcp端...原创 2019-07-26 19:38:14 · 333 阅读 · 0 评论 -
setsockopt
来自于新浪微博 http://blog.sina.com.cn/s/blog_b4ef897e0102vrtt.html转载 2018-05-08 09:34:20 · 117 阅读 · 0 评论