How to get a list of all kernel modules

M. Warner Losh imp at
Sun Jun 17 06:14:59 UTC 2007

In message: <4674CE41.7000103 at>
            "[LoN]Kamikaze" <LoN_Kamikaze at> writes:
: [LoN]Kamikaze wrote:
: > M. Warner Losh wrote:
: >> Greetings,
: >>
: >> is there an easy way to get a list of all the ports that compile
: >> kernel modules?  I'd like to add them to my kernel build.  I did this
: >> once before, but I lost all information on how to do it when I lost my
: >> laptop's hard disk after the last bsdcan...
: >>
: >> Warner
: > 
: > # find /boot/ -type f -exec pkg_info -W \{} \;
: Sorry about that, it takes very long. Better is:
: # sh -c 'for mod in `pkg_info -qaL|grep -E "^/+boot"`; { pkg_info -W "$mod"; }

This sounds great, except for one problem.  This will tell me all the
modules that I've installed that are from ports.  Since I've never
installed any from ports, this will not work for what I want.  I want
a list of all the ports in /usr/ports that install kernel modules.
I'd even settle for a list of all the ports in /usr/ports that only
install modules.

Something like
	egrep -l '\.ko$' /usr/ports/*/*/pkg-plist | sed -e s=/pkg-plist//
might do the trick, but that blows the command line limits out of the
water.  Replacing egrep with 'find' would need to be carefully
constructed to avoid false positives in any work directories I have
laying around.  I was hoping for something a little easier to do...


More information about the freebsd-ports mailing list