前情提要
在某日逛小黄鱼时,被推送到了3A2000C单主板,仅需要36块钱。不过听说这一块主板/CPU比较挑内存,因此选择了3A2000主板 + 2x 4GB紫光内存的组合,花费了66元。

主板外观
整体外观
到手的3A2000主板如下,其为ITX板型(17cm x 17cm)。

除去散热器/散热片的主板则如下

CPU(处理器)
移除CPU上方的散热器后,我们就可以看到这块板子所使用的3A2000C CPU

据了解,这是一块采用了Mips64el指令集的CPU,与现在常见的x86和ARM不同。mips更多的被应用于网络硬件而非终端设备上。
这块CPU所使用的工艺是40nm,是一个已经成熟的工艺。当时的先进工艺为14nm(参考Intel)。
这块CPU的最高频率仅为1GHz,因此其性能不言而喻,是比较低的。
RAM(内存)
这个主板有2条DDR3内存插槽。不过这块主板设计的内存插槽缺口位置一个位于左,一个位于右,与传统主板内存插槽缺口平行不同。并不知道这样设计的用意。

购买主板时所附带的紫光DDR3 4GB内存如下

GPU(显卡)
这块板子集成了GPU,其型号为AMD Radeon HD 3200,根据型号可知单纯为亮机卡。在解码方面,理论可以硬解1080P的视频。

其附近有一颗dram,根据丝印可知这是一颗8M x 16 Bit x 8 Banks的颗粒,容量则为8x16x8 = 1Gb = 128MB。所有其vram为128MB。

North Bridge(北桥)
除了显卡采用的是AMD以外,这块板子的北桥也是AMD的。其具体型号为AMD RS780E。

I/O(输入输出)
SATA
在主板内部,有4个SATA接口,实际为SATA2.0(3Gbps)

测速如下(Timing buffered disk reads),接近SATA2.0理论300MB/s(3Gbps / 10)

插针/跳线
USB2
板子提供了一个USB插针,可以扩展2个USB接口。理论最多6个USB接口(未考虑一分二插针/USB HUB)

前置音频
提供了一个音频插针。

CPU EJTAG
板子上有一个CPU EJTAG接口。可以 点击此处 了解什么是CPU EJTAG。

CPU COM
板子还提供了一个连接到CPU的COM(串口)插针

F_PANEL
板子还配有开机跳线插针。按照的顺序为上面4pin 左 PWR LED 右PWR SW,下面5pin 左HDD LED 右RST SW。位于右下角的针没有定义。

风扇接口
板子提供了3个4pin风扇接口,分别为CPU FAN(CPU风扇),NB FAN(北桥风扇),SYS FAN(系统风扇)


未知接口
板子左上角还提供了一个插针,但是没有标识,未知功能

外部
配备了如下接口
- 1x VGA
- 1x DVI-I
- 4x USB 2.0
- 1x 千兆网卡(Realtek芯片)
- 1x S/PDIF输出
- 音频输入与输出(采用Realtek ALC667声卡芯片)

OS(操作系统)
龙芯3A2000采用的是Mips64el的架构,这意味着其只能运行Linux,而没有办法运行我们日常所见的Windows(现在的Windows仅支持x86和arm)。下面将列举一些个其所能运行的Linux发行版(Linux Distributions)。
Fedora 21 / loongnix 2019
在 龙芯开源社区ftp下载站点 中,我们可以找到旧版loongnix的镜像,其实际上则是Fedora。

下载镜像后,将u盘分区全部删去,然后通过dd命令写入u盘
sudo dd if=loongnix-20190331.iso of=/dev/sdc status=progress
然后就可以将插入3A2000的主板中。
在主板开机以后,我们按del键进入BIOS设置中将U盘安装调整到第一位,然后就按两次esc并按enter继续启动。


如果操作正确的话,我们就可以看到grub界面,有3个关于fedora的选项。

然后会加载内核和initial ram disk

接着会有Loongnix字样的启动画面

然后就会进入到live桌面环境

点击“安装系统”

默认的语言设置为 中文 - 简体中文,直接点击 继续 。

然后点击 安装位置

选择要安装到的磁盘

如果磁盘没有预先清除分区,需要在指导下清除。

然后点击“全部删除”,再点击“回收空间”。

然后等待系统操作完成。然后点击右下角的 开始安装 。

在安装期间,点击ROOT密码进行设置。



然后就可以等待其安装。在我这一个机器上花费了大约40分钟进行安装,时间较长。

