Use netfs_server_name to detect whether we are the PCI arbiter. Index: libpciaccess-0.14/src/hurd_pci.c =================================================================== --- libpciaccess-0.14.orig/src/hurd_pci.c +++ libpciaccess-0.14/src/hurd_pci.c @@ -447,11 +447,14 @@ pci_system_hurd_create(void) size_t ndevs; mach_port_t pci_server_port; - /* If we can open pci cfg io ports on hurd, - * we are the arbiter, therefore try x86 method first */ - err = pci_system_x86_create(); - if (!err) - return 0; + extern char *netfs_server_name; +#pragma weak netfs_server_name + if (netfs_server_name && !strcmp(netfs_server_name, "pci-arbiter")) { + /* We are a PCI arbiter, try the x86 way */ + err = pci_system_x86_create(); + if (!err) + return 0; + } pci_sys_hurd = calloc(1, sizeof(struct pci_system_hurd)); if (pci_sys_hurd == NULL) {