Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Mar 2015 12:03:13 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        freebsd-drivers@freebsd.org, =?utf-8?Q?Mat=C3=ADas_Perret_Cantoni?= <perretcantonim@gmail.com>
Subject:   Re: load a driver during autoconfiguration
Message-ID:  <21B44158-07C3-47AE-8132-BE5F2B408697@bsdimp.com>
In-Reply-To: <5070289.9Ox4kP5ZdP@ralph.baldwin.cx>
References:  <CADLKG03WSkbPPWwDkxd3NPa1q0cVP8C0JvA0T=Jwy2=wGv_tiA@mail.gmail.com> <5070289.9Ox4kP5ZdP@ralph.baldwin.cx>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]

> On Mar 9, 2015, at 10:01 AM, John Baldwin <jhb@FreeBSD.org> wrote:
> 
> 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.

devinfo -v will tell you the pnp info, which is what you’ll need to match the
device. This will load the driver after boot. It’s almost always easier, however,
to just add the driver to your /boot/loader.conf file.

Sometime before BSDcan this year, there will be the option to automatically load
drivers based on PNP information from the parent bus coupled with the tables
compiled into the .ko files, but that’s not possible today.

Warner


[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJU/eBhAAoJEGwc0Sh9sBEAz2MQAKl+uqfOAgW33UU1aU1SUHAq
BWRekPCqXJS74DYj2PC2Vs6QfJxqS1RqeEWysErGhS8XW+t+yuVqi2QTTIc1DErB
8e0UiTBItxMBRWBj6nS6qq+ulCmvnJWiIvL3R/r303pu2qXH5elNWm/j/G8/FlUC
+WphHb86oPlbMRBhW8TVJcQ52fNPYtHQcwTmDLgu6T/L+Umty7vu0XJyUiod760m
LsorjwzbxX/DJ8VcT/CJg6h9e3MjxfQTEEb8s3y47nvZp7mpUxDeS+7xJTKoiQ1e
6rhDRIAKcE9ScyVRNt2RqIE7fz4El3Wj7smJSORSAlIvEetzEfzpl9xAdibhfy08
W4QJhDQyAJtwR+kvbeNS8fgB54REexG1Di5qMM9ngT9g8Y3bzxCLCkYw3216HerL
X2+aWBVOBjuk78hFSDIvZ665jzbj6wi7RWwczYnqetkB3mbp5YIQ11+imTGcxGkq
kN2UZgTS4maD4C5hoj71exyyC+jw9pb87kaBNqDqsEpq1UIojlu1pS5xB+mQ7cXL
NB0H/W9eJPMo/vpJoC2/kVZs0BL75L4i3bHl9bOhCeduAEfmgaSdj3EyYuyW67sr
BrI6oj2b0qJVAW0XX7gf4YbYZw2q+Znc30/SwIEGcOJK2IAe/48dkiRyBct9tP2D
Zg4W4tmM3inKIvrSKVJL
=gcoj
-----END PGP SIGNATURE-----
home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?21B44158-07C3-47AE-8132-BE5F2B408697>