在 NetFront浏览器 640x480分辨率下获得最佳浏览效果

我的 Zaurus SL-C3000 和 SL-C3100

Copyright 2006 Hd Luc (hdluc@yahoo.com)
中文化:2007 扬扬 (joerkky)


[icon]定制pdaXrom:


本页已经停止更新...

新的内容请见:pdaXii13


pdaXrom是Zaurus上完整的X窗口环境。有了它,C3000/C3100将会变成真正的迷你笔记本。

注意: pdaXrom 1.1.0 beta1/beta3是基于2.4.20内核的,开发已经停止,新的版本将使用2.6.x内核。

下面的内容将包括2.4.20内核的系统的一些错误的修正和性能的改进。大多数的内容对运行在任何Zaurus型号上的pdaXrom都是有效的,但也有一些内容仅对C3000有效。C3000的pdaXrom和其它型号的rom主要的区别在于C3000的pdaXrom是装在微硬盘而不是rom中的。

一些定制过程所需要的文件可以在这里找到。


修正启动过程

在启动过程中有一些小问题要修改。

首先是pdaXrom 1.1.0 beta1的C3000 beta2版本中的pivot启动. 下面的修改使得C3000在插有CF卡的情况下依然可以启动,而且可以正确挂载.

# cp init /media/realroot/sbin/init
# chmod 755 /media/realroot/sbin/init
# cp halt /etc/rc.d/init.d/halt
# chmod 755 /etc/rc.d/init.d/halt
# cp ide.opts /etc/pcmcia/ide.opts

在挂载分区之前运行一下fsck是个好主意。挂起失败很多情况下和分区没有查错有关。你可以把fsck拷贝到根分区,开机就可以自动查错了。

# cd /media/realroot/lib
# cp /lib/libblkid.so.1.0 .
# ln -s libblkid.so.1.0 libblkid.so.1
# cp /lib/libuuid.so.1.2 .
# ln -s libuuid.so.1.2 libuuid.so.1
# cp /lib/libext2fs.so.2.4 .
# ln -s libext2fs.so.2.4 libext2fs.so.2
# cp /lib/libcom_err.so.2.1 .
# ln -s libcom_err.so.2.1 libcom_err.so.2
# cd /media/realroot/sbin
# cp /sbin/fsck .
# cp /sbin/e2fsck .
# ln -s e2fsck fsck.ext2
# ln -s e2fsck fsck.ext3

最后,通过下面的改动可以隐去启动时的提示消息

隐藏cardservices cannot find modules消息

# mkdir -p /media/realroot/lib/modules/2.4.20

自动启动X图形界面

通常runlevel 3意味着进入控制台而runlevel 5则是进入图形界面. pdaXrom启动的时候是进入runlevel 5,它应该开启图形界面。下面的补丁可以让pdaXrom开机自动进入图形界面

# head -`wc -l /etc/rc.d/rc|awk '{print $1-1}'` /etc/rc.d/rc > /etc/rc.d/rc.new
# echo "if [ \$runlevel -eq 5 ]; then" >> /etc/rc.d/rc.new
# echo " export HOME=/home/root" >> /etc/rc.d/rc.new
# echo " /usr/X11R6/bin/startx" >> /etc/rc.d/rc.new
# echo "fi" >> /etc/rc.d/rc.new
# echo "exit 0" >> /etc/rc.d/rc.new
# mv /etc/rc.d/rc.new /etc/rc.d/rc

你也可以把下面的语句加在/etc/rc.d/rc最后,记得要放在exit 0之前,效果是一样的:

if [ $runlevel -eq 5 ]; then
export HOME=/home/root
/usr/X11R6/bin/startx
fi

配置Feeds和安装软件

默认的Package Manager中的feed已经很旧,需要替换了。C3000有两个feeds,一个是大部分Zauri都通用的feeds,另外一个是C3x00专用的:

  • http://mail.pdaxrom.org/download/1.1.0beta1/Zaurus-C1000-C3100/feed/
  • http://mail.pdaxrom.org/download/1.1.0beta1/Zaurus-7x0-860/feed/

