On Fri, 25 Oct 2002, Bakul Shah wrote:

> > On Fri, Oct 25, 2002 at 06:15:55PM +0000, Dave Evans wrote:
> > > Is anyone using pppd on CURRENT.  somewhere between may and October it
> > > seems to have broken.  My KERNEL is GENERIC, my sources are dated cvs
> > > -D2002-10-20, but I now get a message about needing facilities in the
> > > kernel. However, the kernel has many ppp entry points, I haven't
> > > modified GENERIC which loads the ppp device, I've tried loading modules
> > > with ppp in their name all to no avail.
> >
> > You need to create an interface first. Run "ifconfig ppp create".
>
> Until pppd is taught to create the interface if one doesn't
> exist, this information needs to be in /usr/src/UPDATING.

The kernel side of ppp was changed to create 0 ppp interfaces by default.
This is incompatible with the user side of ppp, which determines if ppp
is in the kernel by checking if there is a ppp interface.  I use the
following low-quality work around:

%%%
Index: sys-bsd.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/pppd/sys-bsd.c,v
retrieving revision 1.18
diff -u -2 -r1.18 sys-bsd.c
--- sys-bsd.c   17 Sep 2002 15:52:35 -0000      1.18
+++ sys-bsd.c   17 Sep 2002 19:16:58 -0000
@@ -183,4 +183,19 @@
        return 1;               /* can't tell */

+    /*
+     * XXX interface doesn't exist until you look at it right.
+     * devfs me harder.
+     */
+    {
+    int fd, newdisc, olddisc;
+
+    fd = open("/dev/cuaa1", O_RDWR);   /* XXX my tty hard-coded. */
+    ioctl(fd, TIOCGETD, &olddisc);     /* XXX no error handling. */
+    newdisc = PPPDISC;
+    ioctl(fd, TIOCSETD, &newdisc);     /* XXX no error handling. */
+    ioctl(fd, TIOCSETD, &olddisc);     /* XXX no error handling. */
+    close(fd);
+    }
+
     strncpy(ifr.ifr_name, "ppp0", sizeof (ifr.ifr_name));
     ok = ioctl(s, SIOCGIFFLAGS, (caddr_t) &ifr) >= 0;
%%%

devfs is not really involved here.  The bug just belongs to the same
class of complications given by devfs.

Bruce


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to