To prave zalezi na nastaveni kazde distribuce, co "pribali" do stock jadra, co dovoli jako modul, a co nezahrne vubec. Ja treba mel dost problem se starsi wifi kartou od Broadcomu, kdyz se Ubuntu rozhodlo, ze v jadre bude nova verze driveru, ktera se vzajemne vylucuje s tou, kterou potrebovala moje karta. Obecne ted dost mainstream distribuci upousti od prikladani driveru pro velmi stary HW.
Pri sestavovani jadra se da nastavit, co vsechno clovek chce, pomoci napr. menuconfig: https://en.wikipedia.org/wiki/Menuconfig#/media/File:Linux_x86_3.10.0-rc2_Kernel_Configuration.png .
Hloubeji do technikalii nevidim, ale predstavuju si to tak, ze kazda volba v menuconfigu bud splni a nebo nesplni nejakou template promennou, a v kodu pak jsou #ifdefy. Plus jsou samozrejme ruzne kody pro ruzne platformy, a vzdycky se sestavuje jen to, co ma smysl (opet bud pomoci #ifdef, nebo je to dano adresarovou strukturou jadra).
Dobre cteni je tady: https://superuser.com/a/370588/255660 .