Raspberry Pi 3 and additional network dongle

Hey @mtwomey, checked out the NetworkManager settings, it is indeed doable to do dual wifi interface with Network Manager (so resinOS 2.x series from resinstaging at the moment).

:wrench: The solution is to create an extra NetworkManager config file, specify interface-name in there, and add that to resin-boot partition’s system-connections directory. These are the rough steps for setting up dual connectivity:

  1. So download the host OS configured to your network-connected access point
  2. Check the resin-boot/system-connections/resin-wifi file, and in the [connection] section add interface-name=wlan0 to the end. This will be your default network connection
  3. Make a copy of that file there, call it for example GoPro, update the id= (in [connection]), ssid- (in [wifi]), and psk= (in [wifi-security]), and add interface-name=wlan1 (for example when using Raspberry Pi wifi dongle, that is the name, otherwise you need to check what name your dongle gets, and add that. So you’ll end up with something like this:
[connection]
id=GoPro Control
type=wifi
interface-name=wlan1

[wifi]
hidden=true
mode=infrastructure
ssid=GoPro

[ipv4]
method=auto

[ipv6]
addr-gen-mode=stable-privacy
method=auto

[wifi-security]
auth-alg=open
key-mgmt=wpa-psk
psk=supersecretpassword

Once you boot up, the Pi should connect to both networks. :slight_smile: I’ve checked that with iwconfig:

Host OS 2.x is currently only on resinstaging (which has no guarantees of working), but should come to the production in the foreseeable future!


As for host OS access:

You can already do that: take the SD card, and in the resin-root partition add your ssh key to /var/lib/dropbear/authorized_keys (replacing our device access key or just a new line adding it). That way you can SSH into the host (on port 22222). BUT this comes with a huge caveat, that once you modify the SD card like that, we won’t be able to help you with issues on that device, so should not ever do this for a device that you put out in the field into production. HostOS updates cannot be applied anymore (you would need to reprovision the device), and we won’t take on any support for that device as we don’t know what modifications were done in the host OS.

Our general philosophy is, that if we are doing things right, you wouldn’t ever need to touch the host, just work from the the container (both the answer to your question in this thread and the above resin-wifi-connect was developed without modifications to the hostOS or having device access). Instead check out interacting with the system through the messaging interface between the container and the host, see the docs here: Container Runtime.

Another way is to use the open source resinOS release which is all under your control, and when it works on that, you can adapt your application to be deployed on resin.io.

Really appreciate your questions, though, we are always open for improvement proposals, anything on your mind, just start a new topic here in the forums :writing_hand:

1 Like