Giter Site home page Giter Site logo

xiaomi-gateway-openwrt's Introduction

Установка альтернативной прошивки OpenWrt на шлюзы DGNWG05LM и ZHWG11LM

Инструкция относится только к европейской версии шлюза от xiaomi mieu01, с европейской вилкой, а также к версии шлюза от Aqara ZHWG11LM с китайской или европейской вилкой. Для версии xiaomi gateway2 с китайской вилкой DGNWG02LM она не подойдёт, в нём установлены другие аппаратные комплектующие.

Данная инструкция подразумевает, что у вас уже есть доступ ssh к шлюзу. Если вы это не сделали, воспользуйтесь инструкцией

https://4pda.ru/forum/index.php?act=findpost&pid=99314437&anchor=Spoil-99314437-1

Резервная копия

Сделайте резервную копию. Если вы решите вернуться на оригинальную прошивку, для восстановления вам потребуется tar.gz с архивом корневой файловой системы.

tar -cvpzf /tmp/lumi_stock.tar.gz -C / --exclude='./tmp/*' --exclude='./proc/*' --exclude='./sys/*' .

После того, как бэкап сделается, скачайте его на локальный компьютер

scp root@*GATEWAY_IP*:/tmp/lumi_stock.tar.gz .

или с помощью программы WinScp в режиме scp

Если у вас уже есть образ rootfs сделанный через dd, всё равно сделайте архив. На этапе загрузки образа dd обычно возникают ошибки nand flash или ubifs. Вариант с tar.gz лишён этих недостатков, потому что форматирует флеш перед загрузкой.

Припаяйте usb + uart

Чтобы провести модификацию прошивки вам потребуется произвести аппаратные модификации, припаять 7 проводов к самому шлюзу

  • 3 провода на usb2uart переходник (вы это делали на этапе получения рута)
  • 4 провода на usb разъём или провод с usb штекером на конце. Достаточно припаять 4 провода, +5v, d+, d- и gnd. ID провод не задействуется Проверьте, что d+ и d- не перепутаны местами, иначе устройство не определится

Распиновка UART и USB на шлюзе

Прошивка

Мы подготовили архив с программой mfgtools для загрузки прощивки на шлюз, а также саму прошивку. В архив включена программа для windows и консольное приложение под linux

Версия 0.1.0rc4

Распаковка прошивки

Чтобы после прошивки шлюз сразу подключился к вашей wifi сети, отредактируйте файл Profiles/Linux/OS Firmware/files/wireless и впишите имя и пароль от своей wifi сети в последней секции.

config wifi-iface 'wifinet1'
    option ssid 'YOUR_SSID'
    option key 'YOUR_PASSWORD'

Оставьте остальные параметры как есть.

Подключите шлюз к компьютеру

Нужно подключить шлюз двумя кабелями к компьютеру. UART и USB. USB на данном этапе не будет определяться в компьютере. Чтобы подключиться к консоли шлюза, для windows используйте программу PuTTY и используйте COM-порт, который появился для usb2uart. Для linux используйте любую терминальную программу, например picocom /dev/ttyUSB0 -b 115200

Перевод в режим загрузки через USB

Для того чтобы перевести в режим прошивки, нужно при старте шлюза в консоли на последовательном порту прервать загрузку uboot нажатием любой кнопки. У вас будет 1 секунда на это. Появится приглашение для команд

=>

Далее в командной строке uboot вам надо ввести

bmode usb

И нажать enter. После этого шлюз перейдёт в режим загрузки по usb и mfgtools сможет обновить разделы в памяти шлюза.

Переход в режим загрузки по USB

В случае если у вас Windows, вам может потребоваться установить драйвера, из папки Drivers.

Запускайте mfgtools.

Windows

В случае windows, у вас откроется окно. Если всё припаяно правильно и драйвера установлены верно, то в строке в программе будет написано HID-compliant device Mfgtools

Нужно нажать кнопку Start для начала прошивки.

После окончания прошивки, когда полоска прогресса дойдёт до конца и станет зелёной, нужно нажать Stop. Если этого не сделать, спустя несколько минут программа начнёт прошивку повторно, и это приведёт к ошибке. Если такое случилось, перезагрузите шлюз и повторите процедуру, начиная перевода шлюза в bmode usb.

Linux

Перейдите в папку с прошивкой. Запустите консольную утилиту от суперпользователя

sudo ./mfgtoolcli -p 1

В псевдографическом интерфейсе будут отображаться этапы прошивки

Mfgtools

При подключении шлюза и обнаружении hid устройства, программа сразу начнёт процесс прошивки. Если процесс не пошёл, проверьте, что устройство подключено и определилось в выводе команды dmesg

