Używam Jessie (Raspberry Pi) i po uruchomieniu przechodzi w tryb AP. Następnie w kodzie python uruchamiam następujące polecenia, aby przełączyć go w tryb klienta WPA:

sudo /etc/init.d/networking stop
sudo systemctl stop wpa_supplicant.service
sudo systemctl stop hostapd.service
sudo systemctl stop udhcpd.service
sudo systemctl start wpa_supplicant.service
sudo /etc/init.d/networking start
sudo wpa_action wlan0 stop
sudo /etc/network/if-down.d/resolvconf
sudo /etc/network/if-down.d/upstart
sudo /etc/network/if-down.d/wpasupplicant
sudo dhclient -v -r -pf /run/dhclient.wlan0.pid -lf /var/lib/dhcp/dhclient.wlan0.leases wlan0
sudo ip link set dev wlan0 down
sudo /etc/network/if-post-down.d/avahi-daemon
sudo /etc/network/if-post-down.d/hostapd
sudo /etc/network/if-post-down.d/wireless-tools
sudo /etc/network/if-post-down.d/wpasupplicant
sudo wpa_action wlan0 stop
sudo ifup wlan0

Jeśli czasami łączy się z moim Wi-Fi, wtedy uruchamiam RPi na dłużej niż 5 minut, przy następnym uruchomieniu nie będzie można ponownie połączyć się z moim Wi-Fi (gdy uruchomione jest python z tymi poleceniami).

Co ja robię źle?

Piotr
źródło