【微知】如何将Linux PCIe驱动与PCIe设备解绑?(echo 0000:01:00.0 > /sys/bus/pci/drivers/mlx5_core/unbind)

快速回忆

echo 0000:01:00.0 >  /sys/bus/pci/drivers/mlx5_core/unbind  #接绑
echo 0000:01:00.0 >  /sys/bus/pci/drivers/mlx5_core/bind #再次绑定
ls /sys/bus/pci/drivers/mlx5_core/ -l #查看某个驱动中绑定的设备
ls  /sys/bus/pci/drivers #查看所有的PCIe驱动

背景

有些场景需要将PCIe驱动与PCIe设备进行接绑,接绑的意思就是不使用某个驱动来管理某个PCIe设备。比如要使用vfio从用户态来处理驱动,或者就是要接绑驱动。本文简单记录方法

命令和实操

以Mellanox的PCIe网卡为例:

解绑

echo 0000:01:00.0 >  /sys/bus/pci/drivers/mlx5_core/unbind 

解绑的时候会调用PCIe驱动模块的exit函数。
实操效果,可以看到实操后01:00.0设备已经被接绑,并在驱动中无法查看
在这里插入图片描述
并且会调用remove的函数:
在这里插入图片描述

绑定

echo 0000:01:00.0 >  /sys/bus/pci/drivers/mlx5_core/bind

再次绑定的的时候会调用PCIe的probe函数
在这里插入图片描述

查看某个驱动绑定了哪些设备?

通过在/sys/bus/pci/drivers目录下指定的驱动比如mlx5_core.ko的目录下查看有哪些子目录。
查看路径:

ls /sys/bus/pci/drivers/mlx5_core/ -l

实操后可以看到,有两个PCIe设备绑定到该驱动:
在这里插入图片描述

查看所有的PCIe驱动有哪些?

ls  /sys/bus/pci/drivers

实操效果:
在这里插入图片描述

如何查看系统加载了某些驱动,还没有被probe生效调用过?

就查看驱动目录下是否有pcie设备,比如下面的就没有。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值