- 博客(48)
- 问答 (1)
- 收藏
- 关注
原创 【linux命令】ipmitool使用
ipmitool是一个用于管理IPMI(Intelligent Platform Management Interface)的命令行工具,主要用于读取传感器数据信息库(SDR)、显示传感器值、系统事件日志(SEL)、现场可更换单元(FRU)清单信息,以及获取和设置LAN配置参数等操作。。
2025-03-11 14:42:21
175
原创 【pcie网卡相关】静电保护
rtl8168_esd_task 通常是指 Realtek 8168 网卡驱动程序中的一个任务,用于处理静电放电(ESD, Electrostatic Discharge)保护。rtl8168_esd_task 通常是一个后台任务或线程,负责定期检查网卡的状态,并在检测到 ESD 事件时采取相应的保护措施。恢复机制:如果检测到 ESD 事件,驱动程序会尝试恢复网卡的正常工作状态,例如重新初始化网卡、重置连接等。状态监测:驱动程序会定期监测网卡的状态,检测是否有异常情况发生,例如电压波动、电流异常等。
2025-02-14 10:22:38
231
原创 【linux命令】nmcli使用(目前使用场景是创建bond)
ipv4.addresses 172.114.1.2/24:为 bond1 设置一个静态 IP 地址 172.114.1.2,子网掩码为 24(即 255.255.255.0)。xmit_hash_policy=layer3+4:设置传输哈希策略为基于第 3 层和第 4 层(通常是 IP 和端口)。con-name bond1:设置网络连接的名称为 bond1。ifname bond1:设置绑定接口的名称为 bond1。type bond:设置连接类型为绑定(bond)。
2025-01-17 13:49:39
375
原创 【linux性能优化】系统启动参数
grubby -c /boot/grub2/grub.cfg --update-kernel=ALL --args=“raid=noautodetect swiotlb=16384 crashkernel=16M,low crashkernel=512M,high modprobe.blacklist=virtio_net transparent_hugepage=never acpi_force_table_verification”
2025-01-16 16:17:06
150
原创 rdma_core ibv接口 ibv_get_device_list
【代码】rdma_core ibv接口 ibv_get_device_list。
2024-07-19 09:47:37
179
原创 linux 内存寻址
当使用80x86(32位)微处理器时,一般分为三种不同的地址: 包含在机器语言指令中用来指定一个操作数或一条指令的地址。每一个逻辑地址都由一个段(segment)和偏移量(offset或displacement)组成,偏移量指明了从段开始的地方到实际地址之间的距离。所有段都从0x00000000开始,只需关注段内偏移即可。而段内偏移的值恰好等于线性地址的值。线性地址通常用十六进制数字表示,值的范围从0x00000000到0xffffffff。物理地址用于内存芯片级内存单元寻址。他们与从微处理器的地址
2024-04-11 15:27:39
560
原创 linux内存管理
既然内核已经维护了一组拥有同一大小内存块的内存池,那么为什么不为这些反复使用的块增加某些特殊的内存池呢?kmalloc 和 __get_free_pages 返回的内存地址也是虚拟地址,其实际值要由MMU(内存管理单元,通常是CPU的组成部分)处理才能转为物理内存地址。内存池其实就是某种形式的后备高速缓存,它试图始终保存空闲的内存,以便在紧急状态下使用。Linux处理内存分配的方法是,创建一系列的内存对象池,每个池中的内存块的大小是固定一致的。如果模块需要分配大块的内存,使用面向页的分配技术会更好些。
2023-08-17 14:45:19
269
原创 LINUX内核中的INIT_LIST_HEAD,list_add_tail,list_for_each_entry详解
linux内核中的循环双链表的使用示例
2022-07-22 11:05:12
4906
原创 socket通信服务端客户端简单实现
#include <sys/socket.h>#include<netinet/in.h>#include <arpa/inet.h>#include <string.h>#include <unistd.h>#include <stdlib.h>#include <sys/types.h>int socket_create(){ struct sockaddr_in addr; int reuse =
2022-03-31 17:02:36
327
原创 ubuntu 20.04.1 普通用户执行root权限程序,通过代码配置静态IP
系统环境 :Ubuntu 20.04.1使用环境: 比如公司发给用户的机器,不能给用户root密码,用户就修改不了IP,所以需要做一个程序能修改IPeuid概念 :当进程执行时,操作系统会对euid进行识别,以此判断用什么权限来执行这个进程。1.确定要修改的网卡名(该图片是网上找的)2.查看网卡配置文件: cat /etc/netplan/*.yaml 每台机器yaml文件名不一样,需要自己确定配置静态IP要修改该文件的内容network: version: 2 renderer:
2022-03-26 15:06:30
4289
原创 ubuntu20.04配置静态ip地址
1.需要编辑/etc/netplan/**.yaml# Let NetworkManager manage all devices on this systemnetwork: version: 2 renderer: NetworkManager ethernets: eno1: addresses: - 192.168.1.22/24 gateway4: 192.168.1.1 nameservers: addr
2022-03-25 08:15:42
468
原创 /etc目录下重要文件
1.*/etc/sysconfig/network-scripts/ifcfg-eth0 网卡的配置信息重启网卡:1)/etc/init.d/network restart(所有网卡)2)ifdown eth0&&ifup eht0(只针对eht0)通过steup-network configuration 修改网卡配置[root@localhost /]# cat /etc/sysconfig/network-scripts/ifcfg-eth02:/etc/resolv.co
2022-02-14 11:36:11
742
原创 ubuntu-ssh安装及设置以及防火墙关闭
首先要关闭防火墙:1.getenforce //查看当前状态 Enforcing2.setenforce 0 //修改状态3.getenforce //Permissive防火墙永久关闭"vim /etc/selinux/config" 将"SELINUX=enforcing"改为"SELINUX=disabaled"1.安装ssh: sudo apt-get install openssh-server2.启动ssh:打开 " 终端窗口 ", 输入" sudo ps -s | grep
2022-01-08 17:24:50
1877
原创 【linux命令】ubuntu创建普通用户,删除用户,修改用户密码,修改用户名
创建用户名为 user 的用户1.进入root权限账号su2.添加普通用户名useradd user3.设置普通用户密码passwd user4.修改用户登入后所使用的shellusermod -s /bin/bash user5.设置家目录usermod -d /home/user user6.创建家目录目录mkdir /home/user7.改变目录拥有者和组chown -R user:user /home/user...
2022-01-07 15:27:51
4749
原创 快速找到段错误位置
这里使用gdb调试,本人其实也不怎么会gdb。就几个简单命令即可定位段错误的位置。例如, 执行程序为 ./a.out 123以上面例子为例,1.linux命令行敲入 gdb ./a.out2.如果有参数,则gdb继续敲入 set arg 1233.运行,敲入 r4.敲入 bt即可看到在哪个文件哪个函数中发生段错误 ...
2021-08-26 09:35:08
1272
原创 在使用libpci库时,遇到的问题
下载pci库本意是想直接链接下载的pci库,像我们调用自己写的库一样,但是ldd 发现 链接的库 是在系统路径下编译通过了,但是找不到相对应的函数。1.可能系统版本 libpci 版本过低解决方法:升级 pci库cd 到PCI库文件所在目录ll | grep pci删除相对应的软链接rm -Rf libpci.so.3可以在网站中下载新版本的pci库下载完成后 可以pci库使用教程建立新的软链接ln -s libpci.so.3.7.0 libpci.so.3...
2021-07-08 17:07:39
862
原创 Linux系统下DPDK源码编译,testpmd的使用以及编译过程中遇到的问题,以及高版本DPDK meson+ninja编译步骤
1.首先,下载以及编译官网下载DPDK源码, DPDK官网 : dpdk.org以dpdk-20.08为例,下载完成后,cd 到源码所在路径1. 指定DPDK安装路径, 设置所需的环境变量并转到源目录 export RTE_SDK=/dpdk-20.08 2. ls ./config3. make config T=x86_64-native-linux-gcc4. 设置编译目标 export RTE_TARGET=build5. make2.编译之后,运行前的设置(大
2021-07-01 16:48:55
4385
原创 数组解决约瑟夫环问题(容易理解)
核心思想:循环遍历数组,直至剩下只有一个不为0的元素。第一个人数组下标记作0,每个元素都有不为0的值,开始数数,数到这个人,这个人死亡,就把该下标所对应的元素的值置为0,同时剩余人数减1,一直到剩余人数为1。那么该数组内容不为0的元素就是还活着的人,数组下标加1,则为第多少个人活着。/*name: the_last_guyinput: arr death_num lenout: nonereturn i:the last guy index*/int the
2021-06-11 15:36:00
1109
2
原创 位域、联合体的使用方法
联合体定义在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中。也就是使用覆盖技术,几个变量互相覆盖。这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体,也叫联合体。假如我们要一个unsigned int型 变量 0-3位 学号 4-7位 年龄 8-11位 性别 其他位代表其他信息#include <stdio.h>struct info{ unsigned int id:4,
2021-06-04 17:10:45
559
原创 Debug日志输出
#define DEBUG(...)\do{ \ FILE *fp = fopen("./log.txt","a+"); \ if(NULL == fp)breal; \ fprintf(fp,__VA_ARGS__);\ fclose(fp);\}while(0);DEBUG("%s = %d", "age", 100);
2021-05-25 17:19:47
617
2
有遇到GDB调试程序运行一点问题没有,直接跑程序就会段错误的么。
2021-10-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人