Working with a slimmed down install svn_61 the ifconfig -a plumb used to search
interfaces from devinfo tree is failing with the error:
ifconfig: di_init failed; check the devinfo driver
looking through the source code I matched it to this line section of code:
476 static void
477 foreachinterface(void (*func)(), int argc, char *argv[], int af,
478 int64_t onflags, int64_t offflags, int64_t lifc_flags)
479 {
480 int n;
481 char *buf;
482 struct lifnum lifn;
483 struct lifconf lifc;
484 struct lifreq *lifrp;
485 struct lifreq lifrl; /* Local lifreq struct */
486 int numifs;
487 unsigned bufsize;
488 ni_t *nip;
489 int plumball = 0;
490 int save_af = af;
491
492 /*
493 * Special case:
494 * ifconfig -a plumb should find all network interfaces
495 * in the machine by traversing the devinfo tree.
496 * Also, there is no need to SIOCGLIF* ioctls, since
497 * those interfaces have already been plumbed
498 */
499 if (argc > 0 && (strcmp(*argv, "plumb") == 0)) {
500 /*
501 * Look through the kernel's devinfo tree for
502 * network devices
503 */
504 di_node_t root;
505
506 /*
507 * DINFOCACHE is equivalent to DINFOSUBTREE | DINFOMINOR |
508 * DINFOPROP | DINFOFORCE.
509 */
510 if ((root = di_init("/", DINFOCACHE)) == DI_NODE_NIL) {
511 (void) fprintf(stderr, "ifconfig: di_init failed;"
512 " check the devinfo driver.\n");
513 exit(1);
514 }
Can someone say what is causing this error or where I may look to resolve this.
I suspect something with devfsadm/d and /etc/path_to_inst,
/etc/devices/snapshot_cache but I am stumped as to what is wrong. If I
manually ifconfig plumb the interface it works fine.
When i do a truss it seems to fail after /devices/pseudo/[EMAIL
PROTECTED]:devinfo
ioctl(4,
ioctl(4,0xD... = ENOTACTIVE
thanks for any halp in advance
This message posted from opensolaris.org
_______________________________________________
opensolaris-help mailing list
[email protected]