前情提要

在某日逛小黄鱼时,被推送到了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盘

请根据lsblk确定U盘所在的分区,以及确定镜像所在的实际位置(if)。dd如果of路径错误有可能导致数据丢失/被覆写!
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上手——一起探寻2015年的“中国芯”

虽然支持列表并未包含3A2000,但是其实际上是可以正常运行的。

在下载完镜像后,我们只需将u盘格式化,然后使用dd将其写入U盘即可。(假设U盘位于/dev/sdc,请根据lsblk结果确定U盘的 sdx 中 x 的值)

sudo fdisk /dev/sdc
d
回车
d
回车
#直到没有分区了为止
w

请根据lsblk确定U盘所在的分区,以及确定镜像所在的实际位置。dd如果of路径错误有可能导致数据丢失/被覆写!

然后使用如下指令写入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主板。

请正确弹出硬盘!如果使用的是USB硬盘盒/支持热拔插的SATA接口,请在系统中使用”安全删除硬件并弹出媒体“让硬盘弹出,再拔除连接线。如果是不支持热拔插的SATA接口,请将系统完全关机并断电后拔出硬盘!
进入live环境
由于UOS下需要手机号/微信扫码等才能获取root权限,极为不便,因此选择在live环境下操作,可以直接使用sudo -i获取root权限,方便操作

然后重新插上安装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窗口中输入如下指令。

请根据文件下载的位置调整要change directory的位置。以及调整指令中的ip地址以符合机器实际内网ip地址。如果下载文件夹中有其余deb文件,请先移动至不相关目录或将*.deb改成具体文件名再运行指令。
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,直到最后一行。

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

我们需要修改四个内容

由于内核可能会存在更新,因此请先确定/boot中新安装的内核文件的名字,通过如下指令确定vmlinuz和initrd.img的名字。
  • 修改启动项名:将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运行相同测试的结果。

对比的结果仅供参考,因为两个CPU之间使用的是不同的架构,因此所测试出来的性能还会受许多其他因素影响!

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)