在486上初试Damn Small Linux ( DSL )

在实现为我的486装一个可用的linux with X Windows的目标的过程中,我也试过Damn Small Linux(以下简称DSL),用大概一周时间作了一个初步的安装试用。下面我把自己安装和使用DSL的心得记下来,我用的DSL版本是3.4.4,它的内核版本是2.4.26。好记性不如烂键盘,供备忘和有需要的朋友参考。

如果你在Google中搜索“最小的linux”、“486 linux”之类的关键词,多半会发现这个著名的迷你型linux发行版(如果可以称之为发行版的话)。确实,DSL很小,可以装在U盘和刻在那种小尺寸的光盘上运行,只有50M大小。也可以装在硬盘里,装在硬盘里也不过100M左右。而且,真的对机器要求非常低,记得网上好像有人在386上成功运行它。而我在486DX100+24M内存的机器上运行它,用dillo上网的速度还不错。它这么小,只有字符界面吧?错,它有一个完整的桌面系统,使用fluxbox和xdesktop(好像是叫这个吧)。有一套完整的在X Windows下运行的程序:办公、娱乐、上网、图片处理等等,一个也不少,完全可以胜任一般的日常应用!

那么,DSL就非常完美了吗?非也,一个最大的问题是:DSL国际化支持几乎为零(好像也正式支持了德语什么的),一般的非英语用户想升级它为自己语言的环境也非常难。事实上,除了它自带的几种扩展包,你要想对系统用apt命令对它作大的改动是比较困难的。比如语言支持。我曾按照网上一篇老文章DSL + xfont-intl-chinese + FCITX 定制成功!(已加入文泉驿字体)在我安装到硬盘上的DSL-3.4.4添加它的中文支持,可是当用“apt-get -o APT::ForceLoopBreak=yes install locales ”终于把locales安装到Damn Small Linux 3.4.4上了,我却不能为它安装中文字体了(或者是其它什么步骤,因为没有及时记录,忘了)。于是就停止了。最后,把同台机器另一个操作系统里的gpm、zhcon有关的文件拷贝到系统里添加控制台的中文支持。我想如果把w3m相关文件拷到系统里,作一些修改(像我把redhat linux 9.0的这些文件移植到slackware linux 10.2一样,后面的日记也许会记录这个过程),应该可以在控制台里完成大部份中文打字和上网操作的。至于X Windows的汉化,我尝试了一下,没有成功就算了。上面汉化成功DSL的版本是1.2.1。关于DSL作者对DSL语言支持和升级支持的“官方”说法,可以参考这两篇文章:Language Support - DSL WikiEnabling Apt - DSL Wiki。以我的理解,从中得出下列信息:
DSL由于极度裁剪,使得扩展非常困难;使用apt命令升级单独的包,但除非是专家,不要对主要系统进行升级;由于DSL不是从Debian单一继承而来,使用apt命令安装了“错误”的程序也许会对系统造成破坏。
因为我不是专家,所以放弃了DSL的全面汉化。如果有谁知道哪儿有汉化成功新版本DSL的信息,请提示一下。谢谢。

(后注:在DSL支持中文显示看到有人在U盘基本成功的汉化了DSL-3.3,我在硬盘上安装的DSL-3.4.4却没有成功,不知哪步弄错了,或者上文DSL + xfont-intl-chinese + FCITX 定制成功!(已加入文泉驿字体)的方法不适合硬盘安装?)

DSL的安装比较容易,可以参考一下我的网摘:安装Damn Small Linux相关问题、linux网站收藏及mlterm配置(links for 2007-10-21)。我的安装经历如下,由于没有及时记录,具体细节忘了:
先刻录成750M的那种普通光盘,启动失败,可能是刻录时的问题;
然后,把DSL安装到U盘上,我用的方法好像是Installing to a USB Flash Drive - DSL Wiki的这个方法:Convert .iso to USB installation,即直接把下载下来的.iso镜像文件转换到U盘里。其间还参考了文中提到的另一篇制作U盘版的linux的文章:Scientific Linux Live CD and DVD - Diskless Client - SL/RHEL
由于我的另一台机器也比较老(赛扬1G),不能支持从U盘直接启动,于是,按照Boot Floppies - DSL Wiki的方法,用bootfloppy-usb.img文件做了一个从USB启动的软盘引导盘,用这个软盘引导U盘启动就OK了。同样,如果你的系统不能从光盘直接启动,也可以制作相应的引导软盘来从光盘启动。我把制作的U盘版DSL在其它支持从U盘直接启动的机器上试了一下没有问题。

把DSL安装到硬盘上,可以参考这篇文章:Installing to the Hard Disk - DSL Wiki,我的大概步骤是:

