First, as a treat, here’s a script that will probably remove all the Ethernet Gadgets that have gunked up your network settings. I take no responsibility for your network interfaces and what this does to it but I found it delightful since I had more than 50 of them and now have … a few.
The question is: has anyone managed to share Internet access to their Ethernet Gadget Nerves device on MacOS?
Internet Sharing does not seem to work for me. Turning it on seems to kill the connection? I have no idea what happens to it but I lose my connection to the device, seemingly.
For conference talks it would be very practical to be able to have a reliable throughline from Nerves device to my laptop that has a tethered internet connection via my phone or WiFi of the venue.
I haven’t done this, so this is a guess at what happens.
I would expect that when you enable Internet sharing that MacOS turns into a router. The virtual Ethernet port from your Nerves device becomes one of its LAN ports. On the Nerves side, that means that you’d want to configure "usb0" as a wired Ethernet connection so it does DHCP and sets up routes. In your application config:
The reason you lose connectivity is that MacOS wants to change the IP address of the Nerves device to something in the range it gives out on it’s “LAN”. The Nerves device doesn’t know this, though, and still uses its original IP address.
It seems like VintageNetDirect could be made clever enough to figure out if “Internet Sharing” is on and just work. I never thought of doing this before. It would be a little magical and surprising to me, but I totally understand why it would be convenient. Cool idea.
Deconfiguring “usb0” followed by: VintageNet.configure("usb0", %{type: VintageNetEthernet, ipv4: %{method: :dhcp}}) did not work unfortunately. Just no connectivity, just getting timeouts.