Процесс прошивки

Следить за этапами прошивки можно также и в консоли вывода самого шлюза. По окончанию прошивки в консоли будет выведено

Update Complete!

Update complete

После этого можно перезагружать шлюз. Вытащите его из розетки и воткните обратно.

Использование OpenWrt

Система настроена таким образом, чтобы сразу подключаться к вашей wifi сети, в случае если вы отредактировали файл wireless перед прошивкой. Если вы ошиблись, отредактируйте параметры в файле /etc/config/wireless уже на устройстве.

После прошивки меняется mac адрес шлюза, потому ip адрес тоже скорее всего поменяется. Проверьте его в роутере или в самом шлюзе.

Не забудьте подключить антенны!

Иначе проблемы с подключением к сети обеспечены

На шлюзе предустановлены:

  • Графический интерфейс OpenWrt LuCi на 80 порту http
  • Domoticz на 8080 порту
    • Плагин для работы Domoticz с прошивкой Zigbee Zigate
    • Веб интерфейс по работе с Zigate для domoticz будет доступен по порту 9440
  • командная утилита для прошивки zigbee модуля jn5169

Не включайте на шлюзе одновременно режимы WiFi AP + Station. Драйвер, который используется в системе не может работать в двух режимах одновременно. Если вы поменяли настройки LuCi и после этого шлюз перестал подключаться к сети, отредактируйте файл /etc/config/wireless в соответстиви с тем, что лежит в архиве.

Работа с Zigbee

  1. Настройка плагина zigate
  2. Установка Zesp32

Возврат на стоковую прошивку

Модификация с openwrt затрагивает только изменение корневой файловой системы; загрузчик, ядро и dtb остаётся оригинальными. Потому для возврата на сток нужно прошить оригинальную файловую систему из резервной копии.

Положите файл lumi_stock.tar.gz в папку Profiles/Linux/OS Firmware/files рядом с файлом прошивки openwrt и wireless Отредактируйте файл Profiles/Linux/OS Firmware/ucl2.xml текстовым редактором, и замените

<CMD state="Updater" type="push" body="pipe tar -zxv -C /mnt/mtd3" file="files/rc4-domoticz-openwrt-imx6-rootfs.tar.gz" ifdev="MX6UL MX7D MX6ULL">Sending and writing rootfs</CMD>

на строку с путём к файлу архива с оригинальной прошивкой

<CMD state="Updater" type="push" body="pipe tar -zxv -C /mnt/mtd3" file="files/lumi_stock.tar.gz" ifdev="MX6UL MX7D MX6ULL">Sending and writing rootfs</CMD>

Дальше опять переведите шлюз в режим загрузки по usb и через mfgtools прошейте оригинальную прошивку.

gpio

благодаря @Clear_Highway и @lmahmutov

gateway_pinout_gpio

opkg update
opkg install gpioctl-sysfs
opkg install kmod-spi-gpio
opkg install kmod-spi-dev
opkg install kmod-spi-gpio-custom

Управление

echo "69" > /sys/class/gpio/export
echo "70" > /sys/class/gpio/export

echo "out" > /sys/class/gpio/gpio69/direction
echo "out" > /sys/class/gpio/gpio70/direction


echo "1" > /sys/class/gpio/gpio70/value
echo "0" > /sys/class/gpio/gpio70/value

Номера GPIO в системе. номера контактов начинаются с нижнего на фото и продолжаются вверх. DOWN и UP значит куда подтяжка. Down к GND, UP - 3.3v

№ п/п PULL GPIO
2 DOWN 69
1 DOWN 70
14 DOWN 71
15 DOWN 72
16 UP 73
4 DOWN 74
3 DOWN 75
17 UP 76
6 DOWN 77
5 DOWN 78
18 DOWN 79
20 UP 80
19 DOWN 81
8 DOWN 82
7 DOWN 83
22 DOWN 84
21 DOWN 85
10 DOWN 86
9 DOWN 87
24 DOWN 88
23 DOWN 89
12 DOWN 90
11 DOWN 91
13 DOWN 92

Ссылки

  1. Статья, которая подробно описывает изменения технические модификации: Xiaomi Gateway (eu version — Lumi.gateway.mieu01 ) Hacked
  2. Сборник информации по аппаратному и програмному модингу Xiaomi Gateway https://github.com/T-REX-XP/XiaomiGatewayHack
  3. Телеграм канал с обсуждением модификаций https://t.me/xiaomi_gw_hack

xiaomi-gateway-openwrt's People

Contributors

devbis avatar g1k avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.