Synopsis: Problem with SVR4_MAKEDEV on i386 platforms. NetBSD versions: 1.3 and 1.3.1, 1.3.2, 1.3.3, -current to 19990419 Thanks to: Klaus Klein Reported in NetBSD Advisory: NetBSD-SA1999-009 Notes: cd to /usr/src and run `patch -p < thisfile' to apply. Index: share/examples/emul/svr4/etc/SVR4_MAKEDEV =================================================================== RCS file: /cvsroot/src/share/examples/emul/svr4/etc/SVR4_MAKEDEV,v retrieving revision 1.1.2.1 diff -c -r1.1.2.1 SVR4_MAKEDEV *** SVR4_MAKEDEV 1998/11/10 05:47:54 1.1.2.1 --- SVR4_MAKEDEV 1999/04/19 15:16:59 *************** *** 1,5 **** #!/bin/sh - ! # $NetBSD: SVR4_MAKEDEV,v 1.1.2.1 1998/11/10 05:47:54 cgd Exp $ # # Copyright (c) 1995 Christos Zoulas # Copyright (c) 1997 Todd Vierling --- 1,5 ---- #!/bin/sh - ! # $NetBSD: SVR4_MAKEDEV,v 1.5 1999/04/19 14:46:27 kleink Exp $ # # Copyright (c) 1995 Christos Zoulas # Copyright (c) 1997 Todd Vierling *************** *** 43,50 **** --- 43,60 ---- # wabi Windows emulation; /dev/null for now # PATH=/sbin:/bin/:/usr/bin:/usr/sbin:/usr/etc + MACHINE=${MACHINE:-`/usr/bin/uname -m`} umask 77 + case $MACHINE in + i386) major=43;; + sparc) major=43;; + *) + echo $MACHINE: unsupported machine >&2 + exit 1 + ;; + esac + for i do *************** *** 60,66 **** ptmx) rm -f $i ! mknod $i c 43 10 chown bin.bin $i chmod 666 $i ;; --- 70,76 ---- ptmx) rm -f $i ! mknod $i c $major 10 chown bin.bin $i chmod 666 $i ;; *************** *** 89,95 **** tcp) rm -f $i ! mknod $i c 43 35 chown bin.bin $i chmod 666 $i ;; --- 99,105 ---- tcp) rm -f $i ! mknod $i c $major 35 chown bin.bin $i chmod 666 $i ;; *************** *** 97,131 **** udp) rm -f $i ! mknod $i c 43 36 chown bin.bin $i chmod 666 $i ;; rawip) rm -f $i ! mknod $i c 43 37 chown bin.bin $i chmod 666 $i ;; ticlts) rm -f $i ! mknod $i c 43 38 chown bin.bin $i chmod 666 $i ;; ticotsord) rm -f $i ! mknod $i c 43 39 chown bin.bin $i chmod 666 $i ;; ticots) rm -f $i ! mknod $i c 43 40 chown bin.bin $i chmod 666 $i ;; --- 107,141 ---- udp) rm -f $i ! mknod $i c $major 36 chown bin.bin $i chmod 666 $i ;; rawip) rm -f $i ! mknod $i c $major 37 chown bin.bin $i chmod 666 $i ;; ticlts) rm -f $i ! mknod $i c $major 38 chown bin.bin $i chmod 666 $i ;; ticotsord) rm -f $i ! mknod $i c $major 39 chown bin.bin $i chmod 666 $i ;; ticots) rm -f $i ! mknod $i c $major 40 chown bin.bin $i chmod 666 $i ;; *************** *** 133,145 **** wabi) rm -f $i ! mknod $i c 3 2 # /dev/null chown bin.bin $i chmod 666 $i ;; *) ! echo $i: unknown device ;; esac done --- 143,161 ---- wabi) rm -f $i ! case $MACHINE in ! sparc) ! mknod $i c 3 2;; # /dev/null ! i386) ! mknod $i c 2 2;; # /dev/null ! esac chown bin.bin $i chmod 666 $i ;; *) ! echo $i: unknown device 2>&1 ! exit 1 ;; esac done Index: share/man/man8/compat_svr4.8 =================================================================== RCS file: /cvsroot/src/share/man/man8/compat_svr4.8,v retrieving revision 1.6.2.2 diff -c -r1.6.2.2 compat_svr4.8 *** compat_svr4.8 1998/11/10 05:50:00 1.6.2.2 --- compat_svr4.8 1999/04/19 15:17:00 *************** *** 1,4 **** ! .\" $NetBSD: compat_svr4.8,v 1.6.2.2 1998/11/10 05:50:00 cgd Exp $ .\" .\" Copyright (c) 1996 Christos Zoulas .\" All rights reserved. --- 1,4 ---- ! .\" $NetBSD: compat_svr4.8,v 1.14 1999/04/19 14:46:27 kleink Exp $ .\" .\" Copyright (c) 1996 Christos Zoulas .\" All rights reserved. *************** *** 31,37 **** .\" .\" Stolen from compat_linux.8,v 1.2 1995/10/16 20:17:59 fvdl .\" ! .Dd July 6, 1996 .Dt COMPAT_SVR4 8 .Os NetBSD .Sh NAME --- 31,37 ---- .\" .\" Stolen from compat_linux.8,v 1.2 1995/10/16 20:17:59 fvdl .\" ! .Dd April 19, 1999 .Dt COMPAT_SVR4 8 .Os NetBSD .Sh NAME *************** *** 138,143 **** --- 138,152 ---- .br .It (me@netbsd) cd /emul/svr4/dev; sh SVR4_MAKEDEV all .El + .Pp + As the major number allocated for emulation of SVR4 devices may vary between + .Nx + platforms, the SVR4_MAKEDEV script utilizes the + .Xr uname 1 + command to determine the architecture the devices nodes are being created for; + this can be overridden by setting the + .Ev MACHINE + environment variable accordingly. .El .Pp An alternative method is to mount a whole SVR4 partition in /emul/svr4