Инструкция относится только к европейской версии шлюза от 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 лишён этих недостатков, потому что форматирует флеш перед загрузкой.
Чтобы провести модификацию прошивки вам потребуется произвести аппаратные модификации, припаять 7 проводов к самому шлюзу
- 3 провода на usb2uart переходник (вы это делали на этапе получения рута)
- 4 провода на usb разъём или провод с usb штекером на конце. Достаточно припаять 4 провода, +5v, d+, d- и gnd. ID провод не задействуется Проверьте, что d+ и d- не перепутаны местами, иначе устройство не определится
Мы подготовили архив с программой mfgtools для загрузки прощивки на шлюз, а также саму прошивку. В архив включена программа для windows и консольное приложение под linux
Чтобы после прошивки шлюз сразу подключился к вашей 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
Для того чтобы перевести в режим прошивки, нужно при старте шлюза в консоли на последовательном порту прервать загрузку uboot нажатием любой кнопки. У вас будет 1 секунда на это. Появится приглашение для команд
=>
Далее в командной строке uboot вам надо ввести
bmode usb
И нажать enter. После этого шлюз перейдёт в режим загрузки по usb и mfgtools сможет обновить разделы в памяти шлюза.
В случае если у вас Windows, вам может потребоваться установить драйвера, из папки Drivers.
Запускайте mfgtools.
В случае windows, у вас откроется окно. Если всё припаяно правильно и драйвера установлены верно, то в строке в программе будет написано HID-compliant device
Нужно нажать кнопку Start для начала прошивки.
После окончания прошивки, когда полоска прогресса дойдёт до конца и
станет зелёной, нужно нажать Stop. Если этого не сделать, спустя несколько
минут программа начнёт прошивку повторно, и это приведёт к ошибке. Если такое
случилось, перезагрузите шлюз и повторите процедуру, начиная перевода
шлюза в bmode usb
.
Перейдите в папку с прошивкой. Запустите консольную утилиту от суперпользователя
sudo ./mfgtoolcli -p 1
В псевдографическом интерфейсе будут отображаться этапы прошивки
При подключении шлюза и обнаружении hid устройства, программа сразу начнёт
процесс прошивки. Если процесс не пошёл, проверьте, что устройство подключено и
определилось в выводе команды dmesg
Следить за этапами прошивки можно также и в консоли вывода самого шлюза. По окончанию прошивки в консоли будет выведено
Update Complete!
После этого можно перезагружать шлюз. Вытащите его из розетки и воткните обратно.
Система настроена таким образом, чтобы сразу подключаться к вашей 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
в соответстиви с тем, что лежит
в архиве.
Модификация с 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 прошейте оригинальную прошивку.
благодаря @Clear_Highway и @lmahmutov
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 |
- Статья, которая подробно описывает изменения технические модификации: Xiaomi Gateway (eu version — Lumi.gateway.mieu01 ) Hacked
- Сборник информации по аппаратному и програмному модингу Xiaomi Gateway https://github.com/T-REX-XP/XiaomiGatewayHack
- Телеграм канал с обсуждением модификаций https://t.me/xiaomi_gw_hack