Please help me figuring out the problem. Is it because I didn't create uInitrd? If so, then how to create it for ARM?
I believe you're right.
Em, not necessarily... I used both hand-made and distribution-made Linaro kernels with Linaro filesystem but without initrd. And it did complain about modules indeed, but carried on.
How about adding "--debug" (yes, with two dashes) to your kernel command line to see what is the upstart actually doing?