此外你还可以把两个feed.tar.gz文件都下载下来,解压到卡上或者内置硬盘上。然后把Package Manager的feed地址指向解压的目录,比如file:///home/root/Documents/installs/C3000/feeds.

[package manager]

你也可以不通过feed直接安装独立的包文件,但是你需要自己管理安装依赖包。你可以使用图形界面的Package Manager或者使用ipkg 命令.

如果是本地安装,你也可以把两个feed合并在一起。直接把两个feed.tar.gz解压到相同目录(首先解压7x0的,然后再解压C3100的),然后运行ipkg-make-index 生成Packages文件。我已经把ipkg-make-index放进我的ipktools包 [ipktools_0.2_armv5tel.ipk]里面了.


额外的安装包

除了官方提供的包以外,还有很多其它的非官方包。下面是我手工安装的包列表。

    需要的库文件:

  • libstdcxx5-compat (needed for older applications)

    有用的命令行工具:

  • vim (用来代替默认的vi,因为vi总是死锁)
  • lynx (基于文本的web浏览器)
  • aumix (音量控制)
  • mplayer (播放器)
  • flite (语音合成)
  • bzip2 (压缩工具)
  • unrar (解压缩工具)
  • unzip (解压缩工具)
  • diffutils (文本比较工具)
  • aspell (拼写检查引擎)
  • imagemagic (图像格式转换)
  • kismet (wifi检测)

    运行库:

  • samba (网上邻居)
  • perl (perl语言解释器)
  • dosbox (DOS模拟器)
  • x11vnc (vnc服务器)
  • java (类库和javavm)

    游戏:

  • doom2
  • quake2
  • supertux (类似超级马里奥的游戏)

    应用程序:

  • gtkterm2 (可以分页的X终端)
  • bluefish (HTML编辑器)
  • tuxpaint (图像处理)
  • inkscape (图像处理)
  • xmmsplayer (xmms的视频播放插件)
  • gaim (聊天工具)
  • tightvnc (vnc客户端)
  • rox (文件管理器)
  • emelfm2 (文件管理器)
  • xarchiver (图形界面文件压缩/解压)
  • gthumb (看图工具)
  • gftp (ftp工具)
  • qbedic (字典)
  • stardict (字典)
  • imposter (幻灯片)

有些包在安装后需要进一步的配置。下面的章节包含了它们该如何配置的信息。


键位设定

有两种改变键位设定的方式,一种是通过重要的补丁来使键位设定工作,另一种是增强组合键功能,就像原rom中的keyhelper那种,

自定义键位设定,你需要修改/etc/sysconfig/keyboard/kernel.map和/etc/X11/kb/akita.xmodmap,然后用 loadkeys and xmodmap使新的键位设定生效. X中的xev命令可以用来查看键码。

你也可以使用Systems Tools中的Input setup来设定键盘底部的一些快捷键。但是这样做似乎容易弄乱默认的键位设定,特别是容易找不到.键。所以在使用Input setup之前最好先备份kernel.map,出了问题可以通过loadkeys重新加载kernel.map.

如果你想使用粘滞键,你需要修改/usr/X11/bin/startx,把defaultserverargs中的-kb选项替换成+kb +accessx。此外你还需要修改/etc/X11/kb/akita.xmodmap,把keycode=73附近的除了最后一行以外的语句都反注释掉。这将会把Tab键变成Caps Lock键. 然后重启X,连续按五下Shift键,粘滞键功能就开启了。

大部分的键位在键盘上都有标注,除了以下几个键:

  • Fn+q = Scandinavian A with loop
  • Fn+o = Danish O crossed out
  • Fn+p = 英镑符号
  • Fn+a = AE character
  • Fn+s = 欧元符号
  • Fn+m = 反引号
  • LeftKanji = Alt
  • RightKanji = 反引号
  • Calendar = CTRL键
  • Address = Alt

我根据xev的结果重写了Spitz/Borzoi键盘的akita.xmodmap文件。我把清楚设定后的键位保存在spitz.xmodmap文件里。由于Alt和Control键已经有设定了,我删除Calendar和Address的重复设置,现在它们可以分配成别的键了。我还把Fn+m和Fn+q交换了一下。右kanji键我定义成了modifier键(Super L).

