自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

钱国正的专栏

业精于勤荒于嬉,行成于思毁于随

  • 博客(394)
  • 资源 (9)
  • 收藏
  • 关注

原创 Kernel notifier详解

内核中大量的通知链表来处理相应的状态变化,主要用来解耦各个模块,时期可以相对独立的完成各自的工作,而互不干涉。比如下面这个kgdb要在系统重启前处理一些信息,那么就注册了相应的函数,来处理。通知链根据不通需求分为4中,原子链,阻塞链,原始链,同步链。各个链的注册也不相同,不过最终大同小异。下面手动写一个类似的事件通知函数来做相应的事情。有不懂的可以参考结构体定义。

2025-02-19 15:09:54 182

原创 QSDK中的备份固件分析

所以,综合下来,QSDK可能支持备份分区,但是我所使用的这个flash是不支持的。不知道具体原因为何?

2025-02-19 15:08:07 145

原创 Qualcomm NSS硬件加速简介

随着移动互联网的普及,基础带宽的提升,各种视频等富媒体应用越来越多的情况下,对于路由器的挑战也越来越大,普通的路由器已经无法满足用户对带宽的需求,而传统普通家用路由器一般采用Linux操作系统,其数据报文的处理都是通过中断来实现的,这就导致了CPU占用率非常高,网络的吞吐量上不去,用户的体验不佳,因此产生了很多的新技术,如DPDK等方案的产生,都是通过将数据报文的处理导到应用层通过轮询的方式来解决。

2024-12-30 11:41:05 839

原创 OpenWrt -制作ubifs文件系统的固件

openwrt ubifs make filesystem image and write

2024-12-03 16:17:02 235 1

转载 WiFi EasyMesh简单介绍

Wi-Fi EasyMesh is a certification program that defines multiple access point home and small office Wi-Fi networks that are easy to install and use, self-adapting, and add multi-vendor interoperability. This technology brings both consumers and service prov

2024-10-22 16:10:32 118

原创 uboot 常用命令汇总

【代码】uboot 常用命令汇总。

2024-09-09 18:44:16 739

原创 Linux kernel xfrm 调用流程

XFRM 架构目的主要服务于IP Security, 俗称IPsec. 应用程序主要是strongswan结合,企业级的VPN基本基于这个构建。xfrm函数调用流程正常的数据报文。sendto/sendmsg -> udp_sendmsg-> ip_make_skb()->ip_send_skb()->ip_local_out(skb)udp_rcv->__udp4_lib_rcv->udp_queue_rcv_skb->encap_rcvup->

2024-09-05 16:01:37 418 1

原创 Linux Kernel USBNET 分析

这个模块的作用是将网络层的数据转换成usb可用的样子发送出去。同时,将收到的外部网络数据接收并传递到设备内部的网络层。抽象点: 中间人的角色,跟以太网卡功能类似,只不过这个人事多,要转换一轮。

2024-09-05 16:01:03 450

原创 C语言通用函数 - 判断ip是否合法

原理很简单就是根据点分十进制的样式进行比对,一个字符一个字符的匹配,存在三个点,且字符为数字,并且值小于等于255,大于等于0.自己写个供大家参考吧,省的到处搜,浪费时间。经常找类似的函数,但是总是不尽如人意。

2024-08-26 17:09:14 450

原创 IPTABLES MARK 多值复用 - 解决QOS和策略路由兼容问题

对进入路由器的系统,打mark可以让其走指定的路由表出去,但是,如果这个时候需要对数据报文进行分类,就需要对其打mark了,那么两个mark怎么共存呢?

2024-08-23 14:18:05 300

原创 Dead loop on virtual device ppp301, fix it urgently! 与cisco路由问题解决方案

设备作为L2TP client背靠背连接思科的路由器的时候一直提示这个错误。

2022-12-21 19:12:57 496

原创 hostapd mac filtering问题记录

Hostapd 的Mac Filtering功能在多SSID中使用过程中的问题

2022-12-20 17:49:08 502

原创 Linux Kernel存储udp server的socket信息跟踪

