From owner-freebsd-bugs Sun Apr 30 14:12:12 1995 Return-Path: bugs-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id OAA04158 for bugs-outgoing; Sun, 30 Apr 1995 14:12:12 -0700 Received: from helix.nih.gov (helix.nih.gov [128.231.2.3]) by freefall.cdrom.com (8.6.10/8.6.6) with SMTP id OAA04151 for ; Sun, 30 Apr 1995 14:12:09 -0700 Received: by helix.nih.gov (940715.SGI.52/1.35(m-sg-1.0)) id AA11124; Sun, 30 Apr 95 17:12:05 -0400 Date: Sun, 30 Apr 95 17:12:05 -0400 From: crtb@helix.nih.gov (Chuck Bacon) Message-Id: <9504302112.AA11124@helix.nih.gov> To: bugs@FreeBSD.org Subject: pppd on FreeBSD2.0R Cc: crtb@helix.nih.gov Sender: bugs-owner@FreeBSD.org Precedence: bulk I've run SLIP absolutely without trouble since installing 2.0R. Last week I tried to replace SLIP with PPP. But I can't keep the connection up. The symptom is consistent: The connection is established, and I can do rlogin or rsh or telnet, with X up, but after about five minutes, the system wedges. Once I got a good symptom: ------------- Fatal Trap 12: page fault while in kernel mode fault virtual address 0xf0550000 fault code: supervisor read, page not present instruction pointer 0x8: 0xf0138d92 (<--not perfectly sure about 0x8) process: pppd Stopped at _pppfcs+0x16 xorb 0(%ebx),%dl ------------- Here's pppfcs, in if_ppp.c: ------------- /* * Calculate a new FCS given the current FCS and the new data. */ static u_short pppfcs(fcs, cp, len) register u_short fcs; register u_char *cp; register int len; { while (len--) fcs = PPP_FCS(fcs, *cp++); return (fcs); } ------------- Plainly, the xorb appears in the PPP_FCS macro, defined in if_ppp.h: ------------- #define PPP_FCS(fcs, c) (((fcs) >> 8) ^ fcstab[((fcs) ^ (c)) & 0xff]) ------------- Here's the relevant part of /etc/rc.local: ------------- # Added 1/23/95, changed to pppgo 4/21/95 -- wouldn't it be neat if it works! rm -f /var/spool/uucp/LCK..cua00 /usr/local/bin/pppgo & ------------- And here's pppgo: ------------- #!/bin/csh # pppgo [ -d ] # Usage as shown to get started set LOCK = /var/spool/uucp/LCK..cua00 if ( -f $LOCK ) then echo "cua00 is locked. Sorry" exit 1 endif set debug = '' if ("x$1" == 'x-d') then; set debug = echo shift endif echo Debug is .$debug. echo '$1' is $1 if (`whoami` != 'root') then echo Sorry, you must be root exit 1 endif $debug stty -f /dev/cua00 crtscts hupcl 38400 $debug /usr/sbin/pppd modem crtscts defaultroute connect /usr/local/bin/chat83\ netmask 0xfffffe00 /dev/cua00 38400 $debug netstat -nr ## echo Remember to use pppstop when done. ------------ Finally, here's my config, DAISY (comments not entirely appropriate): ------------ # # DAISY -- Generic machine with WD/AHx/NCR/BTx family disks # # DAISY,v 1.20 1994/11/18 19:10:25 jkh Exp # machine "i386" cpu "I486_CPU" ident DAISY maxusers 10 options INET #InterNETworking options FFS #Berkeley Fast Filesystem options NFS #Network Filesystem options MFS #Memory Filesystem options MSDOSFS #MSDOS Filesystem options "CD9660" #ISO 9660 Filesystem options PROCFS #Process filesystem options "COMPAT_43" #Compatible with BSD 4.3 options USER_LDT #Let users write descriptor tables options SYSVSHM options SYSVSEM options SYSVMSG options DODUMP options DDB options KTRACE options "SYMTAB_SPACE=90000" options UCONSOLE #X Console support options "FAT_CURSOR" #block cursor in syscons or pccons options "SCSI_DELAY=15" #Be pessimistic about Joe SCSI device options "NCONS=8" #4 virtual consoles config kernel root on wd0 swap on wd0 and wd1 dumps on wd0 controller isa0 controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr disk fd0 at fdc0 drive 0 disk fd1 at fdc0 drive 1 controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr disk wd0 at wdc0 drive 0 disk wd1 at wdc0 drive 1 controller aha0 at isa? port "IO_AHA0" bio irq ? drq 5 vector ahaintr controller scbus0 device sd0 device sd1 device sd2 device sd3 device cd0 #Only need one of these, the code dynamically grows device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr device npx0 at isa? port "IO_NPX" irq 13 vector npxintr device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr device lpt0 at isa? port? tty irq 7 vector lptintr device pca0 at isa? tty ## device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr pseudo-device loop pseudo-device ether pseudo-device log pseudo-device sl 2 pseudo-device ppp 2 pseudo-device pty 16 pseudo-device speaker pseudo-device gzip # Exec gzipped a.out's ------------- I don't know if the above is any use, but I'd be tickled if it sheds some light. Chuck Bacon - crtb@helix.nih.gov ABHOR SECRECY - DEFEND PRIVACY