在Linux中取消绑定mmcblk1驱动程序(禁用SD卡读卡器)

时间:2018-04-13 21:45:39

标签: linux-kernel driver linux-device-driver embedded-linux device-tree

我是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,因为我们在其他地方使用它)并立即取消绑定驱动程序。

1 个答案:

答案 0 :(得分:0)

您可以尝试黑名单/ lib / modules / $(uname -r)/ kernel / drivers /mmc/core/mmc_block.ko.xz

<击>

创建文件/etc/modprobe.d/blacklist_sdcard.conf并添加以下行:&#34; blacklist mmc_block&#34;没有引号,然后重新启动。

请注意,如果其他设备使用它,可能会禁用系统上的其他设备,因此您可能会发现您已经创建了问题。

修改

抱歉,上述内容对您没有用。我还担心其他事情正在使用设备驱动程序。

这应该这样做:

创建/etc/udev/rules.d/99-disable-automount.rules

并添加以下行:

ACTION ==&#34;添加|变化&#34;,KERNEL ==&#34; SDB&#34;,ENV {UDISKS_IGNORE} =&#34; 1&#34;

使用读卡器安装的任何设备,用于&#34; KERNEL ==&#34;部分。

然后执行udevadm控制--reload

你应该全力以赴。