自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(479)
  • 资源 (6)
  • 收藏
  • 关注

原创 常用网址

1、RFC查询网站https://datatracker.ietf.org/doc/https://www.rfc-editor.org/search/rfc_search_detail.php2、

2020-09-23 11:06:45 429 1

原创 常用linux命令

grep rut_sendHttpdRedirect ./ -nrw有时候使用命令grep rut_sendHttpdRedirect ./ -nrw会出现不能在所有文件中查找的情况,这时候可以使用命令grep rut_sendHttpdRedirect ./ -rmkdir -p /root/test/jianshe/one/two,在加上-p参数后就可以一次建立多层目录在li...

2019-06-25 15:05:20 339 1

原创 个人笔记

1、一个线程不能被多个线程等待,也就是说对一个线程只能调用一次pthread_join,否则只有一个能正确返回,其他的将返回ESRCH 错误。2、c语言中#、##作为连接符只能在宏中使用3、strerror(errno)发生错误时可以使用这个打印错误信息,以%s打印4、iptables 命令有时候可能会执行不成功,最好添加-w参数。但是,加-w锁也不安全,所有地方加-w锁可能破坏调用顺...

2019-06-25 15:04:55 170

原创 Linux kernel_BootLoad

2024-10-28 23:40:53 72

原创 linux kernel map

2024-10-28 23:37:46 85

原创 yocto错误汇总!!!

robot@robot-virtual-machine:~/poky$ ls bitbake LICENSE.GPL-2.0-only meta-selftest README.qemu build LICENSE.MIT README.poky scripts robot@robot-virtual-machine:~/poky$ source oe-init-build-env bash: oe-init-build-env: 没有那个文件或目录。下载的yocto不完全,删除后按照此博客重新下载。

2024-10-20 17:00:23 616

转载 Yocto:解决“QA Issue: Package version for package went backwards which would break package feeds”

主要原因是:如果启用了构建历史记录,那么当一个包在相同的名称下被构建出来时,Yocto 的 ERROR_QA 或者 WARN_QA 就会报告它的版本比以前构建的包的版本要低。如果你将旧版本包放置到镜像中,并使用该镜像升级目标系统上的包,则旧版本包可能导致目标系统无法正确升级到该包的“新”版本。

2024-10-17 14:22:54 31

转载 yocto

Yocto项目(YP)是一个开源协作项目,可帮助开发人员创建基于Linux的自定义系统,而无需考虑其硬件体系结构。该项目提供了一套灵活的工具和空间,全世界的嵌入式开发人员可以在其中共享技术,软件堆栈,配置和最佳实践,这些技术,可用于为嵌入式和IOT设备或需要定制Linux OS的地方创建量身定制的Linux映像。yocto的发行版为Poky,也是用来构建系统的基本工具。Poky包含定制版OpenEmbedded(OECore)和BitBake构建引擎,以及帮助我们构建系统的其他元数据,

2024-10-14 19:01:38 39

转载 Yocto编译系统介绍

其次是一个可用的Linux系统包含引导模块、内核、文件系统,以及很多必要的应用程序,如果手动编译上述的这些东西(LFS就是一个例子),需要花费很大的力气而且容易出错,而使用OpenEmbeded只需要几个简单的命令即可自动完成整个构建的过程。do_populate_sysroot:将do_install安装的目录文件拷贝到相应的sysroot中,这个目录最终会被放到共享区,其它任务构建就可以共享,具体哪些目标会被拷贝,取决于定义的sysroot相关的变量。Yocto,是一个开源社区。

2024-10-14 18:43:38 107

转载 嵌入式Linux 开发经验:platform_driver_register 的使用方法

其实平台驱动本身一点都不麻烦,相反如果自己去拿个【设备节点名称】去匹配设备树,才会比较的麻烦,也就是说,注册了平台驱动,这个匹配操作就自动完成了,不需要用户写一些匹配设备树的操作函数手动去匹配了。利用平台驱动的这个机制,在设备匹配成功再去注册设备,那么注册实际的设备的操作放在平台驱动 probe 中调用,再适合不过了,如根据设备树觉得是否需要注册一个 misc 字符设备,如果匹配失败,那这个设备不存在,就无须注册,匹配成功,说明设备存在,就会在 probe 中注册设备。/* 移除驱动模块时会调用 */

2024-09-30 14:07:26 326

转载 Linux内核的 EXPORT_SYMBOL 和 EXPORT_SYMBOL_GPL 的作用

