TL;DR: Network device is listed twice with the same hardware port name, so the internal method that's supposed to return a pointer to a network device by its name fails. This is why nothing related to this device works. How do I delete or rename the duplicate entry?
ORIGINAL POST: I have a system running OS X El Capitan 10.11.1 and I've come across a problem that I can't find anything on the Internet about.
I'm trying to connect to the Internet through an Ericsson H5321gw WWAN modem.
Initially, the device was only recognized as a USB device, not as a WWAN device, though. After patching the Info.plist in CellPhoneHelper.kext and IOSerialFamily.kext, the device is correctly being recognized as a WWAN device, the WWAN icon appears in the top bar and upon clicking the icon, the carrier is being recognized correctly as well. However, the device won't connect to the Internet.
Upon inspection of the system logs, I think I've found the problem but I need a hint on how to solve it.
The correct commands are being executed through the modem script:
20:58:13 ccl: Apple Base Script.ccl Version 3.3 20:58:13 ccl: CCLWrite: AT\13 ... 20:58:13 ccl: Waiting for connection 20:58:14 ccl: Connection established 20:58:17 ccl: CCLExit: 0 20:58:17 pppd: Connect: ppp0 <--> /dev/cu.usbmodem
but then the console is spammed with countless instances of
20:58:17 com.apple.preference.network.remoteservice: more than one interface matches usbmodem ... 20:58:21 com.apple.preference.network.remoteservice: more than one interface matches usbmodem
which culminates in:
20:58:21 symptomsd: nw_interface_create_with_name netutil_ifname_to_ifindex(ppp0) failed 20:58:21 symptomsd: -[NWInterface initWithInterfaceName:] nw_interface_create_with_name(ppp0) failed 20:58:21 pppd: Connection terminated.
upon which the WWAN modem disconnects again.
ls /dev | grep usbmodem lists two files each (tty. and cu.) for two devices, one named usbmodem and the other one named usbmodem5/usbmodem11/etc, with the number changing upon restarting the system.
The problem seems obvious - the WWAN connection is established but the connection of ppp0 and usbmodem fails because there's more than one device matching the string usbmodem.
I've found the code generating the error message in SCNetworkInterface but I don't want to fiddle around with recompiling system files (I wouldn't even know how). Deleting / renaming the files in
/dev hasn't solved the problem, the error message remains the same.
Is there any way to cut this ambiguity of string matching out of the system so that the connection won't fail?
UPDATE: The duplicate file names seem to not be the cause, but the symptom of the problem.
I tried different values for the interface mapping in the CellPhoneHelper.kext, however nothing has worked so far. Either the WWAN card is stuck on "Initializing..." with
networksetup -listallhardwareports listing no "usbmodem" devices at all or it looks like this
Hardware Port: H5321 gw Device: usbmodem Ethernet Address: N/A Hardware Port: H5321 gw Device: usbmodem Ethernet Address: N/A Hardware Port: PCI Serial Adapter (22) Device: pci-serial22 Ethernet Address: N/A Hardware Port: H5321 gw Device: wwan Ethernet Address: N/A Hardware Port: Ethernet Device: en0 Ethernet Address: 28:d2:44:05:79:1c Hardware Port: H5321 gw Device: en1 Ethernet Address: 02:15:e0:ec:01:00 Hardware Port: 802.11n WLAN Adapter Device: en2 Ethernet Address: 00:87:23:7a:44:9d Hardware Port: Bluetooth PAN Device: en3 Ethernet Address: f4:b7:e2:e8:4f:78
so somehow there's two entries going by the hardware port name usbmodem and I have no idea how to fix this, but I hope any of you might help me.
Using one of the usual fix approaches like deleting the network configuration files or issuing
networksetup -detectnewhardware hasn't changed anything, either.
Queries relating to any details on the device (
networksetup -listallnetworkservices for example) trigger the same "more than one device matches" log message in the console.