簡體   English   中英

在Linux中取消綁定mmcblk1驅動程序(禁用SD卡讀取器)

[英]Unbinding mmcblk1 driver in Linux (disable SD Card Reader)

我對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,因為我們在其他地方使用該設備)並立即取消綁定驅動程序。

您可以嘗試將/ 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 ==“ add | change”,KERNEL ==“ sdb”,ENV {UDISKS_IGNORE} =“ 1”

使用讀卡器安裝的任何設備(如“ KERNEL ==”部分)。

然后執行udevadm控制--reload

而且你應該准備好了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM