|
在 NetFront浏览器 640x480分辨率下获得最佳浏览效果 我的 Zaurus SL-C3000 和 SL-C3100 Copyright 2006 Hd Luc (hdluc@yahoo.com)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
# ipkg install ipkfile # ipkg remove ipkfile |
使用 ipkg 工具的好处是你能够用一个批处理脚本来批量的安装应用程序,例如所有你喜欢的字体,或者你的所有的安全工具。同时一旦发生错误,它也能显示详细的错误讯息,不像 qinstall 那样,只告诉你出错了,却没有任何的有用的信息反馈给你。
然而,在你选择把软件安装到 SD 卡或 CF卡上时,ipkg 工具并不会像 Qinstall(图形化的软件包安装器) 那样在安装时创建所需要的链接。你需要在使用 ipkg 在 SD 卡或 CF 卡上安装完软件后运行 ipkg-link 来为你安装的应用程序重新建立链接。不过,C3000 和 C3100 默认都没有带 ipkg-link 这个软件。我把它放在了我所提供的 ipktools 软件包里了。
默认情况下,软件包安装工具(Package Installer)和 ipkg 都会到 /hdd3/Documents/Install_Files 、/mnt/card/Documents/Install_Files 和 /mnt/cf/Documents/Install_Files 这三个目录下去找软件包。通过修改 /etc/ipkg.conf 加入类似下面的例子的内容,可以加入额外的软件包来源和 feed :
|
src zug http://www.zaurususergroup.org/feed/ |
我创建了一个名为 xipk(我的 ipktools 包的一部分)的脚本,允许你把软件包安装到你所喜欢的任何地方。这使你可以把软件安装到比主内存(C3000 是 /hdd2,C3100 是 /home)大得多的内置微硬盘的 /hdd3 分区上。不过不是所有的应用程序都能安装到 /hdd3,因为在默认的情况下,/hdd3 是被格式化成 FAT 格式的分区,而 FAT 格式的分区无法处理符号链接。如果你把这个分区重新格式化成 ext2 或 ext3 格式的话,你就不会有这个问题了(请查看后面的 /home 和 loopback 文件系统 这一章节)。
你安装的一些应用程序将会是日文版的。你可以查看 本地化 这一章节来了解如何把它转变成英文版的。你可以尝试一下 langswitch 这个工具,在大多数情况下,它都能奏效。
另外的,如果应用程序是为 Zaurus 的旧机型写的,你还需要改变应用程序的默认的显示方向。查看 显示方向 这一章节可以了解到如何来操作。
通过 USB 连接 Zaurus(先把 USB 线插入 PC,然后再插入 Zaurus)。把光盘里的终端软件的 ipk 文件 [qpe-terminal-ja_1.5.0-3_arm.ipk] 复制到 /Documents/Install_Files 目录。在 PC 上断开 USB 连接。Zaurus 会回到正常操作模式。在顶端点第三个标签,然后再点一个像小磁盘那样的图标。接着选择 Install_Files 的目录。在对话框里选择那个 ipk 文件(应该是那个目录里的唯一的文件)后安装程序会打开它。 按下安装按钮(最底下的大按钮)然后在弹出的对话框中按确认 OK(左面的那个按钮)。
如果你有一张 SD 卡或 CF 卡,以及一个读卡器的话,你只要把 ipk 文件复制到卡上,然后把卡插进 Zaurus 的扩展插槽内,就可以代替有时不能正常连接的 USB 连接方式了。
另一个更好用的终端软件 [qkonsole_0.9.3-20040205_arm.ipk] 可以从网上下载并用来替换光盘里附带的那个。
大部分定制化的工作需要通过终端软件来完成,所以你真的需要安装一个。在这篇文章中,所有写在白色方框内的文字,都被假设为是在终端窗口中输入的,而灰色方框内的文字则都是配置文件的内容片断。在这篇文章中,我假设你已经知道了如何使用 vi。对于我个人而言,我喜欢 Vim (vi improved) ,并总是用它完成大多数的工作。不过如果你觉得 vi 难以掌握的话,你可以使用 pico,它的用法和 DOS 下的 edit(查看 pico 的章节来了解如何安装它)类似,然后不管你看到指令要求你用 vi 打开或是创建一个文件,都用 pico 来完成。vi 中的 esc 键在 Zaurus 中被映射到了 cancel 键上。
C3000 和 C3100 出厂时默认是日文版的。具有讽刺意味的是, Qtopia 和绝大部分的 Linux 都是在英文环境下开发的,Sharp 把它们全部修改成了日文版,而我们又不得不把它再改回来。正因为这样,除了一些在日语环境下写的软件以外,把 Zaurus 改回英文版还算是一件比较容易的事情。有很多方法可以把系统改回纯英文的模式,甚至可以用一些脚本来自动完成转换整个过程。不过我认为有日语支持也挺有用的,所以我并不打算把日语支持给去掉。(甚至还要给旧版 Windows 系统加上了日语支持?)
打开终端,修改 /home/zaurus/Settings/locale.conf 文件,用 'en' 替换掉 'ja'。
|
[Language] Language = en [Location] Timezone = Australia/Sydney |
重起 Zaurus
本地化的目标是保留所有的日文版的功能的同时,把菜单转换成英文,条目的内容则是英文和日文混合的。日文的输入法、字体、和字典的功能将不受这个定制作业的影响,依然能够正常使用。
|
# su # cd /home/QtPalmtop/i18n/ja # mkdir .hide # mv *.qm* .hide # mv .hide/libjpn* . # cp /home/zaurus/Documents/custom/movieplayer.qmid . # chown root:qpe movieplayer.qmid # chmod 640 movieplayer.qmid # cd /home/QtPalmtop/i18n/en # cp /home/zaurus/Documents/custom/movieplayer.qmid . # cp /home/zaurus/Documents/custom/libsl.qmid . # chown root:qpe *.qmid # chmod 640 *.qmid # cd /home/QtPalmtop/bin # mv word-eucJP.rc word-eucJP.rc.hide # cd /home/QtPalmtop # tar cf apps-orig.tar apps # gzip apps-orig.tar # cp /home/zaurus/Documents/custom/apps-mod.tar . # tar xf apps-mod.tar # chown -R root:qpe apps # cd /home/QtPalmtop # tar cf etc-orig.tar etc # gzip etc-orig.tar # cp /home/zaurus/Documents/custom/etc-mod.tar . # tar xf etc-mod.tar # chown -R root:qpe apps # cd /home/zaurus # tar cf Settings-orig.tar Settings # gzip Settings-orig.tar # cp /home/Zaurus/Documents/custom/Settings-mod.tar . # tar xf Settings-mod.tar # cd Settings # chown zaurus:qpe *.conf # chmod 644 *.conf |
重起 Zaurus 后,你的系统界面将会象下面这样:
这个软件包 [c3000-custom-jaen_0.2_arm.ipk] 会自动执行上面所有的步骤。我在需要把我的 Zaurus 回复出厂设置时,就使用这个软件包来本地化。这个软件包在 C3100 和 C1000 上同样也可以使用。如果你想回到日文版的话,只要简单的卸载这个软件包就可以了。
在你本地化之后,有一些软件安装后仍然显示的是日文信息,不过,其中的大部分都是可以方便
在 F1 - F10 in are mapped to Fn + 1 to 10 respectively.
的被修改为英文版的。检查一下 /home/QtPalmtop/i18n/ja 目录,看看里面是不是多了一个以你新安装的软件命名的 qm 文件,只要把它移到 .hide 目录就行了。不过,有一些一日文开发的软件的本地化就没那么容易了。我创建了一个 [langswitch_0.2_arm.ipk] 软件包可以让你通过图形界面(需要 opie-sh 支持)来把 qm 文件移走或恢复。
帮助文件仍然是日文的。如果那令你烦恼,你需要装一个英文版的。你可以从 Cacko 的 feed 安装 helpfiles_1.23-lite-1_arm.ipk。安装完成后在 help 目录创建一个从 ja 到 en 的链接:
|
# su # cd /home/QtPalmtop/help # mv ja ja.orig # ln -s en ja |
通讯录软件可以显示英文的菜单和文本,但是通讯录的条目还是按照日文假名顺序进行排序的。如果你想要让他们按英文字母顺序排序,而不管里面的日文的话,你可以安装 [qtopia-addressbook_1.23_arm.ipk]。
如果你想让 Netfront 能够显示除了英文和日文以外的例如德文的变音记号、法文的重音记号,以及其它的特殊字符的话,修改 /home/zaurus/Applications/netfront3/prefs 文件,找到 FontFamilyJa:,添加或修改 FontFamilyEn: ,并把它设置成例如 verdana 那样的包含扩展字符集的字体。推荐你使用这个软件包:unicodefonts-verdana_1.5.0-3_arm.ipk
|
FontFamilyEn: verdana FontFamilyJa: lcfont |
* 译者注:关于 本地化 / 中文化 的信息,可以参考译者的这篇文章:汉化 Zaurus SL-C3100 的 SHARP 原厂 ROM
Zaurus 在出厂时预先安装了以下字体:
不幸的是,日文字符的编码与一些 latin 的扩展字符的编码有重叠,所以无法正确的映射这些字符相冲。在这个方面,unicode 字符会有一些帮助。不过,很多字体都没有全部的 unicode 字符,这时只能显示一个小方框来代替。实际上,确实存在一个含有所有 unicode 字符的字体,而且字符编码都是正确的,当然,这样的字体对应每一个字号都需要使用超过 1M 的内存。
下面的字体含有几乎所有的字符,不过 unifont 字体只有 16 点阵的字体。
拥有一个含有尽可能多的字符的字体文件是一个好的开始,当然这还依赖于应用程序能否使用 unicode,并且是否能够提取正确的字符并显示它们。某些字体可能忽略了屏幕翻转后产生的细节差异,这样,在屏幕旋转时,字体的显示效果就会很差。如果你发现这种情况,一定要确认你安装了屏幕翻转时与之对应的字体。
我已经加入了以下扩展字体文件:
注意:unicodefonts-verdana_1.5.0-3_arm.ipk 是在 mico-unicodefonts-verdana_1.5.0-2_arm.ipk 的基础上加入了可适应屏幕翻转的字型后重新打包生成的字体。
这些都是用于 Qtopia 和应用程序的默认字体。X/Qt 和 Pocketworkstation 使用不同的字体集合。Qtopia 的字体存储在 /opt/QtPalmtop/lib/fonts。Zaurus 的字体使用 Trolltech 的 QT Prerendered Format (QPF) 字体格式。如果你想使用其它的字体,可以用一个由 Trolltech 提供的名叫 makeqpf-arm 的工具把你的字体文件转换成 Zaurus 的字体格式。
在日文系统中(也就是说当你的 locale 被设置为 ja 的时候,ja 是 Zaurus 默认的语言选择),lcfont 是默认的系统字体。然而 Qtopia 在找不到它所需要的字体时,它会把 helvetica 作为缺省字体。
在生成字体时,你需要生成两个版本的字体,一个用于竖屏模式,另一个用于横屏模式。旋转过的 qpf 字体文件的文件名末尾会以 t10 来结尾。
下面的例子说明了把 arial.ttf 字体转换成 16 点阵 qpf 的横屏和竖屏字体所需要的步骤。在转换过程中,你的 Zaurus 看起来像是死机了,而且完成后你还需要重启你的 Zaurus。所以,在执行以下步骤之前,一定要确认你已经保存了所有已打开的文件:
|
# mkdir -p /hdd3/build/lib/fonts # cp arial.ttf /hdd3/build/lib/fonts # export QTDIR=/hdd3/build # cd $QTDIR/lib/fonts # echo "arial arial.ttf FT n 50 160 s" > fontdir # makeqpf-arm -display Transformed:Rot0 -A # makeqpf-arm -display Transformed:Rot270 -A # cd /hdd3/build # newipk arial # cp /hdd3/build/lib/fonts/*.qpf /hdd3/arial/data/opt/QtPalmtop/lib/fonts # makeipk arial # su # reboot |
在执行以上步骤之前,你应该预先从 Trolltech 下载了 amkeqpf-arm,并且把已经它解压缩到了环境变量 PATH 所包含的路径里,如 /usr/local/bin。同时,也需要你先安装好 ipktools 这个软件包。
最后,日文中把字符 ⁄ 显示成 ¥ 。不过这只是显示错误,而系统中所使用的字符是正确的,不用为此担心。
Zaurus 有一个和笔记本电脑类似的完整的 QWERTY 键盘,不过有一些特殊字符必须通过 功能键(Fn)来组合输入。大部分按键组合已经清楚地在键盘上标明了,不过,还是有一些没有标明或遗漏的。下面的一些键位映射对于大多数应用程序都是有效的,但是有一些应用程序因为编码页的关系无法辨认而忽略这些按键组合。
截屏键:
导航键:
其它有用的未标识的按键:
除此以外,还有一些其它的基本的按键需要被映射。你可以安装 keyhelper [keyhelper_1.2.2-1_arm.ipk] 然后把 keyhelper.xml 放到 /home/zaurus/Settings 目录下,最后在终端控制台重新载入键位映射表。
|
# cd /home/zaurus/Settings # cp /home/zaurus/Documents/custom/keyhelper.xml . # khctl reload |
如果你安装 keyhelper-c3000map [keyhelper-c3000map_0.4_arm.ipk] 的话,它会自动完成上面的那些步骤,同时它还会启动象下图所示的那样的 keyhelper 的菜单。
keyhelper 会提供如下的键位映射:
/home/zaurus/Settings/keyhelper.conf 文件包含了菜单项的显示和所执行的命令的定义。如果你想自定义你的键位映射,你可以安装 keyhelperconf,它可以帮助你得到你所需要的映射的正确的 XML 代码:
同样,你也可以自定义屏幕右侧以及键盘下方的的应用程序快捷键。Settings 标签下的 ApplicationKey 工具可以让你为这些应用程序快捷键指定各自被按下时要打开的程序。
我的设置是这样的:
下面是一些 Qkonsole 中非常有用的快捷键:
如果你在按下键盘下方的功能键时,在屏幕上得到 ~0, ~1, ~2, ~3 的话,把我修改过的 linux.keytab 和 vt100.keytab 复制到 /opt/QtPalmtop/etc/keytabs 就能解决问题了。
|
# su # cd /opt/QtPalmtop/etc/keytabs # cp /home/zaurus/Documents/custom/linux.keytab . # cp /home/zaurus/Documents/custom/vt100.keytab . |
下面是 NetFront 浏览器中的一些有用的快捷键:
在 Zaurus 的 vi 中 esc 键被映射到了 cancel 上。
在 midnight commander 中 F1 - F10 被分别映射到了 Fn + 1 到 10 上。
X/Qt(以及使用 X/Qt 的 Debian PocketWorkstation)由他自己的键位映射。如果你的键位映射有问题的话,下载 xmodmaprc-c3000 并把它放到 /home/zaurus 以及 /home/root 目录下,并更名成 .xmodmaprc 。
.xmodmaprc 作了如下的修正来使 X/Qt 下的键位映射和 keyhelper 类似:
Menu 键会激活 X/Qt 的控制。
Fn + m 会中止 X/Qt 的运行。
如果你的按键按下后字符都变大写了,按住 Shift 键几秒后松开再试,就会发现按键又回复到小写的状态了。
文件关联的信息被分别放在两个地方。/opt/QtPalmtop/etc/mime.types 文件存放了需要关联的 mime 类型,它会和 /opt/QtPalmtop/apps 下的 desktop 文件合并起来最终得到文件的关联信息。
存在 mime.types 文件里的信息指出了文件的后缀名和文件类型的关联。而每一个应用程序的 desktop 文件将会指明它能处理哪些类型的文件。如果有多个应用程序关联到了同一种文件类型的话,将只有一个是有效的,不过,我并不知道 Zaurus 是用哪种逻辑来决定要使用哪一个应用程序的。你可以为每一种文件类型只指定一个应用程序来获得你想要的文件关联效果。
下面以 Opera 关联 .htm 和 .html 文件作为例子,你将会看到 mime.types 文件中有如下内容
| text/html html htm |
在 opera.desktop 文件中则会有下列内容:
|
MimeType=text/html MimeTypeIcons=opera |
你还可以象上面的例子那样,给文件关联设置一个图标,多个关联可以用分号(;)来分隔。
C3000 和 C3100 有着比旧型号机器有更高的分辨率的屏幕(640x480)。旧的应用程序被设计成为适合那些默认就是直版竖屏的旧型号机器(因为那是那些机型的默认显示模式)。C3000 和 C3100 对横屏和竖屏都能支持。贝壳式的设计可以检测到屏幕是否旋转,如果旋转则能够自动调整屏幕显示的方向。不过,如果应用程序是为旧机型的竖屏设计的,系统也会自动把显示模式切换到竖屏模式。
要解决这个问题,用触笔长按应用程序的图标几秒后,在弹出的属性窗口中去掉 "Display with magnified screen" 前面的勾去掉(对每个有这种情况的应用程序都要设定一次)
或者你也可以把下面的代码加到 /opt/QtPalmtop/apps 目录下相应的 .desktop 文件中。
| Display=640x480/144dpi,480x640/144dpi |
只有在 desktop 文件中不含有 Display=640x480/144dpi,480x640/144dpi 这个信息的应用程序才会有 Display with magnified screen 这个选项,不过,如果 /home/zaurus/Settings/Launcher.conf 文件中 EnableForcedVGA 的值被设置成了 0 的话,这个选项同样也是无效的。在 /home/zaurus/Settings/display.conf 文件中,如果值为 3 则意味着应用程序将运行在 640x480 的分辨率下。
在默认情况下,应用程序是以 zaurus 身份运行的,然而,有一些应用程序必须要有 root 权限才能够正常运行。
要实现这个,用触笔在应用程序的图标上长按几秒,在弹出的属性窗口中勾选 "Execute with root priviledge"。
有些应用程序在系统启动时就被预加载了。这就意味着,在 Zaurus 启动的时候,这些应用程序就被加载到了内存中。这使得这些应用程序能够非常迅速的被打开,因为事实上它们已经被加载到内存中了。不过,正因为这样,它们同时也消耗了不少空余的内存。
你可以通过禁用这些被预加载的程序的预加载选项来阻止它们被系统预加载,从而获得更多的空余内存。要完成这个工作,只要用触笔长按应用程序的图标几秒钟,在弹出的属性窗口中去掉 "Fast load (consumes memory)" 前面的勾。
自定义开机画面是可行的。开机时显示的图象是一个 90 度旋转(480x640)的 24 位色的名为 Startup_screen.bmp 的 bmp 图像文件。你只要简单的把它复制到正确的位置,在开机的时候系统就能读取到了。
|
# su # cp /home/zaurus/Documents/custom/Startup_screen.bmp /opt/QtPalmtop/pics144 |
下次开机是,画面就会是这样:
如果你想去掉开机时的 Sharp 标志的画面,你需要关闭 Sharp Logo 选项后重新编译内核。Tetsu 的内核就是这么做的。
/root/etc/rc.d/rc.sysinit 文件决定了系统在启动时会做哪些事。它会运行在 rc.d 目录下的被请求的 runlevel 下面的所有脚本,然后再运行 rc.rofilesys 。然而,在这个文件中,通常最后一个被运行的 rc.local 文件被注释掉不被运行了。你可以取消下面这段代码的注释使它在系统启动时被运行:
cd /etc/rc.d
if [ -f "./rc.local" ];then
if [ -x "./rc.local" ];then
echo "*** Running rc.local"
./rc.local
fi
fi
|
或者,你也可以修改 /home/QtPalmtop/qpe.sh 来使它运行 /etc/rc.d/rc.local
sdisp /home/QtPalmtop/pics144/Startup_screen.bmp &
/etc/rc.d/rc.d/rc.local
cd
if [ -f /etc/restorefile ]; then
export LD_LIBRARY_PATH=/usr/QtPalmtop.rom/lib
else
export LD_LIBRARY_PATH=$QTDIR/lib
fi
qectrl -c
|
在 rc.sysinit 和 qpe.sh 中运行 rc.local 的不同之处在于,如果是在 rc.sysinit 中运行,则运行 rc.local 脚本的输出信息在系统启动时将会显示在屏幕上(如果使用 tetsu 的内核),而在 qpe.sh 中运行的话,将不会显示,因为它会被启动画面覆盖掉。
C3000 和 C3100 可以使用 png 或 jpg 图片文件作为墙纸。在默认情况下如果你在 设置(Settings)标签下使用 外观(Appearance)应用程序的话,你所选择的图像将会作为背景平铺,除非你所选择的图象正好适合你所期望的显示方向的屏幕的大小(减掉 Qtbar 的高度 640x460 或者 480x620)。不过,当你旋转屏幕时,显示的比例就不对了,图像就只能平铺在桌面上了。
如果你安装了 Plasterer [plasterer_2.1.0-1_arm.ipk] 的话就可以解决这个问题,它可让你选择是居中还是平铺你所选择的图片。然后它会生成两个图像文件:vImage.png 和 hImage.png,在你旋转屏幕时它会选择合适的图片作为背景。你可以用两张完全不同的图片来替换掉这两个文件。
我创建了以下几套横竖配套的背景图片,这样在 Zaurus 上,不管屏幕是横屏还是竖屏显示,都能取得不错的效果:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
注意:上面的图片中,大部分取自 Cresho 的 zaurusthemes.org 网站。那里有更多的漂亮的背景图片,这里的几张只是我比较喜欢的而已。
你可能已经注意到这个应用软件是日文版的。在设置(Settings)标签下使用语言切换(Language Switcher [en])工具(如果你已经安装了 langswitch 的话)来移走 qm 文件,这样软件就变成英文版的了。
当你使用 Plasterer 生成了 hImage.png 和 vImage.png 这两个文件之后,你可以使用 bgswitch [bgswitch_0.1_arm.ipk] 来切换使用/home/zaurus/Documents/Image_Files/wallpaper 目录下的可用的背景图片。
C3000 和 C3100 的默认的屏幕保护真的很丑陋。你可以安装下面的软件包来美化屏幕保护:
另外还要安装下面的至少一个软件包:
你可能已经注意到这个应用软件是日文版的。在设置(Settings)标签下使用语言切换(Language Switcher [en])工具(如果你已经安装了 langswitch 的话)来移走 qm 文件,这样软件就变成英文版的了。
你可以使用 TabConf/TabSetting 这个工具来重新组织标签栏和应用程序。或者,你也可以通过改变 /home/QtPalmtop/apps 目录下的文件来实现,但是只有等你重起 Qtopia,重启 Zauus 或者运行 TabSetting 然后应用并保存设置时这些改动才会生效。在每个子目录下都有两个名为 .order 和 .directory 的隐藏文件,我们可以手动修改它们。
此外,你可以自定义菜单上和桌面上每个应用程序的图标,以及它们所关联的文件类型的图标。
菜单和标签兰上的图标被存放在 /opt/QtPalmtop/pics144 目录下。Qtopia 总是会优先到这个目录下查找图标。如果在这里没有找到指定名字的图标,它会继续在 /opt/QtPalmtop/pics 目录下搜索。如果两个目录下都有文件名相同的图标的话,系统会优先使用 /opt/QtPalmtop/pics144 下的图标。
C3000 出厂时默认的图标文件目录 /hdd1/usr/QtPalmtop.rom/pics144 和 /hdd1/usr/QtPalmtop.rom/pics 分别是 /opt/QtPalmtop/pics144 和 /opt/QtPalmtop/pics144 的符号链接。
类似的,在 C3100 上,默认的土表文件目录是 /usr/QtPalmtop.rom/pics144 和 /usr/QtPalmtop.rom/pics,它们分别是 /opt/QtPalmtop/pics144 和 /opt/QtPalmtop/pics144 的符号链接。
默认的文件关联的图标存放在 /opt/QtPalmtop/pics 目录下。当安装新的应用程序时,安装程序会把图标复制到 /opt/QtPalmtop/pics144 和/或 /opt/QtPalmtop/pics 目录下。通常在 /opt/QtPalmtop/pics144 目录下的图标的尺寸是 64x64 的,而 /opt/QtPalmtop/pics 目录下的则是 32x32 的。不过,有一些特别的 28x28 的小图标会放在 /opt/QtPalmtop/pics144 目录下,更小一些的 14x14 的会放在 /opt/QtPalmtop/pics 目录下。
我们可以通过替换应用程序所使用的图标文件或者添加一些新的图标文件并在 TabConf 工具中修改应用程序的图标来打到自定义图标的目的。此外,在 /opt/QtPalmtop/apps 目录下的每一个 .desktop 文件也都可以被手动修改。如果你用一个同名的图标文件替换了原来的图标的话,你需要重启系统后才能看到变化,因为 Qtopia 会使用缓存中的旧图标。
自定义开始菜单:
下面是要改变默认的 Qtopia 的外观时,需要替换的图标文件的列表。因为有些文件可能只是一个符号链接,所以,在你用一个新的文件进行替换之前,你需要先删除它们。我替换和添加了下面的这些默认图标:
设置(Settings)另外,我还添加了一些图标,下面列出其中的一些:
标签栏图标软件包 zicons-wmtux [zicons-wmtux_0.2_arm.ipk] 可以用一组漂亮的图标替换掉上面列出的所有图标,同时它也给应用程序条假了一些附加的图标。这个软件包是基于 cacko.biz 的 cool-icons 包和 zaurusthemes.org 的 z-oslinux 主题的。
在设置(Settings)标签下的外观(Appearance)工具可以用来更换主题。Crystal Blue 是我喜欢的主题之一,不过用 SLStyle 的样式、umicons 的标题栏以及 Gray 配色方案搭配在一起也能取得很棒的效果。
Zaurus 自带的 bash 是 2.05 版的。同时系统中还有 ash 和 sh ,sh 是 root 和 zaurus 用户所使用的默认 shell。当你在 Qtopia 中打开一个终端时 zaurus 会在这个终端中使用 bash。但是当你使用 telnet 连接 Zaurus 或者使用 su 命令切换到 root 用户时,你将会使用默认的 shell (/bin/sh),而并不是 bash。如果你想把 bash 作为默认的 shell,可以修改 /etc/passwd 文件,把 /bin/sh 改成 /bin/bash。
|
root:x:0:0:root:/home/root:/bin/bash zaurus:x:500:500:Zaurus User:/home/zaurus:/bin/bash |
你可以在你的用户目录中创建或编辑 .profile 或者 .bashrc (/home/zaurus/.profile 或 /home/root/.profile)来自定义你的 bash 提示符。
你可以改变环境变量 PS1 的值来改变提示符,比如改成 zaurus-:) 或者更好玩的字词或使用特别的颜色。
如果你没有 .bashrc 文件,你可以从 .profile 复制过来然后在这基础上再作修改。
zaurus 用户的 home 目录(/home/zaurus)在 /home 所在的分区(/dev/mtdblock3)上。在 C3000 上,它只有 4MB 的空间。这个空间也是在C3000 仅有的 16MB 的内部闪存中的。因为内部闪存的其他空间被用于 main rootfs(/dev/mtdblock2)、emergency rootfs(/dev/mtdblock1),所以/home 分区的空间不可能再大了。同时/home 分区还被用来存放内核模块(/home/root/modules)、系统设定(/home/zaurus/Settings and /home/etc/)以及其它的一些信息。此外,还有一些应用程序把它们的配置信息和资料也存放在 zaurus 的 home 目录中(这是 Linux 的应用程序通常的做法)。不过这在 C3000 上可变成了一个问题,因为 /home 分区会很快就被塞满。所以建议不要把大文件存放在这里,事实上,应该避免在这里存放任何东西,以保留 /home 下珍贵的空间。
如果你的空间不够用了,你可以把一些文件和目录移动到 /hdd2 或 /hdd3 分区上,然后再做上这些文件的符号链接。为了简化这个操作,我创建了一个脚本 zhomefix 来把 /home/zaurus 目录下的所有文件名以.开始的文件和目录搬到/hdd2/zaurushome目录下,并自动给他们创建链接。如果你的 /hdd2 的空间也不足的话,你可以修改 zhomefix 脚本,把资料移到 /hdd3/zaurushome 。
在 C3100 上,情况稍稍有些不同。相比起 C3000 的可怜的 16MB 来说,C3100 的内部闪存有 128MB。也许你会想 C3100 的 home 目录应该不会空间不足了吧。不幸的是,事情并不是这样的。rootfs 现在使用了 32MB 的空间,而不是像在 C3000 上那样的 4MB。还有,依旧还存在着 emergency rootfs (smf),所以,当这些空间被瓜分过后,还剩下 89MB 给了 /home 分区。你也许又在想,这并不算太坏。不过,等等,还有一个惊喜呢。在 C3000 上内部的微硬盘会被分为 /hdd1、 /hdd2 和 /hdd3 三个分区。默认的二进制文件和设置都被存放在只读的 /hdd1 分区。所有的应用程序都被安装在 /hdd2 分区,剩下的 /hdd3 则被用来存放资料。而在 C3100 上,原本 /hdd1 的内容被移到了 rootfs,而原本在 /hdd2 上的应用程序被移到了 /home 分区。在C3100上 /hdd1 和 /hdd2 两个分区现在都只有 9MB 左右的大小并且是空的,不被使用了。这样 C3100 上的 /hdd3 比 C3000 的就大了很多了。
然而,这就使得 C3100 的 /home 分区的作用相当于 C3000 上的 /hdd2 和 /home 分区了。在 C3000 上 /hdd2 分区有 400MB 左右的空间可以用来安装应用程序,而我们在 C3100 上却只有 89MB。幸运的是这个 89MB 的空间被创建成了 jffs2 文件系统,因为 jffs2 文件系统内建了压缩功能。所以如果运气好的话,我们能够存放大概 200-300MB 左右的应用程序和数据进去。 尽管这样,我们还是会碰到空间不足的状况。如果遇到这样的情况,我们可以卸载一些应用程序(例如一些 C3000 上没有的,只在 C3100 上有的附加的应用程序)或者我们可以把一些文件搬到 /hdd3。不过要注意的是,/hdd3 默认是 FAT 文件系统,它并不支持一些应用程序所需要的符号链接。你可以查看 文件系统 这一章节来研究关于在 /hdd3 上使用 cramfs 或 ext2 loopback 文件系统来扩展可以安装应用程序的空间的做法。此外你还可以把应用程序安装到 SD 或者 CF 存储卡上。不过因为一些应用程序需要安装到非FAT的文件系统上,所以你也许需要重新格式化你的存储卡。
C3000 和 C3100 都有一个被分了 /hdd1、/hdd2 和 /hdd3 三个分区的 4GB 的内置硬盘。在默认情况下,/hdd3 是被格式化成了 FAT 分区,所以在 Zaurus 作为 USB 客户端连接到 Windows PC 上时,它可以作为一个 USB 驱动器来共享文件。C3000 的第一个分区 /hdd1 是一个包含了可以使操作系统运行或者回复到出厂设置所需要的镜像和二进制文件的只读分区。在 C3100 上,这是一个只有 9MB 大小的几乎是空的分区,它上面有一个 hdimage2.tgz 文件,这里面包含了 /hdd3 的目录结构和模版文件。C3000 上的第二个分区 /hdd2 是用来安装应用程序的。C3100 上,同 /hdd1 类似,也是一个 9MB 大小的几乎是空的分区。第三个分区 /hdd3 则占据了内置的微硬盘剩下的空闲空间并被格式化成了 FAT 分区。它可以被用来存放各种形式的资料,包括超大的文件。此外,如果你稍微做一些修改,/hdd3 还能够在 /hdd2 或 /home 分区空间不足时用来安装应用程序。
因为 /hdd3 使用了 FAT 分区格式,所以,不能再上面创建符号链接,同时也无法储存用户对文件的权限和所有权信息。因此, /hdd3 使用 FAT 分区格式的话还是有很多缺点的。你可以把它重新格式化成 Linux 所使用的文件系统(ext2/ext3)或者把 /hdd3 重新分区成一个小一些的 FAT 格式的 /hdd3 和新建的 Linux 分区格式的 /hdd4。
在你重新划分 /hdd3 之前,要确认你已经备份了存放在它上面的所有的东西。/hdd3 上默认就有的字典文件(dict1 和 dict2)可以在 Zaurus 附带的前两张 CD-ROM 上找到。C3100 还有第三章 CD-ROM ,里面装的就是 Contents_Files 目录里的内容。不过 sd_map (C3100 only)在任何一张光盘上都没有找到,所以你要确认你已经把它备份好了。
/hdd3 通常是由 /dev/hda3 或 /dev/hdc3 挂载而来的,具体是哪一个设备取决于你的启动方式。如果你启动时没有插 CF 存储卡,设备名为 /dev/hda3;如果你插了 CF 卡再启动,则会是 /dev/hdc3。
把 /hdd3 划分成两个分区的步骤如下所示:
有一个名为 parted 的工具可以让你在无需删除分区的情况下改变分区的大小。这是一个非常有用的工具,但是请记住,如果你在 hdd3 上有资料需要保留的话,在改变分区大小前,一定要先备份。虽然 parted 可以在不删除资料的情况下改变分区的大小,但是却无法保证没有意外发生。在一些情况下,改变大小可能导致分区损坏,所以在做改变前先做备份是一个非常明智的选择。同样的,在改变分区大小后,可以运行 fsck 来检查分区是否被成功的改变了大小和是否产生了资料破损。
当你完成了上面的步骤之后,你需要一可读可写的模式重新挂载 / 分区,然后为 hdd4 创建一个新的挂载点,比如说 /hdd4。记住在创建完新的挂载点之后,重新把 / 分区挂载为只读模式。此外,你还需要创建一个开机运行的脚本来在系统启动时挂载 hdd4。不过要注意的是 hdd4 可能是 /dev/hda4 或 /dev/hdc4(取决于开机时是否插入了 CF 存储卡)。我的 automounter 软件包 [automounter-c3000_0.5.0_arm.ipk] 能够在检测到 hdd4 存在的情况下自动挂载它。
另一种情况是,如果你的 Zaurus 并不会做为 USB 硬盘使用,或者你的 PC 运行的是 Linux 操作系统,那么,你只要把整个 /hdd3 分区格式化成 Linux 的分区格式就好了。
你也许还需要考虑创建一个小的交换分区。交换分区的性能要比交换文件好。交换分区的大小建议在 64MB 到 256MB 之间,具体的数值取决于你的 Zaurus 的用途和你所使用的应用程序。
还需要注意的是,默认的软件包安装工具(qinstaller)并不能让你把软件安装到 /hdd3 或 /hdd4 上。ipkg 虽然可以把软件装到这两个分区,但是它却不会在安装完后做链接的动作。所以你必须使用 Sharp 原厂的 ROM 中并未包含的 ipkg-link 工具来完成这一动作。我的 ipktools 软件包中的 xipk 脚本能够让你把软件安装到 /hdd3 和/或 /hdd4,同时也会自动完成链接的动作。此外,它的安装的机制和 qinstaller 是相同的,所以你可以在 qinstaller 中删除你用 xipk 安装的软件。
如果你想在 hdd3 获得最大的可用空间,并且你并不需要日-英字典的话,你可以删除 hdd3 上的字典目录 /hdd3/dict1 和 /hdd3/dict2。如果你以后又想要使用这个字典了,可以非常方便的从附带的光盘上把它们复制回去(所以,千万不要把你的光盘丢掉)。在 C3100 上,还有一个移动地图的应用程序把一些资料放在 /hdd3/Documents/sd_map 下,你可以卸载这个软件并删除 sd_map 目录来或地更多的空间。以后,你可以从第一张光盘上重新安装移动地图软件,在 X:/Applications/MobileMapData/sd_map (MobileMapData 是用片假名写的)目录下找到 sd_map 中的内容。在 C3100 上还有一个 Contents_Files 目录,它里面存放了很多日文的书籍和阅读资料。如果你并不懂日语的话,你可能想隐藏内容(Content)标签,这个可以使用设置(Settings)标签下的外观(Appearance)工具来实现。同羊的,你也可以删除 /hdd3/Documents/Contents_Files 目录,如果你以后还想把它恢复出来,只要从第三张光盘上把它复制过来就可以了。
最后,还有一点,如果你要把系统恢复成出厂状态, /hdd3 会被清空。不果你可以关闭这一功能。要关闭这个功能,你首先要以可读可写的方式重新挂载根(/)分区,然后修改 /root/etc/rc.d/rc.rofilesys,注释掉下面这段代码:
if [ "$HDDCLEAR" = "YES" ]; then
dd if=/dev/zero of=/dev/${IDE1}3 > /dev/null 2> /dev/nulls
fi
mkfs.vfat -F 32 /dev/${IDE1}3 2> /dev/null > /dev/null
|
当然,在你恢复到出厂状态后,你必须再次修改 rc.rofilesys,以便下次恢复时系统不清空你的 hdd3。或者,你也可以更新 .home_default.tar 文件,用修改过的 rc.rofilesys 文件替换里面的那个原始的文件,这样的话,你以后再也不用为了避免 hdd3 被清空而担心了。
在 C3100 上,/hdd1 和 /hdd2 并未包含任何重要的信息,它们除了在恢复出厂状态时被用到来清空 /hdd3 以外,并没有被系统用到,这些空间是被浪费掉了。所以,你可以修改 rc.rofilesys 来不挂载它们。或者你可以修改它们的大小,把 /hdd1 做成交换分区,/hdd2 做成 Linux 格式的分区(代替 /hdd4),/hdd3 则变成一个小一些的 FAT 分区。
下面是默认的分区表:
|
Disk /dev/hda: 4095 MB, 4095737856 bytes 16 heads, 63 sectors/track, 7936 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Start End Blocks ID System /dev/hda1 1 20 10048+ 83 Linux /dev/hda2 21 40 10080 83 Linux /dev/hda3 41 7936 3979584 c Win95 FAT32 (LBA) |
下面是我修改过的分区表,/hdd1 是一个 256MB 的交换分区,/hdd2 是一个 1.2GB 的 ext3 分区,/hdd3则是 2.5GB 的 FAT 分区:
|
Disk /dev/hda: 4095 MB, 4095737856 bytes 16 heads, 63 sectors/track, 7936 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Boot Start End Blocks Id System /dev/hda1 1 256 128992+ 82 Linux swap /dev/hda2 257 2790 1277136 83 Linux /dev/hda3 2791 7935 2593080 c Win95 FAT32 (LBA) |
要完成这个修改动作,你需要把根(/)分区以可读可写的方式重新挂载,替换掉 /root/etc/rc.d/rc.rofilesys。你还需要在未加载的 /hdd1 和/hdd2 删除 NotAvailable 文件。
我已经成功地使用了 parted 在不破坏县有的文件的情况下动态的缩小 /hdd3 分区。但是,还是建议在做这种操作之前做一个备份。接着,我用 fdisk 以新的大小重新创建了 /hdd1 和 /hdd2 分区,并且分别用 mkswap 和 mk2fs -j 命令对它们进行了格式化的操作。
现在,当 C3100 启动的时候,系统将像以前一样自动挂载 /hdd3,但是在恢复出常设之时,不会清空 /hdd3 了。如果 /hdd2 是 ext3 分区格式的话,它同样也会自动挂载起来。此外系统还启用了 256MB 大小的交换分区(以前的 /hdd1),并且 tmpfs 也从 1MB 扩大到了 2MB。
C3000 和 C3100 都有一快内置的 4 GB CF 接口的微硬盘,通常把它当作硬盘那样来存放数据。因为 CF 闪存卡的速度一般都要比 CF 微硬盘来的快,所以如果使用一块 CF 闪存卡来替换这块微硬盘的话,Zaurus 的性能会得到提升。当微硬盘空闲一段时间后,它会停转进入省电模式,而C3000 应用程序和二进制文件都存放在微硬盘上,所以当启动程序时,会有一个小小的延迟来等待微硬盘启动起来。不过 C3100 受到的影响就没这么大了,因为可以把应用程序存放在内部闪存上,但是,如果你把一些应用程序安装在微硬盘上的话(例如使用 /hdd3 来安装像 PocketWorkstation 的应用程序和一些交换文件),同样也会遇到这样的问题。
要改善这种情况,你需要使用一张 CF 存储卡来替换掉内置的微硬盘。必须要确认的是,你的闪存卡的容量要和微硬盘差不多(4GB 不错,2GB 凑合,如果更大那就更好啦)。不过需要注意的是,你要使用的 CF 卡的存储速度一定要比 Zaurus 内置的微硬盘(Zaurus 内置了 4GB 的日立微硬盘)的速度要快,否则,岂不是得不偿失。
更换完成后,你要做的是把 4GB 的微硬盘的数据镜像复制到你的闪存卡中去。要完成这个动作,你可以把闪存卡插入 Zaurus 的 CF 插槽,然后使用 fdisk 工具按照微硬盘的分区大小对他进行分区操作。然后使用 dd 命令分别复制 hdd1、hdd2 和 hdd3 等各个分区。在复制前,要先卸载掉 hdd2 和 hdd3 分区或以只读模式加载它们。其他的分区,则是存放在内部闪存(也被称为 Nand)的。或者,你也可以使用 parted 工具复制整个分区到另一个磁盘设备。当这一切都完成之后,你可以拆开你的 Zaurus 用 CF 卡替换掉内置硬盘。不过这么做会使你的保修合同作废,所以请你一定要三思而后行,如果你损坏了 Zaurus 或它的任何,你只能自己来承担责任了。除非你在日本,否则你是很难买到替换的部件的。所以一样要小心谨慎,千万要考虑好你更换的步骤。我再重复一遍,如果你拆开了你的 Zaurus 来更换部件的话,你的保修条款就失效了。如果你在这过程中损坏了一些部件的话,你只能自己想办法来修理了,因为,没有保修了。
你应该要经常备份你的系统,因为这是你在遇到资料丢失的情况时的唯一的恢复手段。
C3000 和 C3100 都自带了一个备份恢复工具,你可以在设定(Settings)标签下找到它。使用这个工具就可以备份你的 Zaurus。它可以把你的系统(闪存,应用程序和设定)备份到 SD 或者 CF 存储卡,或者 /hdd3 上。基本上除了 /hdd3、/hdd1、/root 和 /mnt 之外的所有内容都能被这个工具备份和恢复。这意味着你还需要通过其他途经来备份 /hdd3。在你备份前,你必须确认你已经卸载了除了挂载在 /mnt 挂在点之内的其他任何挂载在系统上的 loop 回圈文件系统。否则它们也会被备份起来(你也许会觉得这非常不错),这样的话,你就没办法恢复你所备份的镜像了(因为备份了挂载的 loop 回圈文件系统上的文件之后,使得需要恢复出来的文件的大小总合超过了文件分区的容量)。如果你安装了 automounter,你可以使用如下的命令来统一卸载所有的 loop 回圈文件系统:
|
# su # automounter stop |
当你在 Zaurus 上完成了所有的备份动作之后,你可以使用下列命令重新挂载所有的 loop 回圈文件系统:
|
# su # automounter start |
由于 /hdd3 非常大,你可能需要一张大容量的 CF 卡,或者挂载一个 Samba 共享或 USB 移动存储来获得足够的空间存放你的数据。用一个 USB 移动存储是最佳的方案了(比 CF 卡便宜,又比使用普通网络的 Samba 共享速度快)。
假设你的 USB 存储设备被挂载到了 /mnt/usbdisk1,你可以像下面那样来备份 /hdd3:
|
# tar cf - /hdd3 | gzip - > /mnt/usbdisk1/hdd3-backup.tgz |
如果你还是不放心,你可以备份 /hdd1、/hdd2 和 /home:
|
# tar cf - /hdd1 | gzip - > /mnt/usbdisk1/hdd1-backup.tgz # tar cf - /hdd2 | gzip - > /mnt/usbdisk1/hdd2-backup.tgz # tar cf - /home | gzip - > /mnt/usbdisk1/home-backup.tgz # tar cf - /root | gzip - > /mnt/usbdisk1/root-backup.tgz # tar cf - /mnt | gzip - > /mnt/usbdisk1/mnt-backup.tgz |
Zaurus 的备份工具会关闭 Qtopia,所以所有被打开的文件会被关闭,然后开始把 /hdd2 和 /home 打包成备份镜像文件。这比在 Qtopia 还在运行时打包备份安全多了。然而,你还需要使用 gzip 来压缩备份镜像来节省空间。对于 /hdd1 来说,没有必要每次都对它进行备份,因为它是一个只读分区。只有在你手动修改了它的内容,或者刷了一个更新包之后才需要对它进行备份。
我写了一个名为 hdbackup 的脚本。它可以备份 /hdd3,把每一个目录分开备份并进行压缩和打上日期的标志。这样,通常的备份工作就只需要一个简单的命令就能完成了。
另外,你也可以使用 USB 数据线把 Zaurus 连接到 Windows PC 上,然后使用 Windows 的各种备份软件来备份被识别成 USB 移动硬盘的 Zaurus 上的数据。不过由于 USB PC 连接并不稳定,所以最好还是开启 Samba,通过 USB 网络来备份 /hdd3 上面的内容。
最后,不要忘记还要备份你的 SD 卡以及 CF 卡上面的数据。当上面的资料有问题时,并不会有任何的提示的,所以对它们也一样要做备份。
此外,在 Zaurus 诊断菜单(Zaurus Diagnostic Menu )中还有一个 NAND 备份的功能。这个功能可以让你完整备份整个 NAND 存储器。由于 C3000 只有 16MB 的 NAND 闪存,其他东西都在内部硬盘上,所以做一个 NAND 备份并不费力。不过在 C3100 上,除了 /hdd3 上面的资料外,几乎所有的东西都存放在 NAND 中,所以,给 C3100 做一个 NAND 备份可以给你一个可靠的系统镜像。当你的系统有问题的时候,你可以试用它来进行完整的恢复。这和 C3000 的情况是不一样的,所以,在你刷 C3000 的镜像的时候,请务必小心确认你要使用的镜像文件。
要做一个 Nand 备份,你需要一张 CF 或者 SD 存储卡来存放整个 Nand 的镜像文件。256MB 的存储卡就足够了。要完成 Nand 备份或恢复,需要做如下动作:
If you manage to corrupt your Zaurus configuration so badly that you cannot boot it anymore or things just don't work any more, then you have several options to fix it.
If you really messed up and just start over again without retaining anything, then just do a factory reset and the Zaurus will revert to its initial Japanese ROM state.
If you have a backup, you can restore your previous settings contained in your backup files. If you had to factory reset, then a restore can quickly get you to where you were before.
This is by far the most advanced option. Use this to recover files that might not have been backed up yet before doing a restore and/or factory reset.
Please refer to Trisoft's C3000 manual on how to do the above. It would be a waste of my time to provide step by step instructions since they have it pretty much covered, and they even have emergency backup images for you to use in case you dont't have a system backup.
If you have booted into the console for recovery, then you are using the /dev/mtdblock1 partition. This is the emergency partition that you usually don't see. You will need to manually mount the usual partitions if you want to access them. /home is /dev/mtdblock3 and /dev/mtdblock2 is your root partition. Don't forget to unmount the partitions after you have finished your changes or they will be rolled back and all the files remain unchanged.
For the C3000, you should update your Sharp ROM to 1.11JP if you are still on 1.01JP
There is no updated Sharp ROM for the C3100 yet.
Warning: Only flash your Zaurus with a ROM intended for your specific model and make sure you downloaded the complete files. Never ever flash your Zaurus with a ROM for another model. It will cause you many sleepless nights trying to restore it to a working condition.
There are several replacement kernels for the C3000 and C3100 which enhance the stock kernel that ships with Sharp's ROM. You can even build your own if you want (and know how to). The kernel source is available on Sharp's developer website. However, there are some smart people who already build and tested their own enhanced kernels. One of those is Tetsu's special kernel which has been build for optimised speed and also includes iptables and bluetooth modules. It also makes the battery status more accurate and it has a few bug fixes too.
Warning: The kernel is an important part of the Linux OS. A bad kernel can corrupt your Zaurus, so don't play around with it unless you know what you are doing and install the correct kernel for your model.
fsck needs to be run on the Linux filesystems from time to time to check for inconsistencies in the file systems and to fix it if there are any. fsck is similar to the chkdsk or scandisk command in DOS and Windows.
Running fsck on a mounted filesystem is not recommended so the safest way to run it on the C3000 is from the maintenance menu. Unmounting the partitions on the MicroDrive is much easier on the C3100 since it runs off the flash instead of the disk. For FAT partitions, ie /hdd3, use fsck.vfat instead of fsck.
To perform fsck via the maintenance menu do the following:
The fsck from the Maintenance Menu checks all three partitions on the MicroDrive, ie /hdd1, /hdd2 and /hdd3. It does not fsck /home or /root which is located on Flash. In fact, there is currently no known way of fscking a jffs2 filesystem which /home and /root are formatted as.
You should also regularly fsck your SD and CF card. Please unmount them before fscking them. Here is how you would fsck a FAT formatted SD card:
|
# su # umount /mnt/card # fsck.vfat /dev/mmcda1 # mount /mnt/card |
Enabling the wireless network was amazingly easy and straightforward. Just plug in the Wireless CF card and the Zaurus automatically detects it. Then run the Network config applet and enter the network info and press connect. Voila! That's it. Way too easy. This was the case using a Netgear MA701 CF Wifi card. Not all CF Wifi cards are supported so your milage may vary depending on your card.
However, you can also manually configure the network without using the Network config applet. The config files it generates are located under /home/zaurus/Applications/Network/modules and are called WLANx.conf. You will also need to edit the corresponding entry in /etc/pcmcia/wlan-ng.opts. If for any reason the applet won't let you enter a value you want (such as space in ssid), then you can edit the mentioned config files yourself.
Now this one was a bit trickier. My USB LAN adaptor came with a Linux driver, a file called rtl8150.c and all that was required was to compile it on the Zaurus (provided you got gcc to work). Anyway, I cheated and googled for rtl8150-1.o and found it :)
Next I had to install this driver which was quite easy. All that was required was to drop it into the following location: /lib/modules/2.4.20/kernel/drivers/usb/net and the hotplug mechanism in Linux would detect whenever the device was connected and enable eth0.
Now came the slightly harder part, ie the automatic configuration of the device. The network applet seems to only work for the CF based cards so it completely ignored eth0 because it came from the USB interface. After looking at how the usbdnet and wlan is configured by the hotplug mechanism, I extended the net.agent to check for eth0 as well and added net.func and net.conf to automatically configure the network once the cable was plugged in.
In addition I also wrote a script called net to change the stored network settings so I can easily switch between networks. The configuration for net are stored under /etc/sysconfig/netconf and net is invoked with the name of one of the config files as the parameter. Proxy settings for the Zaurus are stored under /home/zaurus/Applications/Network/modules/Proxies.conf which net will automatically update depending on the config being loaded.
|
# su # cp /home/zaurus/Documents/custom/rtl8150-1.o /lib/modules/2.4.20/kernel/drivers/usb/net # cp /home/zaurus/Documents/custom/net /usr/bin # cp /home/zaurus/Documents/custom/net.* /etc/hotplug # mkdir /etc/sysconfig/netconf # cp /home/zaurus/Documents/custom/*.conf /etc/sysconfig/netconf for example: # net dhcp (loads the config file dhcp.conf)# net -gui (starts with opie shell in QTopia desktop) # net -refresh (tells NetFront that its connected already) # net -resume (manually force network to resume) |
Here is a sample config file for a private network:
|
DHCPC=no IP=192.168.1.2 NETMASK=255.255.255.0 DOMAIN= GATEWAY=192.168.1.1 PROXY=0 PROXYHOST= PROXYPORT= DNS1=192.168.1.1 DNS2= |
net also has a GUI front-end using opie-sh, but in order to use the GUI, sudo needs to be configured to allow zaurus user to change the network settings, ie. ifconfig and dhcpcd. I also created a netswitch package [netswitch_0.4_arm.ipk] which will do the above steps when installed.
Some application such as NetFront insist on doing their own connection and disconnection to the network and ignore the fact that your USB network is already connected. As a workaround net has a refresh option to reset the network status whenever those programs mess with it. Simply run the following after you have launched NetFront:
|
# net refresh |
A lot of the USB network cards use either the rtl8150 chipset or are compatible with the pegasus driver. Drivers for both are included with netswitch, so installing the netswitch package should enable your USB LAN device in most cases. However, some network cards use other chipsets. You should be able to compile your own driver if you can find the driver source. See gcc section for further details.
The USB sync cable which allows you to access your Zaurus as a USB disk can also be used in TCP/IP mode which means you could use that cable to network your Zaurus and your PC.
To do this, you first need to install the USB NDIS drivers onto your PC or laptop. The Zaurus Software for the PC (Windows) does not use UniCode and hence displays garbage when run on an English version of Windows (even if you have installed the Japanese language pack and your browser can display Japanese websites without problems). To fix this, change the default Windows system locale to Japanese and restart Windows. Then run X:\PCSOFT\Setup.exe from the Zaurus CD-ROM and you will be able to read the Japanese.
Select next as appropriate and use the following as guide for the options:
(you only need the last option for the USB network)
Restart Windows when the install has finished.
The USB network driver is now installed and Zaurus Manager should had started automatically. If it has not, start it manually by running "C:\Program Files\Common Files\Sharp\SL\SSPCLINK2\ComSet.exe". You should also make a copy of C:\Program Files\Sharp Zaurus 2\drivers, best is to zip up the whole directory. This is the Zaurus USB network driver. You can use this driver to re-install the USB network or install it to another machine without having to run through the whole setup process again.
Rather than carrying a floppy, CD-ROM or another USB stick around that contains the Zaurus NDIS USB driver, you could put it on /hdd3/Documents on the Zaurus itself. When you connect your Zaurus to a computer which has not been setup with the Zaurus NDIS USB driver before, it will detect the Zaurus as a plain USB storage device and allow you to copy the driver from the Zaurus. Then once you installed the driver to the computer, it will believe that it is connected to the Zaurus via a network instead of treating the Zaurus as a dumb USB disk (provided the Zaurus is in advanced USB mode).
Now, on to the Zaurus side of the configuration. Run the PC Link tool from the Settings tab and select PC Link Setting, then select Connection USB-TCP/IP (advanced). Now just connect the USB cable (USB mini-B into Zaurus, USB A into Laptop or PC). The Windows machine should detect a new device at this point, a SL series Ver3 (NDIS 5) network adaptor, and you should be able to configure it. By default, the Zaurus would be assigned an IP address of 192.168.129.201. Assign an IP address in the same range to this new network adaptor, eg 192.168.129.101. You should now be able to ping both ways unless you have a firewall blocking it or DDE service is not enabled. If you want the Zaurus to be able to access the internet as well, you could enable internet sharing on your Windows PC (assuming it has internet connectivity and you trust Microsoft security). If you do that, Windows will reset the IP address of your Zaurus NDIS driver to 192.168.0.1 but you can change it back to whatever value you had given it before, ie 192.168.129.101
On the Zaurus side, you need to run the following commands to setup a route to your windows box:
|
# su # route add -host 192.168.129.101 usbd0 # route delete -net 192.168.129.0/24 usbd0 # route add default gw 192.168.129.101 |
Now that the route is configured, you should be able to ping servers by their IP addresses. In order to resolve the hostnames, you need to configure /etc/resolv.conf on your Zaurus with the DNS that is used on your Windows box. Assuming your DNS is 192.168.10.1, do the following:
|
# echo "nameserver 192.168.10.1" > /etc/resolv.conf |
You can also automate the above on the Zaurus by modifying /etc/hotplug/usbd.func and adding the following to the end of the usbd_net_if_up() function
if [ "$DHCPC" = "no" ]; then
GATEWAY=192.168.129.101
DNS=192.168.10.1
route add -host $GATEWAY usbd0
route delete -net `echo $GATEWAY|cut -d. -f1,2,3`.0/24 usbd0
route delete default
route add default gw $GATEWAY
echo "nameserver $DNS" > /etc/resolv.conf
fi
|
Since the Zaurus has an infra-red port (IrDA), you can use it for networking as well provided you also have an IrDA port on your PC or laptop that you can configure to use PPP over IrDA (IrCOMM or IrNet). This method of networking your Zaurus would give you the slowest network speed and you usually would not use it if the other options were available to you. But if your CF slot and USB port are tied up with other things, then using IrDA for networking might be something viable.
For this to work, you would need to first choose whether to use IrCOMM or IrNet drivers. Then you would need to make sure the chosen driver is enabled on both your Zaurus and your PC or Laptop. For IrDA connectivity, one machine has to be the host and the other the client. I will describe how to make Zaurus the host and the other PC or Laptop the client. The roles can also be easily reversed. I also did not bother with security since both machines would have to be physically in close range to each other in order for this to work.
The IrCOMM driver is by default already installed on the Zaurus and most Linux machines that have IrDA enabled. However, you would need to install a driver for Windows. On Windows 2000, for example, you will need to disable Image Transfer and install an IrCOMM driver (IrCOM2k). The following site describes how to setup IrCOMM on Windows2000: http://www.stud.uni-hannover.de/~kiszka/IrCOMM2k/English/manual.html. Once you have installed the IrCOMM driver, you can setup a new network connection (Direct Connection) using IrDA as the device and setting up Windows as the client with no password prompt.
On the Zaurus, you will need to do the following to make it start IrDA as the host:
|
# su # /etc/rc.d/init.d/irda start # pppd /dev/ircomm 9600 10.10.10.21:10.10.10.20 local noauth nodetach |
On the IrDA client, if you are running Linux (and IrCOMM is already setup), you can simply do the following:
|
# su # /etc/rc.d/init.d/irda start # pppd /dev/ircomm 9600 nodetach |
If you are running Windows (and you have setup the direct connection using IrDA as client) you can simply double click on the Direct Connection icon to connect.
Once they are paired successfully, you can ping the other box from the Zaurus as 10.10.10.20. The Zaurus would be 10.10.10.21 in this example.
To stop IrCOMM, simply press Fn + c and then run /etc/rc.d/init.d/irda stop
You will need the IrNet module on the Zaurus and your other Linux box. However, it is already installed on Windows 2000 so all you need to do on Windows is to create a new Direct Connection using IrDA interface.
To install and enable IrNet on the Zaurus, you will need to copy irnet.o to /lib/modules/2.4.20/kernel/net/irda/irnet.
|
# su # mkdir -p /lib/modules/2.4.20/kernel/net/irda/irnet # cp irnet.o /lib/modules/2.4.20/kernel/net/irda/irnet # mknod /dev/irnet c 10 187 # chown root:root /dev/irnet # chmod 644 /dev/irnet # insmod irnet # /etc/rc.d/init.d/irda start # pppd /dev/irnet 9600 10.10.10.21:10.10.10.20 local noauth nodetach |
On the IrDA client, if you are running Linux (and IrNet is already setup), you can simply do the following:
|
# su # /etc/rc.d/init.d/irda start # pppd /dev/irnet 9600 nodetach |
If you are running Windows (and you have setup the direct connection using IrDA as client) you can simply double click on the Direct Connection icon to connect.
Once they are paired successfully, you can ping the other box from the Zaurus as 10.10.10.20. The Zaurus would be 10.10.10.21 in this example.
You can also just simply install irnet_2.4.20_arm.ipk which installs and configures irnet so that it will be available even after a reboot. It also provides an opie shell script to allow you to start and stop it from the Qtopia GUI or simply run irnet start to start it from the command line and irnet stop to stop it.
If you have a CF bluetooth card or a bluetooth USB dongle, then you can set up a PAN (Personal Area Network) with other bluetooth enabled devices.
In the case you have a bluetooth enabled mobile phone with GPRS service, then you can even use bluetooth to connect to your phone using dialup networking (DUN) to use the phone's GPRS service.
However, the default Sharp ROM does not have bluetooth drivers or tools installed out of the box and you will need to setup and install those first before you can use bluetooth. See the bluetooth section for more details.
By default, a Samba service is already installed on the Zaurus. It is used when you synchronise your Zaurus with your PC while the USB cable is plugged in. You can also manually start and stop the Samba service and allow it to go over your wireless and ethernet network instead of just the USB cable. If you use the USB cable in advanced mode (with TCP/IP enabled), then you will be able to access all your devices (MicroDrive, SD card, CF card and USB disk) at the same time instead of being able to only chose one at a time in normal sync mode.
To allow Samba to be accessed via the WLAN (wlan0, wifi0) or LAN (eth0) interface, edit the following file: /usr/lib/samba/smb.conf
Find the following line: interfaces = usbd0
add your network interface after usbd0 separated by a space like this: interface = usbd0 wlan0 eth0
You might also want to add a new entry: hosts allow = 192.168.1. (whatever the IP range of your network is from which you want to connect to your Zaurus, multiple entries are separated with a space)
[global] workgroup = HOME log file = /dev/null hosts allow = 192.168.1. 192.168.129. encrypt passwords = yes coding system = utf8 client code page = 932 force create mode = 0755 strict sync = yes sync always = yes interfaces = usbd0 eth0 wlan0 #wins support = yes bind interfaces only = yes [system] comment = System Folder path = /root/samba read only = no browseable = no guest ok = yes force user = root [home] comment = for User Data path = /home/samba short preserve case = no read only = no guest ok = yes force user = zaurus |
And finally, you need to know how to start the Samba service:
|
# su # /etc/rc.d/init.d/samba start |
To stop the Samba service:
|
# su # /etc/rc.d/init.d/samba stop |
Alternatively, you can install sambacontroller [sambacontroller_0.1-0_arm.ipk] which gives you a GUI interface to do it. Remember to give it root access or else nothing will happen. Also you need to do the following to enable it to configure smb.conf (only needed for the C3000)
|
# su # mkdir -p /home/root/usr/lib/samba # cd /home/root/usr/lib/samba # ln -s /usr/lib/samba/smb.conf smb.conf |
Once you install SambaController, you can use it to start and stop samba, as well as modify smb.conf from the Configure tab.
You should also install smbpasswd [smbpasswd_0.1-1_arm.ipk] which will allow you to set the samba password.
Once you installed smbpasswd, you will need to do the following to get it working:
|
# su # ln -s /usr/local/samba/lib/codepages /usr/lib/samba/codepages # rm /usr/local/samba/lib/smb.conf # ln -s /usr/local/samba/lib/smb.conf /usr/lib/samba/smb.conf # ln -s /usr/local/samba/private/smbpasswd /etc/smbpasswd |
Note: you might need to hack the Windows registry to enable plain text password to make Windows compatible with Samba (depends on the version of Windows you are running).
This configuration forces the samba user to be the zaurus. When giving access to the samba shares, all the access rights and file permission is that of the zaurus user. This will work fine on all FAT filesystems, however, if you change some of your partitions to ext2, then you might get some permission denied errors when trying to acces, create, modify, move or delete files. If that happens, make sure the file or directory in question has sufficient access rights for the zaurus user.
In addition, if you change /hdd3 to another filesystem other than fat, then samba will stop to work for /hdd3/Documents unless you change /etc/hotplug/usbdstorage.agent and change the mount options to the appropriate filesystem type, ie change fat to someting else like ext3.
If you only want to ssh to other machines from your Zaurus, install ssh client [openssh-client_3.6.1p1_arm.ipk].
If you want your Zaurus to be accessed via ssh as well, then you need to install the following:
There already is a command line telnet client pre-installed on the Zaurus which you can use.
In order to enable the telnet daemon within inetd, uncomment the telnet entry in /etc/inetd.conf and restart inetd.
|
Make sure you use tcp wrapper as it is slightly more secure. Then enable tcp wrapper security by creating hosts.allow and hosts.deny as follows:
|
# su # echo "ALL:ALL" > /etc/hosts.deny # echo "in.telnetd: 192.168.129., 192.168.1." >> /etc/hosts.allow |
Add any IP range you want to give access to in addition to the above.
A command line ftp client is already installed, however, there are much nicer ftp clients such as ncftp [ncftp_3.1.5-1_arm.ipk] and lftp [lftp_2.6.7-1_arm.ipk]. Alternatively, there are also GUI based ftp clients such as opie-ftp [opieftp_0.9.1-20020702_arm.ipk] and jftp [jftp_0.23.1_arm.ipk].
If you want to serve as a ftp server then you need to install utftp [utftpd_0.2.4_arm.ipk] or troll-ftpd [troll-ftpd_1.28-cg2_arm.ipk]. Alternatively, you can ftp to port 4242 on the Zaurus which is a very basic ftp service.
Alternatively, you can also enable the ftp daemon within inetd. To do that, uncomment the ftp entry in /etc/inetd.conf and restart inetd.
|
Make sure you use tcp wrapper as it is slightly more secure. Then enable tcp wrapper security by creating hosts.allow and hosts.deny as follows:
|
# su # echo "ALL:ALL" > /etc/hosts.deny # echo "in.ftpd: 192.168.129., 192.168.1." >> /etc/hosts.allow |
Add any IP range you want to give access to in addition to the above.
There is a few things that need to be done before you can install Apache:
|
# su # mkdir -p /hdd2/ramfs/www # ln -sf /hdd2/ramfs /mnt/ramfs # ln -s /hdd2/ramfs/www /usr/local/apache |
Now we are ready to install apache [apache-1.3.27-php-4.2.3_0.1_arm.ipk]
When apache is installed you need to do the following:
|
# su # ln -s /usr/local/apache/bin /usr/local/apache/src |
(you can also fix apachectl to look at the right place instead of creating a link)
You can now start apache with the following command:
|
# su # cd /usr/local/apache/bin # ./apachectl start |
You can stop apache with the following command:
|
# su # cd /usr/local/apache/bin # ./apachectl stop |
I have also created a opie-sh script [apachegui_0.1_arm.ipk] which allows you to stop and start apache from the GUI. You will be required to configure sudo and add /usr/bin/apache to the allowed list for zaurus user (see sudo).
Alternatively, you can also install boa [boa_0.94.12_arm.ipk] which is a light-weight http daemon if you just want simple web server.
There are several browsers available such as NetFront, Opera, Konqueror, Firefox, Minimo, Dillo, Links, ...
keypepple [opie-keypebble_1.0.0-1_arm.ipk] can be used as a vnc client to other machines or even the local one.
fbvnc server for Qtopia
You can run a vncserver on your Zaurus to enable remote access to its desktop. However, since the available fbvnc server packages were build for other models, it does not work reliably on the C3000 and C3100.
I have build my own version of fbvncserver [fbvncserver-c3000_0.9.4-0.3_arm.ipk] which allows me to view the Zaurus desktop remotely using a vnc client such as tightvnc or using a web browser to connect to port 5800 on the Zaurus.
I also managed to get the mouse pointer working through the vnc server as well as the keyboard. However, some keys are still wrongly mapped. If you just want a read only vnc server without remote mouse and keyboard entry, then do the following to disable them:
|
# su # rm /etc/rc.d/init.d/fbvncinput # reboot |
Alternatively, you could also just restart Qtopia instead of rebooting the Zaurus. To do that instead do the following:
|
# su # /usr/local/bin/fbvncinput stop # killall qpe |
If you want to re-enable the keyboard and mouse, then just recreate the the symbolic link to fbvncinput and reboot your Zaurus:
|
# su # ln -s /usr/local/bin/fbvncinput /etc/rc.d/init.d/fbvncinput # reboot |
Alternatively, you could also just restart Qtopia instead of rebooting the Zaurus. To do that instead do the following:
|
# su # /usr/local/bin/fbvncinput start # killall qpe |
Vncserver for Debian
Vncserver is part of the Debian PocketWorkstation bundle and is intended as a loopback service to connect to the Debian instance locally. However, there is nothing preventing it from being accessed remotely as well. Vncserver listens on port 5901 and can be easily accessed through keypebble and/or tightvnc [tightvnc-1.2.9_javabin.zip]. tightvnc is a java application and can be installed on any machine that runs java. It can also be installed under a webserver such as Apache. Simply make a directory such as vnc under the document root and copy index.html and VncViewer.jar into there.
|
# mkdir -p /mnt/ramfs/www/htdocs/vnc # cp index.html /mnt/ramfs/www/htdocs/vnc # cp VncViewer.jar /mnt/ramfs/www/htdocs/vnc |
Then just point your browser at it: http://zaurus/vnc
Install the following packages:
To mount a drive type:
| # smbmount //hostname/share /mnt/smb -o username=user |
To unmount type
| # umount /mnt/smb |
Or use the smbmounter GUI interface. Make sure you give it root access (see Run as root section). The NETBIOS name needs to be an IP address or if you provide a hostname, make sure in your /etc/hosts file on your Zaurus you have given the hostname an alias in all uppercase letters. For example if you have a hostname mylaptop mapped to an IP of 192.168.1.10 then you will need the following entry:
|
192.168.1.10 mylaptop MYLAPTOP |
Once you have created an entry with a valid share name and username/password, then you can mount and unmount the share by clicking on the appropriate buttons. If the share is valid and your username/password is correct, then the smb share will be mounted under /hdd3/Documents/NetworkFolders/hostname/sharename
To mount a drive type:
| # mount /dev/sda1 /mnt/usbstorage |
To unmount type:
| # umount /mnt/usbstorage |
You can also create the following simple script to automatically mount USB drives or use the more advanced usb-storage that I've written. Here is the simple version:
|
Hint: Once a USB disk is mounted, it will appear in the Files tab as well. In addition, creating a link to the mounted drive from /home/samba will allow it to be shared as well through Samba. In general, most devices such as memory sticks, cameras, mp3 players and usb harddrives have their disk partitioned as a primary partition and can be found at /dev/sda1. However, if you have partitioned your disk as an extended partition, then it most likely would be /dev/sda5. Do a fdisk -l /dev/sda as root to check and change the above accordingly.
In addition, if you are using a USB Hub, then you will be able to attach and mount multiple devices, usually up to four disks. In such a case, the devices will be /dev/sda, /dev/sdb, /dev/sdc and /dev/sdd. I have created a more advanced script which can automatically mount up to four usb disks and also automount disks partitioned as primary or extended partitions. Place this usb-storage into /etc/hotplug/usb and remove usb-storage.off if there already is one (it will generate a new one). The script will also create mount points under /mnt and update /etc/fstab as required. Alternatively, you can simply install [automounter-c3000_0.5.0_arm.ipk].
In addition to external harddisk enclosures with USB interfaces and memory sticks, most MP3 players, cameras and some mobile phones also have an internal storage that can be mounted on the Zaurus if they have a USB interface. Most of those devices will be recognised by the Zaurus as a Mass Storage device by default, however, some newer devices are not on the Zaurus' device list and you will need to update it to let the Zaurus know about the new device (see SonyEricsson section for an example).
The automounter script only automatically mounts the first mountable partition. If you have multiple partitions, then you will need to manually mount the remaining partitions or modify the automounter script to also mount the remaining partitions.
The C3000 and C3100 can also read NTFS formatted USB disks. You will need to copy ntfs.o to /lib/modules/2.4.20/kernel/fs/ntfsfs/ or install [ntfs-zaurus_2.4.20_arm.ipk].
A useful applet that I wrote [qtopia-usbapplet_1.0.3_arm.ipk] can be used to unmount the USB disks prior to unplugging them without needing to go to the command line.
The SD and CF cards are automatically mounted when they are inserted. In addition to mounting and unmounting them, additional hooks and controls can be added to the scripts such as invoking /etc/rc.d/init.d/mntloop (automounter) to check for the presence of a swapfile and enabling it when the card is mounted and disabling it when the card is unmounted. The SD card is auto mounted by the /etc/sdcard/sd_mem_ctrl script and this is where the control hooks need to be added. The CF card is auto mounted by /etc/pcmcia/ide.
Furthermore, by default, the SD card script only attempts to mount the first partition. If you have multiple partitions, then you need to enhance the above mentioned script to automatically mount additional partitions on the CF or SD cards.
Some partitions/file systems such as / cannot be unmounted. Some are also mounted as read-only. In order to modify the files on those file systems, you need to remount them as read/write and then remount them back to read-only after you have done what you wanted.
To remount as read/write:
| # mount -o rw,remount / |
To remount as read only:
| # mount -o ro,remount / |
The following demonstrates how to configure a 128MB swap file on the C3000's harddisk. Normally a swap file is not required unless you are running many X/Qt applications and doing onboard development. Most users with X/Qt will probably only require 32MB - 64MB swapfile.
|
# su # dd if=/dev/zero of=/hdd3/swapfile bs=1048576 count=128 # mkswap /hdd3/swapfile # swapon /hdd3/swapfile # echo "/hdd3/swapfile swap defaults 0 0" >> /etc/fstab |
To enable swap:
|
# su # swapon /hdd3/swapfile |
To disable swap:
|
# su # swapoff /hdd3/swapfile |
To check swap status:
|
# cat /proc/swaps |
In addition, you can install [qtopia-memoryapplet_1.0.4_arm.ipk] which allows you to monitor both your physical memory as well as your swap. It even can manage the swapfile creation for you. This version can create a swapfile with a max. of 512MB. It also gives you the option to create the swap on the internal HDD (/hdd3), CF card and SD card. The created swap file is also called swapfile rather than .swapfile.
By default /tmp is mounted from /dev/shm as a 1MB tmpfs. This 1MB is taken from the 64MB of RAM and for most applications, 1MB of tmp is sufficient. However, some applications such as kismet or qpdf2 may require a bit more than just 1MB. Opening some large pdf files for example might be very slow or does not work at all because there is insufficient space in /tmp. Some applications can utilise /home/root/tmp instead, but not all can.
You can increase the amount of memory allocated to /tmp. But remember that memory for /tmp is taken from RAM, so increasing /tmp will decrease the amount of physical available RAM.
To do that, you need to edit /etc/fstab and /root/etc/rc.d/rc.rofilesys and replace 1m with for example 2m to increase the size of /tmp to 2MB. Remember to remount / to rw before editing rc.rofilesys and remount it back to ro once done. Finally, you need to reboot the Zaurus in order for the change to take effect.
You can use a loopback filesystem which is a mounted filesystem image to do various things such as compressing files or overlaying a filesystem with another format.
The cram filesystem is a read only compressed filesystem format. The following demonstrates how to configure cramfs to preserve some space. Only convert directories to cramfs if you are sure those directories are read-only, ie you are never going to change or add any files there. You will need either [cramfs-1.1_arm.bin.tar.gz] or [mkcramfs.tar.gz], or install gcc which also includes it. Here is an example for compressing and mounting the jre directory:
|
# su # mkcramfs /usr/lib/jdk1.3 /hdd3/jre13.cramfs # rm -r /usr/lib/jdk1.3/* # mount -t cramfs -o loop /hdd3/jre13.cramfs /usr/lib/jdk1.3 |
So far I have crammed the following:
Note that mkcramfs stores the whole image in memory before writing it to disk, so make sure you have a sufficiently sized swap file enabled before running mkcramfs.
Also, there are only 2 loop devices by default on the C3000 and C3100, but you can create more loop devices. You will need to recreate them each time you reboot, so it would be better to automate it in a start script which you can use to automatically mount the cram archives as well. Here is how you create /dev/loop2 to /dev/loop6
|
# for i in 2 3 4 5 6 > do > mknod /dev/loop$i b 7 $i > done |
You might also want to add an entry into fstab so the cramfs archives can be automatically mounted. Copy mntloop to /etc/rc.d/init.d and link it to rc5.d and rc6.d
|
# su # cp /home/zaurus/Documents/custom/mntloop /etc/rc.d/init.d # ln -s /etc/rc.d/init.d/mntloop /etc/rc.d/rc5.d/S50mnt # ln -s /etc/rc.d/init.d/mntloop /etc/rc.d/rc6.d/K50mnt # echo "/hdd3/jre13.cramfs /usr/lib/jdk1.3 cramfs loop,ro 0 0" >> /etc/fstab |
mntloop will create new loop devices and check /etc/fstab at bootup time and mount any valid entry for cramfs it finds. The Linux boot process will mount entries in /etc/fstab by default, but it can only mount 2 loop partitions because there are only that many default loop devices, so any additional entries in /etc/fstab will fail to mount. mntloop will mount any additional entries it finds after creating the extra loop devices. At system shutdown or reboot, it will cleanup and unmount anything mounted as a loop device.
The automounter package [automounter-c3000_0.5.0_arm.ipk] will install mntloop and also install the usb automounter.
Similar to the cram filesystem is the squash filesystem which is appendable, ie you can add files to it. In order to use the squash filesystem, you will need to install the squashfs module [kern-mod-squashfs_c3000-2.1-2_arm.ipk].
Alternatively, if you don't need a compressed filesystem but want a read and write access instead, then you can create an ext2 or ext3 formatted loopback filesystem. You would need to pre-allocate a chunk of space for it and the files won't be compressed at all.
For example, to create a 128MB loopback filesystem on /hdd3 called expansion.ext2 do the following:
|
# su # dd if=/dev/zero of=/hdd3/expansion.ext2 bs=1MB count=128 # echo y|/sbin/mke2fs /hdd3/expansion.ext2 # mkdir -p /home/expansion # mount -o loop -t ext2 /hdd3/expansion.ext2 /home/expansion # echo "/hdd3/expansion.ext2 /home/expansion ext2 loop,rw,noatime 0 0" >> /etc/fstab |
Alternatively, if you rather create an ext3 filesystem instead of an ext2, do the following:
|
# su # dd if=/dev/zero of=/hdd3/expansion.ext3 bs=1MB count=128 # echo y|/sbin/mke2fs -j /hdd3/expansion.ext3 # mkdir -p /home/expansion # mount -o loop -t ext3 /hdd3/expansion.ext3 /home/expansion # echo "/hdd3/expansion.ext3 /home/expansion ext3 loop,rw,noatime 0 0" >> /etc/fstab |
Now you could move all the files from /usr/local to the newly mounted loopback filesystem and then relink /usr/local to the loopback filesystem. This way, we moved some files off to hdd3 and extended the /usr/local directory to have a higher limit of 128MB. Similarly you could do something similar with /opt/QtPalmtop/share and many other directories as well. However, doing this will impact on performance a little bit. The overhead caused by the loopback filesystem and the speed of the MicroDrive are factors to consider and thus, choose files and directory that are not frequently used to be moved to the loopback filesystem.
On C3000:
|
# mkdir -p /home/expansion/usr/local # cd /usr/local # tar cvf - * | tar xvf - -C /home/expansion/usr/local # mv /hdd2/usr/local /hdd2/usr/local.bak # ln -s /home/expansion/usr/local /hdd2/usr/local |
Once you have tested that everything still works, you can remove /hdd2/usr/local.bak
On C3100:
|
# mkdir -p /home/expansion/usr/local # cd /usr/local # tar cvf - * | tar xvf - -C /home/expansion/usr/local # mv /home/root/usr/local /home/root/usr/local.bak # ln -s /home/expansion/usr/local /home/root/usr/local |
Once you have tested that everything still works, you can remove /home/root/usr/local.bak
Make sure you install the automounter package [automounter-c3000_0.5.0_arm.ipk] or else your loopback filesystem might not get automatically mounted after a reboot.
Alternatively, instead of moving files manually after they have been installed, you can also just install files to the loopback filesystem directly. The default installer won't let you do it, but my xipk install script (which is part of my ipktools package) does allow it.
By default xipk installs to /hdd3/programs, so you should mount your loopback filesystem as /hdd3/programs or change /etc/xipk.conf to contain the mount point of your loopback filesystem. Then you can do the following to install applications to hdd3:
|
# xipk ipkfile |
The default SD/MMC driver only supports SD and MMC cards of sizes up to 1GB. Using the updated driver which is taken from the C3200, it is possible to use larger SD cards. 2GB and 4GB SD cards are recognised and can be used once this updated driver is installed.
However, some applications have 1GB or 2GB (upper limit for FAT16 partitions and maximum filesize on FAT16) hardcoded as the upper limit and thus will miscalculate the amount of free space on the larger SD card. Also, this driver is not loaded during emergency boot or the NAND loader so you cannot use the larger SD card to flash your Zaurus or do NAND backup/restore.
Also, for 4GB SD cards, be very careful when ejecting the card. If you eject it while it is still mounted or while it is being written to, then you might corrupt the integrity of the device and might not be able to use it anymore. Since it is larger, it needs more time to flush the buffers and thus this problem occurs less on smaller SD cards. If this occurs, however, even a fdisk or reformatting of the SD card won't work (the smaller SD cards can be reformatted in some digital cameras but not many cameras can recognise the larger SD cards either so you cannot use them to reformat a broken SD card). To prevent this from happening in which case you need to claim a warranty replacement so make sure you got proper warranty when you purchase large SD cards, you can change the SD mount options to mount the SD card with the sync option and also increase the wait delay from 1 second to 3 or 5 seconds during the SD unmount process.
To make the SD card mount with the sync option, modify /etc/sdcard/sd_mem_ctrl change the following from
|
FATOPTS="-o noatime,umask=000,iocharset=utf8" OPTS="-o noatime" |
to the following
|
FATOPTS="-o noatime,umask=000,iocharset=utf8,sync" OPTS="-o noatime,sync" |
To increase the wait delay during the SD unmount, modify /etc/sdcontrol and change the following from
|
sleep 1 |
to the following
|
sleep 3 |
The Zaurus has an IrDa port build-in, but for security and power saving, it is disabled by default. You can temporarily enable it to receive files. Use the IR-Receive tool under the Settings tab and enable it to receive files. You should disable it once you finished receiving files.
You can also send files via IrDa. For that, select the file you want to beam from the Files Tab and hold the stylus on it for a few seconds and select Send by beam.... I have tested this feature and it works fine to send and receive files to my Laptop (Toshiba Libretto 50CT) and Mobile phone (Sony Ericsson K750i).
The stock Sharp ROM does not come with bluetooth enabled. You can add bluetooth capability to the Zaurus by either using a CF Bluetooth card or a USB Bluetooth dongle. I've tested this using a Socket Bluetooth CF card which I think is great because it is exactly the same size as a CF memory card. It has a CF I form factor and no bits sticking out when inserted into the CF slot on the Zaurus. I have also tested this with a tiny WIDCOMM compatible USB Bluetooth dongle.
In order to enable and use Bluetooth, you need to install a bluetooth stack such as bluez which includes the required kernel modules as well as needed command line tools. You can also add some plugins to the graphical Network config tool to enhance it to handle bluetooth connection types. There are currently two such plugins available, one for PAN (Personal Area Network) and one for DUN (dial up bluetooth). Once they are installed, you will see additional options in your Network config tool.
Here are the files you need:
The bluez package is essential while the others are optioanl. If you find newer updated versions of those, then use them instead. Once you have installed the above packages, you can begin to setup and configure your bluetooth stack. I have also created a single package [bluetooth-support_1.23_arm.ipk] which contains the above as well as additional obex packages. There is also a bluetooth lite package which only contains the GUI scripts. The qshdlg package needs to be installed to use the bluetooth GUI.
The first thing you need to do is check your config and make sure your bluetooth stack has initialised successfully.
|
# su # /etc/rc.d/init.d/bluetooth restart # hciconfig |
You will see something like this:
hci0: Type: UART
UP RUNNING PSCAN ISCAN RX bytes:250 acl:0 sco:0 events:12 errors:0 TX bytes:446 acl:0 sco:0 commands:12 errors:0 |
Then you need to search for bluetooth enabled devices you want to use and do the pairing.
|
# hcitool scan |
Note that unless the other bluetooth devices are configured to be visible, you won't be able to find them. Write down their mac addresses. (xx:xx:xx:xx:xx:xx is the format for the mac addresses and each device will have a unique address), eg:
|
xx:xx:xx:xx:xx:xx K750i xx:xx:xx:xx:xx:xx OQOU1 xx:xx:xx:xx:xx:xx C3000 |
To find out the capabilities of those devices do the following with their corresponding mac address:
|
# sdptool browse xx:xx:xx:xx:xx:xx |
You can initiate the pairing from each of those devices and make sure the PIN matches. The Zaurus stores its PIN in /etc/bluetooth/getpin and /etc/bluetooth/pin
/etc/bluetooth/pin contains the pin number that you enter in any other Bluetooth device that pairs with the Zaurus.
/etc/bluetooth/givepin contains the pin number that your Zaurus will automatically give to another Bluetooth device if pairing from the Zaurus. givepin is a script which must print out a string of the format "PIN:1234" where 1234 is the pin number, so you only change that part of the script to change to pin number.
Once the devices are paired with your Zaurus and you have determined what capabilities they have, you can setup and configure your Zaurus to use them.
The bluetooth qshdlg GUI or the network config tools plugins can be used to configure the following.
A PAN allows you to access services on the other bluetooth enabled devices like on a small network with TCP/IP connectivity. This requires that the other devices, usually bluetooth enabled computers, provide services such as Samba, FTP, HTTP, Telnet, SSH/SCP, etc.
On your Zaurus do the following:
|
# su # modprobe bnep # pand --role PANU --service NAP --connect xx:xx:xx:xx:xx:xx --nodetach |
(where xx:xx:xx:xx:xx:xx is the mac address of your Desktop PC or Laptop)
This will give your Zaurus an additional network interface called bnep0 if a successful connection was established.
|
# ifconfig -a |
You can then configure your PAN network like this:
|
# ifconfig bnep0 192.168.12.201 # route add default gw 192.168.12.10 |
To check the connection ping your desktop or laptop:
|
# ping 192.168.12.10 |
This assumes that you have a 192.168.12.0 private network and your PC or Laptop is 192.168.12.10
To terminate the connection just type:
|
# pand -K |
Alternatively, you could also use the PAN applet in the network config tool to do the same thing or use my bluetooth-gui script.
You can also use bluetooth to behave like a serial communication device. You can connect to other devices such as computers via a serial line similar to an IrDA connection but with a wider range and greater speed, or connect to a modem on a computer or mobile phone to dialup internet services. Using the serial communication feature, you can emulate PPP and/or use OBEX for file transfer (the IrDA beaming feature).
To setup bluetooth dialup service, for example, you can do the following to dial a GPRS on a mobile phone. First create a config file under /etc/ppp/peers as follows:
|
/dev/rfcomm0 115200 connect '/usr/sbin/chat -s -v -t 60 ABORT "NO CARRIER" ABORT "NO DIALTONE" ABORT "BUSY" "" "ATZ" OK "ATDP*99#" CONNECT' crtscts noipdefault modem usepeerdns defaultroute connect-delay 5000 remotename DUN1138428518 |
Make sure the remotename matches the id in /home/zaurus/Applications/Network/modules/Bluetooth.conf
For the Telstra GPRS no username and password was required and the network settings were DHCP. The only thing needed to be provided was the GPRS profile name which was telstra. The default dial string of atz was sufficient with *99# as the number which tells the phone to use its local profile. Additionally, *99***telstra.internet# could had been specified as well to choose a specific profile during dialing.
Then do the following:
|
# su # pppd file /etc/ppp/peers/yourconfig |
Alternatively, you could also use the Bluetooth (DUN) applet in the network config tool to do the same thing.
You can use OBEX to push and receive files similar to IrDa but with bluetooth instead.
To transfer files towards the device, you have to install the package obexftp [obextftp_0.10.7_arm.ipk]. To transfer a file, simply execute:
|
# obexftp -b 00:00:00:00:00:00 -p file.ext |
The parameter -b instructs the program to use Bluetooth. If you omit the MAC address, obexftp will scan for surrounding Bluetooth devices and select the transfer partner automatically provided your device is visible and paired.
Alternatively, you can also use obextool:
|
# obextool push file.ext xx:xx:xx:xx:xx:xx 6 |
The bluetooth GUI allows you to convenniently select files to be beamed over.
To receive a file on your Zaurus via the Bluetooth interface, an OBEX server [obexserver_1.0_arm.ipk] has to be installed and running. The service "OBEX PUSH" also has to be registered to the SDP daemon:
|
# /usr/sbin/opd --mode OBEX+BIP --channel 4 --sdp --daemonize --path /home/zaurus/Documents/Obex_Inbox |
You can add some rudimentary security to bluetooth by editing /etc/bluetooth/hcid.conf:
You need to restart the bluetooth stack in order for the changes to take effect:
|
# su # /etc/rc.d/init.d/bluetooth restart |
Yes, you can plug your USB mouse into the Zaurus but it won't work until you do the following:
|
# su # cd /home/QtPalmtop/plugins/applets # cp /home/zaurus/Documents/custom/libusbmouseapplet.so.1.0 . # ln -s libusbmouseapplet.so.1.0 libusbmouseapplet.so.1.0.0 # ln -s libusbmouseapplet.so.1.0 libusbmouseapplet.so.1 # ln -s libusbmouseapplet.so.1.0 libusbmouseapplet.so |
This custom driver package [zmouse_0.1_arm.ipk] should do the same thing.
Restart the Zaurus (or just restart Qtopia)
Alternatively, you can also install inputhelper [inputhelper_1.0.1-1_arm.ipk] which will give you mouse support as well as macro recording for your keyboard.
Yes, you can plug your USB keyboard into the Zaurus and it will work, but some of the keys will be mis-matched unless you are using a Japanese keyboard because the Zaurus' default keyboard layout is the Japanese keyboard. You need to remap the keyboard so the keystrokes matches that of the USB keyboard, but this of course will mess up the build-in keyboard on the Zaurus. You will need to switch between native keyboard and external keyboard mappings. You cannot have both keyboards mapped correctly at the same time unless your USB keyboard has the same layout as the Japanese keyboard or you hack the usbkbd kernel module.
If you want to remap the keyboard so that it is correctly mapped for an external USB keyboard, then you need to install usbkbd-en [usbkbd-en_2.4.20_arm.ipk] which once installed will automatically switch your keyboard layout depending whether your USB keyboard is plugged in or not. So with this replacement driver installed and its associated scripts, if you plug in a USB keyboard, your keymap will be automatically remapped for a US/AU QWERTY keyboard. When you unplug the keyboard, then the keymap is reverted back to the previous keymap settings.
To manually control the keyboard remapping run the following to enable the USB keymap:
|
# usbkey enable |
To disable the USB keymap and revert back to the original map, type the following:
|
# usbkey disable |
In addition, you can also modify the keytable so that on a USB keyboard, the numeric keys on the keypad behave just like you press Shift and a number key on the top row. To get this behaviour, you need to install dualkbd_2.4.20_arm.ipk.
You may be able to use your USB Joypad. Install the joyenabler script [joyenabler_1.3_arm.ipk] and plug in your joypad. If you are lucky, it will work and you can use jstest to check whether it works correctly. Now you just need to find some games that support joypad controls. You may need an additional joypad driver for your particular joypad if it does not work.
You can use some USB webcams. You will need Video4Linux support for the kernel (videodev.o) and an appropriate video driver for the webcam. I currently have compiled drivers that work with four of my six webcams. You will also need some framegrabber software to capture video frames. I am currently working on some.
USB CD-ROM drives are also supported similarly to USB harddisks. You will need to install some applications to rip and burn CD-ROMs [cdrtools-2.01.tar.gz]. A USB Mini-CD drive or a slim combo CDRW/DVD drive would be a great companion for the Zaurus.
The CD-ROM will be detected as /dev/scd0 and can be mounted as follows:
|
# su # mkdir -p /mnt/cdrom # mount /dev/scd0 /mnt/cdrom |
In addition, the following will be useful:
|
# su # mknod /dev/pg0 b 11 0 # mknod /dev/sg0 b 11 0 # ln /dev/scd0 /dev/cdrom # ln /dev/scd0 /dev/vcd # ln /dev/scd0 /dev/dvd echo "/dev/cdrom /mnt/cdrom auto ro 0 0" >> /etc/fstab |
In order to copy VCDs or DVDs from the CD to your disk, you need to install mplayer [mplayer-bvdd_1.1.5-1_arm.ipk] and mencoder [mencoder_1.1.0-1_arm.ipk]. A straight file copy won't work.
To copy the VCD video file (.dat file) do the following:
|
# mencoder vcd//:2 -oac lavc -ovc lavc -o filename.avi |
To extract the vob files from a DVD do the following:
|
# mencoder dvd://# -ovc lavc -lavcopts vcodec=msmpeg4:vpass=1 -oac mp3lame -lameopts vbr=3 -o movie.avi # mencoder dvd://# -ovc lavc -lavcopts vcodec=msmpeg4:vpass=2 -oac mp3lame -lameopts vbr=3 -o movie.avi |
See Video Conversion section on how to re-encode and compress the videos for optimal viewing on the Zaurus.
You can plug any 3.5mm microphone into the Zaurus. Since there is only one input connector, you will need to use a splitter if you want to plug in both a microphone and earphones at the same time, or use a combined headset with microphone such as the one for mobile phones and use a 2.5mm to 3.5mm adaptor.
There is nothing special you need to do in order to enable the microphone except install some recording software. There is an application called qpe-voicerec [qpe-voicerec_1.5.0-7_arm.ipk] that comes on the CD-ROM accompanying the Zaurus. You can use that to record some voice.
Alternatively, you can also use a console application called spxrec [spxrec_0.0.1_arm.ipk] to record lengthy voice sessions and then use shine [shine_0.01_arm.ipk] to encode to resulting sound file.
It is possible to connect the Zaurus to a VGA monitor or projector using a USB VGA dongle. The Kairen VGA adaptor is a USB VGA 2.0 adaptor that allows you to do slide show presentations using your Zaurus. You will need to use a USB hub to provide power as well as a USB host cable.
The Kairen USB2VGA dongle is detected as a sisusb vga device: USB2VGA dongle. It is allocated 8 output buffers with 8MB SDR SDRAM with a bus width of 32 by the driver.
The package vga-presentation_1.0.1_arm.ipk provides the driver and application for the USB dongle. I have only tested this specific model, but any USB dongle with the same SiS chipset (SiS 315E) should work also.
The VGA presentation application allows you to use the dongle for presentation. The application is limited to doing slideshows only. It slowly streams the data to the USB device which then buffers it and displays it to the monitor. I could even switch applications on the Zaurus while the presentation application continued to send data to the USB device and it renders it to the monitor. However, the VGA application crashes after a while so it needs a bit more work to iron out the bugs and fix the instability.
The image on the monitor remains even when rebooting the Zaurus so I guess the last image displayed is buffered by the USB dongle and the monitor is getting the cached data from it.
This proves that it is technically possible to have VGA out for the Zaurus via USB, however, the current state of the driver and application is very limited and needs more work. It is also very slow due to the slow USB bus speed implemented by the Zaurus.
I then plugged the USB dongle into one of my PCs and used it to mirror and split the display on a Win2000 system without any problems. The speed was ok there because it was using USB 2.0 High Speed instead of USB 2.0 Full Speed that the Zaurus uses.
At this stage, the USB dongle does not perform better than displaying via a VNC server on the Zaurus and a VNC client on a PC to display the Zaurus desktop on a larger monitor. This works fine if you can network your Zaurus and the PC, but can't be done directly to a projector so this is where the USB dongle could be useful. With a USB dongle you do not need a PC or a laptop to act as the bridge device since the Zaurus can be directly connected to a projector or monitor.
For more info, visit the way-nifty blog where the images for the USB to VGA dongle and Presenter screenshot have been borrowed from.
Similarly, there are CF cards with VGA out capabilities similar to the USB dongle, however, none of those cards are manufactured anymore so you would need to get them second hand if you can find them. But even if you find those CF cards, you still need to compile drivers and applications for them if you manage to get the driver source code so they work on the C3x00, ie 2.4.20 kernel and glibc 2.2.2.
The Sony Ericsson K750i is a mobile phone with many features. It has a 2 mega-pixel camera, and a slot for a Memory Stick Pro Duo card. I have upgraded mine to 1 GB. It also has Infrared, Bluetooth and comes with a USB interface which can be used for file transfer with the Zaurus. The phone also has a GSM modem via a serial line as well.
The memory stick can be accessed as a mass storage device when the mobile is connected to the Zaurus via a USB cable. However, the Zaurus does not recognise the manufacturer id as a mass storage device by default. To fix that, you need the append the following to /etc/hotplug/usb.usermap:
|
usb-storage 0x000f 0x0fce 0xd016 0x0000 0x0000 0x00 0x00 0x00 0x08 0x06 0x50 0x00000000 usb-storage 0x0380 0x0fce 0xd016 0x0000 0x0000 0x00 0x00 0x00 0x08 0x06 0x50 0x00000000 |
This should make the Zaurus detect the K750i's Memory Stick as a Mass Storage device the next time it is plugged in. However, if it does not, then try appending the above into /lib/modules/2.4.20/modules.usbmap and/or /etc/hotplug/usb.handmap
Once you have either configured a USB Bluetooth dongle or a Bluetooth CF card, you can transfer files between the mobile and the Zaurus wirelessly using the OBEX via bluetooth mechanism. See the bluetooth section for more details.
The K750i also offers a virtual serial interface that can be used to issue AT commands or trigger other phone functions. The serial line is accessible via the USB cable, as well as via Bluetooth. Once the link is established, you can access the data of the phone, interact with the user interface and manipulate the telephony functions.
Once you plug in the phone, the Zaurus will not only recognize the USB storage device, but also detects the built-in modem. It then should load the appropiate cdc_acm module which brings support for USB modems and ISDN adaptors. The new device will be placed under /dev/ttyACM0 and /dev/ttyACM1. The devices can be opened with minicom or any other terminal program to gain access to the phone.
Instead of relying on a wired connection, you can also use the Bluetooth interface to access this serial line.
Include the following section in the file /etc/bluetooth/rfcomm.conf:
|
rfcomm0 { bind yes; # MAC address of your phone: device 00:00:00:00:00:00; } |
Now reload the Bluetooth subsystem with /etc/init.d/bluetooth restart. If you already paired your computer with your phone, accessing the device /dev/rfcomm0 will instruct RFComm to connect to the phone without any user action needed. You can monitor the process with the rfcomm utility: rfcomm
Once a process opens the device file /dev/rfcomm0, the RFComm daemon contacts the phone. See the bluetooth section for more details.
assign passwords to root and zaurus
|
# su # passwd # passwd zaurus |
tighten down the number of terminals in /etc/securetty
|
console tty0 tty1 ttyUSB0 |
disable all non-essential listening ports
Install iptables modules and configure them as a packet filtering firewall. You can also install shorewall which is a framework that simplifies the management of iptable rules and configuration. To enable IP filtering firewall, install the following:
This version has been customised specifically for the C3000 and C3100, primarily as a firewall while connected to a wireless network. Once installed, you can specify your network interface to be firewalled by modifying /etc/shorewall/interfaces. The default is to protect the wireless cf (wlan0) network using dhcp.
Once you have established a network connection, you can enable the firewall by issuing the following command:
|
# su # shorewall start |
Once you disconnect, you can stop the firewall by issuing the following command:
|
# su # shorewall stop |
To check the status of the firewall issue the following command:
|
# shorewall status |
The iptables-additional package contains extra libraries that will allow you to use all of shorewall's features.
Setting up a VPN connection with the Z is possible. You will need to install the following packages:
Once installed, you can establish a VPN connection by issuing the following command from a console and providing the required settings:
|
# su # vpnc-connect |
To terminate the VPN session issue the following command:
|
# su # vpnc-disconnect |
Don't do this on Cacko. This is for SHARP ROM only.
install sudo [sudo_1.6.3p7-2_arm.ipk]
Once sudo is installed, you will need to configure it by using the visudo command. It will allow you to update /etc/sudoers
For example:
|
This uses the security conscious approach of only allowing sudo for the commands you want. If security is not such a concern for you and you just want to be able to sudo any commands as zaurus user without typing a password, then make it look like this instead:
|
root ALL=(ALL) ALL zaurus ALL=(ALL) NOPASSWD: ALL |
There are a few emulators for the popular game consoles for the Z. In order to use them, you will need to install SDL libraries [libsdl_1.2.5-slzaurus20050731_arm.ipk] if you have not installed them yet. There is also a nice front end to select and launch the game ROMs. Install the common emulator frontend [zemufe_0.1.1-3ex_arm.ipk]. It also has several addons which allows it to handle additional ROM types and emulators:
Then install the emulators:
The following is the key mapping for the emulator:
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
You might also need to disable the key repeater while playing the games to avoid stuttering with the sound effects. If you have keyhelper installed, then you can run the following to temporarily disable the key repeater:
|
# khctl norepeat |
Once you have finished playing the games, you can re-enable the key repeat by running the following command:
|
# khctl repeat |
You can even emulate Sony Playstation on the Zaurus with the psx4zaurus emulator. It requires the BVDD enabled SDL library. The bundle contains binaries for pdaXrom and Cacko which means you will either need Cacko or Sharp ROM with Tetsu's special kernel as well as the latest BVDD kernel module [bvdd_0.4.0-1_arm.ipk] and libSDL-bvdd [libsdl_1.2.5-bvdd-07-2_arm.ipk] installed.
Extract the psx4zaurus zip file and copy scph1001.bin to the same directory where you extracted the psx4all_cacko binary. Then place the ROM files into the games_psx directory. Use the up and down arrow keys to move between options and the x key to select an option.
I tried running Win98 on zbochs [zbochs.tgz.gz]. It works but it is extremely slow. Too slow to be much use anyway. However, if you are bend on trying, then get the Linux or Windows version of bochs and use that to create a disk image with at least 250MB (Win98 will fail to install with less than that even though Microsoft website says it needs less). Then get your Win98 CD-ROM to install Win98 into bochs which will take about 4 hours on a 1 GHz Pentium with 512MB. Once you've done that copy your disk image file, BIOS (BIOS-bochs-latest) and VGA BIOS (VGABIOS-elpin-2.40) to your Zaurus. Also don't forget to copy bochsrc as well and remove the CD-ROM config. Here is a sample bochsrc:
|
romimage: file=BIOS-bochs-latest, address=0xf0000 vgaromimage: VGABIOS-elpin-2.40 megs: 16 ips: 500000 ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 ata1: enabled=0, ioaddr1=0x170, ioaddr2=0x370, irq=15 ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e8, irq=11 ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x368, irq=9 ata0-master: type=disk, path="c.img", cylinders=507, heads=16, spt=63 floppy_bootsig_check: disabled=1 mouse: enabled=1 vga_update_interval: 300000 keyboard_serial_delay: 250 keyboard_paste_delay: 100000 keyboard_mapping: enabled=0, map= boot: disk log: bochsout.txt panic: action=ask error: action=report info: action=report debug: action=ignore private_colormap: enabled=0 |
I also tried xqt-bochs_2.1.1-1_arm.ipk which appears to be a bit faster than zbochs. Here is Win98 starting up within xqt-bochs:
Eventually, after a long time of waiting, you get this once Win98 has finally loaded:
But really, emulated Win98 runs way too slow, but running DOS inside bochs for playing DOS games is possible.
dosbox allows you to run DOS applications and games. The advantage over bochs is that it is dedicated and preconfigured to run DOS applications. chyang has built a version of dosbox that runs on the C3000 and C3100. I have packaged it as dosbox_0.6.3-3_arm.ipk. Once installed, you can edit /usr/local/dosbox/dosbox.conf and add entries after [autoexec] to automatically launch any DOS application you wish. For example:
|
[autoexec] mount c /mnt/card/dosfiles c: cd tetris tetris |
The screen flickers a bit when you launch dosbox. Just press the Cancel key a few times. When you have finished using dosbox, press Shift + Ctrl + Cancel to exit.
You might also need to install libstdc6_1.2.2_arm.ipk if you don't already have the standard C libraries installed.
Alternatively, you can also install dosbox under X/Qt (or the newer pdaXqtrom package) - [dosbox-x11_0.6.3-3_arm.ipk].
dosbox has a known bug that keys on non-US keyboards are mismatched and some keys are missing, in particular the : key. This has been hacked by me for the Zaurus version so that Fn + ; is :, and Fn + Ctrl + ; is ;
Emulating the Palm on the Z is possible provided you have a Palm ROM file. Install the following and once done, use the Files tab to locate the ROM file and tap on it. The ROM will then be launched by QPose.
basilisk [zbasiliskii_0.3_arm.ipk] also works on the Z. Since I already have BasiliskII running on my PC, I simply copied the whole MacOS7.hfv file and the ROM image to the Z and then loaded zbasilisk. It launches X/Qt and runs from within it. zbasilisk emulates the Mac just like basilisk does on the PC, although slower and without sound.
If you want to emulate the Mac on the Zaurus, install BasiliskII on your PC and download the free MacOS7 binaries. Then create a hfv disk image with HFVExplorer (200MB should be enough) and copy the MacOS7.5.3 installer binaries onto the disk image. Then create a MacOS boot disk and start basilisk booting from the floppy. Once booted, install MacOS7.5.3. You might then want to upgrade to MacOS 7.5.5
The Zaurus already comes with a Japanese-English dictionary which is great, however, it only does Japanese/English and English/Japanese. I need more languages such as German, French and Chinese.
Zdict is the dictionary that comes with the Zaurus. It seems to be almost the same with Zten which is mentioned a lot on the internet. Personally I think Zdict is easier to use than Zten.
Zdict comes with the epwing genius and kojien dictionary packages, but there are some further epwing dictionaries that can be added to either zdict or zten. The following are the ones I have chosen to add:
To install these dictionaries, simply extract them to either /hdd3/dict1 or /hdd3/dict2 and select the book from inside the zdict config menu.
ZBedict [zbedic_0.9.4-0_arm.ipk] is another dictionary package that has a large amount of dictionaries in various languages. It also has a huge wikipedia [en-wikipedia.dic.dz]. The following are dictionaries I installed for it:
Place the files under a directory such as /hdd3/Documents/dictionaries and do an autodetect in zbedic to locate them.
KanjiNirvana [kani_1.2.0_arm.ipk] is a kanji dictionary and practice tool. The following needs to be done after installation in order to update and add entries:
|
# su # chown -R zaurus:qpe /home/Qtopia/kani |
qpzidian [qpzidian_0.1_arm.ipk] is a Chinese/English - English/Chinese dictionary that allows you to look up words via Hanzi and Pinyin.
babbletower [babbletower_0.9.3_arm.ipk] is another dictionary reader written in Java. You need to install one of the J2ME implementations for Zaurus (jeode or personal profile) before you can use babbletower. It is also recommended to install jlauncher [jlauncher_0.1_arm.ipk] after you have installed one of the J2ME implementations so it helps babbletower launch the right J2ME runtime.
flite [flite_arm_bin.tar.gz] will read a text file with a male Scottish voice. To install it, simply gunzip and then untar the files to /usr/local/bin
|
# zcat flite_arm_bin.tar.gz | tar xvf - -C /usr/local/bin |
I've written a script saytime which gets the system time and passes it to flite_time. Also, I am planning to write a GUI interface (using J2ME) for flite [zflite-gui_0.3_arm.ipk] which lets you select a text file and then it will call flite with the text file as an argument or lets you type in some text and passes it to flite. In the meantime, I have used opie-sh to do something similar [zflite-gui_0.1_arm.ipk] although not as sophisticated and [zflite-gui_0.2_arm.ipk] which uses qshdlg.
Some flite options:
mbrola [mbr301h.zip] is another voice synthesis application. It is an engine that converts diphones (.pho files) to voice (.wav files) and has exchangable libraries for different voices and languages. However, it needs additional software that converts text to .pho files. FreeTTS is such an application, however, it is written for Java 1.4 which does not exist for the Sharp distro (only Java 1.3 is available for Zaurus).
Unfortunately, this means that mbrola is pretty useless until FreeTTS has been backported to Java 1.3 which is not an easy task because FreeTTS uses a lot of the 1.4 features not available in 1.3, or until jamvm which is a jre 1.4 capable java runtime replacement can be made to run on the Sharp distro.
The Movie Player that comes with the Zaurus is nice for playing MPEG files. I can just copy a .dat file from a VCD and rename it to .mpg and Movie Player can play them in a window and full screen.
However, since space is limited on the Zaurus, (yep, 4GB is nothing if you put a few vids on it), compressing the vids is a good idea. Unfortunately, Movie Player only plays MPG files.
No worries, mplayer will do the job. mplayer can play almost any format and there are also some nice GUI interface for mplayer such as kino2 and zplayer.
Here is what I do using VirtualDub to compress videos (there is a mod of virtualdub that can open mpg files as well - VirtualDub-MPEG2 1.5.10).
From the Virtual Dub Menu:
New height: 240 Filter mode: Nearest Neighbour
Data Rate: 150
Compression...
|
Then Save as AVI.
Alternatively, you can also use PocketDivXEncoder which is a derivative of mencoder to compress movies for the Zaurus. The default settings with 2-pass encoding does a pretty good job on the compression and quality. You can further tweak the settings for further compression at the loss of some quality.
The default File Manager (the Files tab) on the Zaurus is rather limited in functionality. There are, however, some better packages out there.
This is a nice application similar to Windows Explorer in tree mode with OpenWith and SendTo functionality, however, you only get the full functionality if you pay for the pro edition. The lite version is only good for moving files around but you cannot launch any files. You also get an additional file editor with the pro edition.
This application is for moving and copying files around only. The good thing about it is that it contains two tabs which represent two different directory locations between which files can be easily moved. It also has a FTP client so you can also move files between your local disk and an FTP server. However, it hangs if you copy or move large files.
This application is almost like the Explorer application mentioned above, but it does not have the FTP functionality. It has, however, a handy bookmark feature for quickly accessing frequently used directories and can open files as text files and run them (if they have appropriate file associations).
This application is great and heavily customisable. You can have a single explorer panel or split the screen into two panels either horizontally or vertically. It has a full set of file management features and even has options to run each command in sudo mode. There is also a build-in menu system which can be customised to have all your favourite apps in one handy location. It also lets you add your own shell commands in any combinations you want and has already got a set of useful shells for compressing and uncompressing files as well as search and convert. There is also a handy preview feature to view images as well as text and html files.
FileLaunch is originally written in Japanese. I am in the process of translating all the menus and messages to English. The repackaged version [filelaunch-en_0.4.5_arm.ipk] will be available once I finish the translation.
FileLaunch is based on TinyViewer and qshdlg. TinyViewer [tinyviewer_0.3.1_arm.ipk] is a small and simple file browser that allows you to preview files such as images and simple text. tvtools [tvtools_0.0.2_arm.ipk] is an addon to tinyviewer to allow you to view archive files such as zip files.
This is a nice console application like Norton Commander. It has all the file management features that one would need and also works with FTP. However, it uses the extended character set to draw the borders which does not get properly mapped with the Japanese locale unless you use the unismall font which makes the display too tiny.
The default calendar and addressbook applications aren't that good, so it is better to add something more useful such as kdepim [kdepim_2.1.2_for_SharpRom.ipk.zip] or later, which has a whole suit of PIM applications. PIM software seems to be the most popular and get updated quite frequently, so make sure to get the latest version.
Download and extract kdepim_2.1.2_for_SharpRom.ipk.zip and then install kmicrokdelibs [kmicrokdelibs_2.1.2_arm.ipk] and pimTABicon [pimTABicon_2.1.2_arm.ipk] first. Following this, do the following:
|
# mkdir /hdd3/zaurushome/kdepim # cd /home/zaurus # ln -s /hdd3/zaurushome/kdepim kdepim |
Now install whichever of the following packages you want:
You will need to install lib openssl [openssl_0.9.7d_arm.ipk] and [download sr-character-conversion_SharpROM_arm.ipk.zip] for character conversion from the sourceforge project site as well.
You might also want to add [korganizer-alarm_2.1.2_arm.ipk] which provides an alarm applet that will wake the Zaurus from suspend if an event triggers occurs and sounds an alarm.
This is used to sync KA/Pi and KO/Pi with the Sharp PIM applications on the Zaurus, which use the new Sharp DMT Pim format.
Command line tool for accessing mobile phones. It is used from Kx/Pi to sync with / export to mobile phones.
I don't use PIM stuff much and I don't sync either. My Zaurus is my laptop. All my important stuff is on my Z, so I only tried the email, calendar and address book without the rest of the sync stuff. Firefox, Thunderbird and Open Office is what I use mainly.
Java seems to have been discontinued for the Zaurus. The SL-C3000 as well as any later models such as the SL-C3100 do not get shipped with any JVM/JRE (Java Runtime) anymore. Also there has not been any newer versions of the JVM for Zauri since the 1.3.1 release. Java currently is at 1.5.x (April 2005).
There are several Java flavours available for the Zaurus. Most of them are J2ME distributions. J2ME is the micro-edition of Java which was designed for small portable devices.
There is a J2SE package available as well. J2SE is the "normal" Java that runs on most desktop and laptop computers.
You will need a J2ME flavour of Java to run most of the Java applications available for the other Zauri and PDAs, and a J2SE if you want to try running Java applications that run on PCs.
The following is a small list of available Java runtimes:
Just install one of the J2ME implementation listed above and you should be fine for most Java apps for the Zaurus.
It is technically also possible to run Swing applications with the J2ME distributions using the SwingZ library that you can add to Jeode or the Personal Profile. Simply include the swingz.jar into the classpath. However, this swing library is implementing swing 1.1 only. Most swing applications therefore won't run.
I have also created jlauncher [jlauncher_0.1_arm.ipk] which is a wrapper for evm (jeode) and cvm (personal profile) so that applications specifically packaged for either of those J2ME runtimes can be seemlessly run no matter which of the two J2ME bundles you have installed. For example, a java package bundled for jeode won't run if you only have personal profile installed unless you manually change the script for the application to use personal profile and vice versa. jlauncher will automatically handle it for you.
If you also want to run Java applications that run on your mobile phone, ie MIDP flavour of J2ME then you need to install me4se and the midp game and media classes (which you can extract from the midp 2.0 developer kit.
The following are required:
Extract at a minimum the following files from midp-2_0-src-linux-i686.zip and put them into a zip file retaining the directory structure:
Rename the zip file to something like midpx.jar and then use the following command to launch the mobile phone java game assuming all the jar files are in the current directory and we have a game Xyanide_141.jar:
|
# evm -classpath ./me4se.jar:./midpx.jar:./Xyanide_141.jar org.me4se.MIDletRunner GameMIDlet |
If you want to play another game then just specify the jar file of that game instead. The last parameter is the classname for the game. This value can be extracted from the jad file or the manifest file inside the jar file and is the last argument of the MIDlet-1 variable after the icon name.
I have also created midp-launcher [midp-launcher_0.2_arm.ipk] which is a qshdlg script providing a GUI game selector to launch game files located under /home/zaurus/Documents/games/j2me. It also includes a modified version of me4se.jar that uses the larger 640x480 screen instead of the default mobile screen size. It also includes other necessary files such as midpx.jar.
midp-launcher also has a command line interface which you can use to launch midp jar files:
|
# midp /mnt/card/opera-mini1.2.2960-basic-us.jar |
Installing the J2SE version from Blackdown is a bit trickier. If you install the ipk version, then you need to do the following hacks to get it working after the install:
|
For the bz2 compressed version, you should extract it to /usr/local and then do the following:
|
# ln -s /usr/local/j2re1.3.1/bin/java /usr/bin/java # ln -s /usr/local/j2re1.3.1/bin/armv4l /usr/local/j2re1.3.1/bin/armv5tel # ln -s /usr/local/j2re1.3.1/lib/armv4l /usr/local/j2re1.3.1/lib/armv5tel # ln -s /usr/lib/libstdc++-3-libc6.1-2-2.10.0.so /usr/lib/libstdc++-libc6.2-2.so.3 |
If you don't have the libstdc++ library then install this libstdc6_1.2.2_arm.ipk package.
Remember that if you want to run Java (J2SE) in graphics mode, ie awt and swing, then you need to install X/Qt (see X/Qt section) and you might need additional libraries which may or may not have been bundled with the blackdown distribution you installed. The following is a list of libraries you might need to add (which are contained in additional-ipaq-stuff.tar.gz):
You should also install JSSE which will add SSL support for Java 1.3.x. Download the JSSE zip file (jsse-1_0_3_03-gl.zip) from Sun's website and extract the three .jar files and copy them to the .../jre/lib/ext directory.
If you want to write Java applications on the Zaurus as well in addition to just running them, then you need a Java compiler. The following compilers are available:
I have created ipk files for the following Java applications that I've written:
More info about these Java apps can be found at the HdLSoft site.
I have also created a cramfs image with the jre and tools pre-installed and configured. All you need to do to use it is to mount the cramfs image and create some links to the executables by running java-setup.
|
# su # mkdir -p /mnt/java # mount -o loop /hdd3/java.cramfs /mnt/java # echo "/hdd3/java.cramfs /mnt/java cramfs loop 0 0" >> /etc/fstab # /mnt/java/java-setup |
See the X/Qt jumbo section for more details. You will need X/Qt if you want to run awt or swing.
Note: You should install automounter [automounter-c3000_0.5.0_arm.ipk] which automates the creation of additional loop devices and mounting of the cramfs images.
The java cramfs also has HdPad and HdCrawler pre-installed as well as kopi and jikes compiler, and tools from the GNU classpath project.
There is a way to run Java 1.4.x applications on the Zaurus through a Java compatible runtime such as JamVM. JamVM is not officially endorsed nor certified to be Java compliant, but it is able to run most Java 1.4.x and even 1.5 applications. JamVM uses libraries from the GNU classpath project to run Java applications.
jEdit can be run using JamVM:
JamVM GUI applications (AWT and Swing) require a X/Qt environment for display.
If you want to develop and compile your own C/C++ applications then you will need gcc. There are basically two flavours of development for the Zaurus. You can develop on the Zaurus itself using the on-board or native gcc compiler to build your application binaries or use a cross compiler to build your applications from a PC. The on-board development is particular useful for small applications. However, for larger applications, the Zaurus might not be powerful enough unless you want it sitting on a desk compiling your applications continuously for days. In order to use a cross-compiler, you would need a x86 based PC or something that is powerful enough to emulate it.
There are several cross compile toolchains which allow you to compile applications for the Zaurus. One of the easiest to setup and getting started with is the kopsis toolchain (http://kopsisengineering.com/kopsis/SharpZaurusSdkDsl) which uses the DSL (Damn Small Linux) Live CD technology allowing you to boot the CD and have a ready development environment or use the CD image from a x86 emulator such as qemu, bochs or vmware. There is a great vmware image of DSL made by speculatrix. You can download is from http://www.zaurus.org.uk/downloads.html
There are several on-board development images as well, but none had everything I needed, so I built my own on-board development environment based on the zgcc 2.95.2 cramfs image (zgcc2Bin.cramfs) which is derived from the Debian arm distribution. My zgcc development image (zgcc2-95-2-lite) comes in a single cramfs image and includes necessary headers and libraries to compile and build console based applications, Qtopia applications (QT/E 1.5) as well as kernel modules for the 2.4.20 kernel. This image is as small as it gets and does not include documentation.
I also made a bigger image (zgcc2-95-2) which is compressed as a squashfs image instead to save space. This larger image includes X11 headers and libraries and supports compiling X/Qt applications, especially pdaXqtrom (in fact pdaXqtrom was build using it). It can build many of the opensource applications, both console and X based ones while also retaining the ability to build Qt/E 1.5 applications.
In addition, I also build a newer and even bigger image based on gcc 2.95.3 and a host of updated tools including binutils 2.16, autoconf 2.59, automake 1.9.2, coreutils 5.0, diffutils 2.8.1, gawk 3.1.5, grep 2.5, sed 4.0.9, tar 1.15, texinfo 4.8. A patched glibc 2.2.2 is also bundled and used to link against so applications requiring fesetenv/fegetenv can be successfully compiled with this image. Additionally, this image also contains additional headers and libraries as well as tools to build QT 3.3.6 applications under X11.
The zgcc image that I build is very simple to setup. All you need to do is mount the cramfs or squashfs image and run zgcc-config. Here is an example for a squashfs image:
|
# su # mkdir -p /mnt/zgcc # mount -o loop /hdd3/zgcc2-95-2.squashfs /mnt/zgcc # echo "/hdd3/zgcc2-95-2.squashfs /mnt/zgcc squashfs loop 0 0" >> /etc/fstab # /mnt/zgcc/zgcc-config # source /mnt/zgcc/zgcc-env |
Note: You should install automounter [automounter-c3000_0.5.0_arm.ipk] which automates the creation of additional loop devices and mounting of the cramfs/squashfs images.
Your zgcc is now ready and should get automatically mounted after each reboot (provided you installed automounter, otherwise you will need to mount it manually) and the environment should also be set for you automatically each time you start a new terminal session as the zaurus user.
Temporary files during compilation go to /tmp by default, which will give you problems with larger compiles since the Sharp distro has a size of 1MB for /tmp. The easiest way to fix this is to set the TMPDIR variable and point it to somewhere with more space such as /hdd2/tmp.
|
# mkdir -p /hdd2/tmp # export TMPDIR=/hdd2/tmp |
The zgcc development image also comes with some simple samples. There is a console helloworld application and a sample Makefile to compile it. I also included a hello-qt sample which demonstrates a simple Qtopia version of helloworld. And last but not least, I also included a sample driver module and Makefile to test building kernel modules.
tmake also works for generating Makefile for Qtopia applications. You can even use configure to generate the Makefile for compiling source packages for various Linux ports and projects, in particular X/Qt and pdaXqtrom sources. Perl and xml-parser is also bundled with the larger images.
If you su to root user, then the environment variable for gcc are not set automatically. This was done on purpose. If you want to enable gcc for the root user temporarily, then do the following:
|
# source /mnt/zgcc/zgcc-env |
If you have the 2.95.3 image, then you can also compile Qt 3.3.6 applications. However, the default environment is configured for Qt/E development. To switch to QT 3.3.6, do the following:
|
# source /mnt/zgcc/qt3/qt3-env |
Note: QT 3.3.6 support is experimental. Not everything might work or compile.
You do not need to install Perl separately if you have installed the zgcc image, but if only want Perl without the gcc compiler, then do the following:
|
# su # ln -s /usr/local /home/root/usr |
Then install the following packages:
Once the packages have been installed add the following to the .profile file:
|
export LANGUAGE=C export LC_ALL=C |
You might also want to do the following:
|
# su # ln -s /usr/local/bin/perl /usr/bin/perl |
Optionally, you might also install a XML parser [xml-parser_2.31-1_arm.ipk] module for perl.
This can be a quite simple and straightforward task or a messy and frustrating experience. If you are lucky, everything just installs and you got X/Qt up and running in no time at all. However, if you are unlucky, then troubleshooting a broken installation can be a challenging and frustrating process. I've sucessfully installed the latest version of X/QT, but I have noticed that some X/Qt packages do not uninstall cleanly and will confuse reinstalls or other packages that have dependancies on them. Not all the packages that I installed are required for basic X to work under Qtopia, however, with this set of libraries, you can easily run Firefox and Debian PocketWorkstation.
You can either follow the instructions below or use the jumbo package instead. The jumbo package section is more up to date.
Install the following packages in the the given order:
Once the packages are installed, do the following:
|
# cd /opt/QtPalmtop/bin # su # ln -s Xqt X # ln -s rxvt xterm |
add the following to /home/zaurus/.xinitrc
|
xmodmap -e "keycode 69 = slash comma" xmodmap -e "keycode 70 = period question" xmodmap -e "keycode 22 = minus grave" xmodmap -e "keycode 60 = grave" |
Hint: you can use the command line program xev from within X to determine the keycode of different keys on the SL-C3000 and SL-C3100 keyboard and add the mapping with xmodmap like I did, or alternatively, you can create a .xmodmaprc file to customize your keymaps instead:
|
# xmodmap -pke > /home/zaurus/.xmodmaprc |
In addition, I modified .xinitrc and replaced the line:
| rxvt & |
with the following:
if [ -f $HOME/.xstart ]; then
$XAPP & rm $HOME/.xstart
|
Then I replaced the content of /home/QtPalmtop/bin/startx-wrapper with the following:
|
#!/bin/sh X=`ps -ef|grep X|grep qt` if [ "$X" = "" ]; then
startx
$1 & |
Create a link:
|
# ln -s /home/QtPalmtop/bin/startx-wrapper /home/QtPalmtop/bin/xlauncher |
With this modification, I can run X application such as firefox by issuing the command:
|
# xlauncher firefox |
This causes firefox to be run, and if X is already running it will just appear inside X, but if X has not been started yet, it will start X as well. This is nice for adding X application icons on the Qt desktop.
X control can be activated by pressing the menu button which allows you to switch to fullscreen and shutdown X.
Note: You can also install [xqt-debian-scripts_0.5_arm.ipk] instead of xqt-startup-scripts [xqt-startup-scripts_0.0.3_all.ipk] which will give you an even more enhanced .xinitrc and startx-wrapper and you don't need to do the above modifications manually. (It will also give you an addtional X/Qt tab and some pretty icons for X applications such as firefox, the gimp, abiword and pocketworkstation which you can delete if you don't like them)
If you want to try installing Thunderbird or Minimo, then do the following as well:
|
# su # pango-querymodules > /etc/pango/pango.modules # mkdir -p /etc/gtk-2.0 # gdk-pixbuf-query-loaders > /etc/gtk-2.0/gdk-pixbuf.loaders |
You also need to install the following patch:
This will fix the fonts problem with Thunderbird. Without this updated library the fonts in Thunderbird are not being displayed at all.
You can run Debian in chroot mode so it can coexist with the existing system (Sharp ROM with Qtopia). You will need to install X/Qt first (see above) or run it via VNC. You could also install Debian using my pre-build debian image (see the X/Qt jumbo and PocketWorkstation section), otherwise follow the instructions below to install Debian manually.
Debian needs to be installed on an ext2 filesystem with at least 195MB of free space. Unfortunately, /hdd3 is vfat. You could reformat /hdd3 as an ext2 filesystem (but that is troublesome), or install Debian to an ext2 formatted CF or SD. Alternatively, you can create a loopback filesystem on /hdd3 and format it as ext2.
Since there is space on /hdd3, creating a loopback filesystem for Debian would be the best unless you have already filled up /hdd3 in which case you can install Debian to a SD or CF card.
You can either follow the instructions below or use the jumbo package instead.
If not using the jumbo package, here is how you create the loopback filesystem with 256MB on /hdd3 (if you want to install OpenOffice, make it at least 512MB):
|
# su # cd /hdd3 # mkdir debroot # mknod /dev/loop2 b 7 2 # dd if=/dev/zero of=/hdd3/pocketworkstation bs=1M count=256 # echo y | /sbin/mke2fs pocketworkstation # mount -o loop -t ext2 /hdd3/pocketworkstation /hdd3/debroot |
Here is how you format your SD card to be ext2 (insert an empty SD card, otherwise you will lose everything that was on it):
|
# su # umount /mnt/card # mkfs.ext2 /dev/mmcda1 # mount -t ext2 /dev/mmcda1 /mnt/card # mkdir /mnt/card/debroot |
You can also leave your SD as FAT and not format it as ext2. You will need to create a loopback filesystem on your SD similar to the above sample for creating a loopback filesystem on /hdd3.
Also create a 128MB swapfile for Debian if you haven't got one yet.
|
# su # dd if=/dev/zero of=/hdd3/swapfile bs=1048576 count=128 # mkswap /hdd3/swapfile |
Now we are ready to install Debian [zaurus-debian-big-v0.17.tgz]. We will now assume installation into /hdd3/debroot. Replace with /mnt/card/debroot as appropriate. Change to the directory where zaurus-debian-big-v0.17.tgz is located and then do the following:
|
You will also need sudo (see above in sudo section). Once sudo is installed, add the following to the zaurus user's NOPASSWD list using visudo:
Install [xqt-debian-scripts_0.5_arm.ipk] (unless you installed the jumbo package) and then click on the Debian icon on Qtdesktop. Wait a bit for X and PocketDesktop to load. You won't see the taskbar at first because it is hidden beneath your Qtopia taskbar. Press your menu key to change to fullscreen mode.
If you want the icewm task bar to appear at the top instead of the bottom of the screen, then edit /home/zaurus/.icewm/settings and change the TaskBarAtTop entry.
|
TaskBarAtTop=1 # 0/1 |
If you don't want to use sudo, then you can start PocketWorkstation as root. You need to copy .xinitrc from /home/zaurus to /home/root and then make sure you use su - before you run xlauncher debian from a console/terminal window. You will also need to copy the .icevm directory. However, the icons on the Qt Desktop cannot be launched as root. You will have to configure sudo if you want to be able to launch using those icons.
|
# su # cp /home/zaurus/.xinitrc /home/root # chown root:root /home/root/.xinitrc # cd /hdd3/debroot/home # cp -R zaurus/.icewm root # cd /hdd3/debroot # su - # xlauncher debian |
The xqt-debian-scripts package is an enhanced replacement for xqt-startup-scripts. Your X will work just as before, so you will now have a X server icon and a Debian icon. Your existing X apps will launch into normal X if there is no other X server running, but if Debian is running, they will just launch into the Debian X session and assume the look and feel of icewm. They will look the same as your Debian applications, however, since the applications were launched outside the chroot environment, they retain their access to the normal environment but just appear inside the same X window session. The xqt jumbo package includes the xqt-debian-scripts package, so if have installed the xqt jumbo package, then don't install the xqt-debian package since it is already included.
Use the xlauncher command to start X applications from the command line or use it as the launcher for a Qt desktop icon (see Firefox section for an example).
The mouse function is emulated as follows:
The xlauncher also automatically mounts and binds your SD and CF cards if they are inserted (before Debian is started) so that they will be acessible from within Debian.
You can also manually mount and unmount them. Here is an example on how to mount your SD card so it can also be used from the chrooted Debian:
|
# su # mount -o bind /mnt/card /hdd3/debroot/mnt/card |
The following unmounts the SD card so it is unmounted from the chrooted Debian but still mounted for Qtopia/uLinux environment:
|
# su # umount /hdd3/debroot/mnt/card |
Note: There are only 2 loop devices by default. You might need to create more. See filesystem section for more details.
Since there are regular new builds of Debian available, this Debian image will probably be slightly out of date. You can update your Debian installation by running the following commands (assuming you are connected to the net). This step is not really necessary unless you want the latest and greatest (and have sufficient space for whatever gets thrown at you):
|
# source /root/.profile # apt-get update # apt-get upgrade # apt-get clean |
You can now use apt-get to install new applications. apt-get by default connects to the internet to get the required packages for you. If you already have the required files downloaded or don't want to connect to the internet for installations, then you can also make apt-get install your .deb files from a local directory. You would need to install the dpkg-dev package first.
Once that is done, make a directory such as /home/zaurus/Documents/Install_Files/debs and place all your .deb files in there. Then generate a package summary file (Packages.gz).
|
# mkdir -p /home/zaurus/Documents/Install_Files/debs # cp *.deb /home/zaurus/Documents/Install_Files/debs # cd /home/zaurus/Documents/Install_Files # dpkg-scanpackages debs /dev/null | gzip > debs/Packages.gz |
now add the following as the first entry in /etc/apt/sources.list
| deb file:/home/zaurus/Documents/Install_Files debs/ |
apt-get should now look for files located under /home/zaurus/Documents/Install_Files/debs when you try to install a package. You can also comment out the other entries with a hash (#) if you don't want apt-get to connect to the internet. Also, whenever you add new files to /home/zaurus/Documents/Install_Files/debs you will need to re-run dpkg-scanpackages
As an alternative to running Debian under X/Qt, you can also use VNC to run Debian instead, or even do a combination of X/Qt and VNC. The VNC and X/Qt sessions will have different settings, but if you want them to at least share some of the icevm settings, do the following:
|
# su # cd /hdd3/debroot # ln -s home/zaurus/.icevm root/.icewm |
Make sure the DEBROOT in /etc/debroot.conf is set to /hdd3/debroot
|
# The chroot directory for the Debian installation DEBROOT=/hdd3/debroot |
To start the VNC server, do the following:
|
# su # Vncserver |
Now just connect to it via a vnc client such as keypebble (see VNC section).
Yes, OpenOffice works on the C3000 and C3100! However, you will need to install PocketWorkstation first which also involves installing X/Qt (see other sections). Alternatively, you can also run OpenOffice as a cramfs image with the X/Qt jumbo package without installing PocketWorkstation (see X/Qt jumbo section for further details). The following section describes installing OpenOffice under PocketWorkstation.
You will also need 200MB of free disk space on your PocketWorkstation disk to store the installed OpenOffice files. In addition, you also need 78MB of space for the extracted installation binaries. The compressed OpenOffice installation binary [OOo_SRX645_linuxarm_install.tar.gz] is 71MB in size. If you have sufficient space, you will be able to install OpenOffice.
If you installed Debian on a 512 MB or greater SD or CF, or on a 512 MB loopback filesystem on hdd3, and have more than 200 MB of free space left on those devices, then you are ready to install OpenOffice. However, if you installed Debian on a 256 MB loopback system or don't have enough free disk space left on your loopback filesystem, but still have plenty of disk space left on hdd3, then you can create and mount an additional loopback filesystem. To create an additional loopback filesystem do the following:
|
# su # cd /hdd3 # mkdir OpenOffice.org1.1.4 # mknod /dev/loop3 b 7 3 # dd if=/dev/zero of=/hdd3/openoffice bs=1M count=256 # echo y | /sbin/mke2fs openoffice # mount -o loop -t ext2 /hdd3/openoffice /hdd3/OpenOffice.org1.1.4 # mount -o loop -t ext2 /hdd3/pocketworkstation /hdd3/debroot # mkdir -p /hdd3/debroot/home/zaurus/OpenOffice.org1.1.4 # mount -o bind /hdd3/OpenOffice.org1.1.4 /hdd3/debroot/home/zaurus/OpenOffice.org1.1.4 |
For preparing for the installation I have extracted the OpenOffice installation binary onto my SD card which can be easily shared between the Qtopia and chrooted Debian system. If you are installing to the SD card, make sure you have sufficient additional space for the extracted files or complement the space with a CF card and vice versa.
| # zcat OOo_SRX645_linuxarm_install.tar.gz | tar xvf - -C /mnt/card/Documents |
Now start the PocketWorkstation instance and open a terminal window from inside it.
|
# cd /mnt/card/Documents/instsetoo/unxlngr.pro/01/normal/ # ./setup |
Wait until the installer launches and install it chosing your desired options. Make sure you install to /home/zaurus/OpenOffice.org1.1.4 which is the default or you would need to change a few things manually to reflect the difference. Once installed you can start OpenOffice as follows:
|
# cd /home/zaurus/OpenOffice1.1.4 # ./soffice & |
If you see messages complaining about locale, then do the following:
|
# cd /home/root # echo "export LC_ALL=C" >> .profile # source .profile |
You can add OpenOffice to the icevm menu by adding the following into /etc/X11/icewm/programs
|
menu "OpenOffice" folder { prog "Writer" - sh -c "/home/zaurus/OpenOffice.org1.1.4/program/swriter" prog "Impress" - sh -c "/home/zaurus/OpenOffice.org1.1.4/program/simpress" prog "Draw" - sh -c "/home/zaurus/OpenOffice.org1.1.4/program/sdraw" prog "Math" - sh -c "/home/zaurus/OpenOffice.org1.1.4/program/smath" prog "Calc" - sh -c "/home/zaurus/OpenOffice.org1.1.4/program/scalc" } |
Make sure you are using the latest version of xqt-debian-scripts [xqt-debian-scripts_0.6_arm.ipk] which has additional support for mounting the extra OpenOffice loopback if it exists. If you have installed OpenOffice onto an additional loopback filesystem, you will also need to create /etc/openoffice.conf with the location of OpenOffice stored in it:
|
# echo "/home/zaurus/OpenOffice.org1.1.4" > /etc/openoffice.conf |
In addition you will need to modify startd to look as follows:
|
#!/bin/sh ### startup commands ### export DISPLAY=0:0 /usr/bin/icewm-session ### shutdown commands if [ -f /etc/openoffice.conf ]; then
umount /mnt/card 2>/dev/null umount /mnt/cf 2>/dev/null umount /proc |
Make sure you install X/Qt first (either manually, using X/Qt jumbo package or the X/Qt jumbo cramfs image). Once that is done you can just install Firefox and Thunderbird.
To install firefox you need either the original [firefox_0.9gtk_armv5tel.ipk] or the modified [firefox0.9-3_arm.ipk]. If you are using the original package, you need to do the following:
|
# su # chown -R zaurus:qpe /usr/lib/firefox* |
If you have a C3000, space on /home is quite scarce so it is better to move the firefox profiles to somewhere with more space.
|
# su # mkdir -p /hdd3/zaurushome # mv /home/zaurus/.mozilla /hdd3/zaurushome # ln -s /hdd3/zaurushome/.mozilla /home/zaurus/.mozilla |
You can also create an icon on the Qt desktop for Firefox (unless you are using the modified version which already includes it). Create a firefox.desktop file in the appropriate location, eg /home/QtPalmtop/apps/Applications that looks like this:
[Desktop Entry] Name = Firefox Exec = runfirefox Comment = Mozilla Firefox Icon = mozicon50 Type = Applications Display = 640x480/144dpi,480x640/144dpi |
Now create a file /home/QtPalmtop/bin/runfirefox that looks like this:
#!/bin/sh xlauncher firefox |
Make runfirefox executable. This causes firefox to be launched and X is only loaded if it is not loaded yet.
Thunderbird also requires X/Qt and works nicely as well if you have the X render update [xqt-libXrender_1.2.2_arm.ipk]. Make sure you install it if you manually installed X/Qt. If you have installed one of the xqt-jumpbopacks then there is no need to install it again since they alread include it.
To install thunderbird you need either the original [thunderbird_0.6_armv5tel.ipk] or the modified [thunderbird_0.6-3_arm.ipk]. If you are using the original package, you need to also install the pdaXrom compatible libraries [libstdc5-compat-sharp_0.5_arm.ipk] and [libiconv_1.8-2_arm.ipk].
On a C3000, space on /home is quite scarce so it is better to move the thunderbird profiles to somewhere else with more space as well.
|
# su # mkdir -p /hdd3/zaurushome # mv /home/zaurus/.thunderbird /hdd3/zaurushome # ln -s /hdd3/zaurushome/.thunderbird /home/zaurus/.thunderbird |
As an alternative, the Debian build of Mozilla Firefox and Thunderbird can also be installed and they work perfectly. You will first need to install PocketWorkstation. Once that is done installing Firefox and Thunderbird is quite easy. From within a terminal in Debian:
|
# source /root/.profile # apt-get update # apt-get install mozilla-firefox # apt-get install mozilla-thunderbird # apt-get clean |
This assumes you are connected to the net. apt-get will download all the required packages and then install the mozilla app you selected. The following is a list of files it downloads and installs:
In order to use any of the following X/Qt applications, X/Qt needs to be installed first. See the X/Qt and/or X/Qt jumbo sections on how to do that. Once you have X/Qt installed and configured, you can install any of the following applications:
QuantumStep is a MacOSX environment for the Zaurus running under X/Qt. It comes with its own X/Qt binaries which is good for you if you haven't got X/Qt installed yet, but messes up your existing X/Qt setup slightly.
By default, the QuantumStep installer extracts the files to /home/myPDA which is the flash on the C3100. For the C3000, it relinks it to /hdd2/myPDA before extracting the files.
If you want to install it to a different location, you need to have an ext2/ext3 formatted disk either natively, or as a loopback filesystem. You will need at least 20MB of disk space for QuantumStep. If you create a loopback filesystem, make it at least 32MB.
To manually install it, you will need the following files:
You will first need to extract QuantumSTEP-ZED-DR7.mypkg to an ext2/ext3 formatted disk, eg:
|
# su # dd if=/dev/zero of=/hdd3/quantumstep.ext3 # echo y | mke2fs -j /hdd3/quantumstep.ext3 # mkdir -p /mnt/quantumstep # echo "/hdd3/quantumstep.ext3 /mnt/quantumstep ext3 loop,rw,noatime 0 0" >> /etc/fstab # mount -o loop /hdd3/quantumstep.ext3 /mnt/quantumstep # zcat QuantumSTEP-ZED-DR7.mypkg | tar xvf - -C /mnt/quantumstep # cp quantumstep-setup /mnt/quantumstep # chmod 755 /mnt/quantumstep # echo "echo QuantumStep DR7.0" > /mnt/quantumstep/version #chmod 755 /mnt/quantumstep/version # cd /mnt/quantumstep # ./quantumstep-setup |
This is how it looks like once installed:
You might want to move the quantum step icon from the Application tab to the X/Qt tab, and you can delete the quantumstep icon from the Settings tab.
You need to install the following packages:
Once Wellenreiter is installed, create a network profile for it as follows:
Account
Name: wellenreiter
Config
Non-Spec ESS-ID: "ANY" (unticked)
ESS-ID: test
Network Type: 802.11 Ad-Hoc
WEP
Key Type: Disabled
PPoE
Use PPoE Authentication (unticked)
WEB Auth
Use WEB Authentication (unticked)
TCP/IP
Obtain TCP/IP information Automatically (unticked)
IP Address: 1.1.1.1
Subnet Mask: 255.255.255.0
Gateway: 1.1.1.0
DNS
Auto-detect name servers (ticked)
Default domain: (leave empty)
Proxy
No proxy
|
Connect to this network and then start wellenreiter.
You need to install the following packages:
Once you have installed the packages, you need to do the following first if you have a C3000 :
|
# su # mkdir -p /home/root/usr # ln -s /opt/QtPalmtop/lib /home/root/usr/lib |
Then you need to symlink libpcap.so.1 as follows
|
# su # ln -s /home/root/usr/lib/libpcap.so.0.6.2 /home/QtPalmtop/lib/libpcap.so.1 |
Now modify /usr/local/etc/kismet.conf to update the following entries:
suiduser=zaurus source=wlanng,wlan0,wireless sound=true speech=true festival/usr/local/bin/flite flite=true logtemplate=/home/zaurus/Documents/%n-%d-%i.%l |
Once that is done create a network profile as follows:
Account
Name: kismet
Config
Non-Spec ESS-ID: "ANY" (unticked)
ESS-ID: any
Network Type: 802.11 Ad-Hoc
WEP
Key Type: Disabled
PPoE
Use PPoE Authentication (unticked)
WEB Auth
Use WEB Authentication (unticked)
TCP/IP
Obtain TCP/IP information Automatically (unticked)
IP Address: 10.1.0.2
Subnet Mask: 255.0.0.0
Gateway: 10.1.0.1
DNS
Auto-detect name servers (unticked)
Primary DNS: 10.1.0.1
Secondary DNS:
Default domain: (leave empty)
Proxy
No proxy
|
Note: you will need to install flite for the speech and sudo if you want to launch kismet from the GUI
This works quite nicely, although I hate the default icon.
You need to install the following packages:
This version is specifically written for the C3000 and C3100, and uses the optimised bvdd drivers. Most video formats work, ie. mov, mpg, avi, asf.
You need to install the following packages for the stock Sharp ROM:
The intel wireless media extension (iwmmxt) is a feature of the Xscale CPUs which improves performance dramatically. It is utilised by the special iwmmxt edition of mplayer. It is faster than the regular version without iwmmxt but you will need Tetsu's kernel installed to take advantage of it since it needs some extra patches which the default Sharp kernel is missing but is included in Tetsu's special kernel.
kino2 and zplayer are graphical frontends for the console based mplayer. You don't need them, but they make things easier. You can use either of them with mplayer or none at all if you prefer to run mplayer from command line.
If you want to resize the default video aspect or compress them, have a look further down in the Video Conversion section.
In order to play videos fullscreen in kino2, you need to have the following settings set and enabled:
Video
|
This will let you play videos with 320x240 resolution in full screen. However, if you have files encoded with the standard PAL resolution of 352x288 then you need to have the following options as well:
Video
|
You might also want to enable some of the other settings which may give you better performance. See the Video Conversion section to see how you can re-encode your videos to make them smaller but still give you reasonable playback quality.
zplayer can play videos in window mode or fullscreen if they are encoded with 320x200 resolution without adding extra parameters. However, in order to play 352x288 encoded PAL videos in fullscreen mode, you will need to provide the following mplayer options under Tools->Configuration:
|
-vo bvdd -vm -x 320 -y 200 |
The following mplayer command line will allow you to watch fullscreen video:
|
# mplayer -vo bvdd -afm libmad -vm -vf crop=320:240 file |
The following mplayer options will give you better and smoother video playback:
|
# mplayer -nortc -noaspect -double -framedrop -cache 2048 -dr -vo bvdd -afm libmad -af lavcresample=44100 -vf crop=320:240 file |
And here is a list of the most useful mplayer options:
Although this is an older package, it will still work with the C3000 and C3100.
You need to install the following packages:
Once you installed the packages, you still need to do the following:
|
# su # ln -s /opt/QtPalmtop/opera /usr/share/opera # chown -R zaurus /home/zaurus/.opera # chown -R zaurus /home/zaurus/.operasave (optionally) # rm -r /home/QtPalmtop/opera/voice/# rm -r /home/QtPalmtop/opera/start/ |
Alternatively, some newer packages have been build for the C3000 and C3100. You can try one of these instead:
To install Doom, you need to install the following packages:
Once installed, copy prboom.cfg to /home/zaurus/.prboom, this file stores the doom key mappings which need to be fixed for the Zaurus and you can specify additional wad files too. The wad files should go into /home/QtPalmtop/shared/games/doom. You may want to copy doom.wad and doom2.wad and any other wad files you might have into that directory.
Doom runs quite nicely and you can use either doom1 or doom2 wad files.
To install Quake, install the following packages:
Change /home/QtPalmtop/bin/run_quake and update the line which looks like this:
quake -nosound -width 150 -height 135 -basedir /opt/QtPalmtop/quake/data
to:
|
quake -fullscreen -width 320 -height 240 -basedir /opt/QtPalmtop/quake/data |
Quake is awfully slow in fullscreen mode, but even if you reduce the window size, it is still quite slow.
You can also try QuakeII under Debian. This assumes you already have a working PocketWorkstation. To install quake2, you first need to make sure apt-get is able to find it. To do that edit /etc/apt/sources.list and add the following:
|
deb http://ftp.debian.org/debian sarge contrib |
Then do the following:
|
# source /root/.profile # apt-get update # apt-get install quake2 # apt-get clean |
This assumes you are connected to the net. apt-get will download all the required packages and then install quake2. The following is a list of files it downloads and installs:
It also downloads the demo version of quake2 from Id's site and extracts the pak file. Once installed, you can add to or replace the pak files which are located at /usr/share/games/quake2/baseq2. The quake2 executable is /usr/lib/games/quake2/quake2.real if you prefer to run it directly from the command line instead of launching it from the icewm menu.
To install Heretic, you need to install the following packages:
Once installed, leave the option "Display with magnified screen" ticked. It will automatically go full screen and have the right landscape orientation.
This applies to the following games:
If you cannot save your results or start the game, do the following:
|
# su # chown -R zaurus /home/zaurus/.lgames |
Once you have installed supertux you need to change /home/QtPalmtop/bin/supertux.sh (this assumes you already have sudo configured to allow you to mount and unmount, see sudo section):
|
#!/bin/sh -e BASE=`grep "/QtPalmtop/$" /usr/lib/ipkg/info/supertux.list | tail -n 1` #sudo mount ${BASE}share/supertux.cramfs ${BASE}share/supertux -o ro,loop sudo mount ${BASE}share/supertux.cramfs ${BASE}data -o ro,loop supertux #sudo umount ${BASE}share/supertux sudo umount ${BASE}data |
You need the following packages/files:
To install freeciv do the following:
|
Create freeciv.desktop in /opt/QtPalmtop/apps/Games as follows:
|
[Desktop Entry] Comment=Freeciv Exec=runciv Icon=civclient Type=Application Name=FreeCiv Display=640x480/144dpi,480x640/144dpi |
Run the TabSetting config app under Settings and press OK to save the new config. This will result in the freeciv icon to be visible in the Games tab without rebooting or restarting Qtopia.
Pico depends on the ncurses library so in order to install pico, install the following packages in the given order:
Once you have installed file [file_3.39-2_arm.ipk] it will not work until you do the following:
|
# file -C |
Packages for Cacko and Sharp ROM are generally compatible and interchangable. You can install Cacko packages onto the Sharp ROM and use Cacko feeds.
Cacko is basically an enhanced and customised Sharp ROM. As such, there are applications that are pre-installed on Cacko but don't exist on Sharp ROM. See the Cacko sub section under the Alternate Distros/ROMs section for more details about the differences between Cacko ROM and Sharp ROM.
Here are some packages extracted from Cacko that can be installed to enhance Sharp ROM:
qtopia-sysinfo_1.23-2_arm.ipk is an even more enhanced sysinfo tool based on the Cacko one and displays more detailed disk info.
qtopia-memoryapplet_1.0.4_arm.ipk is a modified version of the memory applet for the C3x00 series that can create a swapfile on /hdd3 and larger swapfile size up to 512MB.
You can also build your own packages (ipk files) if you have written some useful scripts or written some applications that you want to distribute and let others install easily with the standard package manager.
I have build a package ipktools [ipktools_0.3.5_arm.ipk] which has a set of tools for manipulating ipk files:
There currently are two ipk file formats. One uses the tar and gz format wheras the other uses a different format that is similar or the same as the format used for deb files. The Zaurus with default Sharp ROM uses the tar and gz format, which basically is a gzipped tarball (.tgz or .tar.gz) with a control structure and renamed to .ipk. If you extract this ipk file, you will find 3 files inside it - a text file called debian-binaries which just contains the string 2.0, and two .tar.gz files called control and data. The control.tar.gz file contains a text file called control which has informaton about the package such as the Maintainer's name, dependencies, version, description, etc. There may also be some optional shell scripts for doing some pre and post configuration tasks during install and uninstall. Finally, the file data.tar.gz contains all the files and directory structure of the files for their destination location.
To unpack an ipk file to see what is inside it, do the following:
|
# unpackipk somefile.ipk |
To create your own ipk file, do the following to create the ipk file structure:
|
# newipk myprojectk |
Then once you add your files in the correct locations and also update the control file with the information about your application, you can create your ipk file with the following command:
|
# makeipk myprojectk |
Back to Main Page
DISCLAIMER: The information contained on this site is provided AS IS. No assurance is given to the accuracy of the information or instructions provided. You may use this as a guide but do not blame me if anything bad happens to your system or your data. Use anything described on this site at your own risk. I shall not be made responsible for anything you do.