0x00 前言
笔者是一个无可救药的复古 Unix&RISC 厨,因此对上世纪很多 Unix 系统都在使用的桌面环境 Common Desktop Environment
甚是喜欢。这几天清点家里的电子垃圾的时候想起手中还有一台搭载 Loongson 2F 处理器的 福珑2F6003
盒子,于是便萌生了在这台可爱的 MIPS 小机器上跑起 CDE 的想法。
(硬件涩图环节)
0x01 编译前准备
依赖
在 CDE Wiki<sup>1</sup> 中有详细的依赖说明
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 Wiki<sup>1</sup>:
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 标签:
可以看到本应该为-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
开始编译
编译中~
在这颗 900MHz 的 Loongson 2F 处理器上,编译完整的 CDE 大概需要三至四个小时。
安装
编译完成后,就可以进入安装环节了。
执行
./admin/IntegTools/dbTools/installCDE -s /path/to/cdesktopenv-code/cde/
sudo mkdir -p /var/spool/calendar
安装完毕,就可以体验 CDE 啦!
0x04 展示
执行
startx /usr/dt/bin/Xsession
即可开始体验 CDE
下面是一些实机运行时的图片,由于笔者并没有 VGA 采集卡,所以只能拍屏幕 了(愚蠢的拍屏主义 -40)
文件管理器与帮助
[
一些系统信息
运行 Scheme 解释器(可以这很 Unix Hacker)
Refrences
[1] Cdesktopenv Wiki