前言工作中遇到一个内核的bug,同事给内核增加了socket绑定设备接口id的功能,主要用在绑定VRF的时候,绑定特定的设备。最近测试发现了,加了这个补丁后,导致不同vlan的dhcp server不能同时工作,为了解决这个问题,我对linux kernel如何存储socket的相关功能进行了跟踪,记录如下。应用层UDP Server创建应用层调用socket, bind创建udp server socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); bind(sock

2020-09-07 16:46:44 567 1

原创 Intel Eval Board L2TP/IPSec客户端搭建Ubuntu系统

L2TP over IPSec on Ubuntu由于Windows自带的L2TP/IPSec无法与Intel Eval Board建立连接, 这个是Intel的bug.从头搭建L2TP/IPsec 隧道。服务器端配置准备 环境: Intel Eval Board 系统:sdk 基于openwrt 主要构成软件: xl2tpd-1.3.1, strongswan, iperf3(可选,测试性能)配置/etc/xl2tpd/xl2tpd.conf[global]listen-add

2020-07-08 16:55:28 715

原创 Linux VRF 移植遇到的无法绑定VRF interface发送单播数据包问题

起因系统内核版本3.10.104, 然而VRF的multicast支持在4.4版本才开始,而且版本之间很多问题也不一样,后续导致了一些问题。理解错误?在我的理解中,如果要绑定VRF interface,在发送数据包的时候需要提供ifindex, 也就是真实的接口的ifindex,而不是VRF接口的ifindex.VRF 作者的pdfVRF 作者在论坛中回复问题之前的移植,发送广播的时候没什么问题,发送IPv6单播的时候就出现问题了。无法绑定vlan interface,或者VRF interf

2020-06-15 14:12:25 633 2

原创 工作记录- 移植BGP md5支持到linux 2.6.16

需求客户需要BGP协议支持MD5加密这种安全性,所以需要实现IPv6两种协议的支持,然而标准内核在2.6.20才支持这个功能,所以,我们的活儿来了。移植参考Linux-2.6.20 将这个setsocketopt的操作抽象为回调函数,这样方便同时支持两种协议。然后就参照实现,自己添加喽,计算md5的方式参考IPv4实现,其他的参考新的内核实现。问题由于对IPv6 md5使用的不熟悉,测...

2019-08-16 15:45:11 318

原创 工作记录 - Linux 的socket TCP keep-alive功能在特定情况下失效的原因

问题TCP socket keep-alive 失败,导致正在进行的业务失败。分析根据数据报文发现,每次tcp ack keep-alive数据报文请求发送后如果发送别的数据,就会出现socket超时, 判断是内核处理tcp keepalive出现问题导致的。问题重现我根据这种情况,实现了一个类似的socket,发送keep-alive然后在程序中sleep特定时间,然后发送数据,模拟紧...

2019-08-16 15:36:42 1072

原创 Linux网络中的桥 (Bridge)

桥简介桥,从字面来讲就是在一条河流上面建造一条路,对,就是这样,甭管是多大多长跨江还是跨海,它都是起到连接两岸的作用。在计算机的网络世界中也存在这种连接的两个网络的设备,这也是一种桥,虚拟的桥。网络中的桥OK, 回归主题,什么是网络中的桥?我们在90年用的Repeater(一个比特一个比特的转发数据),后来的网桥(一帧一帧的转发),再到后来的交换机(多个端口的桥)。这些都是桥的不同形态的设...

2019-08-16 15:15:52 1147

原创 Qemu 使用记录

简介一直想研究qemu很久了,都是浅尝辄止,看一半的文档就不搞了,要下载那么多的镜像很讨厌的。最近觉得这两年实在是没什么长进确实应该深入看看了。命令行先了解这个命令怎么用吧,首先下载个TinyCore-current.iso 官网上下载才16MBqemu-system-i386 -m 2G -smp 2 -vga vmware TinyCore-current.iso -enable-k...

2019-07-31 19:10:46 419

原创 Linux中的虚拟路由转发VRF

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点 这里可以跳转到教程。VRF 简单概念虚拟路由转发(Virtual Routing and Forwarding)顾明思义,虚拟的路由转发,讲路由分成不同的分组,然后根据请求的接口,目的地址进行路由的转发,这个是工作在单台设备内的,出了这个设备就...

2019-07-22 21:48:16 2107

原创 自动下载Twitter视频图片golang实现

Github地址Github: https://github.com/gohiweeds/twitterdownloader.git功能支持Socks5代理配置国内的:支持设置SOCK5 代理,下载Twitter视频图片 如果已经配置了就不需要了使用SOCK5下载了,如下,直接下载即可,无须配置HTTP代理。 MacOS: export http_proxy=...

2018-09-03 14:30:23 7179

原创 利用go-ethereum创建自己的以太坊账户

转载请注明出处 本人首发在github上 http://blog.hiweeds.net最近两天一直搜索哪里有开源的Go实现的Ethereum的钱包,但是发现其实那么多的开源项目并没有 符合我想看的,兜兜转转,还是看了go-ethereum的源码,然后在stackoverflow上看到了下面的 实现,值得一试。package mainimport "github.com/ethere...

2018-05-30 16:09:33 3035

原创 IPFS 是什么?

IPFS 全称IPFS 英文全称: InterPlanetary File System , 翻译: 星际文件系统技术基础基于Git, BitTorrent, Kademlia, SFS 和Web, 他就像是一群bittorrent, 交换git对象。IPFS提供http接口操作,你也可以挂载文件系统/ipfs.Git - Linus发明的分布式源码管理工具BitTorrent...

2018-04-24 17:03:52 1637

原创 吐槽下dnsmasq源码

吐槽下dnsmasq源码首先表示下感谢,作者提供简单的设计,丰富的功能,充分降低了我们这些普通程序员的工作,但是要理解起来还是不那么称心如意,主要有那么几点。1. 无关设计, 代码缩进问题。无处不再的空格,偶尔有几行tab,真的不好看阿,阅读起来很麻烦2. 整体设计的感想程序主要架构是select侦听socket的状态进行操作 -- 【决定其只能在小网络架构中使用】采用struct dnsmasq

2017-09-01 11:25:56 5658

原创 git push: error 401 Unauthorized while accessing

git push origin mastererror: The requested URL returned error: 401 Unauthorized while accessing https://git.oschina.net/qianguozheng/mtk7620a.git/info/refsvi .git/config将 [remote “origin”] url

2017-05-15 16:59:08 1915

原创 go-workerpool 支持每分钟百万并发的抽象原型

使用 Golang 实现了一个简单的消费者模式, 主要解决每分钟百万请求的问题。基本原理:建立固定的工作线程去缓冲池中取数据处理。以此来控制固定时间内处理的请求数源码地址https://github.com/qianguozheng/go-workerpool.git用途控制goroutine的数目简练模型实际使用场景及灵感来源http://marcio.io/2015/07/handling

2017-01-14 23:22:32 2909

原创 go http异常处理

原文出处: https://github.com/qianguozheng/ideas/blob/master/golang-http-panic-recover-usage.mdGolang http post panic recover usageBrief IntroductionIn golang, some abnormal case would cause program crash,

2017-01-10 13:00:32 1771

原创 大小端再测

以前就对这写概念理解的不够透彻, 每次都是死记硬背大小端的概念, 现在其实也记得不是很清晰。 现在终于是心理稍微有点普了, 0x1234, 低位是0x34, 高位是0x12. short是两个字节。 char 是一个字节。 存到低位的值是低位, 0x12高位, 则主机为大端序 存到低位的值是低位, 0x34低位, 则主机为小端序#include<stdio.h>in

2016-11-02 20:10:37 474

原创 Go语言字符串反转

实现字符串翻转也就是将“abcd” 转换为 “dcba”func reverse(str string) string { rs := []rune(str) len := len(rs) var tt []rune tt = make([]rune, 0) for i := 0; i < len; i++ { tt = append(tt, r

2016-10-12 14:33:52 3180 1

原创 Golang截取字符串(支持中文)

Go内置函数不支持截取字符串转换为rune slice之后,一个中文就是一个“字符”, 所以你可以一个一个的替换,取出等操作。func SubString(str string, begin, length int) string { fmt.Println("Substring =", str) rs := []rune(str) lth := len(rs) fm

2016-10-12 11:09:34 5747

转载 Ubuntu更新出现 The system is running in low-graphics mode解决

一第一步: 出现上面的界面的时候 : 按ctrl +alt+f1 第二步: 按照相应的显卡输入以下命令1.对于最新的Nvidia二进制驱动:sudo add-apt-repository ppa:ubuntu-x-swat/x-updates sudo apt-get update sudo apt-get install nvidia-current nvidia-current-mo

2016-09-28 17:45:10 508

转载 openwrt取消strip 软件包

https://forum.openwrt.org/viewtopic.php?id=15195Hi all , anybody out there who are familiar with makefiles ? sorry for asking , if i for example write in the makefile for a package the following line

2016-09-20 15:43:03 1402

原创 valgrind在openwrt 系统下无法工作原因

http://stackoverflow.com/questions/15840091/cross-compiled-valgrind-does-not-detect-obvious-leaks It turns out that openwrt strips all libraries including valgrind’s vgpreload_xxxxxx.so libs and libc

2016-09-20 15:07:07 1989

原创 error: ext4_allocate_best_fit_partial: failed to allocate 742 blocks, out of space?

I hope this reply doesn’t come too late for you, but I ran into the same problem, in my case:error: ext4_allocate_best_fit_partial: failed to allocate 1579 blocks, out of space?I solved the problem by

2016-09-20 14:58:45 5000

原创 字节数int, long, double

和机器字长及编译器有关系:所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的): 1 sizeof(short int)<=sizeof(int) 2 sizeof(int)<=sizeof(long int) 3 short int至少应为16位(2字节) 4 long int至少应为32位。 unsigned 是

2016-09-19 14:45:56 711

原创 protobuf-c应用样例

源码源码地址: https://github.com/protobuf-c/protobuf-c.git编译./autogen.sh && ./configure && make && make install应用根据协议格式生成源码与头文件amessage.proto 文件内容如下: message AMessage { required int32 a=1; optio

2016-09-18 13:44:31 1386

转载 openwrt toolchain 编译错误 *** [s-attrtab] Killed

[转载] http://www.aganzai.com/post-42.htmlmake[5]: *** [s-attrtab] Killedmake[5]: Leaving directory `/home/work/openwrt/barrier_breaker/build_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/gcc-l

2016-08-21 10:48:25 2187

原创 我会如何从头搭建嵌入式系统

让我从头搭建一个类似openwrt的系统,我才不干,我也干不出那么好。 虽然心里一直说这个系统那么烂,但是不得不为其设计思想感到折服。openwrt的自动下载这个块,设计的思路非常简单,就是按照规则写Makefile由解析程序去下载,解压编译安装。 这套对于普通用户来说很爽,但是如果经常需要编译或者修改就不是很友好。几个字概况就是,不适合产品化。openwrt的内核更新较快,相关软件也有相应升级,

2016-07-02 21:28:24 909

原创 OpenWrt分区

近期与同行交流,问我openwrt分区记忆加深。uboot+firmware+art 其实关于分区叫什么名称,我觉得是随便改,但是功能基本类似。主要是firmware里面又分了两个,之前还遇到过这个事情,竟然忘记了。 firmware=kernel+ rootfs+rootfs_datauboot启动不需要知道分区吗? 需要知道传递给内核的分区参数吧,还有就是要知道内核的烧写地址吧。dev:

2016-07-02 21:20:51 2617

原创 Linux C语言strlcpy,strlcat函数

常用字符串操作函数strcat, 连接字符串strcpy, 拷贝字符串以上两个函数经常会出现stack overflow问题,长度问题导致的等。以下两个是相对安全一点的。strncatstrncpy但是,我个人常用的是snprintf函数,这个函数保证以NUL结尾的。所以从来不参考以上的函数。发现新大陆重温privoxy源码,发现了下面的函数strlcpystrlcat只不过这两个函数并

2016-06-30 23:39:55 1208

5G NR _ the next generation wireless access technology-Academic Press (2018)

5G NR _ the next generation wireless access technology-Academic Press (2018).pdf

2018-12-06

linux device tree 介绍

linux device tree开发文档, linux内核通过device解析设备驱动的配置

2015-09-17

mtk openwrt 3.10.14 sdk源码

mtk openwrt, 3.10.14的相关文档介绍, 如果定制开发最好熟悉下

2015-09-17

AIO nginx C10K

something about highest Asynchronous Performance development of Concurrent, may be the best docs you can find , thanks

2012-03-31

linux动态链接库示例

linux动态链接库的制作,linux下制作动态链接库 C语言描述

2011-09-18

类 QQ 聊天室 java

本人写的类QQ 聊天室,可以实现实时通讯的,不过没有用户列表,而求是用udp 实现,传输可靠性不是特别高哦

2010-11-08

绩点计算器 C# + SQL Server2005

淮阴师范学院绩点计算器作业,如有需要,欢迎下载啊,各位同学也可以参考内容,仅限源码

2010-10-05

截屏源码 java 编写 code

上次的那个没有源码抱歉,这个给补上了,里面包含各种资源信息,希望有兴趣的同学下载

2010-10-04

java 截图工具 源代码

程序设计时有四秒的等待时间 源码部分已经给出,可以再次基础上自己编写图形界面,以及设置截屏大小

2010-10-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除