Hola,
Si quieres tener todo el hardware funcionando a la primera, lo mejor es utilizar una distribución que lo detecte automáticamente. Ejemplo de ellos son las versiones recientes de RedHat, Mandrake o Suse.
Los drivers pueden ir incrustados en el kernel o bien como módulos que se pueden cargar una vez arrancando el kernel.
Si tu hardware es muy nuevo entonces es preferible que utilices un kernel reciente que probablemente ya incluirá el driver que te hace falta.
Las distribuciones traen compilados los drivers, normalmente los más utilizandos se encuentran dentro del kernel y los menos utilizados como módulos.
Si estás ejecutando (uname -r para conocer la versión), por ejemplo, el kernel 2.4.19 y compilas los drivers para la misma versión de kernel entonces se machacan los que tuvieras por los compilados. Los drivers compilados se instalan en un directorio de Linux que depende de la versión de kernel para la que fueron compilados. Por tanto, si compilas para kernel 2.4.20 pero estás ejecutando el kernel 2.4.19 entonces no vas a machacar los drivers del kernel 2.4.19.
Muy importante, debes compilar los drivers para la misma versión de kernel que vas a ejecutar. Compilar drivers para una versión diferente de kernel que vayas a ejecutar puede producir graves problemas como cuelgues.
Saludos,
Josep