如何解决如何加载和卸载内核内置的 linux 驱动程序
我想在设备终端加载和卸载linux驱动程序,我有两个选择但我不想做第一个
-
将驱动程序构建为模块 CONFIG_DRIVER = 米 我可以使用 rmmod 和 modprobe 卸载和加载设备驱动程序。
-
将设备驱动程序构建到内核本身中 CONFIG_DRIVER = Y
我想按照第二个选项,但我不知道如何卸载和加载设备驱动程序,开源社区可以在这里帮助我吗!
解决方法
就这么简单。您找到要解除绑定的设备和驱动程序。例如,在我的 Intel Minnownboard (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 地址,即没有域或 iow BDF,而驱动程序需要 域: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'
你可以再绑定一次。简单使用 bind 节点在同一个文件夹中。
该功能出现在 15 多年前,LWN 上的 the article 对此进行了解释。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。