header image

Ubuntu 22.04安装AMD显卡驱动

不久之前,AMD发布了给Linux发布了最新的22.20驱动,并且明确写了支持Ubuntu 22.04。

但是,这个包质量十分糟糕,依赖Ubuntu 22.04上并不存在的python包,还依赖旧版的libstdc++-devlibgcc-dev包,导致实际上无法安装。下面就来解决这个问题。

解决方案来自ROCm fails to install from APT repository in 22.04 #1713下面的 @jacodt ,感激不尽。

  1. 在AMD官网下载并安装deb包。这个包只是安装工具,并没有依赖问题。

  2. 安装好之后运行sudo amdgpu-install就会出现依赖无法满足的错误提示。

    dpkg: 依赖关系问题使得 rocm-llvm 的配置工作不能继续:
     rocm-llvm 依赖于 python;然而:
      未安装软件包 python。
     rocm-llvm 依赖于 libstdc++-5-dev | libstdc++-7-dev;然而:
      未安装软件包 libstdc++-5-dev。
      未安装软件包 libstdc++-7-dev。
     rocm-llvm 依赖于 libgcc-5-dev | libgcc-7-dev;然而:
      未安装软件包 libgcc-5-dev。
      未安装软件包 libgcc-7-dev。
     rocm-llvm 依赖于 rocm-core;然而:
     未安装软件包 rocm-core。
    
    dpkg: 处理软件包 rocm-llvm (--install)时出错:
     依赖关系问题 - 仍未被配置
    在处理时有错误发生:
     rocm-llvm
    

    可以见到是rocm-llvm这个包出问题,所以接下来我们就要处理它。

  3. 最好新建一个目录在其中操作。首先,将rocm-llvm下载下来。执行如下命令:

    apt download rocm-llvm
    
  4. 将上一步下载的包解包出来:
    ar x rocm-llvm_14.0.0.22204.50200-65_amd64.deb
    
  5. 将其中的control.tzr.xz解包:
    tar xf control.tar.xz
    
  6. 用你喜欢的编辑器编辑解包出来的control文件。如:
    vim control
    

    找到如下一行:

    Depends: python, libc6, libstdc++6|libstdc++8, libstdc++-5-dev|libstdc++-7-dev, libgcc-5-dev|libgcc-7-dev, rocm-core
    

    改为如下内容:

    Depends: python3, libc6, libstdc++6|libstdc++8, libstdc++-5-dev|libstdc++-7-dev|libstdc++-10-dev, libgcc-5-dev|libgcc-7-dev|libgcc-10-dev, rocm-core
    

    其中python改为python3,并增加了|libstdc++-10-dev|libgcc-10-dev两处内容。修改完之后保存。

  7. 重新打包control.tar.xz

    tar c postinst prerm control | xz -c > control.tar.xz
    
  8. 重新打包为deb文件,文件名可自定,后面各文件顺序不能变:
    ar rcs rocm-llvm.deb debian-binary control.tar.xz data.tar.xz
    
  9. 前面已经修改完了,接下来是安装了。先安装各依赖:
    sudo apt install libstdc++-10-dev libgcc-10-dev rocm-core
    
  10. 安装我们修改好的软件包:
    sudo dpkg -i rocm-llvm.deb
    
  11. 继续官方工具安装:
    sudo amdgpu-install
    

    到这里应该正常安装完了。

警告!!!以下步骤可能会破坏你的系统,如果你不知道怎么修复,请不要操作!

当然,还有可能出现提示缺少firmware,可以克隆linux-firmware的git仓库,然后将缺少的文件放到对应的目录下。

git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

至此AMD显卡驱动就搞定了。

打赏

微信支付宝

有1条评论

回复

your email will keep secret. (* required).

你可以使用这些HTML标签和属性:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> .

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据