Date: Sun, 17 Jun 2007 00:42:01 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: LoN_Kamikaze@gmx.de Cc: ports@FreeBSD.org Subject: Re: How to get a list of all kernel modules Message-ID: <20070617.004201.-1804635381.imp@bsdimp.com> In-Reply-To: <4674D5B2.4000104@gmx.de> References: <4674CE41.7000103@gmx.de> <20070617.001516.-1615142562.imp@bsdimp.com> <4674D5B2.4000104@gmx.de>
index | next in thread | previous in thread | raw e-mail
In message: <4674D5B2.4000104@gmx.de>
"[LoN]Kamikaze" <LoN_Kamikaze@gmx.de> writes:
: M. Warner Losh wrote:
: > In message: <4674CE41.7000103@gmx.de>
: > "[LoN]Kamikaze" <LoN_Kamikaze@gmx.de> 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...
: >
: > Warner
:
: I see I misunderstood, sorry about that. So how about that one:
:
: # find /usr/ports/ -type f -name pkg-plist -exec grep -El
: '^@cwd[[:space:]]+/boot' \{} \; | sed -E 's|^/usr/ports/||1' | sed -E
: 's|/pkg-plist$||1'
:
: It only works with ports that have a pkg-plist file, though.
This won't quite work because there are things like:
% cat multimedia/pvr250/pkg-plist
@unexec rm %%MODULESDIR%%/cxm.ko
@unexec rm %%MODULESDIR%%/cxm_iic.ko
bin/pvr250-setchannel
I'd kinda hoped there was a pseudo category that I could key off of.
pvr250 is also kinda a mess too, since I can't build it w/o a CD I
don't have...
Warner
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070617.004201.-1804635381.imp>
