deepin 23 如何安装显卡驱动
<h1 style="text-align: left;"><strong>1.判断是否需要32位显卡驱动</strong></h1><ul>
<li>由于部分游戏的安装器、启动器、游戏本体等组件混合使用32位与64位程序,建议同时安装64位与32位显卡驱动;</li>
<li data-source-line="3" data-source-line-end="4" data-token-idx="9">以下内容,以<code class="copy-inner-text" title="Ctrl + 单击复制">$</code>开头的部分表示需在终端内执行;</li>
</ul>
<h2><strong>1.1 检查可执行文件</strong></h2>
<ul>
<li>使用file命令检查exe文件,例如:</li>
</ul>
<blockquote><p>$ file installer.exe</p></blockquote>
<ul>
<li>若出现以下内容,则说明需要安装32位驱动</li>
</ul>
<blockquote><p>PE32 executable (GUI) Intel 80386</p></blockquote>
<ul>
<li>若出现以下内容,则说明需要安装64位驱动</li>
</ul>
<blockquote><p>PE32+ executable (GUI) x86-64</p></blockquote>
<h2><strong>1.2 检查错误日志</strong></h2>
<p>若发现程序无法启动,可尝试以下方式排查是否缺少32位显卡驱动</p>
<p>点击程序图标旁的【…】,选择【高级调试工具】,如下图:</p>
<p><img class="alignnone size-full wp-image-35988" src="https://www.deepin.org/wp-content/uploads/2025/01/wine应用右键菜单.png" alt="" width="949" height="437" srcset="https://www.deepin.org/wp-content/uploads/2025/01/wine应用右键菜单.png 949w, https://www.deepin.org/wp-content/uploads/2025/01/wine应用右键菜单-300x138.png 300w, https://www.deepin.org/wp-content/uploads/2025/01/wine应用右键菜单-150x69.png 150w, https://www.deepin.org/wp-content/uploads/2025/01/wine应用右键菜单-768x354.png 768w, https://www.deepin.org/wp-content/uploads/2025/01/wine应用右键菜单-24x11.png 24w, https://www.deepin.org/wp-content/uploads/2025/01/wine应用右键菜单-36x17.png 36w, https://www.deepin.org/wp-content/uploads/2025/01/wine应用右键菜单-48x22.png 48w" sizes="(max-width: 949px) 100vw, 949px" /></p>
<p>在弹出的窗口中右键程序图标,选择【在终端中运行】,如下图:</p>
<p><img loading="lazy" class="alignnone size-full wp-image-35989" src="https://www.deepin.org/wp-content/uploads/2025/01/在终端中运行.png" alt="" width="949" height="420" srcset="https://www.deepin.org/wp-content/uploads/2025/01/在终端中运行.png 949w, https://www.deepin.org/wp-content/uploads/2025/01/在终端中运行-300x133.png 300w, https://www.deepin.org/wp-content/uploads/2025/01/在终端中运行-150x66.png 150w, https://www.deepin.org/wp-content/uploads/2025/01/在终端中运行-768x340.png 768w, https://www.deepin.org/wp-content/uploads/2025/01/在终端中运行-24x11.png 24w, https://www.deepin.org/wp-content/uploads/2025/01/在终端中运行-36x16.png 36w, https://www.deepin.org/wp-content/uploads/2025/01/在终端中运行-48x21.png 48w" sizes="(max-width: 949px) 100vw, 949px" /></p>
<p>若错误日志中出现加载/lib/i386-linux-gnu/路径下的文件失败,说明缺少32位显卡驱动</p>
<p>例如:</p>
<blockquote><p>libGL error: MESA-LOADER: failed to open radeonsi: /usr/lib/pressure-vessel/overrides/lib/i386-linux-gnu/dri/radeonsi_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu/dri:/usr/lib/pressure-vessel/overrides/lib/i386-linux-gnu/dri)<br />
libGL error: failed to load driver: radeonsi</p></blockquote>
<p> </p>
<h1 style="text-align: left;"><strong style="font-size: 35px;">2.安装显卡驱动</strong></h1>
<h2><strong>2.1 安装64位显卡驱动</strong></h2>
<h3><strong>2.1.1 NVIDIA 显卡</strong></h3>
<blockquote><p>$ sudo apt install nvidia-driver-full</p></blockquote>
<h3><strong>2.1.2 AMD 卡或 Intel 显卡</strong></h3>
<blockquote><p>$ sudo apt install mesa-vulkan-drivers libvulkan1 libglx-mesa0 libgl1-mesa-dri</p></blockquote>
<h3><strong>2.1.3 检查 Vulkan 安装情况</strong></h3>
<blockquote><p>$ sudo apt install vulkan-tools<br />
$ vkcube</p></blockquote>
<p>若能显示GUI界面,则说明安装成功</p>
<p>说明:32位与64位vulkan-tools会相互覆盖,如需测试32位驱动,需按照说明重新安装</p>
<h2><strong>2.2 安装32位显卡驱动</strong></h2>
<h3><strong>2.2.1 启用 32 位支持</strong></h3>
<blockquote><p>$ sudo dpkg --add-architecture i386<br />
$ sudo apt update<br />
$ sudo apt upgrade</p></blockquote>
<h3><strong>2.2.2 NVIDIA 显卡</strong></h3>
<blockquote><p>$ sudo apt install nvidia-driver-full nvidia-vulkan-icd:i386 libvulkan1:i386</p></blockquote>
<h3><strong>2.2.3 AMD 卡或 Intel 显卡</strong></h3>
<blockquote><p>$ sudo apt install mesa-vulkan-drivers:i386 libvulkan1:i386 libglx-mesa0:i386 libgl1-mesa-dri:i386</p></blockquote>
<h3><strong>2.2.4 检查 Vulkan 安装情况</strong></h3>
<blockquote><p>$ sudo apt install vulkan-tools:i386<br />
$ vkcube</p></blockquote>
<p>若能显示GUI界面,则说明安装成功</p>
<p>说明:32位与64位vulkan-tools会相互覆盖,如需测试64位驱动,需按照说明重新安装<strong>3.判断显卡支持的 DXVK 与 vkd3d 版本</strong></p>
<p> </p>
<h1>3.判断显卡支持的 DXVK 与 vkd3d 版本</h1>
<ul>
<li><code>DXVK</code> 是一个开源的翻译层,将<code>Direct3D 8/9/10/11</code>函数呼叫转换到<code>Vulkan</code></li>
<li><code>vkd3d</code> 是一个基于<code>Vulkan</code>的<code>Direct3D 12</code>图形库</li>
<li>可通过以下步骤检查显卡支持的<code>DXVK</code>与<code>vkd3d</code>版本,并安装尽可能新的版本</li>
</ul>
<table style="border-collapse: collapse; width: 753.02pt;" border="0" width="1004" cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 16.50pt;">
<td class="et2" style="height: 16.50pt; width: 124.50pt;" width="166" height="22">组件名称</td>
<td class="et2" style="width: 159.75pt;" width="213">DXVK</td>
<td class="et2" style="width: 54.00pt;" width="72">DXVK</td>
<td class="et2" style="width: 168.00pt;" width="224">vkd3d</td>
<td class="et2" style="width: 246.75pt;" width="329">vkd3d</td>
</tr>
<tr style="height: 16.50pt;">
<td class="et2" style="height: 16.50pt;" height="22">组件版本</td>
<td class="et2">2.x</td>
<td class="et2">1.x</td>
<td class="et2">≥ 2.9</td>
<td class="et2">≤ 2.8</td>
</tr>
<tr style="height: 16.50pt;">
<td class="et2" style="height: 16.50pt;" height="22">Vulkan API</td>
<td class="et2">≥ 1.3</td>
<td class="et2">≥ 1.1</td>
<td class="et2">≥ 1.3</td>
<td class="et2">≥ 1.1</td>
</tr>
<tr style="height: 195.00pt;">
<td class="et2" style="height: 195.00pt;" height="260">Vulkan 扩展</td>
<td class="et4" style="width: 159.75pt;" width="213">VK_EXT_robustness2<br />
VK_EXT_transform_feedback</td>
<td class="et5"></td>
<td class="et4" style="width: 168.00pt;" width="224">VK_EXT_robustness2<br />
VK_KHR_push_descriptor</td>
<td class="et4" style="width: 246.75pt;" width="329">VK_EXT_descriptor_indexing<br />
VK_KHR_timeline_semaphore<br />
VK_KHR_sampler_mirror_clamp_to_edge<br />
VK_EXT_robustness2<br />
VK_KHR_separate_depth_stencil_layouts<br />
VK_KHR_bind_memory2<br />
VK_KHR_copy_commands2<br />
VK_KHR_dynamic_rendering<br />
VK_EXT_extended_dynamic_state<br />
VK_EXT_extended_dynamic_state2<br />
VK_KHR_buffer_device_address<br />
VK_KHR_push_descriptor</td>
</tr>
<tr style="height: 205.00pt;">
<td class="et6" style="height: 205.00pt; width: 124.50pt;" width="166" height="273">Vulkan 扩展<br />
检查方法</td>
<td class="et4" style="width: 159.75pt;" width="213">$ vulkaninfo | grep -E "VK_EXT_robustness2|<br />
VK_EXT_transform_feedback"</td>
<td class="et7" style="width: 54.00pt;" width="72"></td>
<td class="et4" style="width: 168.00pt;" width="224">$ vulkaninfo | grep -E "VK_EXT_robustness2|<br />
VK_KHR_push_descriptor"</td>
<td class="et4" style="width: 246.75pt;" width="329">$ vulkaninfo | grep -E "VK_EXT_descriptor_indexing|<br />
VK_KHR_timeline_semaphore|<br />
VK_KHR_sampler_mirror_clamp_to_edge|<br />
VK_EXT_robustness2|<br />
VK_KHR_separate_depth_stencil_layouts|<br />
VK_KHR_bind_memory2|<br />
VK_KHR_copy_commands2|<br />
VK_KHR_dynamic_rendering|<br />
VK_EXT_extended_dynamic_state|<br />
VK_EXT_extended_dynamic_state2|<br />
VK_KHR_buffer_device_address|<br />
VK_KHR_push_descriptor"</td>
</tr>
<tr style="height: 63.00pt;">
<td class="et2" style="height: 63.00pt;" height="84">Vulkan 特性</td>
<td class="et4" style="width: 159.75pt;" width="213"></td>
<td class="et4" style="width: 54.00pt;" width="72"></td>
<td class="et4" style="width: 168.00pt;" width="224">samplerMirrorClampToEdge<br />
shaderDrawParameters</td>
<td class="et4" style="width: 246.75pt;" width="329">VkPhysicalDeviceDescriptorIndexingFeatures</td>
</tr>
<tr style="height: 73.00pt;">
<td class="et6" style="height: 73.00pt; width: 124.50pt;" width="166" height="97">Vulkan 特性<br />
检查方法</td>
<td class="et7" style="width: 159.75pt;" width="213"></td>
<td class="et7" style="width: 54.00pt;" width="72"></td>
<td class="et4" style="width: 168.00pt;" width="224">$ vulkaninfo | grep -E "samplerMirrorClampToEdge|<br />
shaderDrawParameters"</td>
<td class="et4" style="width: 246.75pt;" width="329">$ vulkaninfo | grep -A 22 "VkPhysicalDeviceDescriptorIndexingFeatures"</td>
</tr>
</tbody>
</table>
<p> </p>
<ul>
<li>
<h2>3.1 检查 Vulkan API 版本</h2>
</li>
<li>安装 Vulkan 相关工具</li>
</ul>
<blockquote><p># 64位</p>
<p>$ sudo apt install vulkan-tools</p>
<p># 32位</p>
<p>$ sudo apt install vulkan-tools:i386</p></blockquote>
<p><strong>检查 Vulkan API 版本</strong></p>
<blockquote><p>$ vulkaninfo | grep "apiVersion"</p></blockquote>
<h2><strong>3.2 DXVK</strong></h2>
<p>可尽量选择新的dxvk版本</p>
<h3><strong>3.2.1 DXVK 2.x 版本</strong></h3>
<ul>
<li>需要 Vulkan API ≥ 1.3</li>
<li>需要VK_EXT_robustness2扩展</li>
<li>需要VK_EXT_transform_feedback扩展</li>
</ul>
<p>检查拓展</p>
<p>* 若拓展未出现,则说明不支持拓展</p>
<blockquote><p>$ vulkaninfo | grep -E "VK_EXT_robustness2|VK_EXT_transform_feedback"<br />
VK_EXT_robustness2 : extension revision 1<br />
VK_EXT_transform_feedback : extension revision 1</p></blockquote>
<h3><strong>3.2.2 DXVK 1.x 版本</strong></h3>
<p>需要 Vulkan API ≥ 1.1</p>
<h2><strong>3.3 vkd3d</strong></h2>
<p>可尽量选择新的vkd3d版本</p>
<h3><strong>3.3.1 vkd3d ≥ 2.9 版本</strong></h3>
<ul>
<li>需要 Vulkan API ≥ 1.3</li>
<li>需要 samplerMirrorClampToEdge特性</li>
<li>需要 shaderDrawParameters特性</li>
<li>需要 VK_EXT_robustness2扩展</li>
<li>需要 VK_KHR_push_descriptor扩展</li>
</ul>
<p>检查拓展</p>
<p>* 若拓展未出现,则说明不支持拓展</p>
<blockquote><p>$ vulkaninfo | grep -E "VK_EXT_robustness2|VK_KHR_push_descriptor"<br />
VK_EXT_robustness2 : extension revision 1<br />
VK_KHR_push_descriptor : extension revision 2</p></blockquote>
<p>检查特性</p>
<p>* 若特性出现false,则说明支持的特性不完整</p>
<blockquote><p>$ vulkaninfo | grep -E "samplerMirrorClampToEdge|shaderDrawParameters"<br />
shaderDrawParameters = true<br />
shaderDrawParameters = true<br />
samplerMirrorClampToEdge = true</p></blockquote>
<h3><strong>3.3.2 vkd3d ≤ 2.8 版本</strong></h3>
<ul>
<li>需要 Vulkan API ≥ 1.1</li>
<li>需要 VK_EXT_descriptor_indexing扩展</li>
<li>需要 VkPhysicalDeviceDescriptorIndexingFeatures全部特性</li>
<li>需要 VK_KHR_timeline_semaphore扩展</li>
<li>需要 VK_KHR_sampler_mirror_clamp_to_edge扩展</li>
<li>需要 VK_EXT_robustness2扩展</li>
<li>需要 VK_KHR_separate_depth_stencil_layouts扩展</li>
<li>需要 VK_KHR_bind_memory2扩展</li>
<li>需要 VK_KHR_copy_commands2扩展</li>
<li>需要 VK_KHR_dynamic_rendering扩展</li>
<li>需要 VK_EXT_extended_dynamic_state扩展</li>
<li>需要 VK_EXT_extended_dynamic_state2扩展</li>
<li>需要 VK_KHR_buffer_device_address扩展</li>
<li>需要 VK_KHR_push_descriptor扩展</li>
</ul>
<p>检查拓展</p>
<p>* 若拓展未出现,则说明不支持拓展</p>
<blockquote><p>$ vulkaninfo | grep -E "VK_EXT_descriptor_indexing|VK_KHR_timeline_semaphore|VK_KHR_sampler_mirror_clamp_to_edge|VK_EXT_robustness2|VK_KHR_separate_depth_stencil_layouts|VK_KHR_bind_memory2|VK_KHR_copy_commands2|VK_KHR_dynamic_rendering|VK_EXT_extended_dynamic_state|VK_EXT_extended_dynamic_state2|VK_KHR_buffer_device_address|VK_KHR_push_descriptor"<br />
VK_EXT_descriptor_indexing : extension revision 2<br />
VK_EXT_extended_dynamic_state : extension revision 1<br />
VK_EXT_extended_dynamic_state2 : extension revision 1<br />
VK_EXT_extended_dynamic_state3 : extension revision 2<br />
VK_EXT_robustness2 : extension revision 1<br />
VK_KHR_bind_memory2 : extension revision 1<br />
VK_KHR_buffer_device_address : extension revision 1<br />
VK_KHR_copy_commands2 : extension revision 1<br />
VK_KHR_dynamic_rendering : extension revision 1<br />
VK_KHR_dynamic_rendering_local_read : extension revision 1<br />
VK_KHR_push_descriptor : extension revision 2<br />
VK_KHR_sampler_mirror_clamp_to_edge : extension revision 3<br />
VK_KHR_separate_depth_stencil_layouts : extension revision 1<br />
VK_KHR_timeline_semaphore : extension revision 2</p></blockquote>
<p>检查特性</p>
<p>* 若特性出现false,则说明支持的特性不完整</p>
<blockquote><p>$ vulkaninfo | grep -A 22 "VkPhysicalDeviceDescriptorIndexingFeatures"<br />
VkPhysicalDeviceDescriptorIndexingFeatures:<br />
-------------------------------------------<br />
shaderInputAttachmentArrayDynamicIndexing = true<br />
shaderUniformTexelBufferArrayDynamicIndexing = true<br />
shaderStorageTexelBufferArrayDynamicIndexing = true<br />
shaderUniformBufferArrayNonUniformIndexing = true<br />
shaderSampledImageArrayNonUniformIndexing = true<br />
shaderStorageBufferArrayNonUniformIndexing = true<br />
shaderStorageImageArrayNonUniformIndexing = true<br />
shaderInputAttachmentArrayNonUniformIndexing = true<br />
shaderUniformTexelBufferArrayNonUniformIndexing = true<br />
shaderStorageTexelBufferArrayNonUniformIndexing = true<br />
descriptorBindingUniformBufferUpdateAfterBind = true<br />
descriptorBindingSampledImageUpdateAfterBind = true<br />
descriptorBindingStorageImageUpdateAfterBind = true<br />
descriptorBindingStorageBufferUpdateAfterBind = true<br />
descriptorBindingUniformTexelBufferUpdateAfterBind = true<br />
descriptorBindingStorageTexelBufferUpdateAfterBind = true<br />
descriptorBindingUpdateUnusedWhilePending = true<br />
descriptorBindingPartiallyBound = true<br />
descriptorBindingVariableDescriptorCount = true<br />
runtimeDescriptorArray = true</p></blockquote>
<p> </p>
<h1 style="text-align: left;"><strong>4.其它问题</strong></h1>
<h2><strong>4.1 AMD显卡: Southern Islands (SI) 和 Sea Islands (CIK)</strong></h2>
<p>该系列显卡同时支持radeon与amdgpu驱动,需切换至radeon驱动</p>
<p>使用以下命令检查当前使用的显卡驱动</p>
<blockquote><p>$ lspci -k | grep -A 3 -E "(VGA|3D)"</p></blockquote>
<p>若显示以下内容,则说明显卡不支持 Vulkan API</p>
<blockquote><p>Kernel driver in use: radeon<br />
Kernel modules: radeon</p></blockquote>
<p>若显示以下内容,则说明需切换显卡驱动至amdgpu</p>
<blockquote><p>Kernel driver in use: radeon<br />
Kernel modules: radeon, amdgpu</p></blockquote>
<h3><strong>4.1.1 </strong><strong>方法1</strong></h3>
<ul>
<li>编辑内核启动参数</li>
<li>
<blockquote><p>$ sudo vim /etc/default/grub</p></blockquote>
</li>
</ul>
<p>在GRUB_CMDLINE_LINUX_DEFAULT后的双引号内添加以下内容,需与已有内容以空格分隔</p>
<blockquote><p>radeon.si_support=0 amdgpu.si_support=1 radeon.cik_support=0 amdgpu.cik_support=1</p></blockquote>
<p>更新grub</p>
<blockquote><p>$ sudo update-grub</p></blockquote>
<p>重启 reboot</p>
<p>再次检查显卡驱动,若显示以下内容,则说明切换成功</p>
<blockquote><p>Kernel driver in use: amdgpu<br />
Kernel modules: radeon, amdgpu</p></blockquote>
<h3><strong>4.1.2 方法2</strong></h3>
<p>创建/etc/modprobe.d/amdgpu.conf配置文件</p>
<blockquote><p>$ sudo vim /etc/modprobe.d/amdgpu.conf<br />
options amdgpu si_support=1<br />
options amdgpu cik_support=1</p></blockquote>
<p>创建/etc/modprobe.d/radeon.conf配置文件</p>
<blockquote><p>$ sudo vim /etc/modprobe.d/radeon.conf<br />
options radeon si_support=0<br />
options radeon cik_support=0</p></blockquote>
<p>更新initramfs</p>
<blockquote><p>$ sudo update-initramfs -u</p></blockquote>
<p>重启 reboot</p>
<p>再次检查显卡驱动,若显示以下内容,则说明切换成功</p>
<blockquote><p>Kernel driver in use: amdgpu<br />
Kernel modules: radeon, amdgpu</p></blockquote>
<p> </p>
<h1><strong>5.参考文档</strong></h1>
<ul>
<li>DXVK: Driver support https://github.com/doitsujin/dxvk/wiki/Driver-support</li>
<li>vkd3d: Drivers https://github.com/HansKristian-Work/vkd3d-proton/?tab=readme-ov-file#drivers</li>
<li>vkd3d v2.8: Drivers https://github.com/HansKristian-Work/vkd3d-proton/tree/v2.8?tab=readme-ov-file#drivers</li>
<li>AMDGPU: 开启 Southern Islands (SI) 和 Sea Islands (CIK) 支持 https://wiki.archlinuxcn.org/wiki/AMDGPU</li>
</ul>
</div>
頁:
[1]