Ubuntu Linux 显卡驱动安装

  • Linux新安装显卡驱动

  • Linux系统更新更新内核后会启用nouveau开源驱动

    • 先卸载之前的显卡驱动

      sudo apt-get remove –purge nvidia-* (purge之前是两个横线)

    • 或者使用:

      sh ./nvidia.run –uninstall

    • 再修改配置文件 /etc/modprobe.d/blacklist.conf

      sudo chmod 666 /etc/modprobe.d/blacklist.conf(修改权限)
      sudo vi /etc/modprobe.d/blacklist.conf (开始编辑)

    • 在后面添加

      blacklist nouveau

    • 按下 Ctrl + Alt + F1切换到Shell控制台,关闭图形环境

      sudo init 3
      sudo rm /tmp/.X*
      sudo service lightdm stop (关闭显示管理器)

    • 安装驱动

      sudo sh NVIDIA-Linux-x86_64-xxx.xx.run
      sudo service lightdm start (开启显示管理器)


modprobe

modprobe用于将可以加载的内核模块LKM添加到内核中,或是从内核中删除LKM。用户空间中,使用modprobe加载驱动检测硬件。

modprobe作用

  • 可以直观地决定要加载哪些模块
  • 可以管理到模块的依赖项,当要加载模块的时候,它可以先添加依赖项
  • 是管理迭代模块依赖项的一种方案

blacklist

  • 如果两个或多个模块支持同一个设备, 或一个模块不支持某个设备:blacklist关键字就可以指定哪个模块可以被忽略
  • 有几种方法可以blacklist一个模块,取决于配置文件如何加载它
  • modprobe有两种方法可以blacklist模块,使用系统提供的modprobe.conf文件,先用系统中的 /etc/modprobe.d/blacklist

    cat /etc/modprobe.d/blacklist
    blacklist nouveau

  • 基础安装文件在配置文件中具有较高的优先级,如果无法用第一种方式安装的话,就需要用第二种方法,指定安装

Linux图形架构

这里写图片描述

Linux图形层次:DRM, KMS driver, & libDRM, Mesa 3D. Display servers 显示服务是系统视窗的一部分,但游戏不需要。

https://nouveau.freedesktop.org/wiki/

nouveau 是英伟达显卡开源驱动,为nvidia的GPU建立高质量3D驱动的共同项目,并且Nouveau是在完全没有得到NVIDIA任何支持的情况下进行开发的,免费自由的开源驱动项目,nouveau”[nuvo]”与new谐音, 是Linux KMS驱动的一部份,在Linux内核中支持nvidia显卡。

nouveau是X.Org基金会的一个项目(X.Org基金会是负责X Window System开发的社团,2004年1月22日在Open Group的X.org网站基础上建立 )。开发所用方式,和创新声卡X驱动开发的方法类似,反编译NVIDIA的Linux显卡驱动,然后进行再加工深处理的进一步开发工作。现在有一些nvidia的员工提供一些帮助

Nouveau 驱动通常是内核附带的,编译进内核而不是作为模块,内核启动后即进入最佳分辨率,X启动后也是最佳分辨率。

nouveau软件架构

nouveau是Gallium3D风格设备驱动,运行在Direct Rendering Infrastructure (DRI) 之上。由两个内核元素DRM和KMS driver,用户空间的libDRM,Mesa 3D 组成。

nouveau是Gallium3D风格显卡驱动
这里写图片描述

nouveau支持所有nvidia微架构 Tesla, Fermi, Kepler, Maxwell ,Pascal ,Volta。

时钟重整技术

由于技术原因,nvidia GPU在一个较低的频率下启动(也就是“时钟”)。启动之后,设备驱动设置到较高频率。缺少技术文档,nouveau无法从头设计。2014年6月之后,时钟重整技术加入到nouveau中。

支持的接口

  • Rendering API
  • Direct3D
  • OpenGL
  • Video 加速

计算型API

  • OpenCL
  • CUDA(不支持)

Linux内核和OpenGL
这里写图片描述

数据和指令发送到GPU进行处理。渲染后的结果不会返回到主内存。而是存储在framebuffer中,framebuffer中的内存按顺序发送到显示控制器中。


Linux init 初始化系统

Linux 操作系统的启动首先从 BIOS 开始,接下来进入 boot loader,由 bootloader 载入内核,进行内核初始化。内核初始化的最后一步就是启动 pid 为 1 的 init 进程。这个进程是系统的第一个进程。它负责产生其他所有用户进程。

每种 Linux 发行版对运行模式的定义都不太一样。但 0,1,6 却得到了大家的一致赞同:

  • 0 关机
  • 1 单用户模式
  • 6 重启

通常在 /etc/inittab 文件中定义了各种运行模式的工作范围。

比如 RedHat 定义了 runlevel 3 和 5。

运行模式 3 将系统初始化为字符界面的 shell 模式;

运行模式 5 将系统初始化为 GUI 模式。

无论是命令行界面还是 GUI,运行模式 3 和 5 相对于其他运行模式而言都是完整的正式的运行状态,计算机可以完成用户需要的任务。

而模式 1,S 等往往用于系统故障之后的排错和恢复。

很显然,这些不同的运行模式下系统需要初始化运行的进程和需要进行的初始化准备都是不同的。

比如运行模式 3 不需要启动 X 系统。


轻量Linux桌面显示管理器Light Display Manager (LightDM)

Logo

更多推荐