它表示一个符号,如果被重新定位引用,该符号的值不会与其地址,但必须在运行时调用。“w” 符号是一个弱符号,未被明确标记为弱对象符号。当弱定义符号与正常定义符号链接时使用定义的符号时没有错误。当弱未定义符号被链接且未定义该符号时,该符号的值将在特定系统中确定没有错误的方式。当弱未定义符号被链接并且符号未被定义,则弱符号的值变为零,没有错误。对于这样的符号,动态链接器将确保在在整个过程中,只有一个符号使用此名称和类型。第二列,是符号属性,小写表示局部符号,大写表示全局符号(具体含义参考man nm);

2024-09-30 13:30:21 217

转载 实现自动化构建与集成:Jenkins与SVN整合的指南

在SVN配置文件下有这样一个文件:/usr/local/svn/svnrepos/project/hooks/post-commit.tmpl,表示在执行commit之后,SVN会做什么事情。第一步:配置web发布服务器地址,参考上面的:https://www.cnblogs.com/zhangzhixi/p/17015148.html#_label2_6。比如我们这个项目的地址触发地址是:http://110.43.204.225/jenkins/job/apple/build?

2024-09-27 14:01:18 300

转载 一招解决,SVN控制的文件夹都是绿色勾,没有叹号或者其它标识的问题

项目文件夹右键 》 tortoiseSVN-》setting-》Icon Overlays设置为Default。刷新文件夹即可看到效果。

2024-08-29 10:49:24 146

转载 16进制对应的ASCII表

2024-08-29 10:40:14 364

转载 《一篇搞懂》系列之一 —— iptables

iptables其实只是一个简称,其真正代表的是这个IP数据包过滤系统。为了简便,本文也将整套系统用iptables简称。iptables是3.5版本的Linux内核集成的IP数据包过滤系统。当系统接入网络时,该系统有利于在Linux系统上更好地控制IP信息包和防火墙配置。此外,iptables还可以进行NAT规则的管理。netfilter位于内核空间,是内核的一部分,由一些数据包过滤表组成,这些表包含内核用来控制数据包过滤处理的规则集;

2024-07-26 10:16:29 101

转载 一文详解iptables基础知识

iptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,因此理解如何配置 iptables将会帮助你更有效地管理Linux防火墙。如果你是第一次接触iptables,你会觉得它很复杂,但是一旦你理解iptables的工 作原理,你会发现其实它很简单。首先介绍iptables的结构:iptables -> Tables -> Chains -> Rules. 简单地讲,tables由chains组成,而chains又由rules组成。如下图所示。

2024-07-26 10:07:20 1783

转载 OpenWrt启动过程分析+添加自启动脚本

之后还需要在rc.d目录下做一个链接,启动时系统会按顺序启动rc.d目录下的脚本链接,对应执行init.d目录下的启动脚本。总结一下OpenWrt的启动流程:1.CFE->2.linux->3./etc/preinit->4./sbin/init ->5./etc/inittab ->6./etc/init.d/rcS->7./etc/rc.d/S* ->8.OpenWRT的启动脚本放在 /etc/init.d 目录下,而系统开机时自动运行/etc/rc.d目录下的脚本。之后,linux系统启动起来了。

2024-07-23 18:29:12 1105

转载 Linux系统调用--getrlimit()与setrlimit()函数详解

终止w/core的含义是:在进程当前目录生成core文件,并将进程的内存映象复制到core文件中,core文件的默认名称就是“core”(这是 Unix类系统的一个由来已久的功能)。这里要注意的是,当你要修改limit的时候,如果不指定-S或者-H,默认是同时设置soft limit和hard limit。在linux系统中,Resouce limit指在一个进程的执行过程中,它所能得到的资源的限制,比如进程的core file的最大值,虚拟内存的最大值等。//进程可建立的文件的最大长度。

2024-07-11 11:27:45 231

转载 Source Insight 4.0的超实用的常规设置小技巧

【Options】->【Preferences】 ->【File】->【Default encod­ing】修改为:Chinese Simplified(GB2312),关闭所有文件,重启即可。【Options】->【File type Options】,选择【Auto Indent…】弹出对话框,将【Smart Indent Options】下的两个复选框的√去掉即可。【Options】->【File type Options】,勾选下图所示选项。打开函数调用关系窗口,这个窗口在你。

2024-06-15 17:38:05 1220

