From 19fe18b14993d00c53c80fa16a53cd3455ff3a92 Mon Sep 17 00:00:00 2001 From: 8bitjoey <8bitjoey@gmail.com> Date: Sun, 3 Nov 2024 15:55:33 +0300 Subject: [PATCH 1/2] Clarify steps in RU instruction; fix typos/grammar I repeated all steps on MacOS, hence adding some details about this environment. Also, corrected step #6, as it didn't work as described in the previous version. --- homeassistant/telnet (RU extended).md | 99 +++++++++++++++------------ 1 file changed, 57 insertions(+), 42 deletions(-) diff --git a/homeassistant/telnet (RU extended).md b/homeassistant/telnet (RU extended).md index 70feb06..4cfdca2 100644 --- a/homeassistant/telnet (RU extended).md +++ b/homeassistant/telnet (RU extended).md @@ -1,16 +1,19 @@ # Enable Telnet of Aqara DoorBell G4 (extended) (RU) Это перевод оригинальной стать автора с подробным описанием некоторых моментов. -Данный перевод будет полезен новичкам, для +Данный перевод будет полезен новичкам, для -Тот парень который написал оригинальную статью Гений и Волшебник! Выражаю ему глубочайшую благодарность! +Тот парень, который написал оригинальную статью Гений и Волшебник! Выражаю ему глубочайшую благодарность! ## ВНИМАНИЕ! Высокие риски! -**Только вы несете всю ответственность за все дальнейшии действия!** +**Только вы несете всю ответственность за все дальнейшие действия!** **Есть риск, что после данных действий камера превратиться в кирпичик.** Все действия у меня проводились глобальной версии (global/EU), у автора оригинальной статьи на версии для китайского рынка (CN) -Прошивка 4.0.1_0028.0046 (про обновления/другии версии ничего сказать не смогу) +Прошивка 4.0.1_0028.0046 (про обновления/другие версии ничего сказать не смогу). + +UPD: Работоспособность метода была также проверена на CN версии без слота для SD +карты и на RU версии со слотом (прошивка 4.0.6_0024.0072). ## Для чего это нужно? @@ -18,9 +21,9 @@ Для большинства из читателей основная польза от действий - это трансляция потокового видео с камеры в локальную сеть через rtsp. Данная реализация позволит: -- сохранить текущую настройку и функцианальность в Aqara Home -- сохранить текущую настройку и функцианальность в Apple Home -- открыть достук к подключению через Telnet на 23 порту +- сохранить текущую настройку и функциональность в Aqara Home +- сохранить текущую настройку и функциональность в Apple Home +- открыть доступ к подключению через Telnet на 23 порту - включить трансляцию видео по rtsp в разном качестве: - rtsp://[your_g4_ip]:8554/360p - rtsp://[your_g4_ip]:8554/720p @@ -30,39 +33,43 @@ -#### 1. Разабрать внутренний модуль камеры (модуль c micro sd). -Разобрать аккуратно давольно тяжело, но возможно. Нижняя крышка держится на защелки по 2 с каждой из стороны. -Проще всего, справой стороны от usb порта расширить щель между крышкой (с наклейкой) и корпусом и вствить плоскую длинную лопатку, чтобы отщелкнуть крепления. +#### 1. Разобрать внутренний модуль камеры (модуль c micro sd). +Разобрать аккуратно довольно тяжело, но возможно. Нижняя крышка держится на защелки по 2 с каждой из стороны. +Проще всего, справой стороны от usb порта расширить щель между крышкой (с наклейкой) и корпусом и вставить плоскую длинную лопатку, чтобы отщелкнуть крепления. + - #### 2. Подключения разъемов к плате UART. На плате нас интересуют 3 пятачка, подробнее на картинке: uart Для подключения лучше использовать пайку, провода в последствии можно заизолировать и легко убрать в корпус. -Так же плату можно давольно легко достать из корпуса, отключив два разъема (антена и динамик) и выкрутив 3 болта. +Так же плату можно довольно легко достать из корпуса, отключив два разъема (антенна и динамик) и выкрутив 3 болта. #### 3. Подключение по UART. Внимание! Крайне осторожно отнеситесь к выбору USB-TTL (UART) адаптера, он должен работать в режиме 3.3V, т.е. напряжение между контактами Tx и Gnd адаптера должно равняться ~3.3 Вольта. (Это можно проверить вольтметром при подключении к пк) При подключении на картинке выше подписаны не выводы с платы, а к каким разъемам подключать на USB-TTL. Те подписанные Tx на плате к Tx на USB-TTL, аналогично Rx, Gnd. (питание подключать не нужно) - +При необходимости, GND можно найти и в других местах на плате, например, на +U-образной площадке правее (только проверьте тестером, что там GND). + 1. Проверьте, что для USB-TTL установлены все необходимые драйвера и ПК его определяет и видит. -2. Подключите плату без питания к USB-TTL и USB-TTL к pc. -3. Откройте putty и подключитесь по serial (connetion type). (номер порта можно подсмотреть в диспетчере устройств (скорее всего это COM3), скорость 115200) -4. В открывшемся окне нажмите и удерживайте "Enter" -5. Подключите питание к модулю G4 и чуть подождите -6. Если в окне подключения вы начали видеть обновляющююся строку - вы остановили загрузку и готовы к шагам далее, если нет, попробуйте снова +2. Подключите плату без питания к USB-TTL и USB-TTL к pc. +3. Откройте putty и подключитесь по serial (connection type). (номер порта можно подсмотреть в диспетчере устройств (скорее всего это COM3), скорость 115200) +4. В открывшемся окне нажмите и удерживайте "Enter". Важно держать ее до подключения питания и чуть дольше. +5. Подключите питание к модулю G4 и подождите +6. Если в окне подключения вы начали видеть обновляющуюся строку (`SigmaStar #`) - вы остановили загрузку и готовы к шагам далее, если нет, попробуйте снова +В MacOS можно использовать другие терминалы вместо putty, наиболее удачным +оказался CoolTerm, в котором все заработало с первого раза. #### 4. Подключение к ядру NAND. Эта команда может быть доступна не сразу, а через 10-30сек. -``` +```shell nand info ``` -Проверьте правильность инициализации nand. Если все успешно, вы увидете следующее: +Проверьте правильность инициализации nand. Если все успешно, вы уведите следующее: ``` Device 0: nand0, sector size 128 KiB Page size 2048 b @@ -70,48 +77,56 @@ Device 0: nand0, sector size 128 KiB Erase size 131072 b ``` Если NAND инициализирован, выполните следующую команду: -``` +```shell printenv bootargs ``` - Она выведет глобальную переменную с настройками запуска, в формате ``bootargs=XXX`` - Вам нужно сохранить все что есть в оригинальной и изменить параметр init с ``"/linuxrc"`` на ``"/bin/sh"`` - После этого записать все это в глобальную переменную: ``setenv bootargs new_xxx`` - - Это будет примерно следующая команда: -``` +Она выведет глобальную переменную с настройками запуска, в формате ``bootargs=XXX`` +Вам нужно сохранить все что есть в оригинальной и изменить параметр init с ``"/linuxrc"`` на ``"/bin/sh"`` +После этого записать все это в глобальную переменную: ``setenv bootargs new_xxx`` + +Это будет примерно следующая команда: +```shell setenv bootargs root=/dev/mtdblock7 rootfstype=squashfs ro init=/bin/sh LX_MEM=0x7FE0000 mma_heap=mma_heap_name0,miu=0,sz=0x500000 cma=2M mmap_reserved=fb,miu=0,sz=0x300000,max_start_off=0x7C00000,max_end_off=0x7F00000 mtdparts=nand0:1664k@0x140000(BOOT0),1664k(BOOT1),256k(ENV),256k(ENV1),128k(KEY_CUST),5m(KERNEL),5m(KERNEL_BAK),16m(rootfs),16m(rootfs_bak),1m(factory),20m(RES),-(UBI) ``` - После этого можно продолжить загрузку -``` +После этого можно продолжить загрузку +```shell run bootcmd ``` #### 5. Он продолжит загрузку ядра и загрузит консоль. Если у вас есть возможность вводить команды, значит все верно. выполните команду: -``` +```shell ubifs_mount.sh 0 /res ubifs_mount.sh 1 /data ``` -#### 6. Удалите файл с паролем -``` -rm /res/passwd +#### 6. Поменяйте пароль от root'а +```shell +passwd ``` +После чего дважды введите новый пароль. + +В качестве альтернативы можно удалить файл `/res/passwd` и потом заходить +через telnet с пустым паролем, но у меня этот файл пересоздавался, поэтому +проще сразу поменять пароль. + #### 7. Создайте post_init.sh -``` +```shell mkdir -p /data/scripts; chattr -i /data/scripts/post_init.sh; echo -e "#\!/bin/sh\n\nfw_manager.sh -r\nfw_manager.sh -t -k\n" > /data/scripts/post_init.sh; chmod a+x /data/scripts/post_init.sh; chattr +i /data/scripts/post_init.sh ``` - если вы хотите включить rtsp по умолчанию: -``` +если вы хотите включить rtsp по умолчанию: +```shell mkdir -p /data/scripts; chattr -i /data/scripts/post_init.sh; echo -e "#\!/bin/sh\n\nfw_manager.sh -r\nfw_manager.sh -t -k\nrtsp &\n" > /data/scripts/post_init.sh; chmod a+x /data/scripts/post_init.sh; chattr +i /data/scripts/post_init.sh ``` -Отключите USB-TTL, перезагрузите Doorbell G4. Теперь все готово. +Отключите USB-TTL (опционально) и перезагрузите Doorbell G4 (`reboot -f`). Теперь все готово. --- -#### 8. Подключитесь к камере через Telnet, порт 23, логин root, пароль пустой (возможно стоит подождать 1мин после перезагрузки) -Установите новый пароль -``` -passwd -``` +#### 8. Подключитесь к камере + +Можно сделать через Telnet, порт 23, логин root, пароль который вы ввели на шаге 6 (возможно стоит подождать 1мин после перезагрузки). +Если USB-TTL не отключали, то проверить логин/пароль можно прямо в UART-терминале. + +Для MacOS `telnet` больше не поставляется по умолчанию, поэтому `brew install telnet` и далее `telnet your_g4_ip 23`. + #### 9. Проверьте трансляцию: Она без пароля: - rtsp://[your_g4_ip]:8554/360p From bda4294281594a8df5586aca8c8761ff79597fba Mon Sep 17 00:00:00 2001 From: 8bitjoey <8bitjoey@gmail.com> Date: Sun, 3 Nov 2024 16:00:14 +0300 Subject: [PATCH 2/2] Clarify steps in EN instruction I repeated all steps and corrected step #6, as it didn't work as described in the previous version. --- homeassistant/telnet.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/homeassistant/telnet.md b/homeassistant/telnet.md index 18516a1..e6886e5 100755 --- a/homeassistant/telnet.md +++ b/homeassistant/telnet.md @@ -40,9 +40,9 @@ run bootcmd ubifs_mount.sh 0 /res ubifs_mount.sh 1 /data ``` -6. Then delete the 'passwd' file. +6. Then change root password ``` -rm /res/passwd +passwd ``` 7. Create the post_init.sh ``` @@ -52,7 +52,4 @@ mkdir -p /data/scripts; chattr -i /data/scripts/post_init.sh; echo -e "#\!/bin/s ``` mkdir -p /data/scripts; chattr -i /data/scripts/post_init.sh; echo -e "#\!/bin/sh\n\nfw_manager.sh -r\nfw_manager.sh -t -k\nrtsp &\n" > /data/scripts/post_init.sh; chmod a+x /data/scripts/post_init.sh; chattr +i /data/scripts/post_init.sh ``` -8. Restart Doorbell G4, then telnet to G4 to clear password -``` -passwd -d root -``` \ No newline at end of file +8. Restart Doorbell G4, then telnet to G4 to check password