当看到如上提示时就可以点击退出了。

点击系统,然后点击关机并等待60s。
主板断电后,拔出u盘,然后重新开机。等待一会即可以见到如下的grub界面。

等待5s即可,然后可以见到如下的提示

然后在登录框输入root和设置的密码。就可以进入到桌面了。

不过,使用root身份登录桌面并不是推荐的做法,可以创建一个普通账户然后使用普通账户登录。
由于loongnix.org不再存在,因此我们需要更改yum源以获取更新和安装软件包。
在终端中运行如下指令
cd /etc/yum.repo.d
nano fedora.conf
然后按下 ctrl 和 \ ,输入loongnix.org并按回车

然后输入loongnix.cn,并按回车。

然后按下 a 以全部替换,替换完成后依次按下 ctrl 和 x , y , 回车以保存。
但是,如果尝试运行yum update,会出现依赖问题,无法继续安装,尝试执行提示指令也无法解决。因此不能进行更新。

机器的信息如下

以下是一些总结。
虽然是2019年的镜像,但采用的fedora版本为21,而fedora21是在2014年发布的,因此显得非常旧。
同时,这个镜像所采用的内核也非常旧了,目前最新的内核(Stable)为6.7.5(截至2024-02-19)

其桌面也相对比较简陋,综合上述理由,并不推荐使用这一个镜像。更推荐运行下面讲述的UOS或者Debian 11。
UOS 20
如果对UOS感兴趣,可以 点击此处 进入百度百科了解。
下载&写入镜像
UOS兼容的架构非常多,从X86到ARM,Mips64el和Loongarch都支持,因此这个机器可以运行UOS。

虽然支持列表并未包含3A2000,但是其实际上是可以正常运行的。
在下载完镜像后,我们只需将u盘格式化,然后使用dd将其写入U盘即可。(假设U盘位于/dev/sdc,请根据lsblk结果确定U盘的 sdx 中 x 的值)
sudo fdisk /dev/sdc
d
回车
d
回车
#直到没有分区了为止
w
然后使用如下指令写入U盘
sudo dd if=uniontechos-desktop-20-professional-1050-update3-mips64el-fix.iso of=/dev/sdc status=progress

写入完成后,我们就可以看到其卷标为“UOS 20”。

然后就可以把U盘插入到3A2000主板中准备安装了。
调整主板启动项
在主板开机以后,我们按del键进入BIOS设置中将U盘安装调整到第一位,然后就按两次esc并按enter继续启动。


进入安装环境
然后我们就会来到grub的界面,可以看到安装uos20的启动选项

接着就可以看到启动画面

启动后其会对镜像进行校验,速度取决于U盘读取的速度。

然后选择安装

勾选2项内容后就可以下一步

分区硬盘
如果选用的硬盘在128GB以上,那么可以使用全盘安装,但这里使用的是64GB,因此需要手动分区。


等待安装
确定后等待即可

等到安装成功后,我们就先拔出U盘,再点击重启。

系统初始设置(类似OOBE)
重启之后就来到了初始化系统的界面



接下来是设置用户名和密码

然后等待系统优化配置即可

由于CPU较慢,因此当第一次进入桌面时要等较久的时间。

至此,UOS的安装已经完成。

启用终端Root权限(非必须)
在UOS桌面,点击任务栏中的“控制中心”

往下滚动,找到“通用”

选择“开发者模式”并点击“进入开发者模式”

选择“在线激活”并点击下一步

推荐使用“手机号+验证码”的方式登录。虽然提供了“邮箱+验证码”的方式看似可以不用提供手机号,但是输入验证码后还是会弹出要求绑定手机号(最大的槽点在此)。

勾选左下角的“同意并进入开发者模式”然后点击“确定”。

然后输入用户的密码并点击“确定”

然后点击“现在重启”。

重启回到桌面后,我们打开终端,输入sudo -i并输入密码,就可以启用root了。

一些看法
以下是我对UOS的一些看法(pros and cons)
pros:
- 制作启动U盘相对简单方便,仅需使用dd将映像写入到U盘就可以
- 安装流程相对简单,基本按提示即可。
- 有应用商店,对3A2000这个采用mips64el架构的CPU比较友好。
cons:
- 想要有终端root权限需要手机号。(其余哪一个发行版都不会像你这样吧)
- 对使用空间的计算过于离谱。Windows11也才要求至少64GB,一个Linux为何要至少64GB?
- 系统需激活(不过可以理解)

