Debian for Loongson 的几点想法(ZT)

可能这个话题讨论过,若是老生长谈请见谅,但仍希望能集思广益,忘大家不吝赐教。

龙芯 CPU 的研发正在规划下稳步前进,每两三年就有新产品问世。

相比之下,龙芯的操作系统与应用的开发相比之下则不容乐观: RAYS 仓库有限,逸珑内建的基于 Debian 的系统则无法像正常的 Debian 系统使用(比如无法整体升级,见[1])。这种情况如果不得到改进,也将严重限制龙芯系统的推广。目前官方支持 mipsel 架构的 GNU/Linux 发行版有 Debian 和 Gentoo,理论上其他 GNU/Linux 发行也可以移植; BSD 方面 NetBSD 也有 mips 的 port。既然有这么多成熟的发行,个人认为,在人员缺乏的条件下,没必要进行过多的重复劳动去自己维护发行,完全可以利用现有发行版的资源进行移植。这 样既可以避免重复开发(发行版、包管理的维护,以及一些非标准桌面的定制),也可避免现有 Linux 用户再次面对陌生的桌面环境(如逸珑笔记本的定制系统 Lemote Loonux),避免重复劳动,同时有效组织现有人力。

[1] http://www.lemote.com/bbs/viewthread.php?tid=20811&extra=page%3D2

目前,可直接选择的发行版有 Debian 和 Gentoo。由于个人对 Debian 更为熟悉一些,就以 Debian 为例讨论几点初步想法:

步骤1  完善文档。

Debian 官方文档:
目前包括龙梦首页的知识库,维基以及论坛资源中,有关 Debian 的资源虽然不少,但大部分内容松散,没有组织,还包括部分过时信息(如软件源及 Debian 的版本信息等)。实际上,这部分完全属于重复劳动。近期由 Debian 中文用户翻译的中文 Debian 文档已经非常丰富,且已更新到 Debian 官方站点。因此,只需要提供到 Debian 官方的链接即可(知识库的文章中竟然没有一个到 Debian 官方站的链接)。如有些页面未翻译,可联系 Debian 简体中文用户列表 debian-chinese-gb@lists.debian.org 或者中文翻译计划 i18n-zh@googlegroups.com 进行完善,能够有组织合力解决,避免重复劳动。

Debian for 龙芯的专有文档:
这部分是需要下精力完善的部分,如非官方仓库。目前由刘世伟刘工维护的非官方 Debian 仓库是需要突出的,其中包括 Debian 内核, Tor 都是无法使用 Debian 官方仓库里的,因此需要使用刘工仓库的版本。还有一些龙芯特有的内核模块,如电池模块 ec_batd ,如不加载, gnome-power-management 就无法检测到电池。其他此类信息对用户十分重要,应该合理组织,并放到显眼的位置。

以个人浅见,应该取消龙梦主页的知识库,并改为到龙芯维基或 Drupal 的链接,将现有资源转移到 wiki/drupal ,方便大家的改进及更新,同时帮助新用户能找到最新的文档资源:比如可以整理各位用户在论坛里的发帖总结出在龙芯安装 Debian 的方法,如 debian-installer, debootstrap, 以及使用官方提供的镜像包,等等。

步骤2  与官方 Debian 系统整合

这一步骤需要更多的工作量,也需要开发人员的协助。虽然 Debian mipsel 移植中的绝大部分软件可以直接使用,但仍存在两个问题:

(1) 软件不兼容。例如官方的内核无法使用。龙芯系统须在编译内核时选择龙芯架构,与其他 MIPS 架构不兼容。另外,某些软件可能依赖内核参数的设置,比如 tor ,则可能需要针对不同内核进行不同类型的 build 。这就比较难解决,即使 Debian 软件包可以根据不同的参数编译多次而提供多种风格的软件包,但由于内核更换很复杂,大大降低了可行性。

(2) 优化。Debian 的原则是要尽可能的运行在更多的系统上,因此默认会采用最通用的参数进行编译。目前就是采用 mips1 的 ABI。想让官方的 mipsel 为龙芯进行优化可能性为零。

目前通过非官方仓库可以解决第一个问题,如刘工的仓库,但并不完美。

一个更大胆的设想,则是建立一个完整的 Debian 的非官方龙芯移植。以 Debian 提供的工具,提供一套完整的移植并非像完成一个 LFS 那样复杂,虽仍然需要不少人力和周折,但一旦建立起来后续工作将大大简化,并真正提供了一套完整的软件解决方案。如推广进行顺利,也会进入 Debian 的官方发行。这样结合 Debian 开发者维护的软件包与龙芯方面的系统移植,可以大大节约软件包维护方面的人力。龙芯方面只要拿出几台做 buildd 即可慢慢完成软件仓库,一劳永逸。以目前的情况,此方法在短期内实现的可能性不大。

目前来讲,可以先完善非官方的内核编译,并联系 debian-mips 移植开发人员,讨论添加龙芯内核移植的可能性。这大概要等到 GCC 4.4 进入 sid 时可以开始进行。

有关 Debian mipsel 移植可以参考 Debian ports 的介绍[2][3]。

[2] http://www.debian.org/ports/
[3] http://www.debian.org/ports/mips/

这里只是以 Debian 为例简单说说。其实其他所有发行版都可行,而官方提供 mipsel 的 Debian 和 Gentoo 进行起来理论上会更顺利一些。

最后,鄙人才疏学浅,用语不当思考不周之处烦请各位多多批评指点,也希望各位能多提建议,提出更多的方案。

Leave a Reply

You must be logged in to post a comment.