- 博客(109)
- 收藏
- 关注
原创 preact组件案例的使用
组件是一个可复用的下拉选择框组件,它接收选项列表、当前选中的值以及一个用于更新值的函数作为 props。当用户选择不同的选项时,组件会调用。的函数组件,用于创建一个下拉选择框。的值是整数(如果选项值是整数)。该组件还支持禁用状态。这段 Preact 组件代码定义了一个名为。希望这个解释能够帮助你理解如何使用。函数来更新父组件中的值。
2025-03-10 01:58:17
539
原创 使用openwrt搭建ipsec隧道
刚好手机拍下了日志,把日志往群里发了一下,细心的群友看出了问题点,然后我搜了一下这个函数是在哪个地方定义的,只需要我们去开一下对应的宏就行,然后重新编译了一下版本,发现连接上去了。我们直接去编译一下带ipsec的openwrt的固件,遇到问题也好解决一点,这里我选择的lean大佬的openwrt源码,源码链接如下,在国内我们玩openwrt的玩家基本都在用lean的代码,因为lean的代码适配了国内基本上常见的路由器固件,我们只需要make menuconfig开一下对应产品的宏就可以编译,非常简单上手。
2025-01-26 16:00:06
2224
原创 Linux 自旋锁
spinklock 是内核中提供的一种比较常见的锁机制,自旋锁是“原地等待” 的方式解决资源冲突的,即,一个线城获取看一个自旋锁后,另外一个线程期望获取该自旋锁,获取不到,只能够原地“打转” (忙等待)。由于自旋锁的这个忙等待的特性,注定了它的使用场景的限制-------自旋锁不应该被长时间的持有(消耗CPU资源),一般应用在中断上下文。2.挂起当前进程,调度其它进程执行。
2024-09-19 00:36:30
349
原创 openwrt wsdd模块介绍
比如,A主机进入局域网,开启了 mDNS 服务,并向 mDNS 服务注册以下信息:我提供 FTP 服务,我的IP是 192.168.1.101,端口是 21。当B主机进入局域网,并向 B 主机的 mDNS 服务请求,我要找局域网内 FTP 服务器,B主机的 mDNS 就会去局域网内向其他的 mDNS 询问,并且最终告诉你,有一个IP地址为 192.168.1.101,端口号是 21 的主机,也就是 A 主机提供 FTP 服务,所以 B 主机就知道了 A 主机的 IP 地址和端口号了。
2024-09-16 19:40:31
1150
原创 mtk7628 网口灯问题
修改为一样再次编,发现现象一致,插入网线到lan口,网口灯同样不会亮。差异点还剩下,网口OK的wuya产品,多执行了ethmode wllll,设置为五网口模式。查看代码,该指令会去设置寄存器,reg w 10000064 0x0,执行改指令后,验证了插入网线,网口灯就会亮了。对比了ok的代码,先对比设备树,未看到网口相关的GPIO。是不是还有哪里的脚本会去操作GPIO,尝试删掉了led相关shell代码,以及对应的leds_gpio .ko。继续查看网口相关代码,加打印,未看到有操作网口的灯。
2024-09-16 19:06:13
396
原创 Linux桥转发经过的netfilter钩子点
桥转发:在链路层,根据报文的目的MAC地址进行报文转发,我们也叫二层转发。进行二层转发的一般叫网桥(bridge), 进行二层转发的设备可以是一台设备,比如我们的交换机,而我们这里的桥转发,就是软件实现的交换机。ageing timer: 设备的老化时间,当我的设备拔掉网线,或者断开WiFi的时候,这里的老化时间就会增加,达到一定阈值就会删除表项(FDB表),不同设备时间有差别,这个是Linux内核实现,可以修改;这样三点经过的钩子点是不同的,在我们桥转发,也会有这样的钩子点;addr:设备的mac地址。
2024-08-11 18:32:51
965
原创 linux 内核常用的debug
默认情况下 printk_ratelimit 的值是 5 ,printk_ratelimit_burst 的值是 10。Linux内核就有这么一套机制,我们仅需调用一个接口,并根据接口的返回值来决定是否持续打印我们的信息。这个接口的内部会自动帮我们判断我们即将要打印的信息是否过于频繁。是的,就是这么简单。这个 printk_ratelimit() 函数是定义在 <linux/printk.h>上的。这个函数的机理是会判断我们的打印的频率的,即它会限制这条打印在指定时间间隔内最多只能出现指定次数条。
2024-08-11 02:20:52
459
原创 openwrt 性能工具perf和cpu占用查看工具sysstat编译及使用
openwrt下使用perf工具,查看当前系统调用栈情况;以及mpstat -P ALL 1 查看当前cpu占用情况
2024-08-07 23:11:22
1127
原创 openwrt MTK7621关闭硬加速和编译命令
经实测,开硬件转发后跑100M带宽CPU占用为0%,但是上行跑满100M后ping延时增加明显。现在ramips已经切换到4.14了,支持offload了,而且MT7621支持硬件NAT!另外这个和mwan3兼容,工作正常!不存在SFE和mwan3不兼容的问题了。2018年4月7日更新。
2024-06-09 18:36:33
1164
原创 ipv6有状态分配地址和无状态分配地址
设备在获取IPv6地址等信息时,会先发送RS报文请求链路上的路由设备,路由设备受到RS报文后会发送相应的RA报文来表示自身能够提供的IPv6服务类型。M/O都为1,无状态分配,地址和DNS等都从DHCPv6服务器取得。会有dhcpv6四步交互(对应ipv4的dhcp四步交互)对应的报文(icmpv6)
2024-06-09 09:47:02
640
原创 ubuntu下boa服务器编译运行
其中/cgi-bin/指的就是当我们访问的文件带有cgi-bin字段的时候,就表示动态网页信息,因此我们的服务器,就会从后面的路劲/home/and/www/cgi-bin/下面去寻找此文件。当前编译环境OK,需要修改boa.conf文件,因为我们输入url的时候,会在对应的路劲下面去找,如何路劲不对,就会找不到,页面出现404。发现改了也不行,后面把boa.conf cp到了etc/boa/下面进行了替换就OK了。/cgi-bin/最后面的/一定不能缺少,不然还是找不到。在boa.conf做如下修改。
2024-04-21 11:31:59
758
原创 Linux网络编程项目----FTP网盘
程序运行,服务端不断接收客户端指令,服务端可同时处理多个客户端接入并对指令作出解析,并把执行结果返回给客户端,客户端根据服务端对指令的解析并把由服务端传递过来的。(2)客户端匹配用户输入的指令,客户端发送指令到服务端,服务端解析指令作出响应。4、在程序运行的过程中,客户端输入lcd指令+路径 能够切换自己的目录。5、客户端输入get指令+文件名,能将服务端上面的某个文件下载到客户端。6、客户端输入put指令+文件名,能将客户端上面的某个文件上传到服务端。2、客户端输入cd指令+路径,可以切换服务端的目录。
2023-12-11 01:33:05
563
原创 Linux环境下socket本地通信
最近项目有用到了socket本地通信,故复习一下。之前都是基于本地虚拟机的ip地址通信的,现在项目,Linux单板上面有2个进程需要通信,故用到了本地socket通信,主要其实就是用了sockfd,文件描述符,也叫句柄。
2023-12-10 22:58:35
937
原创 web需求记录
需求1:根据后端传过来的设备名:DESKTOP-4DQRGQB,以及mac:e0:be:03:74:40:0b;iQOO-8,mac:b0:33:66:38:c3:25,用web option 是动态增加的(也就是那个选择框里面的东西是根据后端传过来的值动态增加的),当select选择设备名字时,下面一个框显示对应mac的地址。
2023-11-22 22:39:31
1675
原创 虚拟机Ubuntu下运行vue-element-admin项目
ui/editor,需要在package.json中将“tui-editor“: “1.3.3“ 修改成"@toast-ui/editor": “^3.1.3”,重新运行yarn 即可;等一会就可以了,然后运行成功会提示我们项目访问地址,输入地址就可访问了。因为vue 放弃“tui-editor“: “1.3.3“,已经更名为。没有问题,会输出对应版本号,我这里是10.19.0。进入项目文件夹内(cd demo),并安装项目依赖。如果没有安装依赖,直接运行,会有如下报错。安装完成后,查看对应的版本号。
2023-10-30 00:27:38
679
原创 Linux下C语言使用 netlink sockets与内核模块通信
Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC) ,也是网络应用程序与内核通信的最常用的接口。在Linux标准内核中,系统默认集成了很多netlink实例,比如日志上报、路由系统等,netlink消息是双向的,应用层可以发送消息到内核,同时内核也可以发送消息到应用层进程,非常适合涉及到内核信息采集的模块。
2023-09-08 00:41:06
1998
原创 Linux下 C语言路由器项目(纯C 1K代码,适合练手,也可写在简历上面 )
主机:Ubuntu:实践:主机与虚拟机相互ping成功:开发板与主机相互ping失败:(因为是不同网段)ok,完成最后,运行我们写的路由器代码后,主机与开发板可以在不同网段下通信开发板与主机相互ping。
2023-07-06 23:13:02
5105
33
原创 C语言一道简单题目,都做不出来,难受啊,一定要多写代码啊
1.用户从屏幕输入每个学生的成绩,格式如下:学号 成绩 换行。范围为1-50,成绩为浮点数。5.程序将所以学生的成绩进行排序后,按照成绩的高低进行打印,打印格式如下:学号 成绩 换行。3.用户最多只能输入50个学生的成绩,如果已经输入了50个,则表明成绩输入完毕。2.如果用户的学号输入有重复,表明前面输入有误,用新的成绩覆盖之。4.如果用户的学号输入-1,则表明成绩输入完毕。最后是chatgpt写的,满足要求的,附上源码。叫chatgpt用链表实现,也满足了要求。
2023-07-05 22:33:39
468
原创 C语言数据结构栈相关题目
3.栈的应用----中缀表示法转后缀表示法。2.栈的应用-----逆波兰表示法。4.栈的应用----括号匹配。5.栈的应用----回文判定。
2023-07-02 20:14:46
434
原创 Linux系统编程代码汇总
线程:线程从属于进程,一个进程可以有多个线程,线程直接共享进程的资源。systemd(init): 所有进程的父进程。可以查看我们的进程树,就是进程关系。任务:具体要做的事情。
2023-05-03 06:23:45
3177
2
原创 【C语言开源库】 一个只有500行代码的开源http服务器:Tinyhttpd学习
【C语言开源库】 一个只有500行代码的开源http服务器:Tinyhttpd学习
2023-01-03 23:38:39
1839
原创 编码任务练习
任务详情完成一个文件传输的客服端,需支持下面几种功能:1.支持上传和下载。2.支持HTTP协议和FTP协议(其中HTTPS有能力的可以支持,FTP协议只需要支持主动模式和被动模式一种,详情查看HTTP和FTP RFC文档)3.支持可以输入账号名,密码。4.支持为上传和下载指定存放目录。5.支持上传和下载时速率的显示。
2022-12-26 23:31:38
261
原创 瑞昱rtl819x-SDK-v3.4.14b的watchdog分析
watchdog看门狗,又叫watchdog timer,是一个定时器电路,一般有一个输入,叫喂狗或踢狗;一个输出到MCU 的 RST 端,MCU 正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到 MCU,使 MCU 复位。防止 MCU 死机。
2022-12-24 03:08:16
1604
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人