常用操作笔记
文章平均质量分 54
monkey_llll
这个作者很懒,什么都没留下…
展开
-
nfs tftp samba
nfs服务器配置第一步: (一)安装NFS服务器1.1-安装Ubuntu nfs服务器端:sudo apt-get install nfs-kernel-server1.2-安装nfs的客户端:sudo apt-get install nfs-common(在安装nsf-kernel-server的时候,也会安装nfs-commom。如果没有安装这个软件包,则要执行1.2中的命令了)1.3-设置共享的文件目录sudomkdir /nfs //这个目录可以任意设...原创 2021-05-31 11:41:55 · 170 阅读 · 0 评论 -
串口标志位解读
串口错误标志位解读:FE:帧错误,指示当前字符是否存在帧错误(缺少停止位)并且可能已经损坏BRK:BREAK检测,指示当前字符是否为BREAK字符,数据位和停止位均为0OE:接收器超限,指示接收过程中,是否存在数据来不及接收的现象PRERR:RS-485模式下,它保存接收到的9位RS-485数据的第9个数据位。在RS-232/IrDA模式下,它是奇偶校验错误标志。指示是否检测到当前字符是否具有奇偶校验错误并且可能已经损坏Error Detect:错误检测,指示RX_DATA字段是否具有错误-OE原创 2021-05-18 09:55:00 · 1751 阅读 · 0 评论 -
文件系统相关知识
为什么linux的TTY登录程序getty/agetty一般都会设置一个-L的option答:-L option表示程序不等待DCD信号。DCD信号是串口通讯时的一个信号,表示Data Carrier Detected,一般是modem连通之后会发送回来的一个信号,表示数据载波OK,可以继续通信了。但是,在现在的串口通信中,特别是嵌入式开发的时候,开发板上的串口,DCD这个pin一般都不会连线的,一般只连tx/rx/cts/rts四根线就OK了。所以,如果getty或者agetty没有指定-..原创 2021-05-18 09:53:13 · 78 阅读 · 0 评论 -
linux自动U盘挂载
原理: 通过udev规则检测U盘的插入/拔出,然后执行对应的挂载/卸载脚本检测脚本:检测是通过udev规则来进行的,因此在/etc/udev/rules.d/目录下创建11-usb.rules文件,在里面添加如下信息:ACTION !="add",GOTO="farsight"KERNEL=="sd[a-z][0-9]",RUN+="/sbin/mount-usb.sh %k"LABEL="farsight"ACTION!="remove",GOTO="farsight"SUB...原创 2021-05-18 09:51:00 · 358 阅读 · 0 评论 -
USB相关信息介绍
SuperSpeed USB3.0HighSpeed USB2.0FullSpeed USB1.1LowSpeed USB1.0每天USB总线最多可以接127个设备USB主控制器规格有:OHCI:主要是非PC系统上的USB芯片 USB1.1规格UHCI:大多是Intel和Via主板上的USB控制器芯片。他们都是USB1.1规格的。EHCI:是Intel等几个厂商研发,兼容OH...原创 2021-05-18 09:49:24 · 259 阅读 · 0 评论 -
system-map文件解析
System.map这个文件其实就是一个符号表,其主要的作用就是内核在出现问题时,方便研发人员来排查问题。同时可以根据这个文件结合出错的PC指针的值来判断出问题的地方是内核里面的驱动还是动态加载的驱动。如果PC指针的值在System.map里面的地址范围内,就说明是内核里面的驱动出问题了。如果不在就说明是动态加载的驱动出问题了。System.map文件里面,总共只有三列,每一列所表示的意思如下:第一列:地址第二列:符号类型第三列:对应的符号(也就是函数名)注:一个地址对应一个符号,一个符..原创 2021-05-18 09:20:30 · 830 阅读 · 0 评论 -
note.c
ethtools 使用方法: ethtool -s eth0 speed 1000 duplex full autoneg off //设置eth0网卡为1000M 全双工 自动协商关闭 ethtool -s eth0 speed 100 duplex full autoneg off //设置eth0网卡为1000M 全双工 自动协商关闭 ethtool -s eth0 speed 10 duplex full autoneg off ...原创 2021-05-18 09:00:53 · 796 阅读 · 0 评论 -
linux设备驱动程序阅读笔记
并发和竞态1、信号量的使用: 信号量对应的头文件: #include<asm/semaphore.h> 信号量的类型: struct semaphore; 信号量可以通过以下方式来声明和初始化: 方式一: struct semaphore sem; sema_init(&sem, 1); //void sema_init(struct semaphore *sem, int val); 初始化信号...原创 2021-05-16 11:15:05 · 98 阅读 · 0 评论 -
linux内核调试技巧
查看回调函数具体调用的函数名在Linux内核代码里面,很多结构体里面都有一些函数指针。在调试过程中,经常不知道该指针具体调用的是哪一个函数,那么有下面两种方法可以进行查看:方法一:打印堆栈信息在使用函数指针的后面,调用dump_stack()函数。这个函数会把堆栈信息打印出来,通过堆栈信息,就可以知道函数指针具体调用的是哪一个函数。方法二:使用lookup_symbol_name函数函数原型:int lookup_symbol_name(unsigned long addr, char *sy..原创 2021-05-16 11:14:16 · 408 阅读 · 0 评论 -
gdb调试驱动模块
众所周知,要想使用gdb调试,那么在编译的时候一定要加上-g选项。因为编译器默认是不加-g选项的。因此在编译模块的时候,我们需要在Makefile里面添加如下信息:EXTRA_CFLAGS +=-g在添加了上面的信息后,我们编译出来的.ko文件,就可以使用gdb来调试了。我的oops信息如下:Unable to handle kernel NULL pointer dereference at virtual address 00000000pgd = 80004000[0...原创 2021-05-16 11:12:01 · 2442 阅读 · 0 评论 -
文件系统启动脚本信息说明
脚本里面 mount -a 的作用: mount -a 的意思是将/etc/fstab的所有内容重新加载。umask: umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。修改文件系统,实现开机自动登录://这种方式还需要验证一下 方式一、针对nxp的imx系列,修改rc_mxc.S文件,在文件里面添加:/bin/login -f root //直接传递root登陆的参数 IMX6不...原创 2021-05-16 11:11:23 · 135 阅读 · 0 评论 -
dts语法记录
/{ //根节点 node1{ //node1是节点名,是/的子节点 key=value; //node1的属性 ... node2{ //node2是node1的子节点 key=value; //node2的属性...原创 2021-05-16 11:10:14 · 149 阅读 · 0 评论 -
dts讲解
/{ //根节点 node1{ //node1是节点名,是/的子节点 key=value; //node1的属性 ... node2{ //node2是node1的子节点 key=value; //node2的属性...原创 2021-05-16 11:09:33 · 959 阅读 · 0 评论 -
dtb文件格式解析
设备树对应的结构体:struct boot_param_header { __be32 magic; /* magic word OF_DT_HEADER */ //dtb文件的头标志符 一般是 0xd00dfeed __be32 totalsize; /* total size of DT block */ //dtb文件的大小 __be3...原创 2021-05-16 11:08:48 · 1995 阅读 · 0 评论 -
AT24C64-EEPROM阅读记录
AT24C64-EEPROM阅读记录从机地址介绍: 1 0 1 0 A2 A1 A0 R/W 1 0 1 0 0 0 0 N 说明: 1、对于AT24C64,A2 A1 A0必须是0. 2、在Linux设备树里面配置的地址为 1010000 = 0x50 因为最后一位是读写位,所以不计入地址,因此地址只取高7位。 写操作:...原创 2021-05-16 11:07:45 · 966 阅读 · 0 评论 -
ARM指令集
ARM处理器有9种寻址方式:1、寄存器寻址 操作数的值在寄存器中,指令中的地址码字段指出的是寄存器编号,指令执行时直接取出寄存器值操作。 寄存器寻址指令举例如下: MOV R1,R2 ;R2->R1 SUB R0,R1,R2 ;R1-R2->R02、立即寻址 立即寻址指令中的操作码字段后面的地址码部分就是操作数本身,也就是说,数据就包含在指令当中,取出指令也就取出了可以立即使用的操作数(立即数)。...原创 2021-05-16 11:06:53 · 577 阅读 · 0 评论 -
Linux程序运行时自动输入交互命令
在Linux系统里面,我们有时运行程序时,程序在运行过程中,需要我们输入一些信息,程序才能继续向下执行。比如gdb启动程序后,必须输入:run 命令,gdb才会继续运行。很多时候,我们已经知道交互的信息是什么了,想要程序自动输入,那么可以使用以下方法:gdb < test.txttest.txt里面有如下2行内容:set args -platform eglfsr对test.txt里面的内容做解释:第1行是程序运行的参数第2行是运行再举个例子:我们写了一个hello程原创 2020-08-26 23:16:47 · 3909 阅读 · 1 评论 -
Linux patch的生成与使用
生成patch的方法:使用diff命令生成patchdiff -uprN org chg > patch2命令解释:上面的命令表示,将chg文件夹基于org文件夹操作修改的内容生成一个patch2简单点的就是:org文件夹是你的原始文件夹,chg文件夹是你在org文件夹的文件夹上面做了修改。那么现在你想把这些修改提取出来。就可以通过上面的命令把修改的内容放patch2里面。参数解释:-uprN 多个文件的patch合并在一起org 原始的代码chg 修改后的代码patch2 生原创 2020-07-28 20:43:59 · 3485 阅读 · 1 评论