load a driver during autoconfiguration

John Baldwin jhb at freebsd.org
Mon Mar 9 17:24:21 UTC 2015


On Friday, March 06, 2015 04:15:22 PM Matías Perret Cantoni wrote:
> Hello!
> 
> I just wrote a simple newbus driver that works just fine when I load it
> manually with kldload(8).
> 
> Now I'd like the system to load it automatically at boot time. I've already
> added the corresponding node on the dts file.
> 
> So my questions are:
> 
> Can I just place the driver under some directory so that the system can
> probe it during auto-configuration?
> 
> Or do I need to re-compile the whole kernel for this? In that case where
> should I place my sources before compiling?

One option is to always load the driver using an entry in loader.conf or in 
the kld_list variable in /etc/rc.conf.  Another option to do on-demand loading 
is to write a custom devd handler.  You can find some examples in 
/etc/devd/usb.conf (note that that file is auto-generated).  I'm not sure what 
is output for a nomatch entry for an fdt bus.  For devices that appear at 
runtime you can run 'cat /var/run/devd.pipe' in a window to see event details 
to use to write your match rule.  However, for boot time events I think you 
will need to resort to looking at the code to decipher what variables are 
passed that you want to match on.

-- 
John Baldwin


More information about the freebsd-drivers mailing list