概述
龙芯3A6000自己带的GPU叫做LG100。这不是一个集显,而是一个集成于7A2000桥片的独显。因此,很难给他分个类。
但无论如何,也许是因为驱动或者架构的原因,他的性能一言难尽。在Bilibili和Youtube上播放1080P视频就会掉帧,分辨率和帧率都只能勉强达到日常使用的程度。因此,需要引入独立显卡。
请注意本人用的机器是一个半高机箱,所以只支持low-profile的显卡,因此这些信息仅供有相同架构的显卡用户参考。
注意:英伟达显卡
英伟达显卡没有一个合适的、适用龙芯平台的驱动程序。由于英伟达对上游管控比较严格,驱动开源和模块化程度不高。总之,要使英伟达显卡适用龙芯平台,需要这两方的共同努力,在短期之内由于众所周知的原因是不可能的。
尝试B:AMD RX6400 和 RX550 显卡
这是本人后期想到的方案,所以是B计划。
AMD平台的驱动开源程度高,模块化好,相比暂时体系不完善的国产显卡和开源程度低的英伟达,是最好的选择。
RX550 vs RX6400 显卡参数对比
参数 | RX550 | RX6400 |
---|---|---|
核心架构 | Polaris 12 | RDNA 2 |
显存类型 | GDDR5 | GDDR6 |
显存容量 | 2GB / 4GB | 4GB |
核心频率 | 1100 MHz | 2039 MHz |
浮点性能 | 1.2 TFLOPS | 3.54 TFLOPS |
最大分辨率 | 5120x2880 @ 60Hz | 7680x4320 @ 60Hz |
TDP | 50W | 53W |
PCIe 版本 | PCIe 3.0 x8 | PCIe 4.0 x4 |
Vulkan 支持 | Vulkan 1.3 | Vulkan 1.3 |
RX550 vs RX6400 实际表现对比
参数 | RX550 | RX6400 |
---|---|---|
bios内是否有显示 | 有,在xcls3a6m主板上没有 | 没有 |
是否兼容AMDGPU驱动 | 兼容 | 兼容 |
这个教程对两者都是有效的,本人有这两张卡,所以亲测可用。
配置的具体操作
预配置
Arch用户建议升级内核
sudo pacman -S linux-firmware
内核参数
很多热心网友提供了一些内核参数,对本人的配置Archlinux没有作用,仅粘贴在这里
radeon.si_support=0, amdgpu.si_support=1 modprobe.blacklist=loongson loongson.modeset=0
其中radeon.si_support=0, amdgpu.si_support=1
是为了禁用radeon和启用amdgpu的Southern Island支持。Southern Island(SI)是AMD对于其早期HD系列显卡的代号。关于SI,理论上可以禁用,但是实际去除会出错。接下来会讲到。
modprobe.blacklist=loongson loongson.modeset=0
是为了禁用龙芯自己的模块。这个也是不需要的,后面也会讲到
ModProbe配置
关于modprobe,lsmod指令我会做一期详解:TODO
书接上文,内核参数的方法不奏效,那么就令modprobe默认加载GPU需要的模块。首先在/etc/modprobe.d/amdgpu.conf
加上如下内容:
# /etc/modprobe.d/amdgpu.conf
options amdgpu si_support=1
options amdgpu cik_support=1
其中si_support和cik_support是需要加的,即使这些是老AMD显卡的驱动,但是可能是因为向后兼容的原因。可能是amdgpu无法支持龙芯的一些性质时,需要回退到一些老的架构方法?这只是本人的猜测。
相应的,可选确保radeon不被加载。建立/etc/modprobe.d/radeon.conf
并加上如下内容:
# /etc/modprobe.d/radeon.conf
blacklist radeon
本人尝试过,是否禁用loongson模块影响不大。
(可选)初始内存文件系统(iniramfs)
通过配置/etc/mkinitcpio.conf可以要求模块提早加载,把以下内容加入以下内容:
MODULES=(amdgpu)
然后重新生成iniramfs
sudo mkinitcpio -P
注意这个方法不是总有用,可能会影响其他组件的加载
大功告成,插上显卡就可以启动了。这个方法对loongarchlinux管用。
尝试A:摩尔线程MTT s30
这款显卡是本人刚开始的计划,目的是打造一台全国产电脑。后来废弃的原因非常简单:这款显卡除了x86_64架构下的Windows和Ubuntu驱动(就算有这两个,都不算成熟),其他的平台和架构都没有驱动。
对于龙架构,只有旧世界的银河麒麟和统信UOS有和摩尔线程合作出的系统镜像有集成驱动。下表总结一下个人尝试的旧世界操作系统,UOS下可以在应用商店下下载安装摩尔线程驱动
操作系统 | 显卡驱动获取方式 | 显示效果 | 附录 |
---|---|---|---|
统信UOS 1050 | 集显下安装系统(和驱动,可选),然后启用/插入独显 | 正常分辨率和硬件加速 | 如果插入显卡安装,系统可能会安装失败 |
统信UOS 1060 | 集显下安装系统和驱动,然后启用/插入独显 | 正常分辨率和硬件加速 | |
统信UOS 1070 | 集显下安装系统和驱动,然后启用/插入独显 | 分辨率不正常,止于1080P,硬件名称识别异常 | |
Loongnix | 没有驱动 | 没有显示,没有免驱DRM | |
银河麒麟 | - | - | 银河麒麟主要提供给企事业单位,个人仅可以申请试用,没有个人购买渠道。麒麟的个人版没有龙架构 |
注意由于旧世界的Linux内核版本,工具版本都比较老旧,其在不远的未来很有可能走向消亡。
摩尔线程对新世界系统完全没有提供官方驱动,一些配置的好的系统,如Deepin V23,可以使用DRM(Direct Render Manager)显示GUI界面,分辨率是不正确的,而且没有硬件加速等支持。因为需要相关依赖,从UOS仓库下载的驱动在其他系统下无法使用,即使是Deepin V23。
不过值得欣慰的一点是,摩尔线程的显卡在BIOS下是有显示的。
不足,
存在一些情况,在接上独立显卡之后,无线网卡在系统中消失。无论是BIOS中,网络工具,甚至lspci指令都无法读取到网卡信息。此问题可能是由于主板BIOS无法读取全部pci设备的bug引起的。此问题暂且没有找到解决方法,另外此问题发生有很高的随机性。
参考文档
Kernel Module - Arch Linux 包含modprobe, lsmod的说明, Blacklisting的说明在第6部分
DRM/AMDGPU简介
内核参数
AMDGPU模块参数
Loong Arch Linux
本人在龙芯论坛上对Radeon RX6400兼容性的提问
如何使用Vesa驱动
Gentoo的AMDGPU文档
Top comments (0)