LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 5660|回复: 12

Slax的本地化:一个在移动硬盘上的Linux中文套件

[复制链接]
发表于 2005-7-27 17:34:32 | 显示全部楼层 |阅读模式
Slax的本地化:一个在移动硬盘上的Linux中文套件

Slax是一个基于Slackware而形成的套件,它的主要用途是Linux桌面应用,而且支持LiveCD和LiveUSB.它预装的是 Kde3.4.1和KWord(KOffice中的字处理器).它的桌面简洁大方,速度很快.又十分方便.所以我将用它来实现一个中文化的U盘Linux 套件.


   1.U盘启动的方式选择

U盘的启动方式有许多种,其中主要有[USB-HDD], [USB-FD], [USB-CDROM].对于我的IBM 40GB移动硬盘来说, [USB-HDD]是正确的.大家知道,硬盘有分区表,而软盘没有分区表.而[USB-HDD]方式就是从U盘分区表中读出引导记录从而完成启动.所以,大多数的U盘应选择[USB-HDD]方式启动.

   2. 如何从U盘启动

我选择syslinux而不是lilo或grub.经过我的个人的兼容性测试,lilo不能在相当一部分计算机上成功引导,而grub似乎完全不能从 USB上工作.于是我选择了syslinux,一个工作在FAT16上的引导器.
注意:syslinux 不能工作在FAT32的分区上,而且分区大小不能超过128M.原因是多数计算机BIOS使用的INT13调用不能处理超过一定大小的分区.于是我的移动硬盘就如此分区:第一个分区(SDA1)只有128M,而且是 FAT16.第二个分区(SDA5)和第三分区(SDA6)就有20G.
这是分区的详细信息:
  1. Device Boot      Start         End      Blocks   Id  System
  2. /dev/sda1   *           1          13      104391    6  FAT16
  3. /dev/sda2              14        4863    38957625    f  W95 Ext'd (LBA)
  4. /dev/sda5              14        2435    19454683+   b  W95 FAT32
  5. /dev/sda6            2436        4863    19502878+   b  W95 FAT3
复制代码

    *
      安装方法

在建立文件系统之后, syslinux /dev/sda1(Linux下要求解除挂载)或syslinux iWin98下i盘是第一个分区).

在第一个分区/dev/sda1下建立一个SYSlinux.cfg内容如下:
  1. prompt  1
  2. timeout 300
  3. display SYSlinux.msg
  4. default slax

  5. label slax
  6.   kernel vmlinuz
  7.   append root=/dev/ram0 rw initrd=initrd.gz init=linuxrc load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 max_loop=255 nocd
复制代码



内容的意义就是使用vmlinuz和initrd.gz引导.另外你可自定义同目录下SYSlinux.msg的内容,这个信息将在启动时被显示:
Welcome to Slax Chinese Version!

   3. 安装Slax

