0x00 前言

笔者是一个无可救药的复古 Unix&RISC 厨,因此对上世纪很多 Unix 系统都在使用的桌面环境 Common Desktop Environment 甚是喜欢。这几天清点家里的电子垃圾的时候想起手中还有一台搭载 Loongson 2F 处理器的 福珑2F6003 盒子,于是便萌生了在这台可爱的 MIPS 小机器上跑起 CDE 的想法。

(硬件涩图环节)
0JQP0I.jpg


0x01 编译前准备

依赖

在 CDE Wiki1 中有详细的依赖说明

On debian-like systems (including Ubuntu) install the following packages;
git (for downloading from source repository)
build-essentials or build-essential
libxp-dev (not available on latest linuxes, skip)
libxt-dev
libxmu-dev
libxft-dev
libxinerama-dev
libxpm-dev
libmotif or libmotif3 or libmotif4 or libxm4 (Openmotif, in non-free or restricted)
···

笔者的盒子使用的是 Debian 7 系统,故直接执行以下命令。

apt-get -y install git build-essential g++ lib{xt,xmu,xft,xinerama,xpm,motif,ssl,xaw7,x11,XSs,tirpc,jpeg,freetype6}-dev tcl-dev ksh m4 ncompress xfonts-{100,75}dpi{,-transcoded} rpcbind bison xbitmaps x11proto-fonts-dev

locale 设置

同样摘自 CDE Wiki1

For generic Linux
Edit locale.gen, usually found in /etc and uncomment (remove the # space from the start of the line) the following lines;
de_DE.ISO-8859-1
es_ES.ISO-8859-1
fr_FR.ISO-8859-1
it_IT.ISO-8859-1

获取 CDE 代码

git clone https://git.code.sf.net/p/cdesktopenv/code cdesktopenv-code

当然在国内SF很慢,也可以用 OSChina 的镜像源代替。


0x02 编译&安装

编译

编译时踩了一个坑,imake 并不能正确识别 MIPS 标签:
0J8lMF.jpg 可以看到本应该为-D__Linux__ -D__mips__的参数变成了-D__Linux__ LinuxMachineDefines,故产生了编译错误。
修改./cde/config/cf/linux.cf
加入以下代码即可

# ifndef OptimizedCDebugFlags
#  define OptimizedCDebugFlags -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2
# endif
# define LinuxMachineDefines   -D__mips__
# define ServerOSDefines   XFree86ServerOSDefines -DDDXTIME
# define ServerExtraDefines    -DGCCUSESGAS XFree86ServerDefines -D_XSERVER64

回到源码主目录,执行

make World

开始编译
0Jnb0P.jpg 编译中~
在这颗 900MHz 的 Loongson 2F 处理器上,编译完整的 CDE 大概需要三至四个小时。

安装

编译完成后,就可以进入安装环节了。
执行

./admin/IntegTools/dbTools/installCDE -s /path/to/cdesktopenv-code/cde/
sudo mkdir -p /var/spool/calendar

0JnTOI.jpg 0JnHmt.jpg 安装完毕,就可以体验 CDE 啦!


0x04 展示

执行

startx /usr/dt/bin/Xsession

即可开始体验 CDE
下面是一些实机运行时的图片,由于笔者并没有 VGA 采集卡,所以只能拍屏幕 了(愚蠢的拍屏主义 -40)
文件管理器与帮助
0JnqTf.jpg 一些系统信息
0JnOk8.jpg 0JnXtS.jpg 0Jnjfg.jpg 运行 Scheme 解释器(可以这很 Unix Hacker)
0Jnzlj.jpg

Refrences

[1] Cdesktopenv Wiki