diff -r 18e1e1c3aaf1 rc/bin/cpurc --- a/rc/bin/cpurc Tue Apr 06 14:43:38 2021 +0200 +++ b/rc/bin/cpurc Wed Apr 07 00:39:55 2021 -0700 @@ -59,7 +59,8 @@ addrs=`{ndb/query -a sys $sysname ether} if(! ~ $#addrs 0){ for(ether in /net/ether*){ - addr=`{cat $ether/addr} + if (test -d $ether) + addr=`{cat $ether/addr} switch($addr){ case $addrs # try /lib/ndb first, then do dhcp/slaac diff -r 18e1e1c3aaf1 rc/bin/nusbrc --- a/rc/bin/nusbrc Tue Apr 06 14:43:38 2021 +0200 +++ b/rc/bin/nusbrc Wed Apr 07 00:39:55 2021 -0700 @@ -14,8 +14,9 @@ case *01 nusb/audio $id case *02 - # serial and ethernet - nusb/serial $id + # serial and ethernet: 0xff0202 is RNDIS, handled by nusbrc + if (! ~ $4 ff0202) + nusb/serial $id # handled /sys/src/9/boot/nusbrc # nusb/ether $id case *03 diff -r 18e1e1c3aaf1 sys/src/cmd/nusb/ether/ether.c --- a/sys/src/cmd/nusb/ether/ether.c Tue Apr 06 14:43:38 2021 +0200 +++ b/sys/src/cmd/nusb/ether/ether.c Wed Apr 07 00:39:55 2021 -0700 @@ -849,7 +849,7 @@ nerr = 0; for(;;){ - /* receive allocates buffer and calls etheriq(b, 1); */ + /* receive allocates buffer and calls etheriq(b); */ if((*epreceive)(epin) < 0){ rerrstr(err, sizeof(err)); if(strstr(err, "interrupted") || strstr(err, "timed out"))