自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 问答 (1)
  • 收藏
  • 关注

原创 【linux驱动开发】创建proc文件系统中的目录和文件实现

【代码】【linux驱动开发】创建proc文件系统中的目录和文件实现。

2025-03-14 09:17:34 381

原创 【linux命令】ipmitool使用

‌ipmitool是一个用于管理IPMI(Intelligent Platform Management Interface)的命令行工具,主要用于读取传感器数据信息库(SDR)、显示传感器值、系统事件日志(SEL)、现场可更换单元(FRU)清单信息,以及获取和设置LAN配置参数等操作‌。‌。

2025-03-11 14:42:21 175

原创 【linux配置】 修改内核网络参数

linux内核网络参数

2025-02-25 16:39:03 407

原创 【linux命令】bridge命令(网桥)

linux brideg网桥命令

2025-02-19 10:50:32 197

原创 【pcie网卡相关】静电保护

rtl8168_esd_task 通常是指 Realtek 8168 网卡驱动程序中的一个任务,用于处理静电放电(ESD, Electrostatic Discharge)保护。rtl8168_esd_task 通常是一个后台任务或线程,负责定期检查网卡的状态,并在检测到 ESD 事件时采取相应的保护措施。恢复机制:如果检测到 ESD 事件,驱动程序会尝试恢复网卡的正常工作状态,例如重新初始化网卡、重置连接等。状态监测:驱动程序会定期监测网卡的状态,检测是否有异常情况发生,例如电压波动、电流异常等。

2025-02-14 10:22:38 231

原创 【linux配置】配置文件设置静态IP方法

【代码】【linux配置】配置文件设置静态IP方法。

2025-01-18 11:43:39 153

原创 【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

原创 【linux命令】ip命令使用

设置IP,添加路由,添加命名空间,添加bond网口,添加虚拟网口

2025-01-15 19:33:35 502

原创 【linux命令】OVS命令以及了解

OVS简单命令以及基础了解

2025-01-15 16:44:12 288

原创 【linux命令】svn命令简单使用

【代码】linux svn命令简单使用。

2024-10-15 16:53:01 544

原创 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 ipv6 ip设置

PC0与PC1,网口eth0以及网口eth1。两台机器,两个网口直连。

2024-03-05 16:59:39 449

原创 linux中断绑核

【代码】linux中断绑核。

2024-01-29 14:06:57 898

原创 【linux命令】namespace的使用以及linux ip_forward简单测试(两台主机)

linux测试ip_forwad功能

2023-12-28 11:26:02 549 1

原创 linux内存管理

既然内核已经维护了一组拥有同一大小内存块的内存池,那么为什么不为这些反复使用的块增加某些特殊的内存池呢?kmalloc 和 __get_free_pages 返回的内存地址也是虚拟地址,其实际值要由MMU(内存管理单元,通常是CPU的组成部分)处理才能转为物理内存地址。内存池其实就是某种形式的后备高速缓存,它试图始终保存空闲的内存,以便在紧急状态下使用。Linux处理内存分配的方法是,创建一系列的内存对象池,每个池中的内存块的大小是固定一致的。如果模块需要分配大块的内存,使用面向页的分配技术会更好些。

2023-08-17 14:45:19 269

原创 perf以及抓内核火焰图的使用

【代码】perf以及抓内核火焰图的使用。

2023-06-06 14:52:56 189

原创 linux 内核软件限速

【代码】linux 内核软件限速。

2023-05-30 14:17:33 174

原创 内核编程 C语言获取CPU型号

【代码】内核编程 C语言获取CPU型号。

2023-04-17 14:35:40 486

原创 无网络升级linux内核版本简单步骤及选择内核版本启动

linux内核编译及升级选择

2022-10-21 10:02:57 814

原创 原始套接字指定网口发包

原始套接字指定网口发包

2022-10-12 16:27:04 178

原创 搭建samba共享

linux搭建samba共享

2022-10-09 18:51:34 143

原创 pci设备更新硬件设备详细厂商信息

通过脚本改变lspci显示内容

2022-09-20 14:17:26 730

原创 内核模块编译Makefile通用模板

内核模块编译Makefile通用模板

2022-09-19 15:01:22 355

原创 C语言字符串效验是IPV4还是IPV6

字符串效验IP正确性

2022-07-25 09:34:35 759

原创 LINUX内核中的INIT_LIST_HEAD,list_add_tail,list_for_each_entry详解

linux内核中的循环双链表的使用示例

2022-07-22 11:05:12 4906

原创 驱动开发(万金油创建字符设备my_cdev并初始化)

结构体cdev如何使用

2022-06-15 15:04:21 141

原创 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

Win10计算器.zip

Win10计算器.zip

2025-01-16

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除