Debian 11
Debian也是支持mips64el架构的。但是,其安装的方法并不如上述的fedora和UOS方便。
deboostrap构建系统
除了通过U盘,debian还可以通过debootstrap的模式被安装到机器上。以下是通过debootstrap安装debian的方法。
安装一份UOS
因为需要保留引导区,替换系统分区的方法来运行debian。因此我们需要有一块硬盘,在上面有一份UOS。

调整硬盘分区
将机器关机,然后将硬盘拔出,接入Windows电脑中。
以下需要用到磁盘分区软件 Diskgenius ,如果您的电脑上还没有,可以 点击此处 去往下载页面。
解压文件然后打开Diskgenius后,我们找到安装了UOS的硬盘。然后将除了Boot的分区全部删除。(通过在分区上点击右键并点击“删除当前分区”。


然后在空闲(灰色部分)右键,然后选择”建立新分区“

然后按照下图设置分区属性(新分区大小根据硬盘大小而定,可不为110GB。卷标也可以自定义)。设置完成后点击确定。

然后点击软件左上角的”保存更改“,接下来的两个选项均选择”是“



然后我们就可以从Windows中拔出硬盘,重新插入3A2000主板。
进入live环境
然后重新插上安装UOS的U盘,并调整主板启动项,让主板通过U盘启动。
启动后到如下界面,需要选择“修复”以进入live环境。

切换到TTY2
在几条log稍等一会以后,我们会见到如下的界面

但这一个界面并不是我们所需要的,因此我们需要在键盘上同时按下ctrl,alt和f2(如下图蓝色键所示)

然后系统就会切换到TTY2,并会显示如下信息

然后我们输入sudo -i并回车,就可以提权到root

启用SSH
为了复制指令方便,我们需要启动openssh-server并在其余机器上通过SSH执行指令。
在tty中输入ip a查看ip地址信息,找到红线所指处,则是内网的ipv4地址。

然后输入如下指令启动openssh-server。
systemctl start ssh
systemctl status ssh
见到active(running字样即可)

然后运行如下指令为root用户设定密码,并编辑sshd.config以启用root登录。
passwd

nano /etc/ssh/sshd_config
然后回来到如下画面

我们找到PermitRootLogin一行

将前方的#号去掉,并将后面的prohibit-password改成yes

然后找到PasswordAuthentication字段(hint:可使用ctrl+w然后输入字段内容查找)

我们将PasswordAuthentication从no改成yes

然后同时按下ctrl和x,再按下y,然后按回车。
然后运行如下指令
systemctl restart ssh
假设现在使用的是Windows 10/11电脑。我们按下win+r,然后在运行中输入cmd。

然后我们在cmd中输入如下指令(ip地址请根据实际情况调整)。
ssh root@192.168.3.112
然后输入yes并回车。

然后会要求输入root密码,我们输入在刚才passwd阶段设置的密码即可。

然后我们大概需要等待30s,就会出现如下字样,代表登录成功。

scp传输文件
此外,我们还需要再打开一个CMD窗口。
然后,点击此处 去往下载文件页面,并将两个文件均下载。



然后我们找到下载文件的位置,并记下路径

然后在CMD窗口中输入如下指令。
cd /d D:\Download
scp *.deb root@192.168.3.112:/root
然后输入root的密码

然后可以见到文件传输

安装debootstrap
然后就可以关闭这一个cmd窗口了,回到了正在运行ssh的cmd窗口,并运行如下指令。
apt install ./arch-test_0.15-2_all.deb
apt install ./debootstrap_1.0.114_all.deb


挂载硬盘分区
然后,我们运行lsblk,查看硬盘的具体位置。
在我的机器上,硬盘的位置为/dev/sda。

我们需要挂载/dev/sda1和/dev/sda2,请运行如下指令进行挂载操作
mkdir /mnt/root
mount /dev/sda2 /mnt/root
lsblk
然后可以见到分区被正常挂载

构建基础系统
然后运行如下指令构建debian根文件系统
debootstrap --arch mips64el bullseye /mnt/root http://ftp.cn.debian.org/debian
运行效果如下



当见到”I: Base system installed successfully.“时,代表着基础系统安装成功。

通过如下指令挂载其余分区
mount /dev/sda1 /mnt/root/boot
mount --bind /sys /mnt/root/sys
mount --bind /proc /mnt/root/proc
mount --bind /dev /mnt/root/dev
安装必要软件
运行如下指令
chroot /mnt/root
nano /etc/apt/sources.list
然后会来到如下的界面

我们同时按下ctrl和k,将这一行删去,然后复制以下内容,在这一个窗口点击右键粘贴进去。
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
然后运行如下指令更新apt索引
apt update

然后运行如下指令安装一些必要的软件和包
apt install wget curl htop openssh-server apt-transport-https ca-certificates \
grub-common linux-image-loongson-3 linux-headers-loongson-3 linux-libc-dev \
firmware-linux-free firmware-linux-nonfree \
locales network-manager
其中,第一行为一些基础软件以及为apt提供https支持,第二行为grub引导器和适用于龙芯的内核。第三行为一些固件(包含自由的和非自由的)。
在接下来输入Y并按回车即可,需要等待一些时间。
(下图少了locales和network-manager,实际是有的)


locales和时区
运行如下指令
dpkg-reconfigure locales
hint:可以按page down而非↓(下方向键)快速往下翻
在en_US.UTF-8 UTF-8那一行按空格键以选中

然后将zh_CN全部选中

然后按tab键,再按回车。
这一步使用↓(下方向键)选中en_US UTF-8 UTF-8然后按回车

当看到”Generation complete.“时,就可以下一步了

虽然选择默认的locales为en_US,但是语言被配置了中文。使用如下指令让终端继续显示英文
export LANG=en_US.UTF-8
配置fstab
由于Linux需要依据fstab文件来在启动时挂载每个分区,而使用debootsrap构建好的根文件系统是不会自动配置fstab的,因此我们需要自己配置fstab。
我们首先输入blkid并回车以得知分区的UUID。
在红框中的UUID则为我们需要填入fstab中的内容

我们通过win+r打开运行,然后输入notepad,并将这2个UUID复制到记事本中备用


我们运行如下指令编辑fstab
nano /etc/fstab
按照如下格式配置fstab,每个项输入完成后按下tab制表符以分隔。

输入完成后,同时按下ctrl和x,然后按y,再按回车以保存fstab文件。
修改root密码
系统目前还没有为root配置密码,因此需要配置密码以便重启后登录。使用如下指令来修改root密码。
passwd
当看到”passwd: password updated successfully“时,则代表密码更改成功。

添加普通用户
openssh-server默认不允许root用户直接登录,因此我们新建一个普通用户并授予sudo权限
以下指令中,username替换为自定义的名称
apt install sudo -y
adduser username
usermod -aG sudo username

修改grub配置
目前,位于/boot中的grub配置文件仍然是指向旧的UOS系统,其所加载的initrd以及vmlinuz还是UOS的。我们需要修改至现在指向Debian 11的initrd和vmlinuz。
输入如下指令来编辑grub.cfg
nano /boot/grub.cfg
当打开时,文件内和nano编辑器均会提示此文件不应该被修改,我们忽略即可。

我们在这一个界面一直按键盘的Page Down,直到最后一行。

然后开始使用↑(上方向键)往上查找,查找到如下内容

我们需要修改四个内容
- 修改启动项名:将UnionTech OS Desktop 20 Pro GNU/Linux 修改为 Debian 11 Boot Entry
- 修改vmlinuz-4.19.0-loongson-3-desktop为vmlinuz-5.10.0-28-loongson-3
- 修改initrd.img-4.19.0-loongson-3-desktop为initrd.img-5.10.0-28-loongson-3
- 最后,记得修改”root=UUID=“后面的内容,因为新创建的分区UUID与原来的是对不上的。修改为/dev/sda2(或/mnt/root)对应分区的UUID。

当运行完成后,我们输入以下指令退出chroot并关机,然后拔出U盘。
exit
shutdown now

在重新开机之前,请拔出鼠标,实测插着鼠标第一次启动Debian11会卡Start initrd非常久。启动后无法使用USB接口。


然后就可以来到Debian 11!

安装后的工作
修改hostname
通过以下指令修改默认的hostname UOS
sudo hostnamectl set-hostname 3A2000C-Debian
nano /etc/hosts

然后在/etc/hosts中设置127.0.0.1的hostname记录。

同时按下ctrl和x,然后按y,最后按回车以保存。
然后通过reboot重启即可更新hostname。
安装桌面环境(非必须)
一些应用程序可能要求图形环境,因此可以安装桌面环境。
Debian中提供了工具,只需要将想要的桌面环境打勾即可自动安装。
我们运行如下指令
sudo apt install mesa-utils
sudo tasksel
然后在Debian desktop environment和自己想要的桌面环境上打勾。因为我习惯使用KDE,所以选择安装KDE Plasma。

选择完成后就可以回车等待安装。

在安装途中,我们可能遇到如下选项

我们按下Page Down,直到选中Other,然后回车。

然后通过↑(上方向键)选中Chinese并回车。

然后选中Chinese - Hanyu Pinyin (altgr) 并回车

等待安装程序退出后,你可以使用如下命令启动桌面(KDE)或重启以启动桌面。
systemctl start sddm
Loongnix 20(理论支持)
Loongnix 20也是龙芯官方的发行版。虽然映像写着是mips64el架构,但启动时卡在了Start initrd上,没法进行后续的操作。

独立显卡兼容性
这块板子是有一条pcie x16插槽的,因此我们可以为其接入独立显卡。
在此之前,我听说这一张主板是兼容AMD R5 235的显卡。正好手上有一张来自OEM机子的拆机AMD R5 235,于是尝试将其接入3A2000C主板中。


然而,这一块主板可能是并不完善,接上独显有时没有信号输出,有信号输出了也可能只是在启动阶段有,在加载完initrd开始加载Linux的时候信号输出也会中断。
不过,总算会有能亮起来的时候,进入系统后也能正常识别到独立显卡。


总结起来就是:支持独显,但是并不完善。有可能会碰到没法启动,加载内核后信号输出丢失等问题。
性能实测
3A2000 CPU
对于mipls64el架构,benchmark的工具不是很多,因此采取了7zip和hardinfo的测试结果
为方便得出测试所得相对性能,在每个测试结果以下会附上使用Intel Core i3-4170运行相同测试的结果。
7zip
3A2000C测试结果

i3-4170测试结果

Hardinfo
CPU Blowfish
越低越好。
3A2000测试结果

i3-4170测试结果

CPU Cryptoash
越高越好。
3A2000测试结果 数值为488.07

i3-4170测试结果 数值为1270.09

CPU Fibonacci
越低越好。
3A2000测试结果

i3-4170测试结果

CPU N-Queens
越低越好。
3A2000测试结果

i3-4170测试结果

FPU FFT
越低越好。
3A2000测试结果

i3-4170测试结果

FPU Raytracing
越低越好。
3A2000测试结果

i3-4170测试结果

GPU Drawing
越高越好。
AMD R5 235测试结果(独立显卡)(位于3A2000C)主板上

AMD R5 235 (on x86 )

AMD HD3200集成显卡

i3-4170核心显卡(Intel HD 4400)

视频解码
搭配R5 235独立显卡
显卡可以硬解1080P的视频,在播放时仅占用了非常少的的CPU,通过VLC命令行可以了解到使用了显卡硬件解码。

至于1440P,其仍可以硬件解码,但是到了4K时就没有办法打开了,会报无法获取足够的资源并退出。

以下为4K

内置显卡(AMD HD3200)
虽然听说这张集成在主板上的显卡可以硬件解码1080P的视频,但在Debian环境下使用vlc进行测试时,无论是720P还是1080P,都无法正常使用显卡硬件解码。会fallback到使用CPU软件解码。


因此尝试回到UOS中测试显卡的硬件解码性能。
无论是使用deepin-movie(UOS自带的视频播放器)还是VLC,1080P视频无法正常播放。


然后尝试720P,视频会快速闪烁,还是无法正常播放。
CPU软解
1080P下,大概需要使用整个CPU的60%

1440P情况下,需要用满整个CPU

存在的问题
- 自检较慢。从开机到输出显示画面大概需要18s。
- 当插着无线鼠标/键盘时无法通过自检。
总结
通过上述测试结果我们可以知道3A2000的性能是非常弱的,但是这是在2015年的CPU。如今,龙芯已经发展到了3A6000。3A6000的性能还是比较可观的。同时架构也从mips64el换成了自研的loongarch。
虽然性能很弱,但是其还是可以胜任一些简单的工作。其板子上有4个SATA接口,为其作为NAS主板提供了便利。可以参考 来吧!用OpenMediaVault把龙芯3A2000C做成NAS吧! - GeekLogic (geek-logic.com)。
Comments 3 条评论
看起来好专业
其实就是AM3平台的南北桥,所以只要am3平台上可以用的显卡理论上龙芯3a2000c一样能用,就是bios和系统是否支持的问题。nv不支持的一大原因我的猜测是调度器不兼容mips以及bios配置问题。
这板子的布局好奇怪诶,北桥在南桥位,然后内存控制器貌似又是在CPU而不是北桥的,然后也没看到南桥芯片,南桥在主板背后?