В настоящее время я пытаюсь настроить Wi-Fi RaspberryPI 3 A +.
Я следовал этому руководству: здесь , чтобы сделать Raspberry точкой доступа WiFi. теперь у меня работает небольшой веб-сервер Flask. С этим я хочу деактивировать AP и вместо этого подключить Raspberry к Wi-Fi.
Но это не работает.
Так что я активирую AP через:
def setAP(ssid, pw):
os.system('sudo systemctl stop dnsmasq')
os.system('sudo systemctl stop hostapd')
if not os.path.isfile('/etc/dhcpcd.conf.orig'):
os.system('sudo mv /etc/dhcpcd.conf /etc/dhcpcd.conf.orig')
with open('/etc/dhcpcd.conf', "a+") as f:
dat = f.read()
if " static ip_address" not in dat:
f.write("interface wlan0\n static ip_address=192.168.4.1/24\n nohook wpa_supplicant")
os.system('sudo service dhcpcd restart')
if not os.path.isfile('/etc/dnsmasq.conf.orig'):
os.system('sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig')
with open('/etc/dnsmasq.conf', 'w') as f:
f.write("interface=wlan0\n")
f.write("dhcp-range = 192.168.4.2,192.168.4.20,255.255.255.0,24h\n")
os.system('sudo service dnsmasq restart')
with open('/etc/hostapd/hostapd.conf', "w") as f:
f.write("interface=wlan0\n")
f.write("driver=nl80211\n")
f.write("ssid={:}\n".format(ssid))
f.write("hw_mode=g\n")
f.write("channel=7\n")
f.write("wmm_enabled=0\n")
f.write("macaddr_acl=0\n")
f.write("auth_algs=1\n")
f.write("ignore_broadcast_ssid=0\n")
f.write("wpa=2\n")
f.write("wpa_passphrase={:}\n".format(pw))
f.write("wpa_key_mgmt=WPA-PSK\n")
f.write("wpa_pairwise=TKIP\n")
f.write("rsn_pairwise=CCMP\n")
with open('/etc/default/hostapd', "w") as f:
f.write('DAEMON_CONF="/etc/hostapd/hostapd.conf"')
os.system('sudo systemctl unmask hostapd')
os.system('sudo systemctl enable hostapd')
os.system('sudo systemctl start hostapd')
Затем я попытаюсь изменить это через:
def setClient(ssid, pw, dhcp=True, ip=""):
os.system('sudo systemctl stop dnsmasq')
os.system('sudo systemctl stop hostapd')
if os.path.isfile('/etc/dhcpcd.conf.orig'):
os.system('sudo mv /etc/dhcpcd.conf.orig /etc/dhcpcd.conf')
os.system('sudo service dhcpcd restart')
if os.path.isfile('/etc/dnsmasq.conf.orig'):
print('configure dhcp')
os.system('sudo mv /etc/dnsmasq.conf.orig /etc/dnsmasq.conf')
with open('/etc/default/hostapd', "w") as f:
f.write(' ')
if not os.path.isfile('/etc/wpa_supplicant/wpa_supplicant.conf.orig'):
os.system('sudo mv /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf.orig')
И подключиться к Wi-Fi:
os.system('sudo mv /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf.orig')
with open('/etc/wpa_supplicant/wpa_supplicant.conf', 'w+') as f:
f.write('ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev\n')
f.write('update_config=1\n')
f.write('country=DE\n\n')
f.write('network={\n')
f.write('\tssid="{:}"\n'.format(ssid))
f.write('\tpsk="{:}"\n'.format(pw))
f.write('}')
os.system('sudo wpa_cli -i wlan0 reconfigure')
и здесь я получаю сообщение об ошибке:
Failed to connect to non-global ctrl_ifname: wlan0 error: No such file or directory
также теперь я не могу подключиться к Wi-Fi с графическим интерфейсом или raspi-config. Он говорит мне "беспроводной интерфейс не найден". с ifconfig я все еще вижу wlan0 - но это случайно? IP-адрес.
И точка доступа все еще активна.
кто-то знает, что я делаю не так? или несколько советов, как это сделать лучше?