Debug Console: различия между версиями

592 байта добавлено ,  4 месяца назад
 
(не показано 236 промежуточных версий 9 участников)
Строка 1: Строка 1:
{{DISPLAYTITLE:Отладочный порт}}
{{DISPLAYTITLE:Отладочный порт в контроллерах Wiren Board}}
<languages/>
== Описание ==
У контроллеров Wiren Board есть отладочный порт. Он обозначен как «Debug console».
<gallery mode="packed" caption="" heights="150px" perrow=1>
Image: WirenBoard7DebugConsole.png | Wiren Board 7.x
Image: WirenBoard6DebugConsole.png | Wiren Board 6.x
Image: Debugusb58.png | Wiren Board 5.8 и 5.9
</gallery>
 
Подключившись к нему, как и в случае [[SSH | SSH]] подключения, вы превращаете свой компьютер в монитор и клавиатуру контроллера. И получаете доступ к его консоли (командной строке). А в отличие от SSH, вы сможете увидеть информацию, выводимую контроллером на экран при его начальной загрузке.
 
Нужен этот порт для аварийных ситуаций, когда подключения по сети недоступны. Например, если вы неверно сконфигурировали сеть, и контроллер не может к ней подключиться. Или, если возникла какая-то проблема, мешающая контроллеру нормально загрузиться. Для обычной работы использовать это подключение мы не рекомендуем, используйте [[Веб-интерфейс Wiren Board | веб-интерфейс]] или SSH.
 
== Подключение ==
{{YouTube
|link=https://youtu.be/VA_XHrY1RVA?t=135
|text= Про командную строку, SSH и Debug Console}}
 
Если у вас контроллер Wiren Board 5.6 и старее, обратитесь к [[WB5.6_Debug_Console| статье ]].
 
Подключение выполняется стандартными кабелями, их легко купить. В комплекте с вашим смартфоном может быть такой.


{{note|warn| Бывают кабели с такими же разъёмами, но предназначенные только для зарядки — они не подойдут. }}


<!--T:100-->
Для подключения  '''Wiren Board 7''' к компьютеру нужен кабель '''USB Тип A – USB Тип C'''.
Контроллеры Wiren Board имеют отладочный порт, через который можно получить прямой доступ к консоли контроллера. Через него можно взаимодействовать с загрузчиком и следить за загрузкой операционной системы (последовательная консоль, serial console). Другие способы подключения к контроллеру: [[Веб-интерфейс Wiren Board | через веб-интерфейс]], [[SSH | по SSH]].


<!--T:105-->
Для подключения более ранних контроллеров - '''USB тип A – Micro-USB Тип B'''.
== Физическая реализация порта отладочной консоли ==
Физически в разных версиях контроллера отладочный порт реализован по разному:
* для версий '''WB 5.8 и позднее, включая  WB6''' он выглядит как Micro-USB разъём (подпись ''Debug Console'' или ''Debug USB'');
* для версий '''WB 5.6 и ранее''' он выглядит как трёхштыревой разъём (подпись ''Debug UART'').
Программно во всех случаях это последовательный порт.
[[Файл:Debugusb58.png|250px|thumb|right|Разъем ''Debug USB'']]
Подробнее см. таблицу:
{| class="wikitable"
! Версия коннтроллера !! Тип разъема !! Название разъема !! Интерфейс !! Чип USB/UART
|-
| 6.4 и старше || microUSB || Debug Console || USB/UART || HT42B534-1
|-
| 6.0 — 6.3  || microUSB || Debug Console || USB/UART  || CH340/CH341
|-
| 5.8 — 5.9 || microUSB || Debug Console || USB/UART || CH340/CH341
|-
| 5.6.1 || 3-pin UART (Gnd, Rx, Tx) || UART || UART (3,3 В) || —
|-
| 5.3  || 3-pin UART (Tx, Rx, GND) || Debug UART || UART (3,3 В) || —
|-
| 4 || 3-pin UART (Gnd, Rx, Tx) || Debug UART || UART (3,3 В) || —
|-
| 3.5 || 3-pin UART (Gnd, Tx, Rx) || UEXT1 (выводы 2,3,4) и 3-pin разъем без названия || UART (3,3 В) || —
|-
| 2.8 || 3-pin UART (Gnd, Tx, Rx) || UEXT1 (выводы 2,3,4) и 3-pin разъем без названия || UART (3,3 В) || —
|}


