UART интерфейс на ГУ Changan CS55 Plus
В ходе подготовки и тестирования скрипта для расширения внутреннего хранилища ГУ Changan CS55 Plus нужно было обеспечить себе страховку от возможных проблем с загрузкой. В случае каких-либо сбоев и невозможностью загрузить полноценно ОС, наше ГУ не доступно на USB-интерфейсе в качество ADB или fastboot устройство, поэтому исправить ошибку становится невозможно.
Для осуществления доступа к ГУ, для отладки и внесения изменений, инженеры Changan предусмотрели в системе интерфейс UART, который позволит подключиться к ГУ в консоли, отследить ход загрузки, войти в систему как root пользователь (su), и выполнить необходимые операции.
Ранее в TG-группе Changan UNI-S / CS55 plus коллега Сергей делился схемой подключения интерфейса UART на корпусе нашего ГУ:
Для быстрого доступа и восстановления работоспособности ГУ в ходе экспериментов, было решено вывести "хвост" с гнезда UART ГУ на USB-TTL модуль в бардачок.
Выполнил снятие ГУ в автомобиле (фото процесса снятия ГУ не будет, всё есть в сети и на Youtube):
После демонтажа ГУ и осмотра на столе выяснилось, что само необходимое гнездо UART расположено непосредственно за кронштейном крепления корпуса ГУ к дисплею:
То есть просто так вывести нужные проводники не получится. Был хороший вариант разобрать корпус ГУ и с помощью пайки подключиться к выводам непосредственно на плате ГУ, но мне не очень хотелось разбирать ГУ.
Спасло то, что само гнездо UART утоплено в корпус, между гнездом и корпусом внутри есть расстояние, в которое проходят тонкие провода. Поэтому я решил изготовить такого рода провода с пинами:
В итоге вставил пины в гнездо UART по схему, протянул их внутрь ГУ, и вывел с задней стороны, закрепил за стойку корпуса ГУ стяжкой:
Проводники "хвоста" обмотал текстильной изолентой (аналог Tesa):
Вывод на USB-TTL преобразователь выполнил следующим образом:
При возврате ГУ в автомобиль и выводе хвоста из бардачка, можем выполнять подключение к ноутбуку следующим образом:
Подключение в помощь USB-TTL модуля
Для подключения ГУ к ноутбуку я использовал целый ряд USB-TTL интерфейсов, которые у меня были куплены еще давно в рамках проекта по изготовлению трицикла для детей:
У меня набор из USB-TTL интерфейсов на базе следующих МС:
- CH340G;
- PL2303;
- CP2102;
Все подключение делал на Macbook c macOS, для подключения использовал приложение Tabby (использую его на ежедневной основе для ssh соединений) c профилем подключения "Serial":
К сожалению, нормально у меня заработал только модуль на базе CP2102, остальные выдавали нечитаемый "мусор" в консоль, какие параметры соединения я бы не задавал. Возможно надо более глубоко погрузиться в данную тему, поработать с драйвером и ревизией USB-TTL модулей, но интерфейс на базе CP2102 на сегодняшний день у меня работает в macOS.
Определяем адрес нашего устройства в системе с помощью ls /dev/tty* | grep usb
:
Вносим полученное устройство в окно настроек профиля serial соединения в Tabby, и выбираем в качестве Baud rate
значение "921600":
Подключаемся, вводим любую команду, и получаем запрос на авторизацию, как всегда, вводит пароль adb369875
, получаем доступ в консоль:
Доступ под пользователем "root" доступен после вводу команды su
.
В консоли доступны основные команды для файловых операций, чтения данных, изменения прав доступа, возможно еще многое что, но пока не удалось проверить. На текущий момент выполнить, возврат исходного состояния отдельных файлов, из ранее сделанного бэкапа, всегда доступно, а это самое главное.
Главное в экспериментах помнить последовательность своих действий, чтобы знать, как исправить в случае проблем.
В Windows можно использовать Putty, c подключение к виртуальному COM-компорту, предварительно установив необходимые драйверы.
Будет продолжать эксперименты, теперь это спокойнее можно делать, когда есть "спасательный круг". Естественно он поможет не во всех ситуациях, могут быть ситуации, когда и UART сервис в ГУ не стартанет, но надеюсь до такого не дойдет.