listing all modules compiled into a kernel instance

Carl k0802647 at telus.net
Tue Mar 1 20:20:05 UTC 2011


On 2011-03-01 3:20 AM, Maxim Khitrov wrote:
> kldstat provides information about components that were loaded
> dynamically. If your kernel was built with INCLUDE_CONFIG_FILE option
> (enabled by default in GENERIC), then you can see the static
> components using:
>
> config -x /boot/kernel/kernel

As has been shown though, "kldstat -v" actually does show static 
components, at least those declared with DRIVER_MODULE(), and "config 
-x" does not improve on the situation at all because components like 
ucom were not cited in the configuration file. IMHO, there needs to be a 
reliable way to query an existing kernel that yields a _complete_ list 
of which components are actually included.

On 2011-03-01 5:00 AM, John Baldwin wrote:
>> Maybe ucom doesn't appear because it doesn't have a DRIVER_MODULE()
>> declaration (because it isn't a driver).
>
> Yes, that would explain it.

I can explicitly include ucom in a kernel by adding "device ucom" in the 
configuration file, in which case it would call DRIVER_MODULE(), right? 
That would then make it appear in the "kldstat -v" list? So why is it a 
driver when it's done explicitly, but not a driver when done implicitly? 
That makes no sense to me since the functionality doesn't change. IMHO, 
this is a bug that needs to be fixed, not just for ucom but any 
implicitly included driver.

Who should submit a bug report?

Carl                                                   / K0802647


More information about the freebsd-hackers mailing list