I have a RPi in the car that I need to act as a mobile AP.
I need it to provide a consistent, unchanging ESSID (in AP mode) using the onboard wlan0 for all devices that stay in my car. Dashcams, the car's nav computer for instance. The Pi will also interface with the car over ODB2 to do some logging and remote control.
But to provide connectivity TO the Pi itself, I need to use my smartphone when it is plugged in (it provides a "USB NIC"). Or if my phone is not connected by cable, then I need the pi to use a secondary, usb Wifi adapter (wlan1) as a wifi client (client mode), to search for common APs at home, work, family's house, and join the strongest one.
Obviously linux does this all the time. My Fedora/CentOS/Ubuntu laptops simply have a gui list of networks, and when it's on, it finds something on that list and joins it automatically.
I want to have that same capability, in the Pi via commandline only scripting.
What's the best way to do that on a Pi Zero W?
I will probably also add an openvpn or openswan tunnel to this so that my car car can have an unchanging "public ip" that I could use with IFTTT or other services to make incoming connections. But that's beyond the scope of what I'm asking here. Obviously I know I need to keep it secure, again outside scope.
wpa_supplicant.conf
, the choice of uplink viadhcpcd.conf
(seefallback
andprofile
inman dhcpcd
). If you are already competent with shell scripting, you may be interested inman dhcpd-run-hooks
. There is probably already enough online documentation/discussion/etc on dhcpcd and wpa_supplicant for you to spend months or years reading, please don't ask people to produce more unless you are really stumped with something. – goldilocks Jun 20 '21 at 15:21