USB slave support

Michal
Hi. I am completely new to all this linux and embedded system development.
I am working on my bachelor's thesis, I am running out of time and I need
your help.

So what I am trying to do is that I need USB slave driver working. I found
somewhere utility called USB gadget and read that I have to cross compile
it with kernel.

Now, I have installed Ubuntu, found some guides how to do it, but as always
when I try to work with linux, they are working only partially. I went by
this guide mostly: http://billforums.station51.net/viewtopic.php?f=4&t=20 
But when I compiled it, the uImage has only about 2 MB and the official one
has about 10 MB. So I guess I did something wrong. I tried to load it into
my device and it ends up at Kernel panic - not syncing: VFS: unable to
mount root fs on unknown-block(31,3) so I guess I need to add some stuff
there.

But here is the question: how do I influence what to add to kernel and what
not? 
and also, It would be very appreciated if you could give me some more hints
how to add this USB support there, it would help me a lot. 

Thank you :)