1)、事先用fdisk为DSL准备了一个64M的swap(/swap)分区和一个236M的根(/)分区(上面DSL Wiki上说至少要128M的swap空间,可我发现自己的486DX100+24M内存的机器从来没有使用过超过64M的swap分区,就只分了64M给swap分区) ;

2)、启动在U盘里的DSL;

3)、使用swap分区:

mkswap /dev/hda1
swapon /dev/hda1

4)、执行硬盘安装命令

dsl-hdinstall

以上操作需要root权限,在默认就有的dsl用户下sudo就可以了。系统菜单里也有安装到硬盘的选项,我没试过。还有,安装到硬盘的步骤是把486上的硬盘拆下来装在另一台机器上进行的。

另外,我估计由于DSL是便携型Linux的原因,它的保存系统个人设置的方式有点特别,详情参见:Saving Your SettingsSaving your configuration。我只是在保存网络设置时用到了这方面的知识,还参考了这篇帖子:iB::Topic::Not-DHCP booting。大概就是在opt/bootlocal.sh添加你自己的启动脚本,如:不能自动识别的网卡的modprobe,网卡设置(用系统菜单中的网卡设置程序也是在/opt目录下的eth0.sh和bootlocal.sh之类的文件中操作的),iptables加载等等。我可能会在后续的有关linux网络设置的日记中详细介绍。

所以,总的说来,我感觉DSL可以用于其它系统的维护(但我用U盘里的DSL启动SATA硬盘的系统,不能识别SATA硬盘,可能启动时需要输入额外的参数,没有进一步证实),在控制台下作一下处理(把其它系统用的gpm, zhcon, w3m相关文件移植到系统中,或者用其它什么的方式安装)也可以作中文的应用(我基本上就是在控制台下用这台486电脑的,比如,我博客上的许多日记都是在这台486上的linux的控制台中文环境下写的)。

当然,我对DSL只是大概一周时间的浅尝则止,以上文字出现错误也很有可能,希望见者知者能提示一二,我会随时修正补充。谢谢。

