У меня была аналогичная проблема (мой маршрутизатор иногда действовал странно, и мой Pi не пересоединялся), и я использую скрипт, который проверяет каждую минуту, если Pi имеет соединение Wi-Fi, если не «перезагружает Wi-Fi». (Понял из этого учебника http://alexba.in/blog/2015/01/14/automatically-reconnecting-wifi-on-a-raspberrypi/)
#!/bin/bash
# The IP for the server you wish to ping (8.8.8.8 is a public Google DNS server)
SERVER=8.8.8.8
# Only send two pings, sending output to /dev/null
ping -c2 ${SERVER} > /dev/null
# If the return code from ping ($?) is not 0 (meaning there was an error)
if [ $? != 0 ]
then
# Restart the wireless interface
ifdown --force wlan0
ifup wlan0
fi
Хотя это, вероятно, не самое элегантное решение, которое вы могли бы просто следовать этот учебник и заменить
ifdown --force wlan0
ifup wlan0
с этим я думаю:
echo 1 > /sys/bus/usb/devices/1-1.1/bConfigurationValue
Но так как вы говорите, что говорите, что вам просто нужно запустить этот скрипт при загрузке, и он работает, пока вы не включите Pi снова, сделав простой скрипт python, например,
import os
os.system("echo 1 > /sys/bus/usb/devices/1-1.1/bConfigurationValue")
и убедившись, что он начинает на ботинке, добавив следующую строку в файл /etc/rc.local
чуть выше exit 0
в этом файле:
sudo python /path/to/the/python/script/this_script.py
Это должно сделать трюк, хотя я довольно уверен, что Pi есть хорошая причина, отключающая ваш Wifi-ключ (я уверен, что вы можете «сжечь» ваш Pi, используя много тока, если не было никакой защиты). Какой ключ Wifi вы используете, и каково ваше питание от Pi? Прошу прощения за мой не столь ясный ответ, я только начинаю входить в Пи, но надеюсь, что я хоть немного помог.