AFAIK the USB host is a function of the MMSP2, so you should be able to get the source for that from MagicEyes (it's probably already on Open2x). So you could build that driver against the GP2X kernel source we already have, and hopefully it would just work.
If the existing kernel doesn't have higher level USB support (I think it does...) then you'd need to build that yourself - hopefully you can do it as a module and insert it into the existing kernel, but if not, you'll have to build the whole kernel from scratch.
The only thing that would require source beyond what you already have is building the whole kernel from scratch - if you do it with the source we have now, you won't have support for some aspects of the system... apparently.