7 thoughts on “在486上初试Damn Small Linux ( DSL )”

  1. 呵呵...我也在用这个small linux
    我是想用来写下程序的,可是好像没有装上gcc
    请问要怎么做呢?
    谢谢!

  2. 我没有在上面装过 gcc,所以不能准确的告诉你怎么做。
    不过,DSL在其桌面菜单上有个 my-dsl扩展工具,里面应该有你要的东西。关于DSL 扩展的使用,其官方 WiKi 文档有详细的介绍。

  3. 这几天把 DSL 的中文问题又弄了一下,现在在 DSL-3.4.4 和 DSL-4.1RC3 中(都是用 dsl-hdinstall 安装到硬盘上的)都能正确的安装 locale,使用fcitx 中文输入法和用firefox上中文网站。

    这里简单的记一下相关的步骤:

    1、在 X Windows 的右键菜单中选择恢复 GNU 套件;

    2、同样的地方选择恢复 apt-get 系统,按照DSL + xfont-intl-chinese + FCITX 定制成功!(已加入文泉驿字体)的方法修改 /etc/apt/sources.lst,然后用 sudo apt-get update 更新;

    3、按上面帖子的方法编辑 /etc/locale.gen ,加入需要的locale,然后按CTRL+ALT+Backspace 退回到控制台下(因为我在安locales 的过程中升级libc6时要求不能有xdm服务等,我觉得关掉X 可能保险点),用 sudo apt-get -o APT::ForceLoopBreak=yes install locales 安装 locales,这个过程不能中断;我曾经中断了整个系统无法使用,只得重装整个系统;把 /usr/X11R6/lib/X11/locale/ 对应的zh_CN.gbk 从简体中文的knoppix(现在的knoppix5.1.1简体中文版的zh_CN.gbk不在那个位置了,需要搜索一下,你可以在这里下载压缩的Knoppix5.1.1中文版的有关文件)或redhat linux 9.0中拷到对应的目录下并在/etc/profile或~/.bash_profile中指定locale和输入法;

    4、下面的步骤不同于上面帖子中的方法了,原来,我按照上面帖子中的方法安不上中文字体和fcitx中文输入法;现在我把在redhat linux 9.0下编译好的fcitx3.1直接拷贝过来(你可以从这里下载我在redhat linux 9.0下编译好的fcitx3.1),然后按照上面帖子的方法用dpkg直接安装了文泉驿字体(或者使用 mydsl 面板中的那个 xfonts-cjk 包也行,在linuxsir.org的zhblue 的提醒下),这样,就能进行正常的中文网页浏览和输入中文了;但是firefox默认好像不支持xft字体(见:Linux平台下的Mozilla Firefox能否支持XFT);

    5、用同样拷贝文件的方法把redhat linux 9.0下的 dillo 拷贝到系统中(还有一些相关的库文件),可以正常显示中文并使用我从redhat linux 9.0下拷过去的 ZYSong18030的xft字体,但是菜单是乱码,不能输入中文;我曾经下载了mydsl中的gcc1的编译环境,从dillo0.8.5的i18n版本直接编译了一个,但是既不能显示中文也不能输入中文 🙁

    6、把 /etc/opera6rc修改成Enable Xft Fonts=1 以支持xft字体,这样,opera852也能正常显示中文(包括xft字体)和输入中文了;

    7、其它软件没有试,估计在其它系统编译好,再试着拷贝进系统可能能解决一些软件类别的中文支持问题;

    另外,在linuxsir.org上得到了台湾朋友做的繁体中文版的 DSL 的下载地址( http://knoppix.tnc.edu.tw/modules/news/article.php?storyid=185 ),用了一下,不错。不过,那是在2005年做的。我好像还没有找到新版的繁体中文DSL。在试用过程中,有两点心得:

    1、在gcin输入法中加入简体中文输入法的方法: http://cle.linux.org.tw/trac/wiki/GcinTables ,下载相应的输入法文件,再用 gcin2tab 或 scim2tab 命令(scim2tab在DSL中的busybox命令中不能正确执行,需在其它linux系统上执行)转换成gcin的输入法文件,用: http://cle.linux.org.tw/trac/wiki/GcinInstallTables 介绍的方法就可以用你熟悉的输入法输入简体中文了(呵呵,没想到 gcin 这么灵活、强大和优秀)。不过,gcin输入全角中文标点好像有点麻烦,需要用鼠标点输入法面板右边那个框调出全角标点和其它符号的输入框,再用鼠标点击输入。也许是我的方法没找到;也许gcin就是这样的,这样的话,把字打完,再用查找替换把半角标点换成全角标点。

    2、我大概读了繁体中文的README 文件,就是解开DSL-BV1AL-20051206.iso下的那个。有一点关于作者汉化DSL的心得我觉得可供现在想汉化DSL的朋友参考。大概是别人问关于apt安装软件的问题,作者的大概意思是说:DSL 因为体积的限制,比 Knoppix 离正规的 Debian 更远,有些库 DSL 虽然用不到,但是用 apt-get 安装却需要;所以,出现问题一是不用 apt-get ,而用 dpkg,二是手工修补问题(我感觉可能就是手工修改配置或从其它编译好的系统中拷贝移植一些文件)。当然,这需要操作者的实践经验。

    前面,DSL 官方文档中说,只有专家才能做主要系统升级,我看,DSL 繁体版的作者应该属于这一类吧?

    另外,我在那台 486DX100+24M的机器上使用了一下繁体中文版的 DSL,它的启动和使用都比现在英文原版的慢得多,在这台机器上在这个系统的 X 下基本上没有可用性。也不知道这是不是加了中文支持的必然结果还是繁体中文版的制作者就没有考虑在486上用这个系统?也许,在486上的 X 下制作一个实用的中文版系统已经是一个不可能的挑战?正如 DeLi Linux 的作者 haary 说的那样,采用 GTK2的DeLi主流版本可用的系统可能是 586 + 32M 内存。如果这样,也许就不应该在为 486 寻找一个可用的 X 系统上花时间了。也许,现在这台 486,在 linux 下使用控制台环境才是一个正确的选择。这篇文字就是在这台486的控制台环境写的 🙂

  4. http://damnsmalllinux.org/wiki/index.php/Local_Startup_Documentation#Saving_Your_Configuration
    中有关于怎样在U盘或光盘运行的 DSL 系统中保存和恢复当前设置的方法,如你自己的输入法,ADSL网络设置等等.

    简单的具体操作就是:在右键菜单中选择保存/恢复系统(save/restore),然后选定你要保存到哪个设备(注意,设备名称不要有前面的/dev/,直接就是hda11之类就行了). 我这里(上面说的DSL-BV1AL-20051206)的默认保存内容应该在/home/dsl/filetool.lst中,默认排除保存的内容在/home/dsl/xfiletool.lst ,而在新系统中这两个文件都成了隐藏文件,即前面加了. (.filetool.lst).而保存的文件名为: backup.tar.gz .

    下次启动系统时加入参数: restore=hda11 就行了,同样,前面不要加 /dev/.

  5. 不过,上面系统(DSL-BV1AL-20051206)保存的优先级好像高于排除的优先级,如在xfiletool.lst要排除保存/opt/ppp/test.txt,而在filetool.lst中要保存/opt/ppp. 结果就会保存 test.txt; 而在xfiletool.lst 排除 /opt/nosave.txt,但在filetool.lst中要保存/opt/nosave.txt,结果就会保存/opt/nosave.txt.

  6. Pingback: pingback

Comments are closed.