<!--T:3-->
Самый простой способ проверить, подходит ли кабель для подключения к контроллеру — подключить к компьютеру через этот кабель мобильный телефон. Если компьютер обнаружил новое устройство — кабель можно использовать и для контролера.


== Поддержка в Операционных системах ==  
== Настройка порта, программное обеспечение ==
{| class="wikitable"
Необходимо определить, к какому порту компьютера подключен Wiren Board, и настроить этот порт в соответствии с настройками Debug console.
! Версия коннтроллера !! Linux  !! Windows 7, XP !! Windows 10 !! MacOS X (High Sierra)  !! Android 9 + USB Serial Console
{| border="1" class="wikitable"  
|+ Параметры порта Debug console
! Параметр|| Значение || Описание
|-
|-
! 6.4 и старше
| Модуль ядра cdc_acm (все новые дистрибутивы — из коробки) || Необходим драйвер HT42B534-1 || Из коробки || нет информации || Из коробки
|-
|-
! 6.0 — 6.3
| Baud rate || 115200 || Скорость, бит/с
| Модуль ядра ch341 (все новые дистрибутивы — из коробки)|| Необходим драйвер CH341SER || Из коробки || CH341SER_MAC.ZIP || Из коробки
|-
|-
! 5.8 — 5.9
| Data bits || 8 || Количество битов данных
| Модуль ядра ch341 (все новые дистрибутивы — из коробки)|| Необходим драйвер CH341SER || Из коробки || CH341SER_MAC.ZIP || Из коробки
|-
|-
! 5.6.1
| Parity || None ||  Бит чётности
| || — || — ||  ||
|-
|-
! 5.3
| Stop bits || 1 ||  Количество стоповых битов
| || — || — ||  ||
|-
|-
! 4
| Hardware flow control || None ||  Аппаратный контроль потока
| || — || — ||  ||
|-
|-
! 3.5
| Software flow control || None ||  Программный контроль потока
| || — || — ||  ||
|-
|-
! 2.8
| — || — || — ||  ||
|}
|}


=== Windows ===
Если у вас на компьютере '''Windows 10''', а контроллер '''Wiren Board 6.4 или новее''', то система сама, после физического подключения, назначит виртуальный COM порт и установит необходимый драйвер. Увидеть номер этого порта можно в Диспетчере устройств Windows:
[[Файл:Dispatcher.png|left]]
<br clear="both" />