转载 linux内核cdev_init系列函数(字符设备的注册)

kobj_map函数中哈希表的实现原理和前面注册分配设备号中的几乎完全一样,通过要加入系统的设备的主设备号major(major=MAJOR(dev))来获得probes数组的索引值i(i = major % 255),然后把一个类型为struct probe的节点对象加入到probes[i]所管理的链表中,如图2-6所示。其中,dev是它的设备号,range是从次设备号开始连续的设备数量,data是一void *变量,指向当前正要加入系统的设备对象指针p。初始化 cdev 后,需要把它添加到系统中去。

2024-06-14 11:44:43 269

转载 register_chrdev_region、alloc_chrdev_region、register_chrdev区别

内核提供了三个函数来注册一组字符设备编号,这三个函数分别是和。这三个函数都会调用一个共用的函数向内核设备表来注册一组设备编号范围(即一个 char_device_struct 结构)。

2024-06-07 09:45:50 255

转载 01-register_chrdev_region解析

注意:cp = &(*cp)->next,cp是char_device_struct **类型,(*cp)->next是一个char_device_struct 类型,所以&(cp)->next,就得到一个char_device_struct **,并且这时候由于是指针,所以对cp赋值,就相当于对链表中的元素的next字段进行操作。在内核4.4版本中,MKDEV(ma,mi) ((ma)<<8 | (mi)),与之前的主设备号占高12位,次设备号占低20位不同,所以次设备号只能从0~255,

2024-06-06 17:50:34 52

转载 【Linux API 揭秘】module_init与module_exit

目录1、函数作用2、module_init函数解析2.1 module_init2.1.1 模块方式2.1.2 内建方式2.2 __initcall2.2.1 代码调用流程2.2.2 #和##的作用2.2.3 函数解析3、module_exit函数解析3.1 module_exit3.1.1 模块方式3.1.2 内建方式3.2 __exitcall4、扩展module_init和module_exit是驱动中最常用的两个接口,主要用来注册、注销设备驱动程序。并且这两个接口的实现机制是一样的,我们先以modu

2024-06-06 16:44:44 59

转载 【Linux】内核线程创建 kthread_run 函数和内核中断

kthread_run函数详解以PCIE的热插拔内核线程创建为例说明注意:内核线程和RTOS的线程略有不同,这里Linux上创建以后直接运行,RTOS上有的是需要加入到调度队列中后才会执行,比如RT-Thread的系统kthread_run 是 Linux 内核中的一个函数,用于创建和运行内核线程(Kernel Thread)。在 Linux 内核中,线程是一种轻量级的执行单位,可以独立运行并共享进程资源。

2024-06-06 15:08:45 54

转载 notepad++ 打开提示“Folder xx does not exist“解决

nodepad++打开文件 ,提示 xx catnot be opened,Folder xx does not exist",原因是文件是被notepad++以管理员权限方式打开的,重新以非管理员打开正常。即:退出notepad++重新进入即可!

2024-06-05 10:04:46 201

转载 Win11怎么重置系统?(小白专享篇)

重置Windows 11系统的步骤如下:方法一:1.同时按下【Windows+i】键打开系统设置。2.在当前页面下拉选择【系统】-【恢复】。3.点击重置此电脑下的【初始化电脑】。4.点击【删除所有内容】。5.选择删除所有内容后,继续选择安装Windows的方式,选择从【本地重新安装】即可。6.选择从本地重新安装后系统会提示电脑重置会删除的内容,点击【下一步】即可。7.点击下一页后系统会再确认一次重置需要删除的内容,直接点击【重置】即可。

2024-05-30 17:48:15 6035

转载 svn 分支(branch)和标签(tag)管理

版本控制的一大功能是可以隔离变化在某个开发线上,这个开发线就是分支(branch)。分支通常用于开发新功能,而不会影响主干的开发。也就是说分支上的代码的编译错误、bug不会对主干(trunk)产生影响。然后等分支稳定之后,可以再合并到主干上。版本管理系统的一大功能是标记特定版本,以便在任何时候都可以重建某个版本的环境,这个标记版本的动作就是打标签。svn不需要特殊命令来打分支或者打标签。它使用的是一种“轻量copy”的方式,这种方式有些像unix的硬链接。

2024-05-29 18:41:09 1621

转载 安装系统时找不到硬盘的处理方法

