Zephyr Wing 2025-07-30 02:03 采纳率: 0%
浏览 13

amd rdna3架构显卡与Ubuntu20.04的适配性问题

在做ros noetic仿真实验时发现gazebo掉帧严重电脑发烫。后来发现lshw -c video 显示显卡状态为 **UNCLAIMED**,表明系统检测到硬件但未加载驱动。即系统是cpu软件渲染而非gpu加速。后来了解到我的电脑显卡是amd radeon 780m,采用rdna3架构对于Ubuntu20.04的5.15版本内核来说太新了,识别不出来。
我也尝试过安装6.8版本的内核但是Ubuntu 20.04 默认的 libc6 版本是 2.31,而6.8+ 内核需要 libc6 >= 2.38(Ubuntu 22.04 及以上版本)而且缺少libelf1t64和 libssl3t64两个包,这好像是22.04+才有。所以当安装并进入这个版本的内核,就无法进入桌面而是停留在登录页面,输入密码以后,没有反应又要重新输入,形成了“输入密码->闪一下->又回到登录界面”的死循环
求各位的帮助🙏

  • 写回答

5条回答 默认 最新

  • 檀越@新空间 2025-07-30 02:04
    关注

    上午好☀️☀️☀️️
    本答案参考通义千问

    你目前遇到的问题是AMD RDNA3架构显卡(如Radeon 780M)在Ubuntu 20.04系统中无法被正确识别和驱动,导致Gazebo等图形应用性能严重下降,甚至出现系统不稳定、死循环等问题。这是一个硬件兼容性与内核版本不匹配的问题。


    问题总结:

    1. 显卡状态为 UNCLAIMED,说明系统没有加载对应的GPU驱动。
    2. RDNA3架构的显卡需要较新的Linux内核支持(如5.19以上),而Ubuntu 20.04默认使用的是5.15内核。
    3. 尝试升级内核到6.8版本时,因libc6版本过低和依赖包缺失,导致系统进入登录界面后无法正常启动,形成死循环。

    🛠️ 解决方案:

    第一步:确认显卡型号和驱动需求

    • 使用命令查看显卡信息:
      lshw -c video
      

      输出应类似:

      *-display
           description: VGA compatible controller
           product: AMD Radeon 780M
           vendor: Advanced Micro Devices, Inc. [AMD/ATI]
           physical id: 1
           bus info: pci@0000:01:00.0
           version: c0
           width: 64 bits
           clock: 33MHz
           capabilities: pm msi pciexpress vga_controller
           configuration: driver= (none)
           resources: iomem:fc000000-fdffffff ioport:e000(size=256) memory:fc000000-fdffffff memory:d0000000-d1ffffff
      

    重点: 显卡未被驱动加载(driver=(none)),表示没有合适的驱动程序。


    第二步:安装适合的Linux内核版本

    ❗注意:Ubuntu 20.04的默认 libc6 是 2.31,而6.8+ 内核需要 libc6 >= 2.38(Ubuntu 22.04及以上)

    因此,直接升级到6.8内核会导致系统崩溃或死循环。

    ✅ 推荐方案:

    • 使用 Ubuntu 22.04 或更高版本(推荐):

      • RDNA3架构显卡在Ubuntu 22.04及以后版本中已得到良好支持
      • 可以考虑将系统升级到 Ubuntu 22.04 LTSUbuntu 23.04
    • 如果必须使用 Ubuntu 20.04,可以尝试以下方法:


    第三步:尝试安装较新内核(5.19以上)并解决依赖问题

    1. 安装最新可用的内核(例如 5.19)

    • 添加官方内核仓库:

      sudo apt install software-properties-common
      sudo add-apt-repository ppa:kernel-ppa/mainline
      sudo apt update
      
    • 查看可用内核版本:

      apt-cache search linux-image
      
    • 安装某个版本(如 5.19.10):

      sudo apt install linux-image-5.19.10-1
      
    • 更新 GRUB:

      sudo update-grub
      
    • 重启后选择新内核启动。

    2. 安装必要的依赖库

    • 如果系统提示缺少 libelf1t64libssl3t64,可以尝试从 Ubuntu 22.04 的仓库中手动下载并安装:

      • 下载包(需在 Ubuntu 22.04 系统中获取):

        • libelf1t64
        • libssl3t64
      • 使用 dpkg 安装(注意版本匹配):

        sudo dpkg -i libelf1t64_0.185-1build1_amd64.deb
        sudo dpkg -i libssl3t64_3.0.2-0ubuntu1.13_amd64.deb
        

      注意: 手动安装可能会引发其他依赖问题,建议优先考虑升级系统版本。


    第四步:安装AMD开源驱动(amdgpu)

    1. 启用主仓库(适用于Ubuntu 20.04):

    sudo add-apt-repository ppa:oibaf/graphics-drivers
    sudo apt update
    

    2. 安装 amdgpu 驱动:

    sudo apt install xserver-xorg-video-amdgpu
    

    注意: RDNA3 架构可能需要更高级的驱动版本,建议使用 Ubuntu 22.04 或更高版本。


    第五步:验证驱动是否加载成功

    重启后运行:

    lspci | grep -i vga
    glxinfo | grep "OpenGL renderer"
    
    • 应该能看到类似:
      OpenGL renderer string: AMD R780M (RDNA3, 0x73ff)
      

    第六步:优化Gazebo性能(ROS Noetic)

    1. 确保使用 GPU 渲染模式:

    • 在 Gazebo 中设置渲染器为 ogreopengl
      export GAZEBO_RENDERING_ENGINE=ogre
      

    2. 检查环境变量:

    echo $DISPLAY
    

    确保输出类似:

    :0
    

    3. 使用 nvidia-smi(如果你有 NVIDIA 显卡)或 radeontop(AMD)监控 GPU 使用情况。


    最终建议:

    | 项目 | 建议 | |------|------| | 操作系统 | 升级到 Ubuntu 22.04 LTS 或更高版本(推荐) | | 内核版本 | 使用 5.19+6.8+(需确保 libc6 和依赖项兼容) | | 驱动 | 安装 amdgpu 驱动(适用于 RDNA3 架构) | | Gazebo 性能 | 设置 GAZEBO_RENDERING_ENGINE=ogre 并检查 GPU 使用率 |


    📌 代码示例:安装 amdgpu 驱动(Ubuntu 20.04)

    # 添加第三方仓库
    sudo add-apt-repository ppa:oibaf/graphics-drivers
    sudo apt update
    
    # 安装 amdgpu 驱动
    sudo apt install xserver-xorg-video-amdgpu
    
    # 重启系统
    sudo reboot
    

    🔚 结论:

    你的问题是由于 AMD RDNA3 架构显卡与 Ubuntu 20.04 内核版本不兼容 导致的。最稳妥的解决方案是升级到 Ubuntu 22.04 或更高版本,以获得更好的硬件支持和稳定性。如果必须保留 Ubuntu 20.04,可以尝试安装较新的内核并手动处理依赖问题,但风险较高。

    如有进一步问题,请提供以下信息:

    • lspci -v
    • uname -a
    • dpkg -l | grep linux-image
    • dpkg -l | grep libssl
    • dpkg -l | grep libelf

    我会为你进一步分析!

    评论

报告相同问题?

问题事件

  • 创建了问题 7月30日