解决ubuntu 22.04新内核6.5.0-15无法编译NVIDIA显卡驱动

数据人与超自然意识  金牌会员 | 2024-6-24 12:57:55 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 688|帖子 688|积分 2064

这里的新内核应该包括6.5.*系列的
  
  
遇到的问题:

今天我在安装NVIDIA显卡驱动发现了一个问题,重要日志如下所示:
  1. make[3]: *** [scripts/Makefile.build:251: /tmp/selfgz1310041/NVIDIA-Linux-x86_64-550.54.14/kernel/nvidia/nvlink_linux.o] Error 1
  2. make[3]: Target '/tmp/selfgz1310041/NVIDIA-Linux-x86_64-550.54.14/kernel/' not remade because of errors.
  3. make[2]: *** [/usr/src/linux-headers-6.5.0-15-generic/Makefile:2037: /tmp/selfgz1310041/NVIDIA-Linux-x86_64-550.54.14/kernel] Error 2
  4. make[2]: Target 'modules' not remade because of errors.
  5. make[1]: *** [Makefile:234: __sub-make] Error 2
  6. make[1]: Target 'modules' not remade because of errors.
  7. make[1]: Leaving directory '/usr/src/linux-headers-6.5.0-15-generic'
  8. make: *** [Makefile:85: modules] Error 2
  9. ERROR: The nvidia kernel module was not created.
  10. ERROR: Installation has failed.  Please see the file '/var/log/nvidia-installer.log' for details.  You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com.
复制代码
从这个日志可以发现,他与内核冲突了。于是借助魔法搜到了ubuntuforums.org的多种方法,一个是换内核版本,有人说切换到6.2系列就好了,但我实在不行粉碎内核,万一改了内核别的功能炸了。在我的不断努力之下,终于找到一个偷渡方法,但直接用这个方法我还是无法安装乐成,效果我死马当活马医重新覆盖的时候,我在新内核下安装乐成了!
出现问题原因在于当前内核下的GCC版本在编译如今的NVIDIA显卡内核(我下载的是550.54.14)不兼容。
我使用gcc --version | grep -e 'gcc'观察到我的GCC版本是11,而保举的版本是12。然后没办法,我们就自己安装个gcc-12吧。
  1. sudo apt update
  2. sudo apt install gcc-12 g++-12
复制代码
然后把现有的2个版本添加到 update-alternatives 组
  1. sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11 --slave /usr/bin/g++ g++ /usr/bin/g++-11 --slave /usr/bin/gcov gcov /usr/bin/gcov-11
  2. sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12 --slave /usr/bin/g++ g++ /usr/bin/g++-12 --slave /usr/bin/gcov gcov /usr/bin/gcov-12
复制代码
暂时默认选择gcc-12:
  1. $ sudo update-alternatives --config gcc
  2. There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
  3.   Selection    Path             Priority   Status
  4. ------------------------------------------------------------
  5. * 0            /usr/bin/gcc-12   12        auto mode
  6.   1            /usr/bin/gcc-11   11        manual mode
  7.   2            /usr/bin/gcc-12   12        manual mode
  8. Press <enter> to keep the current choice[*], or type selection number: 2
复制代码
我感觉这里的意思是,我们还是切换成手动模式保险,保不齐编译时候突然变成gcc-11了。
接下来安装驱动步伐:sudo apt install --yes nvidia-driver-535 nvidia-dkms-535 nvidia-cuda-toolkit
到这里教程就说乐成了,就当我激动得输入nvidia-smi时候,又报错了:NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
好好好,那我就再实行sudo bash NVIDIA-Linux-x86_64-550.54.14.run安装一下,其实这里我感觉是gcc-12那选定版本之后直接安装run文件就好了。但我没有试,因为我已经安装乐成了!
最后附上乐成的效果,证明我教程的可行性:


转载于染念的个人博客
参考:


  • https://ubuntuforums.org/showthread.php?t=2494273&page=3&p=14176039#post14176039

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

数据人与超自然意识

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表