【发布时间】:2018-09-24 07:36:20
【问题描述】:
我是 Linux 设备树的新手,我正在寻找一种方法来禁用我的 Linux 嵌入式系统上的 SD 卡接口。
我最近想出了如何通过使用echo -n 1-0:1.0 > /sys/bus/usb/drivers/hub/unbind解除绑定它的设备驱动程序来禁用我的USB接口
现在我正在尝试对 SD 卡插槽执行相同的操作,但在找到要解除绑定的正确路径/驱动程序时遇到问题。我相信该设备位于/sys/block/mmcblk1,但我不确定如何找到正确的设备 ID/取消绑定文件。有关禁用 SD 接口的任何提示?
编辑 1:经过进一步检查,当插槽中没有插入 SD 卡时,mmcblk1 甚至不显示。我应该如何禁用接口本身,而不仅仅是禁用单个卡?
编辑 2:禁用热插拔似乎可行,但我现在正在努力理解 mdev 规则。
编辑 3(解决方案):在浏览设备树后,我能够找到运行我的 mmc 阅读器的特定设备和驱动程序组合。 echo -n mmc1:aaaa > /sys/bus/mmc/drivers/mmcblk/unbind 能够解除驱动程序与设备的绑定 (mmc1:aaaa)。我还必须调整我的 mdev 规则,因为每次我插入设备时都会重新加载驱动程序。最终的解决方案是将以下内容放入 /etc/mdev.conf:mmcblk([1-9]+) root:disk 777 @echo -n mmc1:aaaa > /sys/bus/mmc/drivers/mmcblk/unbind,每次绑定 mmc 设备时都会运行(不包括 mmcblk0,因为我们在其他地方使用它)并立即取消绑定驱动程序。
【问题讨论】:
标签: linux-kernel driver linux-device-driver embedded-linux device-tree