- 博客(502)
- 资源 (9)
- 收藏
- 关注
原创 chroot: failed to run command ‘/bin/bash’: No such file or directory
但这只会复制 bash 可执行文件,而不是它的所有依赖项,这些依赖项还不存在于我们的rootfs中。目录,这会占用更多空间,但对于安全性来说可能更好一些,尤其是当您使用。目录(无法访问系统的其余部分),那么还可以使用。以运行您不希望弄乱系统文件夹的不安全进程。这个文件不存在,这是。现在一切就绪,应该能够运行。将尝试从./rootfs。
2024-09-23 11:06:29 668
原创 git push 失败 shallow update not allowed
【代码】git push 失败 shallow update not allowed。
2023-10-07 10:21:44 1772
原创 imx8mp usb转四串口不能使用问题
使用usb 4串口,不能识别,注册为 acm类。 在 acm 类驱动 probe函数中。将通过usb idVen dor 过滤drivers/usb/class/cdc-acm.c printk("%s %x %x\n", __FUNCTION__, le16_to_cpu(usb_dev->descriptor.idVendor), le16_to_cpu(usb_dev->descriptor.idProduct)); i...
2022-05-17 17:32:51 709
原创 如何usb 触摸设备不识别为usb mouse
一、获取输入设备name。有一下两种方法1、使用 cat /proc/bus/input/devices 可以查看 输入设备信息I: Bus=0018 Vendor=0000 Product=0000 Version=0000N: Name="generic ft5x06 (79)"P: Phys=S: Sysfs=/devices/platform/soc@0/30800000.bus/30a50000.i2c/i2c-3/3-0038/input/input4U: Uniq=H:
2022-05-17 17:10:54 523
原创 OK8MP 使用uuu方式烧写镜像 根文件系统分区小问题
使用uuu方式烧录ok8mp系统后,使用df -h命令查看 分区信息,发现跟文件系统分区只有 7G而emmc容量是16G.如下方法可以扩大 跟文件系统分区容量删除原有分区,重新分配分区,要求 start sector 前后要一致使用resize2fs 将/dev/mmcblk2p2 分区的文件系统调到最大...
2022-03-25 17:38:51 869
原创 daa3840 4k sensor media topology
daa 8能识别 videoroot@OK8MP:/sys/devices/platform/vvcam-video.0/media1# media-ctl --device /dev/media1 --print-topology Media controller API version 5.4.70Media device information------------------------driver vvcam-videomodel ...
2022-03-23 18:19:32 351
原创 v4l2 与media 结构
v4l2_deviceinclude/media/v4l2-device.hstruct v4l2_device { /* dev->driver_data points to this struct. Note: dev might be NULL if there is no parent device as is the case with e.g. ISA devices. */ struct device *dev; //设备模型dev#...
2022-03-23 17:34:43 1052
原创 proc 查看中断信息
/proc/interrupts中显示的 依次是逻辑中断号、中断在各CPU上发生的次数,中断所属中断父中断、硬件中断号、中断触发方式(电平或边沿)、中断名称。
2022-03-01 09:39:33 551
原创 网络收发包统计
root@forlinx:~# netstat -iKernel Interface tableIface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flgdocker0 1500 0 0 0 0 0 0 0 0 BMUeno2 1532 14782118 0 0 0 512...
2021-11-02 17:18:43 431
原创 shell 解析ini文件
ini文件格式一般都是由节、键、值三部分组成格式:[第一节 ]第一个键 = 值第二个键 = 第二个值[第二节 ]第一个键 = val1,val2,val3具体实例如下:[config]Board=OK8MPQOS=LinuxLAOHUA=trueMUPIAN=true解析过程如下SECTION=configIMGDIR="/mnt"FILENAME=$IMGDIR/config.inised -e 's/^M/\n/g' $FILENAME > ./c
2021-10-14 16:03:14 718
原创 ubuntu 安装 工具包
ubuntu 安装 mkfs.vfatapt-get install dosfstoolsubuntu 安装 mkfs.ubifsapt-get install mtd-utils
2021-10-12 14:04:24 2047
转载 PREROUTING 和 POSTROUTING, SNAT 和 DNAT
NAT (网络地址转换) 技术在平时是很多见的,如家庭中在使用路由器共享上网时,一般用的就是 NAT 技术,它可以实现众多内网 IP 共享一个公网 IP 上网。NAT 的原理 简单的说就是当内网主机访问外网时,当内网主机的数据包要通过路由器时,路由器将数据包中的源内网 IP 地址改为路由器上的公网 IP 地址,同时记录下该数据包的消息;当外网服务器响应这次由内而外发出的请求或数据交换时,当外网服务器发出的数据包经过路由器时,原本是路由器上的公网 IP 地址被路由器改为内网 IP 。工作原理如下图所示:
2021-09-22 14:16:18 576
转载 ubuntu 安装 repo 记录
安装步骤:1、根目录下创建bin文件夹mkdir ~/bin2、配置为临时环境变量(也可配置为永久的)PATH=~/bin:$PATH3、下载repogit clonehttps://gerrit-googlesource.lug.ustc.edu.cn/git-repo4、将git-repo中的repo文件复制到 1 创建的.bin目录中cd git-repocp repo ~/bin/5、修改权限chmod a+x ~/bin/repo..
2021-08-11 10:48:49 661
原创 github 代理
github 代理 网址:https://ghproxy.com/ 终端命令行支持终端命令行 git clone , wget , curl 等工具下载.支持 raw.githubusercontent.com , gist.github.com , gist.githubusercontent.com 文件下载.注意:不支持 SSH Key 方式 git clone 下载.git clonegit clone https://ghproxy.com/https://github.com/
2021-07-30 10:42:23 5522 1
转载 解决git下载出现:Failed to connect to 127.0.0.1 port 1080: Connection refused拒绝连接错误
解决git下载出现:Failed to connect to 127.0.0.1 port 1080: Connection refused拒绝连接错误文章目录: 一、git拒绝连接原因分析 二、错误解决方式 1、查看Linux当前有没有使用代理 2、查看端口有没有被占用 2、取消代理设置 linux解决端口号被占用(扩展内容)不知道是不是翻墙导致的错误,昨天同事说服务器出现了这个错误,然后说服务器坏啦什么哒,因为是我重启啦,...
2021-07-26 10:42:31 3006 4
转载 IP 多播地址与MAC多播地址的映射关系
为了支持IP 多播,以太网的大佬们已经为 Ethernet和Fiber Distributed Data Interface (FDDI)的MAC地址保留了一个多播地址区间:01-00-5E-00-00-00到 01-00-5E-7F-FF-FF。正如下图所示48位的MAC地址中的高25位是固定的,低23位是可变的。为了映射一个IP 多播地址到MAC层的多播地址,IP多播地址的底23位可以直接映射为MAC层多播地址的底23位。因为IP多播地址的前4位是固定的,另外还有比邻的5位不需要映射到MAC...
2021-07-15 15:57:47 2710
转载 Arm内核的Oops错误定位方法
出错的log信息如下: 1 Unable to handle kernel NULL pointer dereference at virtual address 00000014 2 pgd = c0004000 3 [00000014] *pgd=00000000 4 Internal error: Oops: 5 [#1] PREEMPT SMP ARM 5 Modules linked in: 6 CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3
2021-06-29 16:56:39 7505
转载 Linux虚拟网络设备之bridge(桥)
什么是bridge?首先,bridge是一个虚拟网络设备,所以具有网络设备的特征,可以配置IP、MAC地址等;其次,bridge是一个虚拟交换机,和物理交换机有类似的功能。对于普通的网络设备来说,只有两端,从一端进来的数据会从另一端出去,如物理网卡从外面网络中收到的数据会转发给内核协议栈,而从协议栈过来的数据会转发到外面的物理网络中。而bridge不同,bridge有多个端口,数据可以从任何端口进来,进来之后从哪个口出去和物理交换机的原理差不多,要看mac地址。创建bridge我们先用i
2021-06-17 18:24:13 5433 2
原创 指针数组与数组指针详解
指针数组与数组指针详解1.什么是指针数组和数组指针? 指针数组:指针数组可以说成是”指针的数组”,首先这个变量是一个数组,其次,”指针”修饰这个数组,意思是说这个数组的所有元素都是指针类型,在32位系统中,指针占四个字节。 数组指针:数组指针可以说成是”数组的指针”,首先这个变量是一个指针,其次,”数组”修饰这个指针,意思是说这个指针存放着一个数组的首地址,或者说这个指针指向一个数组的首地址。 根据上面的解释,可以了解到指针数组和数组指针的区别,因为二者根本就是种类型的变量。...
2021-06-16 10:58:19 1107
转载 linux top命令查看内存及多核CPU的使用讲述
查看多核CPU命令mpstat-PALL和sar-PALL说明:sar-PALL>aaa.txt重定向输出内容到文件aaa.txttop命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。本文通过一个运行中的WEB服务器的top监控截图,讲述top视图中的各种数据的含义,还包括视图中各进程(任务)的字段的排序。top进...
2021-06-16 09:18:41 2110
转载 vsnprintf和snprintf
vsnprintf和snprintf是C语言printf家族函数的成员,相关函数列表如下:#include <stdio.h> int printf(const char *format, ...); //输出到标准输出 int fprintf(FILE *stream, const char *format, ...); //输出到文件 int sprintf(char *str, const char *format, ...); //输出到字
2021-05-27 14:55:35 1505
转载 printf(“\033[ 颜色特效控制
[cpp] view plain copy<prename="code"class="cpp">颜色特效控制: printf("\033[1;33mHelloWorld.\033[0m\n"); 颜色如下: none="\033[0m" black="\033[0;30m" dark_gray="\033[1;30m" blue="\033[0;34m" li...
2021-05-27 14:48:21 952
原创 解析配置文件
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <fcntl.h>#include <sys/ioctl.h>#include <linux/types.h>#include <dirent.h>#include <errno.h>#include <sys/
2021-05-27 14:33:54 371
原创 解析字符串代码
解析如下字符串 {(0x84c,0x33);(0x850,0x3);(0x854,0x3);}void am335_usr_pinmux(void){ char *pinmux = getenv("pinmux"); int i;#if 0 for(i=0x800;i<0xa38 ;) { printf("addr:%x is %x\n",i,__raw_readl(i+0x44e10000));...
2021-05-27 13:53:05 292
转载 二层交换 三层交换
网关:是下一站路由器的IP地址,第三层网络层负责IP地址,第二层数据链接层则负责MAC地址。1.数据转发依靠的关键字不同,二层转发主要依靠MAC地址,而三层转发主要依靠IP地址。2.数据交换的范围不同,二层交换指在同一网段内的通信,三层交换指跨网段的通信。3.在三层转发的过程中,还要进行二层的封装。也就是说,在转发过程中二层帧头中的(源、目的)MAC地址是要改变的。但是IP数据报中的源IP和目的IP地址是不会改变的。MAC地址是网卡决定的,是固定的。当PC与其他主机通信时,首先判断与
2021-05-08 10:39:02 612
原创 Make: *** No rule to make target ‘GPL-2.0+‘, needed by ‘e‘. Stop 错误
在编译uboot 时 ,突然报错scripts/kconfig/conf --syncconfig Kconfigln: failed to create symbolic link 'arch/arm64/include/asm/arch': No such file or directoryscripts/Makefile.autoconf:134: recipe for target 'create_symlink' failedmake[1]: *** [create_symlink] .
2021-04-21 11:04:35 531
转载 MAKECMDGOALS 变量
make 在执行时会设置一个特殊变量 -- "MAKECMDGOALS" ,该变量记录了命令行参数指定的终极目标列表,没有通过参数指定终极目标时此变量为空。该变量仅限于用在特殊场合(比如判断),在 Makefile 中最好不要对它进行重新定义。下面通过一个实例来说明此变量的意思,设一 Makefile 内容如下:复制代码ifeq ("$(MAKECMDGOALS)","are you ok cmdgoals") who="you" endif are: @echo "...
2021-04-20 13:24:31 377
转载 #、##、__VA_ARGS__和##__VA_ARGS__的作用
一、#用来把参数转换成字符串例子一:#define P(A) printf("%s:%d\n",#A,A);int main(int argc, char **argv){ int a = 1, b = 2; P(a); P(b); P(a+b); system("pause");}输出为:例子二:#define SQUARE(x) printf("The square of...
2021-04-20 13:12:00 92
转载 调试技巧——宏定义开关和printf
printf 的宏定义版本前言:我们在写程序的时候,总是或多或少会加入一些printf之类的语句用于输出调试信息,但是printf语句有个很不方便的地方就是当我们需要发布程序的时候要一条一条的把这些语句删除,而一旦需要再次调试的时候,这些语句又不得不一条条的加上,这给我们带来了很大的不便,浪费了我们很多的时间,也造成了调试的效率低下。所以,很多人会选择使用宏定义的方式来输出调试语句。比如,定义一个宏开关:#define __DEBUG当需要调试的时候,使用语句:...
2021-04-19 12:01:08 343
原创 移动网络支持
名词介绍IMSI指国际移动用户识别码(IMSI:International Mobile Subscriber Identification Number)是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。其总长度不超过15位,同样使用0~9的数字。MCC(Mobile Country Code): 移动国家代码(中国的为460);MNC(Mobile Network Code): 移动网络号码(中国移动为00,中国联通为01);LAC(Location Area Code
2021-04-09 14:54:46 28250 3
原创 uboot 编译生成的头文件
OK1028-linux-fs/build/firmware/u-boot/ls1028ardb/output/ls1028ardb_tfa_defconfig/include/generated uboot 编译生成的头文件asm-offsets.h autoconf.h generic-asm-offsets.h timestamp_autogenerated.h version_autogenerated.htimestamp_autogenerated.h 编译时间#d...
2021-04-08 14:39:39 338
原创 内核 自动生成头文件说明
我们在使用ok1028 编译内核时,生成的各种文件在OK1028-linux-fs/build/linux/kernel/arm64/LS/output/ 目录自动生成的头文件在OK1028-linux-fs/build/linux/kernel/arm64/LS/output/*/include/generated/ 目录asm-offsets.h autoconf.h bounds.h compile.h timeconst.h uapi utsrelease.h vdso-...
2021-04-08 14:05:53 824
转载 Makefile中3个常用自动化变量
在Makefile,有三个常用也很好用的自动化变量:$@、$^、$<,所谓自动化变量是在模式规则中定义的一系列文件自动挨个的去除,直至所有的符合模式的文件都取完。这么说可能比较绕,我们可以简单直白的理解,我们写的应用程序,稍微简单的也要有几个文件(.c、.h等),那么复杂的可能有几百,几千,甚至几十万(kernel),我们在编写Makefile时,如果逐个文件去编译,链接,那是绝不可能的,所以我们需要一种自动规则,一条命令就能干很多重复的事儿,在C编程里,我们有各种循环操作,比如for、while、.
2021-04-08 13:27:33 1056
转载 Makefile的静态模式%.o : %.c
Makefile的静态模式是一个特别高效的“自动化”编译器,“静态”二字,我觉得是直译词意,可能是我不是真正理解什么叫静态,反正这个规则跟中国话的 “静态”没有半毛钱关系。 我们先说一种场景,我们在编写应用程序时,肯定不只有一个文件,会有n多个.C文件,.s文件,少则几十个,多则几千、几万个,我们在windows下写代码,是有各种IDE的,可以一键编译,但linux环境下,是看不上这种方式的,需要我们自己写Makefile的,这个Makefile的功能就类似于IDE的一键编译,是一个编译脚本,...
2021-04-08 13:16:58 1197
转载 网络二层与三层数据包转发过程
对于搞IT的同行而言,大部分人都不会直接和网络打交道,因此除非从事网络开发,否则对网络内部机制也不会太关心,但是明白网络数据是怎么走的,这对每个IT工程师应该是很重要的基础知识。网络数据包如何在网络上游荡,长久以来也困扰了我很长时间,现在把这部分内容总结分享一下。 说起网络,大家不约而同会想起大学课本上那个臭名昭著的ISO七层模型,但是ISO模型只是提供了一个参考,并不是具体实现,目前我们使用最多的实现其实是TCP/IP协议族。但是对于TCP/IP,除了表示层和会话层没有体现,其它几层和ISO基本是
2021-04-02 11:54:50 2680
转载 Linux驱动开发常用内存调试工具 memtool and devmem
在驱动调试时,需要直接查看cpu寄存器的值,这里提供提供两种工具,memtool和devmem.其中devmem在busybox中已包含,直接使用busybox devmem+命令即可。可参考http://blog.csdn.net/xy010902100449/article/details/47028497Android源码默认是包含memtool工具的,如果完整编译过Android源码,可通过locate memtool查找该可执行程序。或者直接下载源码https://github.
2021-03-18 09:43:56 738
转载 mmap基础概念
mmap基础概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。相反,内核空间对这段区域的修改也直接反映用户空间,从而可以实现不同进程间的文件共享。如下图所示: 由上图可以看出,进程的虚拟地址空间,由多个虚拟内...
2021-02-23 10:13:10 551
转载 APN简介
APN总体介绍: APN指一种网络接入技术,是通过手机上网时必须配置的一个参数,它决定了手机通过哪种接入方式来访问网络。对于手机用户来说,可以访问的外部网络类型有很多,例如:Internet、WAP网站,集团企业内部网络、行业内部专用网络。而不同的接入点所能访问的范围以及接入的方式是不同的,网络侧如何知道手机激活以后要访问哪个网络从而分配哪个网络的IP呢,这就要靠APN来区分了,即APN决定了用户的手机通过哪种接入方式来访问什么样的网络。APN分类: APN分为WAP和Net,其中W...
2021-02-23 10:08:57 10398
转载 Linux systemd启动守护进程,service启动顺序分析及调整service启动顺序
systemd是Liunx的启动守护进程,已被大多数Liunx发行版所采用。相较于之前被采用的init进程串行启动,systemd进程采用并行启动且为系统启动管理提供了成套的方案。探索systemd启动的问题背景是,团队使用树莓派zero W+做的产品在系统启动后需要启动声卡播放音频文件,但声卡驱动相关的服务启动需要20s+,加上系统其余启动项耗费的时间,在45s左右才能实现音频播放。上电45秒系统不作出任何反应,用户难以忍受如此长的没有任何反馈的启动时间。经过调整service启动顺序,最终实现上
2021-02-03 11:07:57 3791
批处理命令大全.doc
2019-12-21
EMMC协议.ppt
2019-12-16
netperf-2.6.0.tar.gz
2016-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人