
linux
文章平均质量分 53
木泽八
日拱一卒
展开
-
print_hex_dump调试内核,嘎嘎香
prefix_type: 地址的输出格式是按照偏移、绝对地址或者不输出地址 (%DUMP_PREFIX_OFFSET, %DUMP_PREFIX_ADDRESS, %DUMP_PREFIX_NONE)print_hex_dump是 Linux 内核中的一个函数,用于以十六进制和 ASCII 码格式打印内存数据块。最近在验证芯片功能的过程中发现了一个好用的内核调试接口,print_hex_dump,除了直接打印16进制和ascii外,还支持动态调试打印。@prefix_str: 打印的前缀字符串。原创 2024-10-23 15:48:39 · 1127 阅读 · 4 评论 -
【Linux内核】sysctl命令使用和解析
sysctl是一个用于运行时配置内核参数的命令,实现用户态和内核态的交互,这些内核参数位于/proc/sys目录下。sysctl配置与显示在/proc/sys目录中的内核参数。用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。sysctl机制在/proc/sys下创建出配置节点。sysctl创建新的sysctl节点,可以参考ctl_tablesysctl node结构体,包括name、data、proc、mode。原创 2024-10-22 10:59:32 · 456 阅读 · 0 评论 -
内核initcall解读
如果module在编译时不是builtin的方式,而是编译为ko,则initcall接口会被替换为module_init。initcall提供了不同的优先级,允许module通过initcall接口把初始化函数添加到某个优先级初始化列表中。cmdline添加”initcall_debug=1 loglevel=9”,会打印所有执行的initcall。时,会按照优先级顺序遍历每个initcall列表,逐一执行module的初始化函数。initcall是builtin的module启动阶段初始化的机制。原创 2024-10-15 18:33:27 · 248 阅读 · 0 评论 -
linux - 主次设备号自动申请
alloc_chrdev_region 原型如下,该函数向内核申请一个空闲的主设备号。第四个参数是我们使用cat /proc/devices 看到的名称。原创 2024-05-07 17:30:35 · 519 阅读 · 0 评论 -
TCP和UDP的“保护消息边界“ ,粘包问题
这样,接收端,就难于分辨出来了,必须提供科学的拆包机制。对于UDP,不会使用块的合并优化算法,这样,实际上目前认为,是由于UDP支持的是一对多的模式,所以接收端的skbuff(套接字缓冲区)采用了链式结构来记录每一个到达的UDP包,在每个UDP包中就有了消息头(消息来源地址,端口等信息),这样,对于接收端来说,就容易进行区分处理了。(1)发送固定长度的消息,如1024字节,不到1024的补0;的包长,来进行UDP数据的发送。而UDP,由于面向的是消息传输,它把所有接收到的消息都挂接到缓冲。原创 2023-02-13 15:30:56 · 1438 阅读 · 3 评论 -
一文带你熟悉内核调试工具 --Ftrace
👆👀前言Ftrace是一个内部跟踪程序,旨在帮助软件开发人员和系统的设计者去发现内核内部发生了什么。它可以用于调试或分析延迟和发生在用户空间之外的性能问题。ftrace通常被认为是函数跟踪程序,但它实际上是由几个不同的跟踪实用程序组成的框架。ftrace最常见的用法之一是事件跟踪。可以通过tracefs文件系统启用贯穿内核的是数百个静态事件点,查看是内核的哪些接口被调用。原创 2023-02-06 06:00:00 · 3200 阅读 · 5 评论 -
ubunt配置samba服务器,匿名访问
muchx是ubuntu的用户名,path是ubuntu下共享的目录,然后mkdir /home/muchx/share。在windows下打开文件夹,在任务栏输入如下\\10.0.1.110,就可以访问samba共享文件夹了。在文件夹下输入\\ ip地址,这里我的ubuntu ipdizhi shi 10.0.1.110。配置完成后,重启samba服务: /etc/init.d/samba restart。控制面板->程序-> 启用或关闭windows功能 勾选所有关于SMB文件共享支持选项。原创 2022-12-20 18:30:41 · 2426 阅读 · 6 评论 -
vmware tools选项灰色解决办法(ubuntu 14.04)
首先问题如下:解决办法如下:1.关闭虚拟机;2.在虚拟机设置分别设置CD/DVD、CD/DVD2、软盘为自动检测三个步骤;3.再重启虚拟机,灰色字即点亮。然后我们就可以根据提示正常安装VMwareTools了首先问题如下:解决办法如下:1.关闭虚拟机;2.在虚拟机设置分别设置CD/DVD、CD/DVD2、软盘为自动检测三个步骤;3.再重启虚拟机,灰色字即点亮。然后我们就可以根据提示正常安装VMwareTool....原创 2022-04-07 11:19:23 · 15037 阅读 · 1 评论 -
linux 共享内存 sys-V函数类型
shmdata.h头文件:#ifndef _SHMDATA_H_HEADER#define _SHMDATA_H_HEADER#define TEXT_SZ 2048struct shared_use_st{ int written;//作为一个标志,非0:表示可读,0表示可写 char text[TEXT_SZ];//记录写入和读取的文本};#endif共享内存写端 shmwrite.cinclude <uni...原创 2022-03-11 16:25:15 · 251 阅读 · 0 评论 -
linux 有名管道使用 mkfifo
写端wfifo.c:#include <stdio.h>#include <fcntl.h>#include <error.h>#include <stdlib.h>#include <string.h>#define SIZE 128int main(){ char buffer[SIZE]; int write_fd; int ret; int len;原创 2022-03-11 15:42:51 · 605 阅读 · 0 评论 -
设备树使用手册【转】
设备树使用手册【转】 - 请给我倒杯茶 - 博客园Device Tree Usage设备树使用手册This page walks through how to write a device tree for a new machine. It is intended to provide an overview of device tree concepts and how they are used to describe a machine.本文将介绍如何为一个新机器编写设备树。我们准备原创 2022-02-23 14:49:34 · 691 阅读 · 0 评论 -
/dev/ttyS 串口操作命令 setserial ,stty
Solved: Configuring a serial device (ttyS1) for UART? LS10... - NXP CommunitySolved: I'm currently using an LS1021A-TWR rev 2.0 board, QorIQ SDK 1.9, and CodeWarrior for arm v7 10.0.7. I've enabled UART functionality on thehttps://community.nxp.com/t5/Qo..原创 2021-11-05 21:56:59 · 2151 阅读 · 0 评论 -
iperf3 万兆测试
必须使用iperf3测试万兆,3.0前的版本只能用来测试千兆速率。iperf3源码下载和编译方法,我在之前的文章有写过,iperf3 linux源码下载_珂珂可爱多-优快云博客_iperf3源码。先看下最终的测试结果,可以达到9Gbps+,很不错了,因为刚开始测试的是5G左右,经过调试参数可以到达9G以上。下面说说调优方法1. 网卡默认的MTU是1500字节,对于万兆来说有点小了,相同的数据量,每包1500,头尾会消耗一些带宽,所以可以将MTU设置大点,为9000ifconfig et..原创 2021-10-21 15:34:55 · 5983 阅读 · 2 评论 -
mdio命令读取88x3310万兆phy寄存器
=> mdiomdio - MDIO utility commandsUsage:mdio list - List MDIO busesmdio read <phydev> [<devad>.]<reg> - read PHY's register at <devad>.<reg>mdio write <phydev> [<devad>.]<reg> ...原创 2021-09-28 11:14:05 · 2586 阅读 · 0 评论 -
codewarrior license申请
往下拉,选择架构进去后,选择download选择armv8的点击license keys可以看到之前申请的,重新申请选择“return”, 填写自己的mac地址,生成新的license原创 2021-08-23 17:05:39 · 1682 阅读 · 3 评论 -
git clone出现 fatal: unable to access ‘https://github.com/...‘的解决办法
git config --global http.proxy https://27.192.200.7:9000git config --global https.proxy http://113.237.3.178:9999下面是免费HTTP IP代理地址,上卖弄的地址不好使可以更换试试http://www.xiladaili.com/http/原创 2021-07-31 20:13:03 · 5745 阅读 · 0 评论 -
linux smp_init() 流程,cpu状态迁移流程
init/main.c: smp_init() ------->cpu_up---------->do_cpu_up()---->_cpu_up(cpu, 0, target);----->cpuhp_up_callbacks(cpu, st, target) ----->cpuhp_invoke_callback() ------->--->cpuhp_get_step(state) //获取cpu状态 在cpuhp_hp_states[] 中...原创 2021-07-30 15:08:05 · 472 阅读 · 0 评论 -
linux下rapidio枚举 环境变量设置
kernel-source\Documentation\rapidio\rapidio.txtEnumeration is performed by a master port if it is configured as a host port byassigning a host destination ID greater than or equal to zero. The hostdestination ID can be assigned to a master port using v原创 2021-04-20 10:48:16 · 456 阅读 · 0 评论 -
iperf3 交叉编译
交叉编译设备是powerpc-20201.源码下载地址:https://downloads.es.net/pub/iperf/2.拷贝到ubuntu下进行解压。3. 配置编译方法:3.1 cdiperf-3.0.123.2 设置交叉编译环境变量source/opt/fsl-qoriq/1.9/environment-setup-ppce500v2-fsl-linux-gnuspeecho $CCpowerpc-fsl-linux-gnuspe-gcc -m32 -mcpu=8..原创 2021-04-15 21:11:52 · 2582 阅读 · 0 评论 -
powerpc-fsl-linux-gnuspe-ld.bfd: cannot find -lgcc
编译p2020的uboot出现下面的问题:powerpc-fsl-linux-gnuspe-ld.bfd: cannot find -lgcc1.确定环境是已经设置好的:echo $CC 看下环境变量设置情况echo $CCpowerpc-fsl-linux-gnuspe-gcc -m32 -mcpu=8548 -mabi=spe -mspe -mfloat-gprs=double --sysroot=/opt/fsl-qoriq/1.9/sysroots/ppce500v2-fsl-lin.原创 2021-03-07 13:56:23 · 761 阅读 · 0 评论 -
tftp下载目录设置
1,确保安装以下服务:sudoapt-getinstalltftp-hpasudoapt-getinstalltftpd-hpasudoapt-getinstallxinetd2,cat/etc/xinetd.conf文件内容如下:(一般无须修改)SimpleconfigurationfileforxinetdSomedefaults,andinclude/etc/xinetd.d/defaults...原创 2021-03-01 15:27:37 · 1413 阅读 · 0 评论 -
深入理解linux内核
链接:https://pan.baidu.com/s/1CyLaBo365jMVYog33hblgQ提取码:m5fv原创 2020-12-24 15:20:20 · 854 阅读 · 0 评论 -
iperf3 linux源码下载
https://github.com/esnet/iperf里面有编译过程原创 2020-09-02 20:35:17 · 3098 阅读 · 1 评论 -
iperf3 使用
下载:https://iperf.fr/iperf-download.php我下载的是ubuntu 64位的iperf3,和windows下iperf3.。。最好下载同样的本版,避免测试出现无法预测的问题ubuntu下iperf-deb文件的安装用dpkg -i 命令安装,先安装库。windows的iperf3安装:将解压后的两个文件复制到%systemroot%下,systemroot路径查看方法:复制完成后,输入iperf3 -v输出如下 证明安装正确:CYGWIN_NT-..原创 2020-09-01 18:28:34 · 680 阅读 · 0 评论 -
PowerPC下uboot命令
tftp在线从虚拟机加载uImage,Fs, dtb:uboot下执行以下命令将对文件加载到到嵌入式设备内存中:方法: tftp MemoryAddress FileNametftp 0x1000000 uImage_file;tftp 0x3000000 dtb_file;tftp 0x4000000 rootfs_file;然后执行 bootm 0x1000000 0x4000000 0x3000000,系统就会从指定的内存去加载系统并启动。2. 固化系统到flash...原创 2020-08-27 14:37:51 · 367 阅读 · 0 评论 -
linux内核编译错误整理
1)问题:root@ubuntu:/usr/src/linux-source-5.4.0/linux-source-5.4.0# make oldconfig YACC scripts/kconfig/parser.tab.[ch]/bin/sh: 1: bison: not foundmake[1]: *** [scripts/Makefile.host:17: scripts/kconfig/parser.tab.h] Error 127make: *** [Makefile:...原创 2020-08-05 16:15:18 · 2888 阅读 · 5 评论 -
linux各个版本内核源代码下载
https://mirrors.edge.kernel.org/pub/linux/kernel/原创 2020-07-30 14:52:22 · 1469 阅读 · 0 评论 -
udp传输本地时间例子
linux下udp简单例子:服务器:#include <stdio.h>#include <stdlib.h>#include <sys/socket.h>#include <netinet/in.h>#include <sys/types.h>#include <sys/time.h>#include ...原创 2020-03-29 15:15:15 · 388 阅读 · 0 评论 -
recvfrom获取对端地址
ret = recvfrom(sock, recvbuf, sizeof(recvbuf), 0, (struct sockaddr *)&cliaddr, &clilen ); if(ret <0) { printf("recvfrom err"); return -1; }...原创 2020-03-29 14:58:39 · 2570 阅读 · 0 评论 -
fwrite()读取长度错误
最近在写elf格式文件的解析和装载过程,打开elf文件使用的是file_elf = fopen(path,"r");在将PT_LOAD类型的segment加载到内存时老师不能够读取到我指定长度的空间,即fread((char *)ProHead->p_vaddr, 1 , ProHead->p_filesz,file_elf )的时候,返回的读取到的长度并不是ProHead->p...原创 2018-02-09 09:20:54 · 793 阅读 · 0 评论 -
linux下的ftp访问路径设置
假设你已经在linux上安装并配置好了vsftpd服务器,那么有时我们想让访问者只能特定目录下的文件怎么办呢?别着急,看下面的设置,首先输入命令 vim /etc/vsftpd.conf"打开配置文件,添加下面一条语句:local_root=/home/xxx/xxx保存后退出,并输入service vsftpd restart重启ftp服务器就可以了,此时你可通过在原创 2017-01-20 21:45:03 · 36113 阅读 · 0 评论 -
linux文件系统简介
原文连接地址:http://www.cnblogs.com/yyyyy5101/articles/1901842.html文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识。 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录、挂载基本原理、文件存储结构、软链接硬链接、和常见目录的介绍。相信有了这些知识对于深入的学习转载 2017-01-17 18:04:27 · 289 阅读 · 0 评论 -
判断uboot启动方式:norflash还是nandflash
在XC2440开发板上做uboot从nandflash启动时,需要检测硬件启动方式,启动方式是由硬件OM管脚决定的,软件无法检测硬件电平状态,但可以根据CPU的启动特性来检测。通过深入研究2440的启动方式,总结了几点:如果将S3C2440配置成从NANDFLASH启动(将开发板的启动开关拔到nand端,此时OM0管脚拉低)S3C2440的Nand控制器会自动把Nand原创 2016-12-21 23:03:31 · 1723 阅读 · 0 评论 -
线程执行 Q&A
这里总结几个学习linux线程时遇到的一些问题,做以记录,仅供参考Q:linux 线程的创建顺序和执行顺序有关系么?A:根据版本而定 老版本可能是先要执行子进程 最新的版本都是取决于进程调度算法Q:linux里面线程编译运行问题A:gcc -o xxxx xxxx.c -lpthreadQ: 线程创建顺序和执行顺序关系?A :线程间是并发执行的,也是交叉执行的原创 2016-12-12 23:33:52 · 373 阅读 · 0 评论 -
socket简单文件传输实例
今天在linux系统上写了一个简单的socket文件传输的例子,共享出来仅供参考。例子很简单,只要初学者了解简单的几个socket相关函数和文件函数就能写的出来。服务器端程序:#include #include #include #include #include #include #include #include #include #inc原创 2016-12-07 23:27:32 · 3344 阅读 · 3 评论