默认X中有一些键位是这样定义的:

  • Ctrl+Alt+BS = 退出X
  • Ctrl+Alt+Left = 切换至上一个桌面
  • Ctrl+Alt+Right = 切换至下一个桌面
  • Shift+Alt+Left = 发送到上一个桌面
  • Shift+Alt+Right = 发送到下一个桌面
  • Ctrl+Alt+d = 显示桌面/恢复
  • Ctrl+Alt+m = 最大化/恢复
  • Fn+Ctrl+Alt+Down = 向下移动
  • Fn+Ctrl+Alt+Up = 向上移动
  • Fn+Ctrl+Alt+Left = 向左移动
  • Fn+Ctrl+Alt+Right = 向右移动
  • Alt+Tab = 应用程序之间切换
  • Alt+Shift+Tab = 应用程序之间切换
  • Alt+0 = 最大化
  • Alt+5 = 恢复
  • Alt+9 = 图标化(最小化)
  • Alt+8 = 改变大小
  • Alt+7 = 移动
  • Alt+4 = 关闭
  • Menu = 开始菜单
  • Shift+Home = 挂起
  • Mail = sylpheed

我的Calendar和Address键设置:

  • Calendar = aterm
  • Address = xmms

但是下面的设置不起作用:

  • Fn+1 = VGA mode (320x240)
  • Fn+2 = SVGA mode (640x480)
  • Fn+3 = 减少亮度
  • Fn+4 = 增加亮度
  • Alt+F12 = ToggleShade

      因此我把这些键位设定改掉了。我还把Alt+F12改成了Alt+6.

      为了按键方便,我把Fn+Ctrl+Alt组合键设成了Home键;Ctrl+Alt设成了Super键(右kanji键). 此外大多数的Alt+key组合键也可以用Home+key键来实现.

      我还增加了以下一些快捷键:

      • Calendar = aterm
      • Shift+Calendar = xterm
      • Fn+Calendar = network config
      • Ctrl+Calendar = usb config
      • Alt+Calendar = ppp config
      • Super+Calendar = installer
      • Home+Calendar = dialer
      • Address = xmms
      • Shift+Address = keyboard
      • Fn+Address = mixer
      • Ctrl+Address = calculator
      • Alt+Address = image viewer
      • Super+Address = pdf viewer
      • Home+Address = gimp
      • Mail = sylpheed
      • Shift+Mail = firefox
      • Fn+Mail = thunderbird
      • Ctrl+Mail = dillo
      • Alt+Mail = xchat
      • Super+Mail = gnumeric
      • Home+Mail = abiword
      • Ctrl+Alt+c = screencap
      • Home+5 = Refresh Screen

      上面的修改在/etc/xdg/openbox/下的rc.xml可以找到。rc.xml文件也有可能在/home/root/.config/openbox/下面。

      在XMMS中,这些键可以用来控制:

      • X = 播放
      • C = 暂停
      • V = 停止
      • Up = 增加音量
      • Down = 降低音量
      • Left = 快退
      • Right = 快进
      • Z = 前一首
      • B = 后一首

      但是在竖屏模式下这些快捷键不是很方便,我增加了OK键播放,Cancel键停止,上下滚动在不同歌中切换的功能。N和M是音量键。

      [xmms]

      如果你已经安装了xmms包,你可以替换xmms文件来使用这些键位。或者你可以安装xmms_1.2.10-2_armv5tel.ipk包。

      xpdf的键位如下:

      • o = 打开文件
      • r = 重新打开
      • f = 查找下一个
      • n = 下一页
      • p + 上一页
      • + = 放大
      • - = 缩小
      • z = 缩放至适合页面
      • w = 缩放至适合宽度
      • 0 = 正常大小
      • q = 退出
      [xpdf]

      如果你已经安装了xpdf包,你可以替换xpdf文件来使用这些键位。或者你可以安装xpdf_3.01-2_armv5tel.ipk包。


      如果你使用USB键盘的时候,机器会自动重新设定这些键位。但这样就会导致Zaurus的键位错乱。当USB键盘拔下来的时候,Zaurus的键位会自动恢复。

      这个功能可以通过在/etc/hotplug下写个脚本检测USB键盘的插入和拔出,调用xmodmap来加载合适的键盘映射文件来实现。


      屏幕分辨率

      你可以使用 xrandr命令在640x480和320x240模式之间进行切换. 它也可以用来旋转屏幕.

      在我的键位设定中,你可以使用Home + 1Super + 1将屏幕切换至320x240模式。Home + 2Super + 2 将切换到640x480模式.


      屏幕旋转

      pdaXrom支持屏幕旋转。Openbox会检测横屏和竖屏模式并且自动旋转屏幕。但是当前运行的程序不会自动旋转方向,我写了一个脚本, rotateall, 可以自动旋转所有的应用程序窗口. 你可以修改rc.xml(/etc/xdg/openbox/rc.xml),把chkhinge替换成rotateall,这样屏幕旋转的时候就会自动调用rotateall脚本了。如果程序运行在最大化模式,效果最佳。如果你在命令行下运行rotateall,而没有真的旋转显示屏,屏幕将会向右旋转,而不是默认的向左。再运行一遍就会复原。


      抓图

      你可以通过xwd -display :0 > screendump.xwd命令来抓图.

      你也可以通过 screencap脚本来实现类似原rom中的一键抓图(Ctrl+Alt+c)并播放声音的功能.

      我写的这个screencap脚本在抓图的时候会自动播放click.wav文件. 如果你安装了ImageMagick, 它还会自动将xwd转成png格式.


      窗口管理器

      pdaXrom默认使用openbox作为窗口管理器. openbox比较小,而且运行速度飞快。

      [openbox]

      你也可以使用其它的窗口管理器,比如xfce, blackbox, fluxbox, matchbox, icewm, kde和enlightment. 如果你有足够的空间,你甚至可以安装多个窗口管理器,并在它们中间自由切换.

      默认的openbox窗口管理器使用matchbox的面板和任务栏程序来管理桌面.

      kde

      [kde]

      有很多人使用KDE, 但是它很庞大,而且有点慢. 最简单的安装kde 3.5的方式就是使用kde的 squashfs镜像. 把它拷贝到内置硬盘里面,然后挂载到/usr/lib/kde/kde/kde3.5下面. 然后安装kdesymlink包即可.

      你可以修改.xinitrc和startx来改变默认的窗口管理器。我的脚本可以根据不同的WM变量来决定运行哪一个窗口管理器.你也可以输入startxkde来启动kde.

      icewm

      [icewm]

      xfce

      [xfce]

      enlightment

      [enlightment]



      定制桌面和菜单

      /usr/share/applications下面的.desktop定义了应用程序菜单,而图标文件则位于 /usr/share/pixmaps

      正如前面所说, 默认的桌面是通过matchbox的桌面来管理的. 你可以通过菜单或者桌面面板来访问应用程序.

      你也可以用rox filter来代替默认的matchbox桌面。rox filter整合了文件管理器和桌面管理器。把 /home/root/.xinitrc里面的:

      eval "matchbox-desktop $MBBGND" 2>/dev/null >/dev/null &

      改成:

      eval "rox --pinboard=MYPINBOARD" &

      并重启X即可.

      [roxdesktop]

      你可以修改rc.xml中的Theme段来改变主题。主题在/usr/share/themes下. /usr/share/themes下的每个目录都包含了一个主题。你可以把Theme段中的name标签改为相应的主题名. 要让改变生效,你可以重启X,或者运行以下命令:

      # openbox --replace 2>/dev/null &

      窗口和对话框大小

      Zaurus上很多应用程序的窗口太大了。通常你可以最大化它们来正常工作(按下Home+m或者 Super+m).

      有些应用程序可以通过编辑配置文件来调整大小。还有一些应用程序的大小是固定的。我重编译了一些这样的应用程序,比如GQView和AbiWord.

      [gqview]

      绝大多数的GTK2程序的打开文件对话框都太大了。我重编译了GTK2,修改了FileChooser,使得它适合Zaurus的屏幕。你可以安装我更新的GTK2包,或者手工替换libgtk-2.0.so.0.600.2.

      [gtk2]

      文件管理器

      pdaXrom默认没有文件管理器,rox filer是一个好的选择。它的文件管理器界面很像konqueror.

      [roxfile]

      如果你喜欢双面板的文件管理器, emelFM2也是不错的选择.

      [emelfm2]

      终端

      aterm是pdaXrom中的默认终端。它支持透明背景。要开启透明特性,把Xdefaults拷贝到/home/root并改名为 .Xdefaults

      [aterm]

      如果你需要输入或查看utf8编码的字符,请使用rxvt终端.


      定制壁纸

      Systems Tools里面的Look & Feel工具里面有改换壁纸的选项,以及其它的一些显示选项。墙纸可以是任何png文件,但是分辨率640x480为佳。

      [looknfeel]

      但是如果你使用rox filter而不是matchbox的话,你可以右键单击桌面(按住Fn点击)来激活rox filter的属性页面,在其中改换壁纸。


      定制屏幕保护

      你可以安装xscreensaver_4.24_armv5tel.ipk来实现屏保功能.


      zaurus的用户帐号

      pdaXrom默认不像原rom有zaurus用户,所以所有程序都是以root身份运行的。如果你没有联网,这可能不会出什么问题,因为zaurus是一个单用户环境,只有你一个人使用它。但是如果你打算将你的Zaurus连接到其它机器或者网络上,建立一个用户帐号将会是个好主意。除此之外你也应该考虑装防火墙。你可以使用adduser命令来增加一个用户帐号,并且设置busybox的suid位,从而使普通用户也可以运行su命令,或者做其它的事情。


      挂起和恢复

      挂起和恢复功能有一些古怪。有些时候硬盘灯在亮着,但是挂起和恢复将会使硬盘灯熄灭。经常进行磁盘查错会对挂起恢复功能比较好。

      此外,如果在xmms播放音乐的时候挂起,音频设备将会被锁定直到你重启机器。所以确保你在apm的suspend脚本里面加入esdctl suspend, 在resume脚本里面加入esdctl resume.


      MMC驱动

      C3100/C1000有个新的开源SD/MMC驱动,mmc-driver_2.4.20_arm.ipk. 这个驱动在C3000也可以工作,但是目前不支持自动挂载,而且在任务栏上不能很好兼容。你可以使用/etc/sdcontrol [insert|eject]来挂载和卸载SD卡.

      或者你可以使用Sharp的支持2GB+卡的全功能SD驱动。这个驱动[sdmmc-module_2.4.20_arm.ipk]在pdaXrom (beta1)可以工作,因为它们内核都是2.4.20。


      自动挂载

      /etc/fstab中的自动挂载在pdaXrom中不起作用。另外,默认只有两个loop设备可以使用。我写了一个automnt脚本来创建更多的loop设备,挂载cramfs/squashfs镜像,以及启动交换分区。我把/etc/rc.d/init.d/automnt链接到/etc/rc.d/rc5.d/S90mount和/etc/rc.d/rc6.d/K30unmount


      ftp和telnet

      C3000的pdaXrom默认没有安装telnet和ftp。busybox中并没有包括telnet,而二进制包的glic版本和pdaXrom的不兼容,所以没法运行。我从原rom中拷贝了ftp和telnet,它们可以在pdaXrom中运行。由于原rom中的telnet是busybox的一部分,我把它改名成了telnet,然后放在/bin下面。ftp放在/usr/bin下。

      或者你可以安装 inetutils-clients_1.4.2_armv5tel.ipk,但是不确保稳定性。


      USB网络

      pdaXrom的USB网络模块和原rom一样有两种模式,一种是作为USB磁盘来访问,另外一种是模拟成虚拟网卡。把更新过后的usbfunction.py拷贝到/usr/bin,你就可以选择共享SD卡,CF卡或是内置硬盘了。在Windows下共享内置硬盘的话你需要使用第三方软件,因为它是ext3格式的。

      [usbconfig]

      或者你可以将USB连接设置为网卡模式,然后你可以通过Samba来共享文件,或者访问其它的网络服务。如果你在电脑上设置了internet共享连接(Windows的连接共享或者Linux的iptables),你可以通过Zaurus来访问internet(详细信息见定制Sharp ROM的网络章节). 我写了一个脚本usbnet来自动配置usbd0界面,使用Windows的internet连接共享访问internet. (Internet Connection Sharing).


      Samba

      你需要安装Samba包,然后配置/etc/samba/smb.conf文件来开启网上邻居服务,共享文件。你可以通过adduser -H为Samba建立一个新用户,然后使用smbpasswd -L -a -e建立Samba用户. 然后输入 /etc/rc.d/init.d/samba stop/start来重启Samba.

      你可以通过/etc/rc.d/init.d/samba来手工启动和停止Samba服务。这个脚本会有很多乱七八糟的提示,我修改了一下,并且加上了restart选项。

      如果你开启了USB网络,你需要重启Samba服务使得它在新的网卡上可以监听。你可以修改/etc/hotplug/usbd.func使得Samba在USB网络模块加载之后自动重启。


      中文和日文支持

      中文或日文菜单可以通过安装中文或日文locale及相应的字体来实现。TTF字体需要放在/usr/X11/lib/X11/fonts/TTF下,pcf 字体需要放在/usr/X11/lib/X11/fonts/misc下。你还需要安装输入法。我装的是scim,scim-pinyin和scim-tables.

      安装scim之后你需要运行 scim-setup来进行配置.

      [scimconfig]

      配置完成后键入scim -d即可启动scim. 在可以使用输入法的应用程序中使用Ctrl+space就可以将scim调出. AbiWord就可以使用scim:

      [scimabiword chinese] [scimabiword japanese]

      每次你启动X的时候,你都需要启动scim. 你可以把它放进.xinitrc里面自动启动。

      * 译者注:关于 pdaXrom 的本地化 / 中文化 的详细信息,可以参考 Wells Wang 的这篇文章:汉化 pdaXrom 1.1.0 beta3


      字典

      pdaXrom上有很多字典软件. QBEdic是其中一个比较常用的字典,而且字典文件在原rom中也能使用(原rom中叫做ZBEDict). QBEDic上有一个完整的维基百科全书. 你可以把QBEDic的字典放在任何目录下,但默认是在/usr/share/bedic下. 你可以设置QBEDic的字典文件路径.

      [qbedic]

      另一个比较常用的字典软件叫做stardict(星际译王),在Windows下也有相应版本。Stardict有很多字典文件,而且还可以安装声音包来阅读英文单词。Stardict的字典文件放在 /usr/share/stardict/dic, 声音文件放在/usr/share下。

      [stardict]

      我做了一个包括qbedic和stardict字典和声音文件的squashfs镜像. 因为字典文件很大,把它们压入squashfs镜像会比较省空间一点。此外我还做了一个linkdics.sh脚本,用来建立stardict所需要的链接.


      AbiWord

      Abiword是一个很好的字处理软件, 但是默认分辨率是800x600. 在C3000中, 我们可以通过修改/home/root/.AbiSuite/AbiWord.Profile把分辨率调整到640x480.

      [abiword]

      我编译了Abiword 2.4.4,并且修正了所有的窗口大小,现在Abiword的窗口大小没问题了。我还编译了一些文本导入/导出插件,现在它可以编辑StarOffice/OpenOffice的文件了。

      [abiword]

      安装aspell可以为abiword提供拼写检查功能.


      OpenOffice

      Debian arm版本的OpenOffice 1.1.4可以在Zaurus上使用。但是它是在glibc 2.3环境下编译的,而Zaurus使用的是glibc 2.2.x. 通常的解决方案是安装PocketWorkstation (Debian arm),然后chroot进去,在PocketWorkstation下安装OpenOffice。如果你仅仅是为了使用OpenOffice的话,这样做很不方便并且很浪费空间,因为这两个东西加起来至少要512M空间。

      作为替代方案,我做了cramefs和squashfs的镜像文件,含有最小版本的Debian和OpenOffice 1.1.4的预安装包。

      [openoffice]

      你可以把镜像拷贝到硬盘或者SD/CF卡里面,然后挂载并运行zopenoffice-setup 脚本。

      我也做了一个tgz文件格式的压缩包,你可以直接解压到ext2/ext3分区,然后运行zopenoffice-setup.

      此外我也做了openoffice-cn.squashfs镜像,可以在Chinese Zauri上使用,包含了中文字体。

      最后,你需要修改/usr/X11R6/bin/startx,在defaultserverargs里面去掉"-nolisten tcp"选项,并重启X。然后你就可以在菜单里面看到OpenOffice的图标了。或者你也可以在命令行里输入runoo来启动。


      Quake和Quake2

      Quake和QuakeII都可以在pdaXrom上流畅运行,但是千万不要改变分辨率或其它显示设置,否则会出现白屏。

      在Quake2中, 你可以把整个baseq2目录拷贝到 /home/root/.quake2下面


      mplayer

      C3x00的pdaXrom feed里面有可以正常工作的mplayer包。有些人说Cacko里面的mplayer有bvdd和iwmmx优化,所以会快一点[mplayer-bvdd-iwmmxt_1.1.5-1_arm.ipk]. 但是C3x00 feed里面的mplayer[mplayer_1.0pre7try2_armv5tel.ipk]比cacko的要新,而且也有bvdd和iwmmx支持。

      我把cacko的mplayer[mplayer-bvdd-iwmmxt_1.1.5-1_arm.ipk]重新打包成了 [mplayer-bvdd-iwmmxt_1.1.5-1_armv5tel.ipk],并且改了一下文件结构,把文件从/opt/QtPalmtop移到了/usr/share下,把mplayer改名成了mplayer2,你可以把两个版本都装一下,比较一下速度。

      你可以通过下面的命令来播放视频:

      # mplayer -vo bvdd -ac mad -ao ss -framedrop -really-quiet file

      选项-vm开启全屏显示:

      # mplayer -vo bvdd -ac mad -ao ss -framedrop -really-quiet -vm file

      xmms的xmmsmplayer插件xmms可以用作mplayer的前端.

      [mplayer]

      它默认使用-vo x11选项在gtk窗口中运行。你可以使用bvdd驱动来全屏运行。配置文件在 /usr/share/mplayer/mplayer.conf里面,包含如下的配置:

      framedrop = yes
      cache = 1024
      dr = yes
      af=resample=44100

      你可以加上这两句来使用bvdd驱动全屏播放:

      vo = bvdd
      vm = yes

      mplayer在退出全屏模式之后没有正确的刷新屏幕,要解决这个问题,你可以手动运行 xrandr -o normal来刷屏。或者你可以修改openbox的rc.xml文件,比如按 Home+5 来刷屏.

      我编译了mplayer的最新版本1.0pre8,支持gmplayer。


      Java

      Java可以通过安装javavm和类库来实现。使用这些包可以构建一个支持JRE 1.4.x的环境。但是由于版权问题,javavm不能叫做java,也不能保证100%的对java程序的兼容性。使用jamvm和类库,我可以在Zaurus上运行jedit.

      另外,我通过jamvm和类库成功在firefox上使用java插件。你只需要安装gcjwebplugin-0.3.2_armv5tel.ipk,Firefox 1.5将会支持java。大部分的applet都可以运行,但是不是全部。

      [javaplugin]

      jamvm和类库包提供了一个java运行平台,但是如果你想开发java程序,你需要java编译器以及其它一些工具比如jar, javah, javap 和javadoc. Jikes是javac的一个替代品,还有一些你需要的类库包。

      你也可以直接从java 1.4.x的JDK里面拷贝tools.jar文件。


      gcc

      你可以使用原生的gcc 3.4.5在Zaurus上编译程序。此外,有两个版本的gcc镜像,分别可以用来编译pdaXrom程序和原rom程序.

      要使用gcc编译器,你首先需要安装下面的依赖包:

      • pcre
      • xml-parser
      • perl

      然后把zgcc-3.4.5.img放入/home/root. 它会自动在启动的时候挂载。你也可以手工挂载:

      # mount -o loop /home/root/zgcc-3.4.5.img /opt/native/arm/3.4.5-xscale-softvfp

      这是一个测试程序, 你可以建立一个叫做hello.c的文件并输入:

      #include <stdio.h>
      int main()
      {
      printf("Hello World\n");
      }

      然后运行下面的命令将会生成一个叫做 hello的可执行文件.

      # gcc -o hello hello.c

      如果你要编译源码包,首先下载并解压源码的 tarball. 然后运行以下命令:

      # ./configure
      # ./make

      你可以用strip命令来去除可执行文件中的无用符号,从而减少体积. 通常在Makefile文件里面有个DESTDIR的变量,改变它就可以改变安装目录.

      # cd /data/build/pkg
      # newipk testapp
      # cd /data/build/src/testapp
      # make DESTDIR=/data/build/pkg/testapp/data install
      # cd /data/build/pkg
      # makeipk testapp

      这个例子使用ipk-tools来建立一个安装包. 更多的信息请见ipkg节.

      你可以用gcc 3.4.5来编译命令行或图形界面的应用程序,但是你不能用它来编译内核或glibc.你需要用 gcc 2.95-2来编译内核.

      我稍微修改了一下gcc的镜像,加了一些编译gnome程序用到的脚本和程序,然后把它压成了squashfs格式.

      [qt designer] [qt assistant] [qt linguist] [qtconfig]

      此外我还加进去了QT designer, assistant和linguists, 并且调整和重新编译了qtconfig, 所以它启动的时候不会再尺寸过大了。


      生成你自己的安装包

      我做了一个叫做ipktools[ipktools_0.2_armv5tel.ipk]的包来操作ipk文件,你可以通过它来生成你自己的安装包(ipk文件):

      • newipk - 创建模版ipk层次结构,你可以添加文件,然后用makeipk来打包 to for packaging
      • makeipk - 打包一个含有ipk层次结构的目录
      • unpackipk - 解压缩ipk文件
      • deb2ipk - 把deb文件转成ipk格式 (需要perl)
      • zipipk - 把ipk文件压缩成zip格式,删除原始文件
      • ipkg-make-index - 建立feed需要的Packages文件

      现在有两种ipk文件格式,一种使用tar.gz格式,另外一种使用Debian的deb格式。Zaurus的原ROM,Cacko以及pdaXrom使用tar.gz格式,也就是说,这种ipk实质上是一个tar.gz的压缩包,里面有控制文件。你可以在里面找到三个文件,一个是debian-binaries文件,里面只含有2.0这几个字。另外还有两个.tar.gz文件:control.tar.gz和data.tar.gz。control.tar.gz文件里面有一个文本文件control,其中是这个包的一些信息,比如作者,依赖信息,描述等等,还有一些可选的shell脚本来执行安装前后的配置工作。data.tar.gz文件包含所有打包的文件和目录结构。OpenZaurus和PocketWorkstation (Debian)使用deb格式的ipk文件,你需要用ar命令来解压。

      使用下面的命令来解压ipk文件:

      # unpackipk somefile.ipk

      要创建你自己的ipk包,首先使用下面的命令来创建ipk目录结构:

      # newipk myproject

      当你把所有文件都添加好了,control文件也写好之后,使用下面的命令来创建ipk文件:

      # makeipk myproject

      如果你想把.deb或者OZ的ipk文件转换成pdaXrom的ipk,你需要首先用 unpackipk解压, 然后使用perl脚本deb2ipk来转换。或者你也可以使用ar工具。


      Zaurus备份

      经常备份系统是个好习惯. 最简单的备份方式就是通过targzip把所有文件打包. 我写了一个脚本来做这件事.



      返回主页

    • 免责声明: 本站所包含的信息仅供参考。本站对于本站所提供的所有信息或指令,不作任何保证。你可以把本站的信息当作操作指南使用,但是如果你的系统或者数据资料产生了问题,请 不要追究我的责任。请自行承担按照本站提供的信息操作所产生的风险,我并不会承担任何的责任。