最近看到极客逻辑买了一堆龙芯板子组了个集群,突然想起自己也有一个龙芯啊。大约是十年前龙芯团购 里买的逸珑 (yeeloong) 8089D,价格非常便宜,纯粹是买来做个纪念的。

趁周末翻箱倒柜给找出来了,想想跑一个博客应该不成问题,说干就干,开机启动,系统是十年前的 Lemote Yeeloong Gentoo Desktop ,可惜忘记了密码,试了半天,发现还是默认密码没改呢。系统太老了,到社区看了下,已经找不到当时的项目目录了,瞅了眼 Debian 也就支持到 jessie 为止,还2018年的系统,仍然太老。

多亏了论坛里 XiaoaiX 提醒,可以直接用 mips3 的 stage3 来开始,逸珑的 CPU 是 loongson 2f,是 mips3 增强版,支持64位,不过笔记本只有1G内存,于是选择 stage3 [mips3 | n32 | multilib | el | openrc] 开始安装。 正准备格式化掉,想起来自带的pSSD硬盘只有8G是不是太小了点,现在SSD都白菜价了,索性买了个500G的致态换上,本以为SATA能快点,结果测了下读写只能到 20M/s 左右,应该是控制器的问题,无解。

stage3有了,就差内核了,发现 mips-sources 基本半残,直接拿 gentoo-sources:6.6 试试吧,把原来本子里的config套一下,可是龙芯编译起来实在太慢,后面还有不少软件需要编译,那就试试在台式机上做交叉编译吧。好在非常顺利,直接 emerge crossdev,然后构建编译链,具体target可以从stage3里抄过来:

crossdev -t mips64el-unknown-linux-gnuabin32

接着三板斧编译内核,为了方便都编译进内核,不用模块了:

make ARCH=mips CROSS_COMPILE=mips64el-unknown-linux-gnuabin32- menuconfig
make ARCH=mips CROSS_COMPILE=mips64el-unknown-linux-gnuabin32- -j4
make ARCH=mips CROSS_COMPILE=mips64el-unknown-linux-gnuabin32- install

复制内核到机器上启动,发现很卡,似乎irq有点问题,导致共享irq的ata驱动性能极低,关掉 CS5536_MFGPT 后恢复正常,不晓得有啥不良后果。顺便做了一个6.6内核的网络启动镜像

接下来弄把需要的软件都用 emerge-mips64el-unknown-linux-gnuabin32 交叉编译好,会很贴心的默认打好成二进制包,本来想用 nginx,但交叉编译支持的很差,改用 lighttpd + php + sqlite ,选择最小化的 USE 编译,就顺利的搞定了。

最后,把二进制包目录用webserver暴露下:

alias.url = ( "/packages" => "/usr/mips64el-unknown-linux-gnuabin32/var/cache/binpkgs/" )

龙芯本子上把台式机设置为 PORTAGE_BINHOST, emerge 加 -G 参数(仅使用二进制包)即可快速完成安装。

还需要被外界访问,家庭宽带没有端口,也没搞桥接,直接上 cloudflared 隧道收工。

PS. 龙芯2性能是弱了点,跑个1000位的pi需要3.5秒,好在博客运行起来还挺快的:)