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

Удалённая из перевода страница
Метка: отменено
(Удалённая из перевода страница)
Метка: отменено
Строка 1: Строка 1:


<languages/>
<translate>
<!--T:109-->
{{DISPLAYTITLE:Отладочный порт}}
{{DISPLAYTITLE:Отладочный порт}}


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


== Контроллеры Wiren Board 5.8, 5.9, 6.x и 7.x == <!--T:104-->
== Физическая реализация порта отладочной консоли ==
Физически в разных версиях контроллера отладочный порт реализован по разному:
* для версий '''WB 6 и позднее''' он выглядит как Micro-USB разъём (подпись ''Debug Console'');
* для версий '''WB 5.8 и позднее''' он выглядит как Micro-USB разъём (подпись ''Debug Console'' или ''Debug USB'');
* для версий '''WB 5.6 и ранее, до версии 2.8 ''' он выглядит как трёхштыревой разъём (подпись ''Debug UART'').
Программно во всех случаях это последовательный порт.
 
Варианты реализации отладочной консоли в разных версиях контроллеров перечислены ниже.
 
=== Реализация отладочной консоли в контроллерах Wiren Board ===
{| class="wikitable"
! Версия коннтроллера !! Тип разъема !! Название разъема !! Интерфейс !! Чип USB/UART
|-
| 6.4 и старше || microUSB || Debug Console || USB/UART || HT42B534
|-
| 6.0 — 6.3  || microUSB || Debug Console || USB/UART  || CH340
|-
| 5.8 — 5.9 || microUSB || Debug Console || USB/UART || CH340
|-
| 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 В) || —
|}
 
