The guide in my sig will run you through the process of compiling a custom kernel and adding features to an existing configuration, however it is written for Slackware which is simple by design. I cannot speak for Ubuntu or Maemo. In the least it will give you an overview of the general process in its simplest form which may help your understanding.
With regard to locating the specific drivers, you should only need to find the exact name of the driver you need, and then use the search function in menuconfig to locate it.
For example, if what you need is the ath9k atheros driver, when you enter menuconfig, just type a forward-slash (/) and enter ath9k, and you get this result:
Quote:
│ Symbol: ATH9K_DEBUG [=n] │
│ Prompt: Atheros ath9k debugging │
│ Defined at drivers/net/wireless/ath9k/Kconfig:14 │
│ Depends on: NETDEVICES && !S390 && ATH9K │
│ Location: │
│ -> Device Drivers │
│ -> Network device support (NETDEVICES [=y]) │
│ -> Wireless LAN │
│ -> Wireless LAN (IEEE 802.11) (WLAN_80211 [=n]) │
│ -> Atheros 802.11n wireless cards support (ATH9K [=n]) │
│ │
│ │
│ Symbol: ATH9K [=n] │
│ Prompt: Atheros 802.11n wireless cards support │
│ Defined at drivers/net/wireless/ath9k/Kconfig:1 │
│ Depends on: NETDEVICES && !S390 && PCI && MAC80211 && WLAN_80211 && (RFKILL || RFKILL=n) │
│ Location: │
│ -> Device Drivers │
│ -> Network device support (NETDEVICES [=y]) │
│ -> Wireless LAN │
│ -> Wireless LAN (IEEE 802.11) (WLAN_80211 [=n]) │
│ Selects: MAC80211_LEDS && LEDS_CLASS && NEW_LEDS
|
Which shows you the location and dependencies of both the ath9k driver and it's associated debugging module.