http://slax.linux-live.org/download.php下载Slax Standard Edition.这个版本里有KDE3.4,kmplayer,一个KDE的音频播放器和KWord,还有K征服者用来上网.
典型界面

   1. 使用指令:"mount -o loop slax-5.0.6.iso /mnt/cdrom",把ISO文件挂载到/mnt/cdrom目录,进入/mnt/cdrom/boot目录,复制vmlinuz和 initrd.gz文件到/mnt/sda1(移动硬盘的第一个分区,以后省略说明).
   2. 在/mnt/sda5中建立目录slax,把/mnt/cdrom下所有文件和目录复制到/mnt/sda5/slax:cp -rf /mnt/cdrom/* /mnt/sda5/slax/

这就完成安装.

   4.
      本地化

先介绍下如何在Slax上安装自定义软件:
Slax的SQUASHFS
SQUASHFS是一个实行压缩的文件系统.Slax使用它来安装根目录.在base目录中,slax有一些基本的mo(SQUASHFS映象文件扩展名)文件.如KDE,X,基础库等等.如果你要查询哪个文件或哪个目录属于哪个mo文件,请到/mnt/live/memory查找(Slax自带).
Slax提供了创建,修改和使用SQUASHFS module的方法.

    *
      创建模块

    *

把Slackware的tgz安装包转换成mo:tgz2mo application.tgz application.mo

    *

      如果要在修改安装包之后建立模块:

installpkg -root /tmp/package application.tgz

      进入/tmp/package进行修改,完成后制作模块:

dir2mo /tmp/package module.mo

    *
      修改模块
          o 将模块释放到/tmp/directory

mo2dir module.mo /tmp/directory

          o 修改完之后,创建模块

dir2mo /tmp/directory module.mo

    *
      使用模块
          o

            Slax运行时挂载mo:

uselivemod /path/module.mo

          o slax/modules目录中的mo文件将被自动挂载

注意:SQUASHFS有时不太稳定,要特别注意避免如下几种情况:

   1. 太多层次的重叠.A文件被A.mo所拥有,新来的B.mo也有一个A文件把A.mo所覆盖.
   2. 太少的内存空间,mo挂载时需要内存,模块太多内存太少时会导致一系统的问题.

开始工作
请参见Slackware的汉化工作,来做汉化工作,这里是一些不同点:

Slax-5.0.6的一个BUG:/etc/profile.d/slax.sh自作聪明的加入export LC_ALL=c,删除它.

下载firefly字体(http://cle.linux.org.tw/Slackwar ... N-2.11-noarch-1.tgz) 后,安装它,生成fc.cache和fonts.dir等等,等到万事具备时:
  1. mkdir -p /tmp/package/usr/local/font
  2. cp -rf /usr/local/font/* /tmp/package/usr/local/font
  3. mo2dir /tmp/package /mnt/sda5/slax/modules/fonts.mo
复制代码


安装Xorg.6.8.2-firefly版本(下载地址:http://cle.linux.org.tw/Slackwar ... 486-1.Firefly.tgz):
  1. installpkg --root /tmp/package x11-6.8.2-i486-1.Firefly.tgz
  2. cd /tmp/package/etc/X11/
  3. cp /etc/X11/xorg.conf . # 把符合你显卡配置的xorg.conf复制到这里来
  4. cd /tmp/package
  5. mo2dir /tmp/package /mnt/sda5/slax/modules/xorg682.mo
复制代码


你也可以用xft-firefly补丁,但要求有编译器.编译成功后把02_xwindow.mo中的libXft.so改写.

安装fcitx:
tgz2mo fcitx.tgz /mnt/sda5/slax/modules/fcitx.mo

安装kde-i18n-zh_CN-3.4.1-noarch-1.tgz(KDE中文化)
http://ftp.cgu.edu.tw/Linux/Slac ... -3.4.1-noarch-1.tgz
tgz2mo kde-i18n-zh_CN-3.4.1-noarch-1.tgz /mnt/sda5/slax/modules/kde.mo

同样的方法,可以下载并安装XMMS,firefox,thunderbird等等.

一些细节
为了使KMplayer能播放RMVB,下载
  1. [url]http://www1.mplayerhq.hu/MPlayer/releases/codecs/essential-20050412.tar.bz2[/url]
  2. tar -jxvf essential-20050412.tar.bz2
  3. mv essential-20050412 /usr/lib/win32
  4. rm -rf /tmp/package
  5. mkdir -p /tmp/package/usr/lib/win32
  6. cp -rf /usr/lib/win32/* /tmp/package/usr/lib/win32
  7. dir2mo /tmp/package/usr/lib/win32 /mnt/sda5/slax/modules/codecs.mo
复制代码

这样KMPlayer就能完美播放各种各样的视频文件

我的/etc/gtk/gtkrc.zh_CN文件:
  1. style "gtk-default-zh-cn" {
  2.        fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
  3.                   -*-*-medium-r-normal--12-*-*-*-*-*-gbk-0,*-r-*"
  4. }
  5. class "GtkWidget" style "gtk-default-zh-cn"
复制代码


我的profile.d/lang.sh
  1. export LC_ALL=zh_CN.gbk
  2. export G_BROKEN_FILENAMES=1
  3. export XMODIFIERS="@im=fcitx"
复制代码


自动启动fcitx
在/root/.kde/Autostart/中加入文件fcitx.desktop,文件内容如下:

  1. [Desktop Entry]
  2. Encoding=UTF-8
  3. Name=fcitx
  4. Name[zh_CN]=fcitx
  5. GenericName=输入法
  6. Exec=fcitx
  7. Icon=fcitx
  8. Type=Application
  9. Terminal=0
  10. X-KDE-StartupNotify=false
  11. X-KDE-AuthorizeAction=shell_access
复制代码


这是一个成品,上网,听MP3,可以中文输入.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2005-7-27 20:16:56 | 显示全部楼层
把这个Slax做成CDROM的简便方法:进入slax目录,运行make_iso.sh 或 make_iso.bat <your_iso_file>
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-27 20:18:36 | 显示全部楼层
如果主板不支持从USB启动,可将vmlinuz initrd.gz拷贝到硬盘上,用loadlin启动.
回复 支持 反对

使用道具 举报

发表于 2005-7-28 06:20:07 | 显示全部楼层
从U盘启动不用这么麻烦的,现在有MySLAX_Creator了,windows下运行的工具,用的还是isolinux,插上U盘就可以制作了。
我做了两个语言模块,一个是fcitx的,一个是skim的,在http://www.linuxsky.net/fanx/download/iso/1.1/ 下提供下载了,附带了zhcon这个控制台输入法,fcitx的模块约9MB,而skim的模块就大点,有scim/skim/scim-fcitx/fcitx-ccinput/scim-pinyin 模块约21MB
释放出的fanx-1.1使用的是fcitx模块,和一个软件模块,系统本身没有删除任何东西。更详细信息请看fanx专栏 http://www.linuxfans.org/nuke/mo ... wtopic&t=126162
回复 支持 反对

使用道具 举报

发表于 2005-7-28 06:32:14 | 显示全部楼层
xorg的firefly版是没有必要的,只要安装libxft-firefly就可以了。

----------------------------
注意:SQUASHFS有时不太稳定,要特别注意避免如下几种情况:

1. 太多层次的重叠.A文件被A.mo所拥有,新来的B.mo也有一个A文件把A.mo所覆盖.
2. 太少的内存空间,mo挂载时需要内存,模块太多内存太少时会导致一系统的问题.
---------------------------

事实上这是理所当然的事情,所以制作模块的时候要确保先后的问题。例如我的fcitx模块和软件模块就要求是fcitx模块先载入的,否则opera就启动不了。模块先后的加载就是文件名了,注意一下就可以了。
squashfs文件系统相当稳定,相反,unionfs文件系统就很不稳定,slax中十有八九的问题都缘自unionfs,不过这个玩意更新很快。
回复 支持 反对

使用道具 举报

发表于 2005-7-28 06:38:16 | 显示全部楼层
可能是我的多此一举,我尝试了fcitx在英文locale C和en_US.utf8下无法启动,就是skim也不行,反正在slax上不行,所以中文的locale是必须的,这就需要glibc-i18n的支持,你没有安装可以启动输入法吗?
对了,我尝试了mplayer的real codecs,可是没有成功。我甚至删掉了原来的mplayer后又安装了一个带全解码器的mplayer-pre7装上后,还是不行,于是就拉倒了,很奇怪,在5.0.5中还是可以的。slax中用的是kplayer,和kmplayer是有区别的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-28 10:13:23 | 显示全部楼层
mplayer codecs path = /usr/lib/win32
回复 支持 反对

使用道具 举报

发表于 2005-7-28 19:19:02 | 显示全部楼层
Post by liquid_zigong
mplayer codecs path = /usr/lib/win32

我真忘这儿了,没有试。
不过我记得我用的那个mplayer在/etc下有mplayer的配置文件了,里边有了解码文件的路径,可是程序看样子是没有找到。
回复 支持 反对

使用道具 举报

发表于 2005-7-29 22:01:31 | 显示全部楼层
老大,你的方法很好,能上一个中文输入的图吗,先谢啦。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-30 01:15:52 | 显示全部楼层
请注意要包含glibc-i18n 的库才能正常使用fcitx!
完全的i18n库较大,可以只留下zh_CN的。
现在我改用bmp,连音频输出插件都是XMMS的 :cool:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表