如何加载和卸载内核中内置的linux驱动程序



我想在设备终端中加载和卸载linux驱动程序,我有两个选项,但我不想做第一个

  1. 将驱动程序构建为一个模块CONFIG_DRIVER=m我可以使用rmmod和modprobe来卸载和加载设备驱动程序。

  2. 将设备驱动程序构建到内核中CONFIG_DRIVER=Y

我想遵循第二个选项,但我不知道如何卸载和加载设备驱动程序,请开源社区在这里帮助我!

就这么简单。您找到了要解除绑定的设备和驱动程序。例如,在我的Intel Minownboard(v1(上,我有PCH UDC控制器(PCI设备(:

% lspci -nk
...
02:02.4 0c03: 8086:8808 (rev 02)
Subsystem: 1cc8:0001
Kernel driver in use: pch_udc

现在我知道了必要的部分:

  • 设备所在的总线:PCI
  • 设备名称:0000:02:02.4(请注意,lspci提供了减少的PCI地址,即没有域或i.o.w.BDF,而驱动程序需要domain:BDF(
  • 驱动程序名称:pch_udc

总之,我们可以解除设备绑定:

% echo 0000:02:02.4 > /sys/bus/pci/drivers/pch_udc/unbind
[ 3042.531872] configfs-gadget 0000:02:02.4: unregistering UDC driver [g1]
[ 3042.540979] udc 0000:02:02.4: releasing '0000:02:02.4'

你可以再绑一次。简单使用绑定同一文件夹中的节点。

这个功能出现在15年前,下面是关于LWN的文章来解释它

相关内容

  • 没有找到相关文章

最新更新