There aren't many modules needed to make it work.
Also DHCP is fetching an IP as soon as you enable tethering on your phone when you don't manage your connections with wicd or another client.
The following modules are needed in your kernel:
-> Device Drivers -> Network device support -> USB Network Adapters <*> Multi-purpose USB Networking Framework -*- CDC Ethernet support (smart devices such as cable modems) <*> Host for RNDIS and ActiveSync devices (EXPERIMENTAL)
That's actually all you need. You can also build them as modules.
To use tethering with wicd, change your wired device in wicd settings from eth0 to usb0.
If your dhcpcd doesn't fetch an IP, use the following command: