Subject: Re: "Device not configured" FAQ: some incompleteness
To: Hubert Feyrer <hubert@feyrer.de>
From: Pavel Cahyna <pavel@netbsd.org>
List: netbsd-docs
Date: 09/04/2006 23:44:22
On Mon, Sep 04, 2006 at 10:36:27PM +0200, Hubert Feyrer wrote:
> On Mon, 4 Sep 2006, Pavel Cahyna wrote:
> >This is in fact the same case as with the above, just with a pseudo-device
> >instead of a physical device.
> >
> >BTW your statement that "Using ktrace(1) can help you find what's going
> >on inside a command, and to determine you what's being accessed that may
> >cause the error message." is misleading. There is no need to use ktrace in
> >the case mentioned. pfctl tells you what device node did it attempt to
> >use. (/dev/pf)
>
> Want to send me a patch to update the text?
> I'm not 100% sure what you're suggesting to change...
--- index.xml.~1.11.~ Mon Sep 4 22:46:30 2006
+++ index.xml Mon Sep 4 23:29:37 2006
@@ -662,7 +662,7 @@
node in <code>/dev</code> (e.g. a SCSI disk), this means
that the driver can't find the specific device unit you
tried to access, e.g. accessing a SCSI disk that isn't
- there.
+ there, or the driver is not compiled in the kernel.
</para>
<para>
@@ -676,18 +676,33 @@
<code>/var/run/dmesg.boot</code> (a saved copy of the
boot time autoconfiguration output).
</para>
- </listitem>
- <listitem>
- <para>
- Another case where this can happen is when a certain kernel
- subsystem, e.g. some firewall, is not compiled into the
- kernel or loaded as an LKM, and when data is directed at
- that subsystem, e.g. when &man.pfctl.8; or &man.ipf.8;
- are used to load firewall rules. Using &man.ktrace.1;
- can help you find what's going on inside a command, and
- to determine you what's being accessed that may cause
- the error message.
- </para>
+
+ <para>
+ Another case where this can happen is when a certain
+ kernel subsystem which is implemented as a pseudo-device
+ is not compiled into the kernel or loaded as an LKM and a
+ configuration program wants to configure it using a device
+ node in <code>/dev</code>. For example when a firewall is
+ not compiled into the kernel or loaded as an LKM and the
+ &man.pfctl.8; or &man.ipf.8; utility attempts to load
+ firewall rules. If such utility does not print a helpful
+ message indicating what device it tried to use,
+ &man.ktrace.1; can help you find what's going on inside a
+ command, and to determine you what's being accessed that
+ may cause the error message.
+ </para>
+
+ <para>
+ And it can happen in many other cases when a nonexistent
+ device or device without a driver is accessed, like when a
+ nonexistent network interface name is passed to
+ &man.ifconfig.8; (in this case, if you are sure that you
+ have the right driver, maybe the interface must be
+ explicitely created by a command like <code>ifconfig vlan0
+ create</code> — this is true for most of the network
+ pseudo-devices like &man.sl.4;, &man.vlan.4; or
+ &man.stf.4;).
+ </para>
</listitem>
</itemizedlist>
</sect3>