my Zaurus SL-C3000 and SL-C3100
http://www.users.on.net/~hluc/myzaurus/
61 of 212
16/09/2007 12:23
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.
Using loopback filesystem
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:
/usr/lib/jdk1.3
/usr/lib/firefox0.9gtk
/usr/lib/thunderbird-0.6
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