跑走调 2025-11-30 22:06 采纳率: 0%
浏览 2

Batocera系统linux启用USB转HDMI驱动

1、老笔记本安装了Batocera系统硬盘启动,自带的HDMI接口坏了,原来windows一直在用USB转HDMI转换器无法使用(自带的驱动只有windows的和苹果的)。
2、查看了一下系统信息版本42acou 2025/10/06,Linux版本是 6.15.11 x86_64,笔记本是惠普暗影精灵2,6代U,960M显卡。
3、目前视频输出只能选到EDP-1没有其他。但是我发现音频输出里面居然能认到usb转HDMI里面的那个。

linux完全不懂呀,但是SSH进去抄命令还是会的,有没有大神教一教怎么搞

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2025-11-30 22:23
    关注

    晚上好🌙🌙🌙
    本答案参考通义千问

    你目前遇到的问题是:在Batocera系统(基于Linux)中,无法通过USB转HDMI设备输出视频,但音频可以识别。 这是因为USB转HDMI设备通常需要显卡驱动支持Xorg或Wayland的显示管理器配置


    问题分析

    1. 硬件环境:

      • 笔记本:惠普暗影精灵2(6代U + 960M显卡)
      • 系统:Batocera v42acou(Linux内核 6.15.11 x86_64)
      • 显示接口:HDMI损坏,使用USB转HDMI
      • 当前显示输出只能看到 EDP-1,没有其他选项
    2. 已知情况:

      • USB转HDMI能被系统识别为音频设备(说明USB接口正常)
      • 视频输出未被识别,可能是驱动/显卡/显示管理器不支持
    3. 可能原因:

      • 显卡驱动不支持USB转HDMI设备(尤其是Intel 960M)
      • Xorg/Wayland 配置文件未正确设置
      • 缺少相关内核模块或固件

    🛠️ 解决方案步骤

    1. 检查USB设备是否被正确识别

    你可以通过以下命令查看系统是否识别到USB转HDMI设备:

    lsusb
    

    如果能看到类似如下内容(以常见的USB-HDMI适配器为例):

    Bus 002 Device 003: ID 0bda:573c Realtek Semiconductor Corp.
    

    这表示USB设备已经被识别,但视频输出未被激活


    2. 确认内核模块是否加载

    检查是否有相关的内核模块被加载:

    lsmod | grep -i hdmi
    

    如果没有输出,尝试手动加载相关模块(如 uvcvideohid 模块):

    sudo modprobe uvcvideo
    sudo modprobe hid
    

    3. 检查Xorg日志(如果有图形界面)

    如果你使用的是带有图形界面的Batocera版本(如带EmulationStation),可以查看Xorg日志来判断是否有错误:

    cat /var/log/Xorg.0.log | grep -i hdmi
    

    寻找类似下面的错误信息:

    (EE) Failed to initialize GLX extension (present)
    (II) intel: Driver for Intel(R) HD Graphics 520
    

    这表明显卡驱动可能不支持外接显示器。


    4. 启用USB转HDMI的视频输出

    方法一:使用 xrandr 手动添加显示

    如果系统支持 xrandr,可以尝试手动添加新显示器:

    xrandr --listmonitors
    

    如果没有输出,尝试使用以下命令检测:

    xrandr --query
    

    如果发现有新的输出(如 HDMI-A-1),可以尝试设置分辨率:

    xrandr --newmode "1920x1080" 173.00
    xrandr --addmode HDMI-A-1 1920x1080
    xrandr --output HDMI-A-1 --mode 1920x1080
    

    ⚠️ 注意:HDMI-A-1 是假设名称,实际请根据你的设备调整。


    方法二:修改 /etc/X11/xorg.conf 配置文件

    如果 xrandr 不生效,可以尝试手动配置 Xorg:

    创建或编辑 /etc/X11/xorg.conf 文件:

    sudo nano /etc/X11/xorg.conf
    

    加入以下内容(示例):

    Section "Device"
        Identifier "Device0"
        Driver "modesetting"
    EndSection
    
    Section "Monitor"
        Identifier "Monitor0"
        VendorName "Unknown"
        ModelName "USB-HDMI"
        HorizSync 30.0-81.0
        VertRefresh 50.0-75.0
        Option "DPMS"
    EndSection
    
    Section "Screen"
        Identifier "Screen0"
        Device "Device0"
        Monitor "Monitor0"
        DefaultDepth 24
        SubSection "Display"
            Depth 24
            Modes "1920x1080"
        EndSubSection
    EndSection
    
    Section "ServerFlags"
        Option "AllowIndirectGLX" "on"
        Option "AIGLX" "on"
        Option "AllowGlxBreakBeforeSwap" "on"
    EndSection
    

    保存后重启图形界面:

    sudo systemctl restart display-manager
    

    5. 安装额外驱动(如适用)

    虽然 Batocera 是一个轻量级系统,但你可以尝试安装一些额外的驱动:

    安装 libdrmmesa 相关包(适用于 Intel 显卡):

    sudo apt update
    sudo apt install libdrm-dev mesa-utils
    

    安装 xserver-xorg-video-intel(如果使用 Intel 显卡):

    sudo apt install xserver-xorg-video-intel
    

    6. 尝试使用 v4l2-ctl 查看视频设备

    如果你的 USB 转 HDMI 设备支持视频输入(如摄像头),可以用以下命令查看:

    v4l2-ctl --list-devices
    

    🔧 总结:重点步骤

    1. 检查 USB 设备是否被识别

      lsusb
      
    2. 加载相关内核模块

      sudo modprobe uvcvideo
      sudo modprobe hid
      
    3. 使用 xrandr 添加显示器

      xrandr --newmode "1920x1080" 173.00
      xrandr --addmode HDMI-A-1 1920x1080
      xrandr --output HDMI-A-1 --mode 1920x1080
      
    4. 修改 Xorg 配置文件(可选): 编辑 /etc/X11/xorg.conf 并添加显示器配置。

    5. 安装额外驱动(如适用)

      sudo apt install libdrm-dev mesa-utils
      

    💡 注意事项

    • Batocera 是一个轻量级系统,很多功能默认关闭,可能需要手动开启。
    • 如果你使用的是 无图形界面的 Batocera 版本(如仅用于模拟器),可能需要使用 xrandrfbset 来控制显示。
    • 如果仍然无法工作,建议尝试更换 USB 转 HDMI 适配器,因为某些设备可能对 Linux 支持较差。

    📌 最终建议

    如果你是新手,建议先尝试使用 xrandr 命令手动添加显示器,这是最简单的方式。如果失败,再考虑修改 Xorg 配置或安装额外驱动。

    如需进一步帮助,可以提供以下信息:

    • lsusb 的输出
    • xrandr --query 的输出
    • dmesg | grep -i hdmi 的输出

    我会帮你进一步诊断问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月30日