I am still having a hard time understanding kernel drivers vs module's in practical use:
I understand a kernel driver, is a driver that Linus, et al, have coded into the kernel, so if i have a peice of hardware, and I compile a kernel with that device's driver turned on, then my device will work.
If i build that kernel driver as a module, the driver remains outside the kernel, but still availible for use. As a module I can rmmod or insmod when i need to use the device.
My foggy'ness comes from a few things.
1. if the driver is built into the kernel, will it show up in lsmod? 2. if the driver does not show up in lsmod, how do i know if its loaded? 3. weather it's a built in driver or a module, how do i associate the driver (or module) with a particular device? 4. if the device does not have a driver in the kernel, I cannot build a custom kernel to include it, nor can I build it as a module from the kernel source. So: 5. if I get the driver from the vendor, it will build a module for me, based on my kernel-source or kernel-headers??? Then what? again, see #3: how do i associate the module with my device?
This is a general linux quandry, but this time i have a debian stable install and have inserted a QLogic HBA. lsmod does show qla2xxx, but it doesn't seem to be functioning as it isn't logging into the fiber switch.