- 博客(502)
- 资源 (9)
- 收藏
- 关注
原创 systemd 一些命令
systemctl list-units 列出所有启动unitsystemctl list-unit-files 列出所有启动文件systemctl list-units –type=service –all 列出所有service类型的unitsystemctl list-units –type=target –all 列出所有targetsystemctl list-dependencies #查看当前运行级别target(mult-user)启动了哪些服务systemctl stat..
2021-02-03 10:14:14
390
转载 Linux系统调用之SYSCALL_DEFINE
相信熟悉系统调用的都知道,系统调用在内核中的入口都是sys_xxx,我也不例外,记得有一次,我抱着学习一下socket内核实现的心态想在内核中寻找sys_socket系统调用,却发现只能找到宏定义,怎么也找不到函数实现。后来经过查阅才知道,原来Linux的系统调用都改为SYSCALL_DEFINE定义的了。相信大家都很疑惑,原来的sys_xxx不是挺好的吗?为什么要定义成SYSCALL_DEFINE呢?我也很疑惑,所以我看了一下SYSCALL_DEFINE的定义,如下:#define SYSCAL..
2021-01-22 13:57:45
1560
1
转载 iptable端口重定向 MASQUERADE
首先简述下NAT服务器在负载均衡中做了什么,简单的说就是Linux (内核2.4以后是Netfilter肩负起这个使命滴)内核缓冲区修改来源,目标地址。但是,由于Netfilter工作在Linux 内核我们无法直接操作它,所以Linux提供了iptables。用iptables实现:说到iptables目前最多应用在防火墙了,我们公司的所有的服务器都配置了iptables防火墙,比如它完成的是,告诉内核当前服务器只允许外部通过TCP访问80端口。另外iptables还可以实现端.
2021-01-21 13:32:11
2127
转载 Shell if 条件判断
Shell 语言中的if条件一、if的基本语法:if [ command ];then符合该条件执行的语句elif [ command ];then符合该条件执行的语句else符合该条件执行的语句fi二、文件/文件夹(目录)判断[ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。[ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。[ -d DIR ] 如果 FILE 存在且是一个目录则为真。[ ...
2021-01-20 17:35:43
1401
转载 摸清网络的第一步!
之前写了那么多网络的文章,竟然发现对「网络协议分层」做详细介绍,这次就把这一块补上。要摸清网络,那么第一步肯定是要清楚网络协议的分层结构,看分层结构相当于从上帝视角来看网络,这样后续针对每一个层深入学习就不会摸不着头脑。对于同一台设备上的进程间通信,有很多种方式,比如有管道、消息队列、共享内存、信号等方式,而对于不同设备上的进程间通信,就需要网络通信,而设备是多样性的,所以要兼容多种多样的设备,就协商出了一套通用的网络协议。这个网络协议是分层的,每一层都有各自的作用和职责,接下来就分别对每一层进
2021-01-16 10:42:36
421
转载 Qt和嵌入式Linux
自从Qt 5.0发布以来,Qt不再包含自己的窗口系统(QWS)实现。对于单进程用例,Qt平台抽象是一个优秀的解决方案。Wayland可以支持多种图形化流程。有多个平台插件可能在嵌入式Linux系统上可用:EGLFS,LinuxFB,DirectFB,Wayland。这些可用性取决于Qt的配置。在许多板上选择eglfs作为默认选项。如果默认值不合适,QT_QPA_PLATFORM则可以使用环境变量参数来请求另一个插件。或者,对于快速测试,-platform命令行可以使用相同的语法。配置特定设备对于给定的
2021-01-12 10:20:29
3305
转载 Qt5.x移植后的环境配置(imx6)
1、环境配置脚本如下#!/bin/shexport QTDIR=/usr/lib/qt5export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/pluginsexport QT_QPA_PLATFORM=eglfs:fb=/dev/fb0export QT_QPA_GENERIC_PLUGINS=evdevtouch:/dev/input/event1export QT_QPAFONTDIR=/usr/lib/fontsexport QML2_IMPORT_P
2021-01-12 09:57:59
1435
原创 syslog
在项目中使用4g 发现断网,像查找问题,但是重启系统后返没有存日志使用buildroot-2016.11生成的文件系统。发现在/etc/init.d 没有syslogd 脚本,也没有syslog.confps 命令查看,syslogd服务确实启动在/etc/init.d/S01logging 中启动syslog查看syslogd 帮助信息-O FILE 选项设置log 存储目录-S SIZE 设置存储文件最大容量-b N 保留N 份日志。在/etc/init...
2020-12-05 16:21:16
440
转载 IPU VPU GPU的关系
Video graphics system[IPU, VPU and GPU]IPU:Image Processing Unit• -- Display• -- Camera• -- Image Rotation, Inversion, Color Space Conversion• -- Image quality enhancement• -- Video/graphics combiningVPU:Video Processing Unit• -- V...
2020-11-21 17:29:21
595
转载 Linux文件系统之文件存储与读取:inode,block,superblock
Linux文件类型代表符号 含义 - 常规文件,即file d directory,目录文件 b block device,块设备文件,支持以"block"为单位进行随机访问 c character device,字符设备文件,支持以"character"为单位进行线性访问 l symbolic link,符号链接文件 p pipe,命名管道 s socket,套接字文件 文件命名规则1.严格区分大小写2.目录
2020-11-11 10:47:49
756
转载 2020-11-09
学了结构体很久了,以为自己能够很熟练了,今天发现自己今天成员运算符 (.) 和指向运算符(->) 之间竟然犹豫了其实成员运算符是结构体变量访问成员是用的。而指向运算符则是结构体指针访问成员时使用的,因为一直都是再用结构体指针,突然用结构体变量,使用了指向运算符,看了半天才看出来,当然结构体指针也可以使用成员运算符但需要先取值,但一般没人这么用,我一直是这样认为 你对基础的掌握程度,决定着你能走多远与结构体一起出现的一般还有动态内存分配(栈里开辟内存),需要我们注意的是作用域,和传值传地址举
2020-11-09 13:31:16
223
转载 mkimage使用与解包
在最初学习阶段,我们经常使用mkimage来制作uImage和ramdisk,实质是在被处理的文件前面加上64字节的头部。在到后来,我们可以将多个内核+多个设备树文件+ramdisk打包成一个 linux.itb 文件,用于一个镜像文件支持多平台启动,同样是使用 mkimage 工具来制作,不难猜测,它也是将这多个文件按照一定的方式进行组合,然后再在文件的开头加上64字节的头部。有时候难免悲剧发生,发现自己ramdisk.img的源码找不到了,又懒重新制作,但是又需要对镜像进行修改,无奈之下我们需要解包
2020-11-02 14:08:08
1473
转载 mkimage使用详解
uboot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件。mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字节的头,记录参数所指定的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的,哪种类型,加载内存中的哪个位置, 入口点在内存的那个位置以及映象名是什么root@Glym:/tftpboot# ./mkimageUsage: ./mkimage -l image-l ==>
2020-11-02 14:06:35
3228
转载 LVDS,LCD调试总结(持续更新)
1.LVDS接口分类与数据格式 单路6it LVDS 这种接口电路中,采用单路方式传输,每个基色信号采用6位数据,共18位RGB数据,因此,也称18位或18bit LVDS接口。此,也称18位或18bit LVDS接口。 双路6bit LVDS 这种接口电路中,采用双路方式传输,每个基色信号采用6位数据,其中奇路数据为18位,偶路数据为18位,共36位RGB数据,因此,也称36位或36bit LVDS接口。 单路8bit LVDS 这种接口电路中,采用单路方式传输,..
2020-10-28 17:58:35
3440
转载 DDR扫盲——DDR中的名词解析
FROM:http://blog.chinaaet.com/justlxy/p/5100051913RAS:Row Address Strobe,行地址选通脉冲;CAS:Column Address Strobe,列地址选通脉冲;tRCD: RAS to CAS Delay,RAS至CAS延迟;CL: CAS Latency,CAS潜伏期(又称读取潜伏期),从CAS与读取命令发出到第一笔数据输出的时间段;RL:Read Latency,读取潜伏期;...
2020-10-28 09:07:10
1197
转载 docker镜像导出与导入
使用docker images查看本机所有的镜像文件 docker save eb40dcf64078> /root/mydjango-save-1016.tar 将镜像保存为本地文件,其中eb40dcf64078为image id 将保存到本地的文件上传到不能pull的服务器上,网络是相通的我这里直接使用的是scp命令 使用load方法加载刚才上传的tar文件 docker load < /root/mydjango-save-1016...
2020-10-27 17:31:22
316
1
转载 docker pull 下来的镜像都存到了哪里
环境Ubuntu18.04 Docker 19.03.2镜像位置此处有坑: 以下操作必须在 root 用户权限下进行!!!(如有不知如何进行切换的童鞋,请先翻到最后面~)进入docker 目录cd /var/lib/docker1 文件结构如下:2. 进入containers 目录 这个目录中保存是已拉取的容器ID,即一个序列号,对应一个容器。 随便进入选择一个序列号,进入后发现容器的具体结构如下:3. 进入image 目录 这个目录中保存
2020-10-27 16:59:28
3916
1
转载 Docker commit 将容器保存为一个新的镜像
docker commit -m '注释' 容器CONTAINER ID 镜像名称:镜像版本退出容器[root@23c18d958279 ~]# exitexit[root@localhost dockerImage]#[root@localhost dockerImage]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES23c18d958279 4a5932cd5a14 "/bin/bash" 17
2020-10-27 16:58:17
2456
转载 #、##、__VA_ARGS__的使用
使用打印信息的接口时,经常见到__VA_ARGS__和##__VA_ARGS__这两个字符串,花时间学习下这部分的知识,发现还有#和##这两个比较有意思的字符串,记下他们的用法:#: 用来把参数转换成字符串;例: #include <iostream> #define LOG(x) do { printf("%s=%d\n",#x,x); }while(0) int main() { int score = 96; ...
2020-10-24 13:05:05
801
转载 ARM 指令集版本和ARM 版本
常常能看到ARM7,ARM9,ARM11,以及armv6k等不同的表达。且在GCC编译中,常常要用到 -march,-mcpu等。他们分别表达什么涵义呢?Sam自己也不很清楚,只是大概有个模糊的概念。今天就仔细研究一下。ARM(Advanced RISCMachines)是微处理器行业的一家知名企业。设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。1985年,第一个ARM原型在英国剑桥诞生。ARM公司的特点是只设计芯片,而不生产。ARM将其技术授权给世界上许多著名的半导体、软件和O.
2020-10-23 11:36:21
1833
转载 eMMC 里 DDR52 HS200 HS400 等的含义
eMMC 里 DDR52 HS200 HS400 这些名词指的是不同的速度DDR52就是最高 52M clock,数据速率就是 52 x 2 = 104HS200 就是最高 200M clock,单通道,数据速率也是 200HS400 也是最高 200M clock,但是是双通道,所以数据速率是 200 x 2 = 400HS200和HS400 是 5.0 协议才有的。更详细信息可以从 spec 上找到。...
2020-10-22 18:05:37
32614
4
转载 探索文件描述符(fd)与FILE结构体之间的关系
文件描述符(fd)对于linux而言,所有对设备(对于linux而言,一切皆文件)和文件的操作都使用文件描述符来进行的。文件描述符是一个非负的整数,它是一个索引值,指向内核中每个进程打开文件的记录表。当打开一个现存文件或创建一个新文件时,内核就向进程返回一个文件描述符用于后续对文件的读写操作;当需要读写文件时,也需要把文件描述符作为参数传递给相应的函数。通常情况下,将一个程序从硬盘加载到内存后,这个程序就化身为了一个进程,这时系统会默认打开三个文件:标准输入(stdin)、标准输出(std
2020-10-19 10:26:25
558
转载 文件描述符(fd)和inode号的关系
1、文件描述符和inode号码是不同的两个东西。2、对于每个进程,系统会建立一个进程控制块(PCB)来保存相关的信息,而这个PCB在内核中的表现其实就是一个称为task_struct的结构体,这个结构体的成员用来保存与此进程有关的相关信息,其中有个成员是struct file_struct *files,它是用来找到此进程所有打开的文件列表的,files变量指向的是struct file_struct类型的结构体,这个结构体中有一个成员是一个指针数组struct file *fd_array[]..
2020-10-19 09:15:13
2397
转载 Linux SDIO总线驱动
SDIO卡SDIO卡是在SD内存卡接口的基础上发展起来的接口,SDIO接口兼容以前的SD内存卡,并且可以连接SDIO接口的设备,目前根据SDIO协议的SPEC,SDIO接口支持的设备总类有蓝牙,网卡,电视卡等。SDIO协议是由SD卡的协议演化升级而来的,很多地方保留了SD卡的读写协议,同时SDIO协议又在SD卡协议之上添加了CMD52和CMD53命令。由于这个,SDIO和SD卡规范间的一个重要区别是增加了低速标准,低速卡的目标应用是以最小的硬件开始来支持低速I/O能力。低...
2020-10-14 10:57:37
915
转载 ALSA声卡驱动中的DAPM详解之一:kcontrol
DAPM是Dynamic Audio Power Management的缩写,直译过来就是动态音频电源管理的意思,DAPM是为了使基于linux的移动设备上的音频子系统,在任何时候都工作在最小功耗状态下。DAPM对用户空间的应用程序来说是透明的,所有与电源相关的开关都在ASoc core中完成。用户空间的应用程序无需对代码做出修改,也无需重新编译,DAPM根据当前激活的音频流(playback/capture)和声卡中的mixer等的配置来决定那些音频控件的电源开关被打开或关闭。/***********
2020-10-13 09:31:07
728
转载 博通wifi驱动详解
1WLAN技术WLAN是英文WirelessLAN的缩写,就是无线局域网的意思。无线以太网技术是一种基于无线传输的局域网技术,与有线网络技术相比,具有灵活、建网迅速、个人化等特点。将这一技术应用于电信网的接入网领域,能够方便、灵活地为用户提供网络接入,适合于用户流动性较大、有数据业务需求的公共场所、高端的企业及家庭用户、需要临时建网的场合以及难以采用有线接入方式的环境等。 2802.11协议简述 2.1.1 概述作为全球公认的局域网权威,IEEE8...
2020-10-12 17:22:53
4504
1
转载 博通wifi驱动
很早之前自己的笔记,想想还是记录到网上吧注册 7611 static int __init 7612 dhd_module_init(void) 7613 { 7614 int err; 7615 int retry = POWERUP_MAX_RETRY; 7616 7617 printk("%s: in\n", __FUNCTION__); 7618 7619 DHD_PERIM_RADIO_I..
2020-10-12 17:19:35
778
原创 下载内网内的docker 镜像
1、关闭容器 docker stop machao_ls10xx2、运行docker save命令将镜像保存为tar归档文件docker save -o ubuntu_ls10xx.tar ubuntu_ls10xx_v23 拷贝镜像tar包到电脑 scp machao@192.168.2.158:/data/home/machao/ubuntu_ls10xx.tar ./4 执行dock load命令加载保存的tar归档文件 docker load -i ...
2020-09-22 11:17:28
391
转载 Wi-Fi信号的“频段”和“信道”有何区别?
WIFI信号里的"频段"的意思是无线电波的频率的范围。我们现在所使用的无线路由器,通常而言都有两个频段,分别是2.4G和5G。这个需要从IEEE 802.11协议组说起。IEEE是美国电气电子工程师协会,成立于1963年1月1日,由美国无线电工程师协会(IRE)和美国电气工程师协会(AIEE)合并,后来发展成为了一个国际性的电子技术和信息技术的工程师协会,现在是全世界最大的专利组织之一。通信业里,影响力可以和IEEE相提并论的只有移动通信领域的3GPP组织。WIFI的标准的制定,从.
2020-09-19 15:55:20
5061
转载 IP 基础知识全家桶,45 张图一套带走
IP 基础知识全家桶,45 张图一套带走小林coding公众号:「小林coding」 专注图解计算机基础前言前段时间,有读者希望我写一篇关于 IP 分类地址、子网划分等的文章,他反馈常常混淆,摸不着头脑。那么,说来就来!而且要盘就盘全一点,顺便挑战下小林的图解功力,所以就来个 IP 基础知识全家桶。吃完这个 IP 基础知识全家桶,包你撑着肚子喊出:“真香!”不多说,直接上菜,共分为三道菜:首先是前菜 「 IP 基本认识 」 其次是主菜 「IP 地址的基础知识」 最后是
2020-09-19 14:46:41
424
原创 windows MD5 校验
按【win】+【r】键来打开运行cmd命令行窗口在运行窗口中输入cmd并按下回车键进入cmd命令行界面:使用CertUtil 名做md5校验CertUtil -hashfile 文件路径 算法支持的算法有:MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512具体操作如下图:...
2020-09-19 14:28:52
794
转载 硬件视频编解码基本知识
所有的平板手机电视应用处理器芯片,介绍性能都是关注cpu,gpu的性能,但是除了这些之外,芯片里边还有很多其他模块,对整体性能的影响也很大,任何一处成为瓶颈,都会让整机应用卡壳。这里就讲一下一个整机性能里边基本不会提到,但是对视频流播放非常重要,且复杂度很高的硬件模块,就是硬件视频流编解码器,一般简称VPU (video processing unit).上图左上第3个 full 4k video 代表其中的视频处理系统,其中的最大头,就是编解码器。如果需要播放视频压缩文件,则需要调用解码器。
2020-09-17 11:31:24
3345
转载 yaffs2文件系统的工作流程和checkpoint机制
本文主要讲解一下一个具体的文件系统,yaffs2文件系统,当然针对需要深入研究的人或者说对文件系统完全不了解的读者可以先看一下以下两篇推荐文章。http://www.ibm.com/developerworks/cn/linux/l-vfs/ 解析 Linux 中的 VFS 文件系统机制http://www.cnblogs.com/yuyijq/archive/2013/02/24/2923855.html Linux虚拟文件系统(VFS) 像...
2020-09-14 18:25:05
2278
1
转载 深入理解arp_announce和arp_ignore
在配置LVS和一些linux服务器作为网关的场景中,都会需要设置arp_announce和arp_ignore这两个参数。网上也有很多文章对这两个参数做相应的解释,并且也有对照内核官方说明文档的相应翻译,关于arp_ignore的意义还是比较容易理解的,但是关于arp_announce的解释,我觉得很多都不到位,甚至有越看越糊涂的情况。下面我就结合自己的思考对这两个参数给出我的理解。 顾名思义,arp_announce和arp_ignore是和ARP协议(Address Resolution Pro...
2020-09-10 08:53:11
3101
转载 makefile中命令前@
通常,make会把其要执行的命令行在命令执行前输出到屏幕上。当我们用“@”字符在命令行前,那么,这个命令将不被make显示出来,最具代表性的例子是,我们用这个功能来像屏幕显示一些信息。如:@echo 正在编译XXX模块......当make执行时,会输出“正在编译XXX模块......”字串,但不会输出命令,如果没有“@”,那么,make将输出:echo 正在编译XXX模块......正在编译XXX模块......如果make执行时,带入make参数“-n”或“--just-print”,那
2020-09-04 09:28:16
360
原创 route 命令
使用 route命令查看内核路由表可以看到flags下面有许多字母 组合,他们分别的含义是:U (route is up):该路由是有效的;H (target is a host):目标是一部主机 (IP) 而非网域;G (use gateway):需要透过外部的主机 (gateway) 来转递封包(一般指向默认网关);R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标;D (dynamically installed by .
2020-09-01 10:26:31
3414
转载 https://mp.weixin.qq.com/s/z9sEM1sSOY1wnKjaTiSOsg
背景在Linux虚拟化技术中,网络层面,通常重要的三个技术分别是Network Namespace、veth pair、以及网桥或虚拟交换机技术。今天就通过实验带大家一起学习下Linux网络虚拟化技术。我们首先了解下Network Namespace,它是由Linux内核提供,是实现网络虚拟化的重要功能。通过创建多个隔离的网络空间,实现网络资源的隔离。不同的Network Namespace的资源互相不可见,彼此之间无法通信。如下图所示:Network Namespaceip net
2020-08-31 08:44:38
8083
1
转载 函数指针和指针函数
直接看代码void(*f[])(char*)这个是个什么东西?我们先看看下面的东西函数指针和指针函数的定义我们看个代码int*func(inta,intb)我们之前说过运算符的优先级,「 *」 的优先级低于「( 」由于「 * 」的优先级低于「()」的优先级,因而func首先和后面的「 () 」结合,也就意味着,func是一个函数。即:int*(func)(inta,intb)然后这个函数的返回值的类型是「 int *」 即:指...
2020-08-27 08:50:42
288
转载 网络协议栈流程图 2.6.32内核
数据接收流程图数据发送流程图netlink创建流程图网络初始化流程图socket创建流程图Netfilter 钩子位置图UDPv4发送数据 应用传输层UDPv4传输层接收 来自网络层e1000网卡驱动到网络层的流程路由表fib数据传输路线图接收流程图...
2020-08-24 14:13:39
397
TMS320F28335中文资料汇总.pdf
2019-12-21
EMMC协议.ppt
2019-12-16
netperf-2.6.0.tar.gz
2016-05-07
批处理命令大全.doc
2019-12-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