Ставим OpenWRT на шлюз Perenio PEACG01 - DivanX10/Openwrt-scripts-for-gateway-zhwg11lm GitHub Wiki
- Про Шлюз Perenio PEACG01 на оф.сайте
- Комплект умного дома Perenio PEKIT01 на Яндекс Маркете
Ставим на шлюз Perenio PEACG01 OpenWRT, это позволит развернуть zigbee2mqtt и добавлять любые zigbee2mqtt устройства. Как заявляет производитель Perenio, что на шлюз можно добавить до 100 устройств, что весьма не плохо, но на практике, пока, это не было опробовано. Дополнительным бонусом у шлюза является LAN разъем, что позволит подключить шлюз как по Wi-Fi, так и по LAN.
Выражаю благодарность @CEBEPYC за такой замечательный проект, а также в помощь установки OpenWRT на шлюз и благодаря ему вышла эта инструкция. Обсуждения в чате xiaomi gw hack
Инструкция будет правится. Если увидели неточности или что-то надо исправить, добавить, то пишите мне SmartHomeDivan
Внимание! Перед тем, как будете ставить OpenWRT на шлюз, сперва обновите прошивку шлюза и датчиков через родное приложение Perenio. Добавьте сам шлюз в родное приложение Perenio и добавьте датчики. Обновите прошивку на шлюзе и на датчиках. Обновление датчиков занимает продолжительное время, от 10 минут до 1 часа.
После того, как установите OpenWRT, необходимо обновить прошивку чипа zigbee. Как это сделать? - читаем здесь
1) Припаиваем к контактам GND, TX, RX провода и подключаем USB TTL к шлюзу следующим образом
Важно! Провода лучше паять к контактам с отверстием. Можно припаять и круглым без отверстии, но они отваливаются, поэтому для надежной пайки лучше паять к контактам с отверстием
USB TTL => Контакты на шлюзе
- GND => GND
- RXD => TX
- TXD => RX
2) Вставляем USB TTL в компьютер. В диспетчере задач находим свой USB TTL и смотрим какой у него порт. Шлюз пока не включаем
3) Выключенный шлюз(пока не включаем шлюз) подключаем к ПК напрямую с помощью патч-корда. На ПК, в настройках сетевой карты выставляем IP 192.168.1.10 как на скриншоте
4) Установим и настроим tftp сервер. Использовать будем Tftpd64. Запускаем Tftpd32 или Tftpd64, все зависит от разрядности ОС. В настройках Tftpd сервера указываем путь к папке, это может быть любая папка и находиться может в любом месте. Важно, чтобы в этой папке лежал файлик 0201A8C0.img, который мы позже загрузим на шлюз командой tftpboot. Из списка выбираем IP адрес ПК, где запущена программа Tftpd, но это по сути не так важно, так как файлик может загрузиться, даже, если будет локальный адрес 127.0.0.1
5) Запускаем PUTTY, выбираем порт\скорость и включаем Perenio.
В зависимости от того какой чип используется в USB TTL, используем разные скорости. Для корректной загрузки u-boot и запуска tftpboot и bootm используем значения ниже. Все дело в том, что если выбрана не та скорость, то при загрузке, будут сперва видны различные символы (абракадабра), а после пойдет читаемый текст. Если скорость выбрана верно, то при загрузке сразу же будет читаемый текст. Как появится строчка
Hit any key to stop autoboot
, нажимаем пробел и появится строка ath>
- USB TTL CH304 - скорость 120000
- USB TTL CP2102 - скорость 115200
6) Загрузим на шлюз файлик 0201A8C0.img
Внимание! Бэкап стоковой прошивки делается точно также, как и ставится OpenWRT, разница лишь в том, что у них разные файлы, но, если переименовать файл 0201A8C0_stockpart.img в 0201A8C0.img, то можно легко перепутать, так как название файла одно и то же.
- Файл 0201A8C0_stockpart.img переименовываем в 0201A8C0.img (не путать с нижним) нужен для создания бэкапа стоковой прошивки
- Файл 0201A8C0.img (это уже другой файл и не переименованный) нужен для установки openwrt-ath79-nand-perenio-peacg01-access-point-squashfs-sysupgrade_v.0.1.bin
Если делаем первый раз и не сделали бэкап стоковой прошивки, то делаем бэкап стоковой прошивки, без этого бэкапа нельзя будет сделать откат на стоковую прошивку
Скачиваем файлик 0201A8C0_stockpart.img к себе на ПК и переименовываем в 0201A8C0.img, а после загрузим на шлюз.
a) Включаем шлюз и грузимся как указано в пункте 5
b) Потом вводим tftpboot
и если все верно настроено, то на шлюз загрузится файлик 0201A8C0.img.
- Если увидите, что загрузка идет вот таким образом
Loading: T T T T T T T T
, значит шлюз не может скачать файлик, значит неправильно настроили tftp сервер или не подключили шлюз к компьютеру через патч-корд. - Если все верно, то будет вот так
Loading: ############
c) Когда появится сообщение done
, то вводим bootm
и начнется заливка образа. Далее ждем пока на шлюзе не начнет моргать центральный светодиод. На телефоне открываем настройки Wi-Fi и ждем когда появится точка доступа OpenWRT.
Важно! Шлюз не перезагружать. Если все таки перезагрузили, то повторите процедуру сначала
Когда поднимется точка доступа OpenWRT, делаем следующее:
а) Открываем страницу "Восстановление"
b) Из списка выбираем поочередности каждый раздел и после нажимаем на сохранить и так сохраняем каждый раздел.
Когда сделали бэкап стоковой прошивки и нужно установить OpenWRT
Загрузим файлик 0201A8C0.img на шлюз.
а) Сначала вводим tftpboot
и если все верно настроено, то на шлюз загрузится файлик 0201A8C0.img.
- Если увидите, что загрузка идет вот таким образом
Loading: T T T T T T T T
, значит шлюз не может скачать файлик, значит неправильно настроили tftp сервер или не подключили шлюз к компьютеру через патч-корд. - Если все верно, то будет вот так
Loading: ############
b) Когда появится сообщение done
, вводим bootm
. Далее ждем пока на шлюзе не начнет моргать центральный светодиод. На телефоне открываем настройки Wi-Fi и ждем когда появится точка доступа OpenWRT.
Важно! Шлюз не перезагружать. Если все таки перезагрузили, то повторите процедуру сначала
7) Подключившись к точке доступа OpenWRT, в браузере вводим IP адрес 192.168.11.1. Далее устанавливаем бинарник openwrt-ath79-nand-perenio-peacg01-access-point-squashfs-sysupgrade_v.0.1.bin
через веб интерфейс Система => Восстановление => Установка образа => Во время установки образа снимаем галочку "Сохранить настройки и оставить текущую конфигурацию"
. Ждем терпеливо когда установится прошивка. Во время перепрошивки будет гореть один светодиод, а когда прошивка будет установлена успешно, то на шлюзе заморгает второй светодиод. По умолчанию точка доступа OpenWRT выключена. Чтобы ее включить, необходимо пролистать в самый низ, в раздел Справочник и найти Не появляется точка доступа OpenWRT
8) Финальный этап. Повторно подключаемся к точке доступа OpenWRT и настраиваем беспроводное подключение и приводим вот к такому виду
или можете открыть файлик wireless по пути /etc/config/wireless
и указать следующим образом
config wifi-device 'radio0'
option type 'mac80211'
option hwmode '11g'
option path 'platform/ahb/18100000.wmac'
option htmode 'HT20'
option channel 'auto'
option cell_density '0'
config wifi-iface 'wifinet1'
option device 'radio0'
option mode 'sta'
option ssid 'укажите свой SSID от Wi-FI'
option key 'укажите свой пароль от Wi-FI'
option encryption 'psk2'
option network 'wwan'
config wifi-iface 'wifinet2'
option device 'radio0'
option mode 'ap'
option ssid 'OpenWrt'
option encryption 'none'
option disabled '1'
Важно! По умолчанию доступ к LuCI будет только через LAN, через Wi-Fi доступ к LuCI будет закрыт. Это связано с тем, что firewall не настроен. Если вы не планируете выносить свой шлюз наружу, то можете выключить firewall в службах, если планируете выносить наружу, то необходимо настроить firewall или можете в настройках подключения к роутеру выбрать LAN.
Вариант 1. Выключаем firewall
Вариант 2. В настройках подключения к роутеру выбираем LAN
Сеть => Беспроводная сеть => Поиск => Выбираем свой SSID => Подключаемся => В настройках Создать\назначить зону сетевого экрана выбираем LAN => Сохраняем настройки и применяем. После можно подключиться к Luci через WiFi
1) Если все сделано правильно и при загрузке появляется Hit any key to stop autoboot 0
, а не Hit any key to stop autoboot: 3
и не можете прервать загрузку u-boot нажатием на пробел, то нужно сделать следующее.
Ждем полной загрузки до момента, когда появится OpenWRT и строка root, далее вводим команду fw_setenv bootdelay 3
и перезагружаем шлюз, после чего должна появиться строчка Hit any key to stop autoboot 3
. Нам дается 3 секунды, чтобы нажать на любую кнопку на клавиатуре.
fw_setenv bootdelay 3
2) Не загружается OpenWRT
Бывает так, что OpenWRT может не загрузиться, не выключайте шлюз, просто перезапустите Putty и зайдите снова, после этого появится OpenWRT и строка root
3) Не появляется точка доступа OpenWRT
- Необходимо проверить параметры в файле wireless, возможно там выключен WiFi
cat /etc/config/wireless
- Если увидите такие параметры как ниже, где
option disabled '1'
, значит WiFi выключен и его необходимо включить, для этого нужно указать 0
config wifi-device 'radio0'
option type 'mac80211'
option channel '11'
option hwmode '11g'
option path 'platform/ahb/18100000.wmac'
option htmode 'HT20'
option disabled '1'
config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'OpenWrt'
option encryption 'none'
- Выполняем команды поочерёдно
uci set wireless.radio0.disabled='0'
uci commit wireless
wifi reload
- Повторно проверяем параметры в файле wireless, где в строке option disabled должен стоять 0 -
option disabled '0'
cat /etc/config/wireless
- Ждем когда появится точка доступа OpenWRT