路径一般为在【Drivers】-【Production】下,选择【Windows10-x64】,点击【确定】。在出现的页面点击【驱动程序和下载】,在【关键字】中搜索:rapid,找到【英特尔快速存储技术驱动程序】,点击【下载】,下载的文件默认保存位置或保存到自己可以找到的位置即可。下载完成后,先把U盘接到电脑上,然后找到下载的文件,双击运行。接着在出现的页面选择【EXTRACT】进行解压,解压路径选择接入的U盘,等待解压完成。1、修改BIOS的硬盘模式为AHCI模式后,重启电脑,再次安装系统。

2024-05-28 19:30:55 3886

转载 failed to set hardware filter to promiscuous mode:连到系统是上的设备没有发挥作用(31)

百度网盘:https://pan.baidu.com/s/1BIyXd7aIGaULww9g0n-WJw 提取码: yequ。阿里云盘:https://www.aliyundrive.com/s/4UjQ3uEqywz 提取码:onechina。阿里云盘:https://www.aliyundrive.com/s/KrZZxS4jSPU 提取码:xv80。npcap软件下载页(需加速):https://npcap.com/dist/详细问题定位阅读:http://issues.npcap.org/628。

2024-05-28 19:28:23 576

转载 Ventoy的pe盘制作及重装系统步骤【解释的非常清楚!!!】

当我们使用一般的pe盘的时候,他会把我们的u盘格式化,而且里面下载了很多文件,我们可能就不敢轻易的使用这个u盘作为我们日常使用的u盘,只是把它放起来等到需要重装系统的时候才会拿出来,这就造成了u盘的浪费。而Ventoy就能解决这个问题。

2024-05-28 19:20:31 1342

转载 嵌入式Linux--U-Boot(五)NAND命令使用

uboot 是支持 NAND Flash 的,所以也有 NAND Flash 的操作命令,前提是使用的 NAND 版本的核心板,并且编译 NAND 核心板对应的 uboot,然后使用 imxdownload 软件将 u-boot.bin 烧写到 SD 卡中,最后通过 SD 卡启动。从上面给出了 NAND 的页大小、OOB 域大小,擦除大小等信息。上图中的文件就是我们写到 NAND 中的设备树文件,至于设备树文件的详细内容我们后面会有专门的章节来讲解,这里大家知道这个文件就行了。

2024-05-27 09:41:16 602

转载 vscode编译多文件复杂项目时tasks.json launch.json 的配置

