You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派Pi400无法进入initramfs shell 启动后HDMI黑屏

问题核心原因

黑屏本质是initramfs镜像未内置vc4-kms-v3d驱动及相关依赖,内核启动过程中加载KMS显示栈时,initramfs环境没有对应驱动支撑HDMI输出,直接切为黑屏,自然看不到initramfs shell交互界面。

排查解决步骤
  • 第一步:先确认initramfs本身是否正常
    把SD卡拔下来插其他电脑上,挂载boot分区,编辑config.txt,先把KMS驱动注释掉换成FKMS:

    #dtoverlay=vc4-kms-v3d
    dtoverlay=vc4-fkms-v3d
    

    顺便检查cmdline.txt里有没有把console重定向到串口的配置(比如带ttyAMA0的console参数),如果有先删掉,保证console输出到tty1。改完插回Pi400开机,能正常进initramfs命令行的话,就确认是initramfs缺KMS驱动的问题。

  • 第二步:按需选择修复方案
    方案1(省事,不影响LUKS加密):就保留vc4-fkms-v3d配置,不用折腾initramfs打包,直接继续LUKS加密配置即可,唯一区别是启动阶段用FKMS输出,进系统后如果要切回KMS,等加密配置完再调整。
    方案2(必须用KMS驱动):进正常启动的树莓派系统,重新打包带KMS依赖的initramfs:

    1. 编辑/etc/initramfs-tools/modules,加入以下模块,确保打包时把显示相关模块加进去:
    vc4
    drm_kms_helper
    drm
    cec
    snd_bcm2835
    fb_sys_fops
    syscopyarea
    sysfillrect
    sysimgblt
    i2c_bcm2835
    
    1. 在/etc/initramfs-tools/hooks/目录下新建名为add_vc4_deps的钩子脚本,把KMS需要的固件、设备树复制到initramfs里,脚本内容:
    #!/bin/sh
    PREREQ=""
    prereqs() { echo "$PREREQ"; }
    case "$1" in
        prereqs) prereqs; exit 0;;
    esac
    . /usr/share/initramfs-tools/hook-functions
    mkdir -p ${DESTDIR}/lib/firmware ${DESTDIR}/boot/overlays
    cp -a /lib/firmware/brcm ${DESTDIR}/lib/firmware/
    cp /boot/overlays/vc4-kms-v3d.dtbo ${DESTDIR}/boot/overlays/
    exit 0
    
    1. 给脚本加执行权限,重新生成initramfs:
    chmod +x /etc/initramfs-tools/hooks/add_vc4_deps
    mkinitramfs -o /boot/initramfs.gz
    
    1. 把config.txt里的驱动改回dtoverlay=vc4-kms-v3d,重启就能在KMS模式下正常看到initramfs输出。
  • 第三步:LUKS加密适配补全
    做LUKS全盘加密还要确认initramfs里打包了cryptsetup和USB键盘驱动,不然能显示界面也输不了密码:

    • 编辑/etc/cryptsetup-initramfs/conf-hook,确认CRYPTSETUP=y没有被注释
    • 在/etc/initramfs-tools/modules里追加usbhid、hid_generic模块,用无线键盘的话再加对应无线接收器的驱动模块
    • 重新执行mkinitramfs -o /boot/initramfs.gz打包即可

内容的提问来源于stack exchange,提问作者doxi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 21:27:17