本帖最后由 JackyMuyi 于 2023-6-4 18:23 编辑
2021年,龙芯中科正式发布了新一代CPU龙芯3A5000,以及新桥片龙芯7A2000。3A5000是首款采用自主指令系统LoongArch的处理器芯片,其主要规格如下:
4核心、主频最高2.5GHz;集成双通道DDR4-3200和HT3.0接口;支持128/256位向量指令;四发射乱序执行;4个定点单元、2个向量单元和2个访存单元;采用自主设计的LoongArch指令系统。
龙芯7A2000则是龙芯中科的第二代桥片产品,其主要规格如下:
按照公开内容所示,7A2000在第一代桥片7A1000的基础上进行了优化升级。首先,PCIE、USB和SATA均升级为3.0;其次,显示接口升级为2路HDMI和1路VGA,可直连显示器;另外,内置一个网络PHY,直接提供网络端口输出。此外,片内首次集成了自研GPU,支持OpenGL 2.1,搭配32位DDR4显存接口,最大支持16GB显存容量。
以上就是有关龙芯芯片的基本情况,下面首先是硬件配置:
CPU:龙芯3A5000
主板:天创者L5A2(搭载7A2000桥片)
内存:沃存(Wodposit)DDR4 3200 8G单条*
硬盘:希捷 1T 7200(ST1000DM003)
显卡:迪兰恒进 HD7870 2G 公版
机箱:乔思伯V4银色
电源:长城HOPE-5000DS 400W
配件展示(因为上传图片要求限制大小在500K以内,我就用截图工具简单处理了一下):
首先是搭载了3A5000CPU和7A2000桥片的天创者L5A2主板,其主要规格如下:
实拍图:
主板全貌
IO接口,简陋但是够用
PCIE、SATA、M2接口
音频芯片,非常模糊,似乎是小螃蟹家的
CPU是直接焊接在主板上面的,原装散热器高度不超过50MM
7A2000桥片与散热风扇,以及显存芯片
主板电池和开机&重启按键
显卡是以前升级替换下来的迪兰7870公版,这回拿出来再次发光发热
希捷1T和日立160G,都是替换下来的旧配件
关于内存这边,一开始我用的是长鑫颗粒的光威弈DDR4-3200 8G,结果在后来上机测试的时候长时间黑屏无显示,于是退掉换成了下面沃存的这款:
内存颗粒表面看上去是CXMT,应该是长鑫的
背面和光威一样,都是单面内存,贴纸是商家自行贴的
(实际上我也是后来才了解到有可能是由于龙芯主板自身特性,新机器第一次启动时会有非常长的初始化时间,甚至长达十分钟后才能输出显示信号,很容易造成误判为内存不兼容。不过原内存已经退掉,也没法再尝试复现了)
长城的低端电源,额定400W,没有取得80Plus认证,根据厂商宣传来看差不多是白牌水准。线材没有包蛇皮网,反而更方便理线,尤其是在像乔思伯V4这样空间狭小的机箱内。插头配置方面,4个SATA,2个6+2PCIE完全足够,CPU供电甚至还是4+4pin加上一个8pin共两个供电插头,不知道这是个什么情况……
乔思伯V4机箱,目前只有这款能够在满足全尺寸MATX+全高且标准长度显卡+ATX电源+多3.5寸硬盘位+体积适中的同时价格还合适(机箱本身我觉得应该还可以再瘦一点),但是有个最大的问题就是割手!割手!!割手!!!所有边缘根本就没打磨,毛刺拉拉的,刀子一样非常非常锋利,我装一次就割一次手,简直惨不忍睹
侧面开孔的位置也是硬盘架的位置,可以上两块3.5寸硬盘
底部也可以上个薄点的3.5寸硬盘,比如上面的希捷1T,明显要比别的硬盘薄了差不多1/3
另一侧面,一个3.0一个2.0,一个麦克风一个耳机输出接口,但是没有进行注明(上面是麦克风,下面是耳机)
机箱内部,全螺丝,除了机箱本体是铝的,硬盘架好像是不锈钢的,另外上硬盘架稍有一定难度,要一只手扶着硬盘架一只手上螺丝
安装主机
安装电源和硬盘架
组装完成,接下来就是准备装系统
龙芯这款CPU因为采用了新架构(之前是基于MIPS的,只不过龙芯在上面额外添加了指令集),在进行生态搭建、软件移植的时候,出现了新世界与旧世界的情况:
最早只有一个世界。龙芯转向 LoongArch 之前,MIPS 的最底层生态已经成熟稳定,也就没有这档子事。但自从龙芯决定要搞自己单独一套架构,完全没有生态,那生态从哪来?龙芯一开始觉得 MIPS 是好的,于是把现有底层组件的 MIPS 字样就批量替换成 LOONGARCH,除了汇编、反汇编这种涉及机器语言的地方才真正重写,人们都觉得这样做没什么问题,你看这程序不是跑起来了吗?商业上时间不等人,为了抢占先机,龙芯把这个世界跑通之后直接就给下游厂商了。这个世界的底层逻辑就由此固化,很难撼动。是为“旧世界”,一个除了名字不一样,别的都跟 MIPS 一样的世界。
这些事情都做完之后,像是一个步骤结束了开始下一个步骤,龙芯才开始大举向上游开源社区推送 LoongArch 适配补丁。上游的同学们看了这些补丁,大跌眼镜,这不就是 MIPS 代码复制粘贴吗?接下来的事情很多人已经知道了——除了少数一些不关注平台移植细节和审美,甚至看都不看闭眼合并的上游之外,这些复制粘贴的补丁基本都折戟沉沙。龙芯的员工们也渐渐意识到,闭眼抄 MIPS 不行——毕竟是两个不一样的架构嘛!自己都说了做个新架构摆脱 MIPS 历史包袱,结果实际上是把历史包袱一个不差都复制过来,这样着实不好。很多人似乎也是被上游提醒了才知道,世界上不只 MIPS 一个架构,当做事情方法不一样的时候,MIPS 往往是特立独行的那个,而不是别人,因而跟 MIPS 无脑保持一致反倒增加了其他人的负担。
于是乎,后期的龙芯员工们停下了无脑推送,开始老老实实按正常方式移植、适配软件,写出了一些基本摆脱 MIPS 影响的东西,这些就能够顺利进入上游了。这些全新写作的代码基本没有历史包袱,互相之间也能正常配合,但正是由于摆脱了历史包袱,这个世界就总是与“旧世界”存在这里那里的不同,因而不能互相兼容;是为“新世界”。 在一部分龙芯员工的描述中,旧世界固件也叫“虚拟地址固件”,新世界固件也叫“物理地址固件”。此命名的依据是该两种固件向软件开发者暴露接口的最大区别:旧世界固件提供的各种表格、指针地址都是 0x9000_xxxx_xxxx_xxxx 格式的,不是物理地址,而是透过预先配置的对整个物理地址空间的 1:1 可缓存映射窗口(与 Linux 内核对 CSR DMWIN1 的初始配置一致)访问内存的“虚拟地址”。这也是同一内核(目前)不能兼容新旧世界固件的主要原因之一。
除以上区别之外,该两种固件还有其他区别。下表列出了新旧世界固件所有存在差异的维度。由于该论坛的软件不支持 Markdown 表格,以下内容换成列表形式展现。
指针性质
旧世界固件:可缓存映射(虚拟)地址
新世界固件:物理地址
默认引导文件搜索路径
旧世界固件:\EFI\BOOT\BOOTLOONGARCH.EFI 或与新世界一致
新世界固件:\EFI\BOOT\BOOTLOONGARCH64.EFI
ACPI 6.5 规范
旧世界固件:非标准
新世界固件:规范实现
旧世界的 ACPI 表结构不同,是至今(2022.06)为止的新世界发行版都必须使用 initrd 覆盖固件 ACPI 表,才能正常启动的原因。具体而言,内核预期的 ACPI MADT 结构与旧世界不同,新世界内核直接看到旧世界 ACPI MADT 则会认为系统有 0 个 CPU,因而初始化失败。
可能存在一些旧世界固件,其默认引导文件也叫 BOOTLOONGARCH64.EFI。具体以你电脑上 EFI 分区的现状为准。但所有新世界固件都仅支持 BOOTLOONGARCH64.EFI 一个文件名。
BPI
新旧世界的固件对引导器、内核都仅仅提供相当标准的 UEFI 编程接口。但在 Linux/LoongArch 一侧,接受固件、引导器参数的具体方式,即“引导协议”(boot protocol)却存在历史包袱。即便早期的新世界内核(2022.06 之前),也不能从固件直接接受参数,而需要特制的 grub 为其转换一道,将标准的 UEFI 引导协议适配为龙芯公司特有的 BPI 引导协议。目前该问题已经解决,以 Linux v5.19-rc1 接受了 LoongArch 不带引导支持的补丁为分水岭,之后的新世界内核将以通用的 EFI stub 方式被 grub 或固件直接引导。
请注意,新旧世界的区分存在许多维度。从上面的描述也可看出,确实有一个历史时期,即便一个内核在用户态 ABI 层面被认为是新世界,它也可能仅支持旧世界引导协议,从而需要搭配旧世界固件使用。 因为龙芯公司在向开源社区发表 LoongArch 之前已经在幕后完成了所有商业动作, 所以开源生态又叫“新世界”; 与之相对的,所有商业发行版及其附属生态即构成“旧世界”。 两个世界在未来会得到统一,但目前可以被视作两个平行宇宙。目前看来兼容的技术难度非常大。
总之,在操作系统方面,官方的Loongnix、统信的UOS、以及麒麟Kylin等商业发行版,都属于旧世界;而基于新世界的操作系统则有Arch、Gentoo、CLFS等的移植项目。
加电开机,新装的机器第一次启动时间可能会非常长(应该是首次初始化过程,以后就不会了),甚至能有十分钟,需要耐心等待,如果超过一刻钟还没有显示信号,再怀疑是否哪里存在问题。
成功开机后会显示龙芯的LOGO
使用之前准备好的Loongnix安装U盘,进入安装界面
安装本身是傻瓜化的,但是存在一个问题是如果让安装程序自己自动分区,会产生分区4K对不齐的情况,所以建议自行手动分区
安装完后重启,使用的是GRUB引导(另外现在的Loongnix的GRUB引导同时兼容新旧世界固件,不用担心主板更新新世界固件后原Loongnix系统无法启动)
Loongnix加载界面
进入桌面环境。Loongnix的桌面有两种,一种是Cartoon,另一种是MATE(说实话我没觉出来卡通在哪,而且感觉功能过于简陋,建议用MATE版)
这是MATE的桌面
开机按F2可以进入固件设置,准备更新固件
更新固件需要在EFI Shell里输入命令,并且需要事先准备好相应的U盘,但是刷固件有变砖的风险,稳妥起见还是建议使用烧录器,比如CH341A
然后准备好Arch Linux的安装U盘,按照教程,一步一步装系统
特别注意,目前适配龙芯Loongarch架构的Arch系统为第三方社区移植版,不是官方版本
装完系统后,结果在配置systemd启动挂载硬盘这一步时失误出错,导致重启后系统找不到引导启动的位置,简单的办法就是用安装U盘重新chroot后进行手动修复,一定要搞明白问题出在哪里哟~
OK,系统成功进入,欢迎来到新世界
默认状况下如果没有安装桌面环境,就是tty命令行界面
安装了KDE并且通过Wayland加载,但是KDE在Wayland上还是BUG多多,我装完了后才发现忘记装终端,结果还切换不了tty模式,又一次拿着安装U盘重新chroot大法……
使用的过程中总体来说,龙芯的平台已经完全能够胜任一般使用情况,非重度的文字编辑、图像表格处理,以及1080P级别的视频基本都能胜任,游戏的话B站上也有许多通过二进制兼容来运行诸如红警、CS、暗黑等游戏的录像视频了。总而言之,这是一个好的开始,希望龙芯能够坚持走下去。(完)
|