== Поддержка в операционных системах ==
{| class="wikitable"
! Версия контроллера !! Linux  !! Windows XP, 7, 8 !! Windows 10 !! MacOS X (High Sierra)  !! Android 9 + USB Serial Console
|-
| 6.4 и старше
| Модуль ядра cdc_acm (все новые дистрибутивы — из коробки), смотрите [[#Настройка работы отладочного порта в Linux для WB6.4 и выше| дополнительную информацию по настройке порта]] || Необходим драйвер [http://www.holtek.com/documents/10179/116677/USBBridgeSetup_CA.zip HT42B534] || Из коробки || Из коробки || Из коробки
|-
| 6.0 — 6.3
| Модуль ядра ch341 (все новые дистрибутивы — из коробки)|| Необходим драйвер [http://www.wch.cn/downloads/CH341SER_ZIP.html CH341SER] || Необходим драйвер [http://www.wch.cn/downloads/CH341SER_ZIP.html CH341SER] || [[http://www.wch.cn/download/ch341ser_mac_zip.html CH341SER_MAC.ZIP]] || Из коробки
|-
| 5.8 — 5.9
| Модуль ядра ch341 (все новые дистрибутивы — из коробки)|| Необходим драйвер [http://www.wch.cn/downloads/CH341SER_ZIP.html CH341SER]|| Необходим драйвер [http://www.wch.cn/downloads/CH341SER_ZIP.html CH341SER] || [[http://www.wch.cn/download/ch341ser_mac_zip.html CH341SER_MAC.ZIP]] || Из коробки
|-
|}


<gallery mode="packed" caption="Расположение разъёма Debug Console на контроллерах Wiren Board" heights="150px">
Для контроллеров версии 5.6.1 и младше требуется переходник USB/UART. См. раздел [[#Подключение к отладочному порту в Wiren Board 5.6 и младше|Подключение к отладочному порту в Wiren Board 5.6 и младше]]
Image: WirenBoard7DebugConsole.png | Wiren Board 7.x
Image: WirenBoard6DebugConsole.png | Wiren Board 6.x
Image: Debugusb58.png | Wiren Board 5.8 и 5.9
</gallery>


== Подключение к отладочному порту контроллеров Wiren Board 6, Wiren Board 5.8 и Wiren Board 5.9 ==
[[Файл:Debugusb58.png|250px|thumb|right|Разъем ''Debug Console'' Wiren Board 5.8 и 5.9]]
[[Файл:WirenBoard6DebugConsole.png|250px|thumb|right|Разъем ''Debug Console'' Wiren Board 6]]
[[Файл:USBA-MICROUSBB.png|250px|thumb|right|Кабель USB — Micro-USB]]
[[Файл:SerialUART_Win.png|250px|thumb|right|Номер порта в Windows]]
[[Файл:SerialUART_Win.png|250px|thumb|right|Номер порта в Windows]]
[[Файл:USBA-MICROUSBB.png|250px|thumb|right|Кабель USB (A) - Micro-USB (B)]]
=== Как найти порт отладочной консоли ===
[[Файл:USBA-USBC.png|250px|thumb|right|Кабель USB (A) - USB-C]]
 
На корпусе напротив разъема порта отладочной консоли находится надпись ''Debug Console''.


Разъём отладочного порта подписан на корпусе контроллера как '''Debug Console'''.
=== Подключение ===


<!--T:115-->
Для подключения понадобится стандартный кабель USB — Micro-USB - такой же, как для подключения сотовых телефонов. Более точное название кабеля USB (A) Micro-USB (B). Разъем USB (А) подключается к компьютеру, Micro-USB (B) — к контроллеру.
В зависимости от версии контроллера, для подключения используйте стандартный кабель от смартфонов:
* '''Wiren Board 5.8, 5.9 и 6''' — USB (A) - Micro-USB (B).
* '''Wiren Board 7''' — USB (A) - USB-C.  


Разъём USB (A) подключается к компьютеру, а Micro-USB (B) или USB-C — к контроллеру.
Кабели от зарядных устройств подходят, но бывают исключения. Лучше выбирать такие, на которых указано, что они предназначены для передачи данных.
Если кабель выбран правильно, Windows сообщит звуком об обнаружении устройства.


<!--T:116-->
=== Драйвера адаптеров и названия виртуальных COM-портов ===
Кабели от зарядных устройств подходят, но бывают исключения. Лучше выбирать такие, на которых указано, что они предназначены для передачи данных. Если кабель выбран правильно, Windows сообщит звуком об обнаружении устройства.


=== Драйвера адаптеров и названия виртуальных COM-портов === <!--T:117-->
Внутри контроллера установлен переходник USB-UART; подробнее — в таблице [[ #Реализация отладочной консоли в контроллерах Wiren Board |Реализация отладочной консоли в контроллерах Wiren Board]].


<!--T:118-->
*'''Linux''': адаптер обычно определяется автоматически, при подключении в выводе команды <code>dmesg</code> должна появится строка <code>usb 1-1: ch341-uart converter now attached to ttyUSB0</code> или (для версий контроллера 6.4 и старше) <code>cdc_acm:3-6:1.0: ttyACM0: USB ACM device</code>. Номер порта ttyUSBx или ttyACMx может меняться, в зависимости от уже подключенных устройств. Смотрите список файлов в папке /dev/ . Консольный порт контроллеров новых версий 6.4 и старше определяется автоматически как устройство ''/dev/ttyACM0''. Смотрите также раздел [[#Настройка работы отладочного порта в Linux для WB6.4 и выше|Настройка работы отладочного порта в Linux для WB6.4 и выше]].
Внутри контроллера установлен переходник USB-UART.


<!--T:119-->
*'''Windows''': в зависимости от версии и типа контроллера возможно потребуется установка драйвера (см. таблицу [[#Поддержка в операционных системах|Поддержка в операционных системах]]). В Диспетчере устройств (Device Manager) в разделе Ports(COM&LPT) должен появиться виртуальный COM-порт контроллера. Если не очевидно, какой из портов используется контроллером, можно отсоединить кабель и включить снова.
*'''Linux''': адаптер обычно определяется автоматически, при подключении адаптера в выводе команды <code>dmesg</code> должна появиться строка:
*:<syntaxhighlight lang="bash">
usb 1-1: ch341-uart converter now attached to ttyUSB0
</syntaxhighlight>
*: или, для версий контроллера 6.4 и младше:
*:<syntaxhighlight lang="bash">
cdc_acm:3-6:1.0: ttyACM0: USB ACM device
</syntaxhighlight>
*: Номер порта ttyUSBx или ttyACMx может меняться, в зависимости от уже подключенных устройств. Смотрите список файлов в папке <code>/dev/</code>. Консольный порт контроллеров для версий 6.4 и младше определяется автоматически как устройство <code>/dev/ttyACM0</code>.
*: Смотрите также раздел [[#Особенности подключения к WB6.4 и новее из Linux|Особенности подключения к WB6.4 и новее из Linux]].


<!--T:120-->
*'''macOS''': Начиная с High Sierra отладочная консоль контроллеров определяется из коробки, предыдущие версии операционной системы, возможно, потребуют установки драйверов. При подключении создается устройство /dev/tty.usbserial-1410 или /dev/tty.usbmodem00001 (для контроллеров версии 6.4 и старше).
*'''Windows''': может потребоваться установка драйвера (см. таблицу [[#os-compatible|Поддержка в операционных системах]]). В Диспетчере устройств в разделе '''Ports(COM&LPT)''' появится виртуальный COM-порт контроллера.


<!--T:121-->
*'''Android''': Поздние версии Android при подключении через OTG поддерживают отладочную консоль контроллеров без дополнительных драйверов. Тестировалось с приложением [https://play.google.com/store/apps/details?id=jp.sugnakys.usbserialconsole&hl=en_US USB Serial Console].
*'''macOS''': начиная с High Sierra отладочная консоль контроллеров определяется из коробки. Предыдущие версии операционной системы, возможно, потребуют установки драйверов. При подключении создается устройство <code>/dev/tty.usbserial-1410</code> или <code>/dev/tty.usbmodem00001</code> (для контроллеров версии 6.4 и младше).


<!--T:122-->
=== Настройка работы отладочного порта в Linux для WB6.4 и выше ===
*'''Android''': поздние версии Android при подключении через OTG поддерживают отладочную консоль контроллеров без дополнительных драйверов. Тестировалось с приложением [https://play.google.com/store/apps/details?id=jp.sugnakys.usbserialconsole&hl=en_US USB Serial Console].
 
<div id="os-compatible"></div>
'''Суть проблемы:''' на некоторых системах процесс ModemManager автоматически открывает устройство ''/dev/ttyACM0''.
{| class="wikitable"
Чтобы ModemManager не мешал работе с портом, необходимо отключить его для данного устройства с помощью правил ''udev''.
|+ Поддержка в операционных системах
 
! Версия <br /> контроллера !! Linux  !! Windows XP, 7, 8 !! Windows 10 !! MacOS X <br />(High Sierra)  !! Android 9 + <br /> USB Serial Console
* Создаем файл исключений ''udev''
|-
<syntaxhighlight lang="bash"> sudo nano /etc/udev/rules.d/99-wb-debug-usb.rules </syntaxhighlight>
| 7.x<br>6.4 – 6.9 || Модуль ядра cdc_acm (все новые дистрибутивы — из коробки),
 
| Нужны inf файлы: [[Медиа:HT42B534_inf.zip]] || Из коробки || Из коробки
* в который записываем cтрочку
|rowspan="2" style="text-align:center;"| Из коробки
<syntaxhighlight lang="bash"> ATTRS{idVendor}=="04d9" ATTRS{idProduct}=="b534", ENV{ID_MM_DEVICE_IGNORE}="1" </syntaxhighlight>
|-
 
| 6.0 - 6.3 <br /> 5.8 - 5.9, 
* После сохранения файла необходимо перезагрузить правила ''udev'':
| Модуль ядра ch341 (все новые дистрибутивы — из коробки)
<syntaxhighlight lang="bash"> sudo udevadm control --reload-rules </syntaxhighlight>
|colspan="2" style="text-align:center;"| Нужен драйвер [http://www.wch.cn/downloads/CH341SER_ZIP.html CH341SER] || [http://www.wch.cn/download/ch341ser_mac_zip.html CH341SER_MAC]
|-
|}


=== Особенности подключения к WB6.4 и новее из Linux === <!--T:123-->
* В свежих операционных системах может понадобится редактирование файла /lib/systemd/system/ModemManager.service . Подробнее смотрите: https://bugs.launchpad.net/ubuntu/+source/modemmanager/+bug/1827328 и https://nick.zoic.org/art/failed-to-set-dtr-rts-systemd-modemmanager/
На некоторых Linux-системах процесс ''ModemManager'' автоматически открывает устройство <code>/dev/ttyACM0</code>.
Чтобы ModemManager не мешал работе с портом, его надо отключить для этого устройства с помощью правил '''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>
# В свежих операционных системах может понадобиться отредактировать файл <code>/lib/systemd/system/ModemManager.service</code>. Смотрите подробнее по ссылкам: [https://bugs.launchpad.net/ubuntu/+source/modemmanager/+bug/1827328 ModemManager does not honor blacklisted ttys] и [https://nick.zoic.org/art/failed-to-set-dtr-rts-systemd-modemmanager/ SystemD ModemManager: failed to set dtr/rts].


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


{|  border="1" class="wikitable"
== Подключение к отладочному порту в Wiren Board 5.6 и младше==
|+ Параметры подключения к Debug-консоли контроллера Wiren Board
=== Как найти штыревой разъем порта отладочной консоли ===
! Параметр|| Значение || Описание
|-
| Serial Port||
* Windows — COMx
* Linux — /dev/ttyACM0 или до версии WB6.4 — /dev/ttyUSB0
||  Подробнее смотрите выше в этой статье
|-
| Baud rate || 115200 ||  Скорость, бит/с
|-
| Data bits || 8 ||  Количество битов данных
|-
| Parity || None ||  Бит чётности
|-
| Stop bits || 1 ||  Количество стоповых битов
|-
| Hardware flow control || None ||  Аппаратный контроль потока
|-
| Software flow control || None ||  Программный контроль потока
|-
|}


<gallery mode="traditional" widths ="260px" heights="200px">
<gallery mode="traditional" heights=200 widths=200 style="text-align:left">
Image: Putty serial settings.png | Настройка параметров для подключения к Debug-консоли контроллера в программе [[PuTTY]]
Image:Wb56 uart.jpg|В '''Wiren Board 5.6''' Debug UART выведен на гребенку между разъемами FW и IR.
Image: Putty serial open.png | Открытие сессии в программе [[PuTTY]]
Image:Wb53 uart.jpg|Debug UART в '''Wiren Board 5.3''' выведен на боковую панель.
Image: Putty serial logged in.png | Приветственное сообщение контроллера при подключении к его Debug-консоли
Image:WirenBoard4DebugConsole.png|В '''Wiren Board 4''' Debug UART находятся на боковой панели рядом с разъёмами для microSD и microSIM карт.
Image:WB3.5.png|В '''Wiren Board Smart Home rev 3.5''' Debug UART выведен на разъём UEXT1, а также отдельно на гребёнку (рядом с аудиовыходом, см. схему). Для Debug UART используются ножки 2,3,4.
Image:WirenBoard2.8DebugConsole.png| В '''Wiren Board 2.8''' Debug UART dыведен на разъём UEXT1 (чёрный разъём с десятью штырьками на длинной стороне платы).
File:WirenBoard2.8UEXTPINS.png| Расположение выводов UART на разъеме UEXT1 (вид сбоку)
</gallery>
</gallery>


== Физическая реализация в контроллерах == <!--T:111-->
=== Подключение ===
 
Для подключения понадобится адаптер USB-UART.
'''Внимание!'''
[[Файл:Duart.jpg|thumb|right|Адаптер USB-UART и набор соединительных проводов]]
 
* Подключайте Debug UART только через переходники USB-UART с напряжением '''3,3 В'''.
* UART не является синонимом RS-232 (где напряжение на линии может быть 5 В, 12 В и т.д.). Подключение Debug UART к порту RS-232 (или переходнику USB-RS-232) напрямую '''приведет к необратимому повреждению устройства'''.
 
Подключите адаптер USB-UART к компьютеру, соедините контакты адаптера с контактами (штырьками) отладочного порта на контроллере по схеме:
*GND к GND,
*TX к RX,
*RX к TX.
 
На некоторых переходниках маркировка перепутана — попробуйте соединить TX с TX и RX с RX.
 
=== Поддержка переходников USB/UART ===
 
Существует большое количество переходников USB/UART, в таблице приводится информация о поддержке в операционных системах переходников с наиболее распространенными чипами. Таблица будет уточняться по мере получения новых данных.
 
{| class="wikitable"
{| class="wikitable"
! Версия контроллера !! Тип разъема !! Название разъема !! Интерфейс !! Чип USB/UART
! Переходник USB/UART (чип) !! Linux  !! Windows XP, 7, 8 !! Windows 10 !! MacOS X (High Sierra)  !! Android 9 + USB Serial Console
|-
| 7.x
| USB-C || Debug Console || USB/UART || HT42B534
|-
|-
| 6.4–6.9
| FTDI232
| rowspan="2" | Micro-USB
| Модуль ядра ftdi_sio || требуют драйверов на ОС из коробки || требуют драйверов на ОС из коробки || Нет информации || Из коробки
| rowspan="2" | Debug Console || USB/UART || HT42B534
|-
|-
| 6.0 - 6.3, 5.8 - 5.9  || USB/UART  || CH340
| CP2102
| Модуль ядра cp210x || [https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers Silicon Labs CP210x VCP Driver] || [https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers Silicon Labs CP210x VCP Driver] || [https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers Silicon Labs CP210x VCP Driver] || Из коробки
|-
|-
| 5.6.1
| CH340/CH341
| rowspan="2" | 3-pin UART (Gnd, Rx, Tx) || UART
| Модуль ядра ch341 || Необходим драйвер [http://www.wch.cn/downloads/CH341SER_ZIP.html CH341SER] || Из коробки || [http://www.wch.cn/download/ch341ser_mac_zip.html CH341SER_MAC.ZIP] || Из коробки
|rowspan="3" | UART (3,3 В)
|rowspan="3" | —
|-
| 5.3, 4  ||  Debug UART
|-
| 3.5, 2.8 || 3-pin UART (Gnd, Tx, Rx) || UEXT1 (выводы 2,3,4) и 3-pin разъем без названия
|-
|-
| PL2303xx
| Модуль ядра pl2303 || необходим драйвер || нет информации || нет информации  || нет информации
|}
|}
Программно во всех случаях это последовательный порт.


== Контроллеры Wiren Board ≤5.6 ==
[[WB5.6_Debug_Console| Подключение к отладочному порту в Wiren Board 5.6 и старее]]


</translate>
=== Драйвера адаптеров ===
 
*Windows: установите драйвер конкретного адаптера, если он не поддерживается операционной системой.
*Linux: адаптер скорее всего будет сразу поддерживаться ядром, но, возможно, придётся скомпилировать соответствующий модуль.
*macOS: установите драйвер конкретного адаптера, если он не поддерживается операционной системой.
*Android: установите драйвер конкретного адаптера, если он не поддерживается операционной системой.
 
Переходите к [[#Настройка работы с последовательным портом | настройке работы с последовательным портом]].
 
== Настройка работы с последовательным портом ==
=== Установка программы для работы с последовательным портом ===
 
Для работы с последовательным портом установите на вашем компьютере подходящую утилиту - например, PuTTY:
* версия для Windows - [http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe скачать с официального сайта]
* версия для Linux Debian или Ubuntu - выполните команду ''apt-get install putty''
* версия для macOS и инструкция по установке: [https://www.ssh.com/ssh/putty/mac/ PuTTY for Mac OS X], возможно использование терминального клиента <code>cu</code>, например
<pre>cu -s 115200 -l /dev/usbmodem00001</pre>.
* Android: используйте, например, [https://play.google.com/store/apps/details?id=jp.sugnakys.usbserialconsole&hl=en_US USB Serial Console]. 
Подойдут также [http://elinux.org/RPi_Serial_Connection другие программы].
 
Настройки соединения: '''115200 8N1''' (115200 кбит/с, 8 бит, нет бита чётности, один стоп-бит), root/wirenboard.
 
=== Подключение ===
 
#Запустите приложение от имени администратора:
#* в 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.8 и старше''': нажмите Enter. Будет предложена авторизация.
 
#*для '''Wiren Board 5.6 и младше, до версии 2.8 включительно''': кнопкой выключите и включите контроллер - на экране должны появиться сообщения о загрузке.
#**запрос логина - введите ''root'' и нажмите ''Enter'',
#**запрос пароля - введите ''wirenboard'' (вводимые символы не будут отображаться) и нажмите ''Enter''.<br /><br />
#Появится приветственное сообщение - вы в консоли контроллера. Для перехода в визуальный файловый менеджер введите <code>mc</code>.<br /><br />
#:[[Файл:Putty serial logged in.png|500px]]