wicked, you write you edited /etc/rc. As far as I can find it's never called.
But to be honest, it's not clear to me how the boot procedure works. Initrd is loaded, and /linuxrc is executed.
Normally I'd expect it to mount the 'real rootfs', the ubifs in flash, in this case, and call switch_root, pivot_root or chroot to get that rootfs active, and in most cases /sbin/init in the new rootfs is called.
Another approach (seen in IomegaEMC and ZyXEL) is to keep the initrd, and mount the main part of the firmware on /usr, or something like that.
In this case /linuxrc seems to have as main function to update the firmware. And the script ends with:
echo "End of InitRD -- transfer to /sbin/init" 1>&2
# End of file
So apparently /sbin/init is expected to be called when /linuxrc ends. /sbin/init is a symlink to busybox, and the busybox init a light version of SystemV Init. There is no /etc/inittab, so it's perfectly possible that /etc/rc will be called. But I still can't find the ubifs being invoked anywhere.
What I *do* see, is that some network related modules are loaded, mii.ko and gmac.ko. But those modules are not available in initrd, only in the real rootfs!
BTW, I think the bootscripts are sloppy. It's hard to read, no functions are used, and it seems the same actions are repeated over and over.
In your case I would mount a partition early in /linuxrc, and redirect stderr and stdout:
mkdir -p /log
mount /dev/sda1 /log
exec >>/log/logfile 2>&1
echo "=== START of boot ==="
and maybe repeat that in /etc/rc.