== Подключение к отладочному порту в Wiren Board 5.8 и старше == <!--T:104-->
При использовании '''Windows XP, 7, 8''' скачайте и установите драйвер. Для установки драйвера вам потребуются навыки администрирования ОС Windows, ссылки на файлы:
[[Файл:USBA-MICROUSBB.png|250px|thumb|right|Кабель USB — Micro-USB]]
* для [https://wirenboard.com/wiki/images/3/38/HT42B534_inf.zip Wiren Board 6.4 или новее];
[[Файл:SerialUART_Win.png|250px|thumb|right|Номер порта в Windows]]
* для [http://www.wch.cn/downloads/CH341SER_ZIP.html более ранних версий].
'''Как найти порт: '''


На корпусе напротив разъема отладочного порта находится надпись ''Debug Console''.
Далее подключайте контроллер, и в Диспетчере устройств Windows вы должны увидеть виртуальный COM порт, как на иллюстрации выше.


'''Как подключать:'''
В качестве программы для общения с контроллером мы рекомендуем использовать [https://mobaxterm.mobatek.net/ MobaXterm] от компании Mobatek. ЕЕ возможности очень обширны. В платной версии их больше, но для наших целей достаточно и бесплатной версии.


Для подключения понадобится стандартный кабель USB — Micro-USB - такой же, как для подключения сотовых телефонов. Более точное название кабеля USB (A) — Micro-USB (B). Разъем USB (А) подключается к компьютеру, Micro-USB (B) — к контроллеру.
Нам нужно создать новую сессию '''Sessions''' → '''New session''' → '''Serial''':
[[Файл:Sessions.png|left]]
<br clear="both" />


Кабели от зарядных устройств подходят, но бывают исключения. Лучше выбирать такие, на которых указано, что они предназначены для передачи данных.  
и настроить ее:
Если кабель выбран правильно, Windows сообщит звуком об обнаружении устройства.
[[Файл:Basic.png|left]]
<br clear="both" />


'''Драйвер адаптера и номер виртуального COM-порта:'''
Во вкладке '''Terminal settings''' вы можете настроить шрифт, цвета и, при необходимости, указать файл для записи всего, что будет выводится на экран во время сеанса:
[[Файл:SessionLog.png|left]]
<br clear="both" />


Внутри контроллера установлен переходник USB-UART (в версиях контроллера WB5.8-WB6.3 используется адаптер USB-Serial CH340/CH341).
А во вкладке '''Bookmark settings''' укажите внятное название сессии:
[[Файл:SessionName.png|left]]
<br clear="both" />


*Linux: адаптер обычно определяется автоматически, при подключении в выводе команды <code>dmesg</code> должна появится строка <code>usb 1-1: ch341-uart converter now attached to ttyUSB0</code>. Номер порта ttyUSB может меняться, в зависимости от уже подключенных устройств. Смотрите список файлов в папке /dev/ .
=== Linux ===
Порт должен назначиться автоматически. В выводе команды dmesg контроллеров '''Wiren Board 6.4 или новее''' должна появиться строка:
<syntaxhighlight lang="console">
cdc_acm:3-6:1.0: ttyACM0: USB ACM device
</syntaxhighlight>


*Windows: нужно установить [http://www.winchiphead.com/download/CH341/CH341SER.ZIP драйвер адаптера]: /CH341SER/Setup.exe (запуск от имени администратора). В Диспетчере устройств (Device Manager) в разделе Ports(COM&LPT) должен появиться виртуальный COM-порт контроллера. Если не очевидно, какой из портов используется контроллером, можно отсоединить кабель и включить снова.
В '''более ранних''' версиях:
<syntaxhighlight lang="console">
usb 1-1: ch341-uart converter now attached to ttyUSB0
</syntaxhighlight>


Номер порта ttyUSBx или ttyACMx может меняться, в зависимости от того, что у вас подключено к контроллеру.


Для работы с Debug console мы рекомендуем использовать Minicom. Команда для подключения будет выглядеть так:
<syntaxhighlight lang="console">
minicom -D /dev/ttyACM0 -b 115200 -8 -a off
</syntaxhighlight>
Скорее всего, для доступа к порту вам понадобятся права суперпользователя - используйте sudo.


'''Примечание.''' Начиная с ревизии '''6.4''' используется другой адаптер USB-Serial.  
Более подробно про Minicom смотрите в нашем [[Minicom | руководстве]].


*Linux: адаптер обычно определяется автоматически как ''/dev/ttyACM0'', при этом номер порта ttyACM может быть иным в зависимости от уже подключенных устройств. Тем не менее, для корректной работы отладочной консоли на контроллерах данной ревизии на linux-системах, рекомендуется [[#Настройка работы отладочного порта в linux для WB6.4 и выше | настроить правило ''udev'' для ModemManager]].
==== Linux — возможные проблемы ====
Сервис '''ModemManager''' может мешать работе с портом. Если у вас WirenBoard 6.4 или новее — правильно сконфигурируйте udev.
* Создайте файл исключений udev:
<syntaxhighlight lang="bash">
sudo nano /etc/udev/rules.d/99-wb-debug-usb.rules
</syntaxhighlight>
* Добавьте в него строчку:
<syntaxhighlight lang="bash">
ATTRS{idVendor}=="04d9" ATTRS{idProduct}=="b534", ENV{ID_MM_DEVICE_IGNORE}="1"
</syntaxhighlight>
* После сохранения файла перезагрузите правило udev:
<syntaxhighlight lang="bash">
sudo udevadm control --reload-rules
</syntaxhighlight>


*Windows 8/10: дополнительные драйвера не требуются. В Диспетчере устройств (Device Manager) в разделе Ports(COM&LPT) должен появиться виртуальный COM-порт контроллера. Если не очевидно, какой из портов используется контроллером, можно отсоединить кабель и включить снова.
В свежих операционных системах Linux может потребоваться отредактировать файл:
<syntaxhighlight lang="bash">
/lib/systemd/system/ModemManager.service
</syntaxhighlight>


Переходите к [[#Настройка работы с последовательным портом | настройке работы с последовательным портом]].
Подробности здесь:


<!--T:108-->
[https://bugs.launchpad.net/ubuntu/+source/modemmanager/+bug/1827328 ModemManager does not honor blacklisted ttys]


== Подключение к отладочному порту в Wiren Board 5.6 и младше== <!--T:4-->
[https://nick.zoic.org/art/failed-to-set-dtr-rts-systemd-modemmanager SystemD ModemManager: failed to set dtr/rts]
'''Как найти порт:'''


Читайте ниже в разделе [[#Wiren Board 5 | Как найти штырьки разъема отладочного порта]] .
=== MacOS ===
{{note|warn| Если у вас Wiren Board 7 и Mac с USB Тип C на процессоре Intel - нужно отключить питание контроллера, он будет питаться от USB. При наличии питания порт операционной системой не определяется. На более старые Mac и Mac на процессорах Apple эта особенность не распространяется. }}


'''Как подключать:'''
Начиная с версии MacOS '''10.14 Mojave''' все должно определиться автоматически. Предыдущие версии, возможно, потребуют установки драйвера [http://www.wch.cn/download/ch341ser_mac_zip.html CH341SER_MAC].


Для подключения понадобится переходник USB-UART.
При подключении создается устройство:
'''Внимание!'''
{|  border="1" class="wikitable"
[[Файл:Duart.jpg|thumb|right|Адаптер USB-UART]]
! Wiren Board 7 || Wiren Board 6.4 и новее || Более ранние
|-
| /dev/tty.usbmodemWB71 || /dev/tty.usbmodem00001 || /dev/tty.usbserial-1410
|-
|}


* Подключайте Debug UART только через переходники USB-UART с напряжением 3.3 В.
Встроенная утилита cu позволит вам работать с Debug console:
* UART не является синонимом RS-232 (где напряжение на линии может быть 5 В, 12 В и т.д.). Подключение Debug UART к порту RS-232 (или переходнику USB-RS-232) напрямую '''приведет к необратимому повреждению устройства'''.
<syntaxhighlight lang="bash">
sudo cu -s 115200 -l /dev/tty.usbserial-1410
</syntaxhighlight>


Для выхода из cu введите символы
<syntaxhighlight lang="bash">
~!
</syntaxhighlight>


Подключите адаптер USB-UART к компьютеру, соедините контакты адаптера с контактами (штырьками) отладочного порта на контроллере по схеме:
==== MacOS — возможные проблемы ====
*GND к GND,
Порт может не определиться. Потребуется установка драйвера. Для этого (начиная с MacOS '''High Sierra 10.13''') нужно дать на это разрешение в <code>Settings → Security&Privacy → Allow apps downloaded from:</code>
*TX к RX,
[[Файл:Allow.png|left]]
*RX к TX.
<br clear="both" />
На некоторых переходниках маркировка перепутана — попробуйте соединить TX с TX и RX с RX.


И вот хорошая [https://kig.re/2014/12/31/how-to-use-arduino-nano-mini-pro-with-CH340G-on-mac-osx-yosemite.html статья] - человек подключает Arduino к MacOS. Хоть устройство и другое, но там используется точно такой же чип. Возможно, там есть ответы на ваши вопросы.


'''Драйвер адаптера и номер виртуального COM-порта:'''
=== Android ===
[[Файл:OTG.png|150px|thumb|right| OTG-кабель]]
Начиная с Android версии 9 все работает без установки дополнительных драйверов. Подключение через OTG. Тестировалось с приложением [https://play.google.com/store/apps/details?id=jp.sugnakys.usbserialconsole&hl=en_US USB Serial Console], если ссылка не работает - ищите в Google Play.
<br clear="both" />


*Windows: установите драйвер конкретного адаптера.  
== Работа с отладочным портом ==
*Linux: адаптер скорее всего будет сразу поддерживаться ядром, но, возможно, придётся скомпилировать соответствующий модуль.
[[Файл:DebugConsoleWindowLogin.png|500px|thumb|right| Отладочная консоль]]
Итак:
* Контроллер к компьютеру подключен;
* Программа запущена;
* Настройки порта программы соответствуют настройкам порта Debug console.
Теперь можно начинать работу.  


Переходите к [[#Настройка работы с последовательным портом | настройке работы с последовательным портом]].
''' Если контроллер исправен '''


== Настройка работы с последовательным портом == <!--T:7-->
Если контроллер работает нормально — вы будете видеть сообщения, выводимые операционной системой контроллера на консоль. Нажав клавишу ENTER, вы увидите приглашение операционной системы, типа такого:
=== Установка программы для работы с последовательным портом ===
<syntaxhighlight lang="console">
Debian GNU/Linux 11 wirenboard-AQ4RCD2E ttyS0


<!--T:8-->
wirenboard-AQ4RCD2E login:
Для работы с последовательным портом установите на вашем компьютере подходящую утилиту - например, PuTTY:
</syntaxhighlight>
* версия для Windows - [http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe скачать с официального сайта]
* версия для Linux Debian или Ubuntu - выполните команду ''apt-get install putty''
Подойдут также [http://elinux.org/RPi_Serial_Connection другие программы].


Настройки соединения: '''115200 8N1''' (115200 кбит/с, 8 бит, нет бита чётности, один стоп-бит), root/wirenboard.
Вводите логин, пароль ({{Wbincludes:Controller SSH Default Login Password|short=true}}) — командная строка в вашем распоряжении. Можете настроить сеть, исправить конфигурационные файлы, посмотреть логи и т. д.  


=== Подключение === <!--T:9-->
ВАЖНО! При работе с Debug console на экран время от времени будут «выпадать» сообщения от работающих сервисов Linux. Особенно, если сервис работает с ошибкой. Вы можете продолжать ввод команды с клавиатуры — все будет отработано корректно. Для отключения вывода «лишних» сообщений на экран используйте команду <code>dmesg -n1</code>. Теперь будут выводится только те сообщения, которые требуют немедленного вмешательства.


<!--T:10-->
Логи можно смотреть через [[Journalctl]].
#Запустите приложение от имени администратора:
#* в Windows - щёлкните по значку PuTTY правой кнопкой и выберите ''Run This Program As An Administrator''
#* в Linux - <code>gksu putty</code> <br /><br />
#В меню слева выберите последний пункт - ''Serial''. В появившиеся поля справа введите настройки порта:
#*название последовательного порта
#**для Windows - это ''COM4'' ('''цифра может меняться''', см.выше)
#**для Linux - это ''/dev/ttyUSB0'' либо ''/dev/ttyACM0'' (для WB6.4 и выше). '''Цифра может меняться''', см.выше.
#*скорость - ''115200''
#*количество битов в посылке - ''8''
#*количество стоп-битов - ''1''
#*чётность - ''нет''
#*контроль потока - ''нет'' <br /><br />
#:[[Файл:Putty serial settings.png|500px]] <br /><br />
#В меню слева выберите первый пункт - ''Session''. Справа переключите тип подключения на Serial - должны автоматически заполниться настройки порта. Затем нажмите ''Open''.<br /><br />
#:[[Файл:Putty serial open.png|500px]] <br /><br />
#Чтобы проверить, правильно ли вы всё сделали:
#*для Wiren Board 5.6 и младше: кнопкой выключите и включите контроллер - на экране должны появиться сообщения о загрузке.
#*для Wiren Board 5.8 и старше: нажмите Enter. Будет предложена авторизация.
#**запрос логина - введите ''root'' и нажмите ''Enter'',
#**запрос пароля - введите ''wirenboard'' (вводимые символы не будут отображаться) и нажмите ''Enter''.<br /><br />
#Появится приветственное сообщение - вы в консоли контроллера. Для перехода в визуальный файловый менеджер введите <code>mc</code>.<br /><br />
#:[[Файл:Putty serial logged in.png|500px]]


== Как найти штырьки разъёма отладочного порта на Wiren Board 5.6 и младше ==
''' Если контроллер неисправен '''
=== Wiren Board 5 ===
Debug UART для версии 5.3 выведен на боковую панель, для 5.6 - выведен на гребенку между разъемами FW и IR.


<gallery mode="packed" heights=200 widths=200 style="text-align:left">
Если контроллер нормально не функционирует - отключите питание контроллера выключателем.
Image:Wb53 uart.jpg|Wiren Board 5.3
{{note|info| Для Wiren Board 7 также отключите кабель USB (контроллер получает питание от USB, в обход выключателя). }}
Image:Wb56 uart.jpg|Wiren Board 5.6
Включите питание контроллера. Начнется загрузка контроллера.
</gallery>
{{note|info| Для Wiren Board 7 сначала присоедините кабель (сразу начнется загрузка контроллера), затем включите выключатель (для питания модулей расширения).}}
=== Wiren Board 4 ===
Наблюдайте сообщения, появляющиеся на экране при загрузке контроллера. Текст меняется быстро, отследить его невозможно. Но, если возникнет критическая ошибка — загрузка остановится, и сообщение об ошибке будет у вас перед глазами.
Выведен на боковую панель рядом с разъёмами для microSD и microSIM карт.


===Wiren Board Smart Home 3.5===
Пролистывая экран назад вы можете просмотреть все сообщения, выведенные при загрузке. Обращайте внимание на слова error, warning, filed. Не можете сами разобраться — записывайте сеанс в лог файл и обращайтесь в нашу техподдержку.
Debug UART выведен на разъём UEXT1, а также отдельно на гребёнку (рядом с аудиовыходом, см. схему)
Для Debug UART используются ножки 2,3,4 (см. рисунок).


<gallery mode="packed" heights=400 widths=400 style="text-align:left">
== Физическая реализация в контроллерах ==
Image:WB3.5.png|Wiren Board Smart Home rev 3.5
{|  border="1" class="wikitable"
</gallery>
! Версия контроллера || Тип разъема || Название разъема || Интерфейс || Чип USB/UART
 
|-
===Wiren Board 2.8===
| 7.x || USB-C ||  Debug Console || USB/UART || HT42B534
Выведен на разъём UEXT1 (чёрный разъём с десятью штырьками на длинной стороне платы).
|-
 
| 6.4-6.9 || Micro-USB ||  Debug Console || USB/UART || HT42B534
<gallery mode="packed" heights=200 widths=200 style="text-align:left">
|-
Image:UEXTPINS.jpg|thumb|UEXT pinout for [[Insulation-displacement connector|IDC]] connector<br/>(looking into connector on host board)
| 5.8-6.3 || Micro-USB ||  Debug Console || USB/UART || CH340
</gallery>
|-
 
| 5.6.1 || 3-pin UART (Gnd, Rx, TX) ||  UART || UART (3,3B) || -
== Настройка работы отладочного порта в linux для WB6.4 и выше ==
|-
 
| 4, 5.3 || 3-pin UART (Gnd, Rx, TX) ||  Debug UART || UART (3,3B) || -
'''Суть проблемы:''' на некоторых системах процесс ModemManager автоматически открывает устройство ''/dev/ttyACM0''.
|-
Для этого необходимо отключить ModemManager для данного устройства с помощью правил ''udev''.
| 2.8, 3.5 || 3-pin UART (Gnd, Rx, TX) ||  UEXT1 (выводы 2,3,4) и 3-pin разъем без названия|| UART (3,3B) || -
 
|-
* Создаем файл исключений ''udev''
|}
<syntaxhighlight lang="bash"> sudo nano /etc/udev/rules.d/99-wb-debug-usb.rules </syntaxhighlight>
Программно во всех случаях это последовательный порт.
 
* в который записываем cтрочку
<syntaxhighlight lang="bash"> ATTRS{idVendor}=="04d9" ATTRS{idProduct}=="b534", ENV{ID_MM_DEVICE_IGNORE}="1" </syntaxhighlight>
 
* После сохранения файла необходимо перезагрузить правила ''udev'':
<syntaxhighlight lang="bash"> sudo udevadm control --reload-rules </syntaxhighlight>