Ver*_*ren 2 debian apt intel-graphics mesa
我的显卡驱动程序需要支持 OpenGL 4.5,据我所知,Mesa 实际上能够运行它。
glxinfo给我这个:
$ glxinfo | grep "OpenGL"
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile
OpenGL core profile version string: 3.3 (Core Profile) Mesa 13.0.6
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 13.0.6
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 13.0.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:
Run Code Online (Sandbox Code Playgroud)
所以这意味着它只能运行 OpenGL 3.0。所以我试图更新它,但我遇到了几个问题:
如果我尝试通过 更新它apt,即sudo apt-get upgrade libgl1-mesa-dri -t testing,它已损坏:
$ sudo apt-get upgrade libgl1-mesa-dri -t testing
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
libsnmp30 : Depends: libsensors4 (>= 1:3.0.0) but it is not going to be installed
mesa-va-drivers : Depends: libsensors4 (>= 1:3.0.0) but it is not going to be installed
mesa-va-drivers:i386 : Depends: libsensors4:i386 (>= 1:3.0.0) but it is not going to be installed
E: Broken packages
Run Code Online (Sandbox Code Playgroud)
好的,但是:
$ apt-cache policy libsensors4
libsensors4:
Installed: 1:3.4.0-4
Candidate: 1:3.4.0-4
Version table:
*** 1:3.4.0-4 900
900 http://ftp.ru.debian.org/debian stretch/main amd64 Packages
100 /var/lib/dpkg/status
Run Code Online (Sandbox Code Playgroud)
所以它取决于lib版本> = 1:3.0.0,但我有版本1:3.4.0-4,这真的很奇怪。
一般来说,我不明白我应该如何升级 Mesa。如果使用apt,我不知道应该更新哪些软件包。如果来自源头,我不知道它将如何交互apt以及它是否不会被更新还原。
我使用的是 Debian 9 Stretch,我的显卡是 Intel HD Graphics 5000。
不要尝试直接在稳定版上安装测试!否则你最终会得到一个FrankenDebian(充其量)或者由于不切实际的依赖关系而丢失很多软件包。
好消息是这些更新的软件包可以在stretch-backports. Debian 的 mesa 在测试中进行了一些包装更改,因此在延伸向后移植中也进行了更改,这与供应商中立的 GL 调度库有关,使这一点变得非常重要。此外,由于您同时使用多架构amd64和i386软件包必须同步升级这些软件包,否则您会遇到一些您看到的错误。
因此,在不升级所有内容(您不应该这样做:stretch-backports没有安全支持)的情况下,我无法说出有关如何升级台面的确切命令,但我会给出一个过程。
首先请按照Debian 的说明stretch-backports正确添加。我将在这里做一个简单的总结:
# echo 'deb http://deb.debian.org/debian/ stretch-backports main contrib non-free' >> /etc/apt/sources.list.d/stretch-backports.list
# apt-get update
Run Code Online (Sandbox Code Playgroud)
如果添加了 buster/testing/sid 条目,请务必删除它们。
一些包可能已经消失(例如libgles1-mesa不再提供)而其他包出现。您必须在一个apt-get 命令中升级所有涉及的包,因此您首先必须查看当前版本中涉及最多的包,并让依赖项解析器选择缺失的部分(例如:)libdrm2。您应该手动执行操作,而不是在脚本中执行操作,因为您必须检查没有发生任何不良事件(例如apt-get提议删除 100 个包)。所以像这样:
dpkg -l | fgrep 13.0.6-1+b2
Run Code Online (Sandbox Code Playgroud)
甚至:
dpkg -l | awk '/^.i/ && $3 == "13.0.6-1+b2" { print $2 }' | xargs
Run Code Online (Sandbox Code Playgroud)
获取包列表的主要部分。DO注意,对于安装了多拱包,您必须提供的amd64包(默认情况下是这样,不需要额外的:amd64,但你可以从切割让它/粘贴),并再次在同一i386包(使用:i386附加到包名) 如果它也在上一个dpkg命令中找到。所以最终的安装命令应该是这样的:
apt-get -t stretch-backports install libgl1-mesa-dri:amd64 libgl1-mesa-dri:i386 mesa-opencl-icd:amd64 mesa-opencl-icd:i386 ...
Run Code Online (Sandbox Code Playgroud)
你明白了。现在检查提供的要删除的软件包的数量。如果有一些与台面相关的包要删除(例如libgles1-mesa:),那很好,如果其中大部分或许多不相关的包被提供删除,中止并考虑可能会丢失什么。当然,除了升级之外,还应提供许多其他产品(例如:libdrm2和libdrm2:i386)。可能是那些由于多拱仍然可能会引起问题的,因此如果apt-get不够聪明,您可能必须将它们手动添加两次(每个拱一次)到不断增长的单线列表中。
正如@Stephen Kitt 所建议的,其他有用的和相关的包,处理硬件的改进使用,包括图形支持,也可以在延伸向后端口中使用,并且可能也应该升级。他们之中:
linux-image-amd64 目前将拉 linux-image-4.19.0-0.bpo.2-amd64 firmware-misc-nonfree可能包括升级的图形支持以及无论如何可能必须升级为新内核的(可能是隐藏的)依赖项以获得最佳结果。| 归档时间: |
|
| 查看次数: |
10143 次 |
| 最近记录: |