本文介绍了利用vscode编译复杂工程的方法,包括gcc和cmke编译时 tasks.json launch.json c_cpp_properties.json 的具体配置。一、编译代码使用例子c/c++在windows下编译:使用MinGW gcc从零编译项目二、g++配置tasks.json launch.json c_cpp_properties.jsontasks.json编译程序所需要的指令"tasks": [//下面两条g++语句编译动态库。

2024-05-24 14:05:22 656

转载 MinGW-w64的安装详细步骤(c/c++的编译器gcc、g++的windows版,win10、win11真实可用)

MinGW(Minimalist GNU for Windows) 是一个用于 Windows 平台的开发工具集,它提供了一组 GNU 工具和库,可以用于编译和构建本地的 Windows 应用程序。MinGW 的目标是在 Windows 环境下提供类似于 Unix/Linux 环境下的开发工具,使开发者能够轻松地在 Windows 上编写和编译 C、C++ 等程序。

2024-05-24 09:30:49 10695 1

转载 csdn分类专栏使用指南

如果建二级分类,需要 “#”+“空格”+分类名,这样就可以建立一个二级分类。注:二级分类是单独的分类,和一级分类并无父子关系。分类专栏上线了,很多小伙伴不会使用,写个简单的操作指南,供大家参考。建立好二级分类以后,可以鼠标直接拖拽,放到你制定的一级分类下。选择你要添加的文章,选择好以后,点击 应用。选择你需要新增文章的二级分类,点击查看。如果建一级分类,直接输入分类名就行。注::: 分类可以直接拖拽排序!至此,该二级分类,新增文章完成。2.给二级分类下增加新文章。点击新建,增加一个分类。

2024-05-10 09:29:19 149

转载 线程五种状态及其相关方法,线程安全

第一:调用notify() 方法导致解除阻塞的线程是从因调用该对象的 wait()方法而阻塞的线程中随机选取的,我们无法预料哪一个线程将会被选择,所以编程时要特别小心,避免因这种不确定性而产生问题。第二:除了notify(),还有一个方法 notifyAll()也可起到类似作用,唯一的区别在于,调用 notifyAll()方法将把因调用该对象的 wait()方法而阻塞的所有线程一次性全部解除阻塞。当然,只有获得锁的那一个线程才能进入可执行状态。

2024-05-10 09:23:32 42

转载 Linux多核运行机制(SMP)

/load_balance检查该cpu在这一层的调度域中是否存在负载不平衡的情况,如果存在该cpu会分担负载最重的那个cpu的一些任务。/* (7) 如果本sd的balance间隔时间已到,进行实际的load_balance() *//* (6) 如果需要串行化(SD_SERIALIZE),做balance之前需要持锁 */for_each_domain(cpu, sd) {//遍历该cpu的所有调度域,从最低一级到最高一级。// next_decay_max_lb_cost 是下一次进行衰减的时间。

2024-05-09 17:17:29 1409

转载 PPPoE体系架构 pppoe 流程

发现阶段结束后,就进入标准的PPP会话阶段。LCP协商的过程如下:协商双方互相发送一个LCP Config-Request报文,确认收到的Config-Request报文中的协商选项,根据这些选项的支持与接受情况,做出适当的回应。(2)Config-NAK:若支持对端的协商选项,但不认可该项协商的内容,则回应Config-NAK报文,在Config-NAK的选项中填上自己期望的内容,如:对端MRU值为1500,而自己期望MRU值为1492,则在Config-NAK报文中埴上自己的期望值1492。

2024-04-28 15:08:30 94

转载 操作系统 宏内核和微内核的区别

优点:超级稳定,驱动等的错误只会导致相应进程死掉,不会导致整个系统都崩溃,做驱动开发时,发现错误,只需要kill掉进程,修正后重启进程就行了,比较方便。宏内核:简单来说,就是把很多东西都集成进内核,例如linux内核,除了最基本的进程、线程管理、内存管理外,文件系统,驱动,网络协议等等都在内核里面。内核态:CPU可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,CPU也可以将自己从一个程序切换到另一个程序。缺点:稳定性差,开发过程中的bug经常会导致整个系统挂掉。宏内核和微内核的区别。

2024-04-28 10:44:04 551

转载 python 2x和python 3x的区别_python2x和python3的区别

py3x: nonlocal将变量声明为一个非局部变量 11,字符串区别: py2x: unicode类型表示字符串序列,str类型表示字节序列 py3x: str类型表示字符串序列,byte类型表示字节序列。py2x:python2中input的到的数据类型为int型,Python2x是 raw_input()得到是str字符串 py3x python3x中是 input()得到是字符串str。12,1/2的结果区别 py2x: 返回0 py3x: 返回0.5,没有了int和long的区别。

2024-04-17 11:54:00 320

转载 cmd下telnet命令不被识别为内部或外部命令

cmd窗口中提示telnet不是内部或外部命令这个问题想必曾经也深深的困扰着你吧,这个问题的出现并不是因为用户们的操作哪里有什么不对用户们也不用太担心只需要一些小小的操作设置就可以让cmd窗口提示telnet不是内部或外部命令这个问题迎刃而解,一起来看看小编今天为大家带来的cmd窗口提示telnet不是内部或外部命令解决办法吧。

2024-04-09 17:14:54 513

xacs.rar,本地tr069服务器软件

本地tr069服务器,可以用来模拟tr069平台对设备进行一系列操作,而不必受环境限制,方便调试

2020-09-17

miwifi_r1cm_firmware_b9d56_2.7.11.bin

shh升级之前必须要升级的版本,只有在这个版本之下才能安装ssh,其它的版本可能不能安装ssh,尝试过其它版本,但是都不成功

2020-07-30

miwifi_ssh.bin

小米mini版青春版智能无线路由器需要ssh登录才能升级,需要安装的ssh镜像

2020-07-25

openwrt-ramips-mt7620-miwifi-mini-squashfs-sysupgrade.bin

这个镜像升级到小米mini版青春版智能无线路由器中,小米mini版青春版智能无线路由器可以作为dhcp、pppoe服务器使用,以及用来研究ipv6相关内容

2020-06-12

upnp失败1.1.pcapng

upnp开启,使用比特彗星软件能看到upnp nat成功映射

2019-10-30

upnp成功1.1.pcapng

upnp开启,使用比特彗星软件能看到upnp nat成功映射

2019-10-30

空空如也

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

TA关注的人

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