我是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,因为我们在其他地方使用它)并立即取消绑定驱动程序。
答案 0 :(得分:0)
您可以尝试黑名单/ lib / modules / $(uname -r)/ kernel / drivers
/mmc/core/mmc_block.ko.xz 击>
创建文件/etc/modprobe.d/blacklist_sdcard.conf并添加以下行:" blacklist mmc_block"没有引号,然后重新启动。
请注意,如果其他设备使用它,可能会禁用系统上的其他设备,因此您可能会发现您已经创建了问题。
修改强>
抱歉,上述内容对您没有用。我还担心其他事情正在使用设备驱动程序。
这应该这样做:
创建/etc/udev/rules.d/99-disable-automount.rules
并添加以下行:
ACTION =="添加|变化",KERNEL ==" SDB",ENV {UDISKS_IGNORE} =" 1"
使用读卡器安装的任何设备,用于" KERNEL =="部分。
然后执行udevadm控制--reload
你应该全力以赴。