You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Xubuntu系统下SD卡仅在开机前插入才能被识别

Xubuntu系统下SD卡仅在开机前插入才能被识别

老哥,我看了你的问题,这种SD卡热插拔失效的情况在改了UEFI的Chromebook上挺常见的,咱们一步步来排查解决:

  • 先试试手动重载驱动模块
    打开终端,依次输入这两条命令:

    sudo rmmod sdhci_pci
    sudo modprobe sdhci_pci
    

    输完后再插SD卡看看有没有反应。如果这时候能识别,说明是驱动模块初始化的问题,后续可以把这两条命令做成开机自动执行的脚本,或者调整模块参数来彻底解决。

  • 检查SD控制器的电源管理设置
    有些Chromebook的电源管理会在开机后禁用SD控制器的热插拔功能,咱们可以手动开启它:
    终端输入这条命令(注意你的设备地址是0000:00:12.0,和lspci里的对应):

    echo "on" | sudo tee /sys/bus/pci/devices/0000:00:12.0/power/control
    

    然后插SD卡试试。如果有用,咱们可以把这条命令加到开机启动项里:编辑/etc/rc.local文件,在exit 0之前加入上述命令,之后记得给文件加执行权限:

    sudo chmod +x /etc/rc.local
    
  • 添加自定义udev规则触发自动挂载
    有可能是系统的udev规则没正确响应热插拔事件,咱们手动加一条规则试试:

    1. 打开终端编辑规则文件:
      sudo nano /etc/udev/rules.d/99-sd-card.rules
      
    2. 粘贴以下内容:
      ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]*", RUN+="/usr/bin/udisksctl mount -b /dev/%k"
      
    3. Ctrl+O保存,Ctrl+X退出,然后重启udev服务:
      sudo udevadm control --reload-rules && sudo udevadm trigger
      

    之后再插SD卡看看能不能自动挂载。

  • 查看dmesg日志定位具体错误
    要是上面的方法都没效果,咱们可以看看系统日志找线索:
    终端输入dmesg -w,保持终端打开的状态下插入SD卡,看看输出里有没有关于sdhci或者mmc的错误提示(比如超时、初始化失败之类的),这些信息能帮咱们更精准地定位问题。

  • 检查UEFI固件设置
    毕竟你是刷了第三方UEFI固件,有些固件可能默认关闭了SD卡热插拔功能,你可以进UEFI设置界面找找有没有类似“SD Card Hotplug”的选项,开启它再试试。

备注:内容来源于stack exchange,提问作者Swordfish II

火山引擎 最新活动