I recommend that you not create a swap file in your internal flash memory. If you burn out your internal flash memory, then there is no replacement for it short of replacing your entire handheld computer or getting out the tweezers and needle-nose solidering iron and attempting to desolder a surface-mounted chip to replace the internal flash memory. External flash cards are cheap, some less than $1 per megabyte. Using flash memory for a swapfile will cause more rapid aging of the flash memory than using it just as a file system. In the future, perhaps we will have ferroelectric memory cards or ovonic unified memory cards that will have much higher write endurance than flash memory cards.
From the clues I have been able to piece together, it appears that the bs=32M parameter causes the dd program to create a buffer of equal size in SDRAM before it writes the contents of the buffer to the output file. So, it might be better to use a smaller buffer size and a larger count like:
dd if=/dev/zero of=swapfile bs=1M count=32
You might not have 32MB of free space in your internal flash memory. The du command will tell you how much disk space has been used.
Regarding getting the swap file to work on boot-up: If you already have a separate partition for the swap space, then you can run \"su root\" to become the system administrator and then edit the /etc/fstab file. I do not recall off the top of my head the syntax for that. Someone else here probably knows, or you can read a reference manual.
If you use a swap file, instead of a swap partition, then you might have to run \"su root\" to gain full system access on the command line and edit the /root/etc/rc.d/rc.sysinit file and uncomment the section that runs the rc.local script. The Zaurus computers with the default ROM are somewhat non-standard in the places where they place some configuration files like rc.sysinit. Then put the \"swapon /path/filename\" command in the rc.local file. Someone else on the board mentioned how to make /root writable with the mount command.