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

5924 байта добавлено ,  4 месяца назад
 
(не показано 57 промежуточных версий 3 участников)
Строка 1: Строка 1:
 
{{DISPLAYTITLE:Отладочный порт в контроллерах Wiren Board}}
<languages/>
<translate>
<!--T:109-->
{{DISPLAYTITLE:Отладочный порт}}
 
<!--T:100-->
== Описание ==
== Описание ==
У контроллеров Wiren Board есть отладочный порт, через который можно получить доступ к консоли контроллера. Через него можно взаимодействовать с загрузчиком, следить за загрузкой операционной системы.
У контроллеров 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>


Отладочный порт — это инструмент доступа к контроллеру, когда вы не можете подключиться к нему через [[Веб-интерфейс Wiren Board | веб-интерфейс]] или по [[SSH | SSH]]. Мы не рекомендуем его для постоянного использования.
Подключившись к нему, как и в случае [[SSH | SSH]] подключения, вы превращаете свой компьютер в монитор и клавиатуру контроллера. И получаете доступ к его консоли (командной строке). А в отличие от SSH, вы сможете увидеть информацию, выводимую контроллером на экран при его начальной загрузке.


== Подключение к отладочному порту контроллеров Wiren Board 6, 5.8 и 5.9 == <!--T:104-->
Нужен этот порт для аварийных ситуаций, когда подключения по сети недоступны. Например, если вы неверно сконфигурировали сеть, и контроллер не может к ней подключиться. Или, если возникла какая-то проблема, мешающая контроллеру нормально загрузиться. Для обычной работы использовать это подключение мы не рекомендуем, используйте [[Веб-интерфейс Wiren Board | веб-интерфейс]] или SSH.
[[Файл:WirenBoard6DebugConsole.png|250px|thumb|right|Разъем ''Debug Console'' Wiren Board 6]]
[[Файл:Debugusb58.png|250px|thumb|right|Разъем ''Debug Console'' Wiren Board 5.8 и 5.9]]
[[Файл:USBA-MICROUSBB.png|250px|thumb|right|Кабель USB (A) — Micro-USB (B)]]
[[Файл:SerialUART_Win.png|250px|thumb|right|Номер порта в Windows]]


Разъем отладочного порта подписан на корпусе контроллера как '''Debug Console'''.
== Подключение ==
 
{{YouTube
<!--T:115-->
|link=https://youtu.be/VA_XHrY1RVA?t=135
Для физического подключения к отладочному порту используйте стандартный кабель от смартфонов USB (A) — Micro-USB (B). Разъемом USB (А) — к компьютеру, Micro-USB (B) — к контроллеру.
|text= Про командную строку, SSH и Debug Console}}
 
<!--T:116-->
Кабели от зарядных устройств подходят, но бывают исключения. Лучше выбирать такие, на которых указано, что они предназначены для передачи данных. Если кабель выбран правильно, Windows сообщит звуком об обнаружении устройства.
 
=== Драйвера адаптеров и названия виртуальных COM-портов === <!--T:117-->
 
<!--T:118-->
Внутри контроллера установлен переходник USB-UART.
 
<!--T:119-->
*'''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>.
*: Смотрите также раздел [[#Настройка работы в Linux для WB6.4 и выше|Настройка работы в Linux для WB6.4 и выше]].


<!--T:120-->
Если у вас контроллер Wiren Board 5.6 и старее, обратитесь к [[WB5.6_Debug_Console| статье ]].
*'''Windows''': может потребоваться установка драйвера (см. таблицу [[#os-compatible|Поддержка в операционных системах]]). В Диспетчере устройств в разделе '''Ports(COM&LPT)''' появится виртуальный COM-порт контроллера.


<!--T:121-->
Подключение выполняется стандартными кабелями, их легко купить. В комплекте с вашим смартфоном может быть такой.  
*'''macOS''': начиная с High Sierra отладочная консоль контроллеров определяется из коробки. Предыдущие версии операционной системы, возможно, потребуют установки драйверов. При подключении создается устройство <code>/dev/tty.usbserial-1410</code> или <code>/dev/tty.usbmodem00001</code> (для контроллеров версии 6.4 и младше).


<!--T:122-->
{{note|warn| Бывают кабели с такими же разъёмами, но предназначенные только для зарядки они не подойдут. }}
*'''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>
{| class="wikitable"
|+ Поддержка в операционных системах
! Версия <br /> контроллера !! Linux  !! Windows XP, 7, 8 !! Windows 10 !! MacOS X <br />(High Sierra)  !! Android 9 + <br /> USB Serial Console
|-
| 6.4 и новее || Модуль ядра cdc_acm (все новые дистрибутивы — из коробки),
смотрите [[#Настройка работы отладочного порта в Linux для WB6.4 и выше| дополнительную информацию по настройке порта]]
| Нужны inf файлы: [[Медиа:HT42B534_inf.zip]] || Из коробки || Из коробки
|rowspan="2" style="text-align:center;"| Из коробки
|-
| 6.0 - 6.3 <br /> 5.8 - 5.9, 
| Модуль ядра ch341 (все новые дистрибутивы из коробки)
|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]
|-
|}


=== Настройка работы в Linux для WB6.4 и выше === <!--T:123-->
Для подключения '''Wiren Board 7''' к компьютеру нужен кабель '''USB Тип A – USB Тип C'''.
[[Image: Putty serial settings.png|300px|thumb|right| Настройка параметров для подключения к Debug-консоли контроллера в программе [[PuTTY]]]]
[[Image: Putty serial open.png|300px|thumb|right| Открытие сессии в программе [[PuTTY]]]]
[[Image: Putty serial logged in.png|300px|thumb|right| Приветственное сообщение контроллера при подключении к его Debug-консоли]]


На некоторых системах процесс ''ModemManager'' автоматически открывает устройство <code>/dev/ttyACM0</code>.
Для подключения более ранних контроллеров - '''USB тип A – Micro-USB Тип B'''.
Чтобы 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].


=== Параметры подключения и программы ===
Самый простой способ проверить, подходит ли кабель для подключения к контроллеру — подключить к компьютеру через этот кабель мобильный телефон. Если компьютер обнаружил новое устройство — кабель можно использовать и для контролера.
Для подключения к Debug-консоли контроллера используйте параметры из таблицы ниже и одну из программ, перечисленных в статье [[Serial Port | Работа с последовательным портом]].


== Настройка порта, программное обеспечение ==
Необходимо определить, к какому порту компьютера подключен Wiren Board, и настроить этот порт в соответствии с настройками Debug console.
{|  border="1" class="wikitable"  
{|  border="1" class="wikitable"  
|+ Параметры подключения к Debug-консоли контроллера Wiren Board
|+ Параметры порта Debug console
! Параметр|| Значение || Описание
! Параметр|| Значение || Описание
|-
|-
| Serial Port||
* Windows — COMx
* Linux — /dev/ttyACM0 или до версии WB6.4 — /dev/ttyUSB0
||  Подробнее смотрите выше в этой статье
|-
|-
| Baud rate || 115200 ||  Скорость, бит/с
| Baud rate || 115200 ||  Скорость, бит/с
Строка 107: Строка 50:
|}
|}


== Физическая реализация в контроллерах == <!--T:111-->
=== Windows ===
{| class="wikitable"
Если у вас на компьютере '''Windows 10''', а контроллер '''Wiren Board 6.4 или новее''', то система сама, после физического подключения, назначит виртуальный COM порт и установит необходимый драйвер. Увидеть номер этого порта можно в Диспетчере устройств Windows:
! Версия контроллера !! Тип разъема !! Название разъема !! Интерфейс !! Чип USB/UART
[[Файл:Dispatcher.png|left]]
<br clear="both" />
 
При использовании '''Windows XP, 7, 8''' скачайте и установите драйвер. Для установки драйвера вам потребуются навыки администрирования ОС Windows, ссылки на файлы:
* для [https://wirenboard.com/wiki/images/3/38/HT42B534_inf.zip Wiren Board 6.4 или новее];
* для [http://www.wch.cn/downloads/CH341SER_ZIP.html более ранних версий].
 
Далее подключайте контроллер, и в Диспетчере устройств Windows вы должны увидеть виртуальный COM порт, как на иллюстрации выше.
 
В качестве программы для общения с контроллером мы рекомендуем использовать [https://mobaxterm.mobatek.net/ MobaXterm] от компании Mobatek. ЕЕ возможности очень обширны. В платной версии их больше, но для наших целей достаточно и бесплатной версии.
 
Нам нужно создать новую сессию '''Sessions''' → '''New session''' → '''Serial''':
[[Файл:Sessions.png|left]]
<br clear="both" />
 
и настроить ее:
[[Файл:Basic.png|left]]
<br clear="both" />
 
Во вкладке '''Terminal settings''' вы можете настроить шрифт, цвета и, при необходимости, указать файл для записи всего, что будет выводится на экран во время сеанса:
[[Файл:SessionLog.png|left]]
<br clear="both" />
 
А во вкладке '''Bookmark settings''' укажите внятное название сессии:
[[Файл:SessionName.png|left]]
<br clear="both" />
 
=== Linux ===
Порт должен назначиться автоматически. В выводе команды dmesg контроллеров '''Wiren Board 6.4 или новее''' должна появиться строка:
<syntaxhighlight lang="console">
cdc_acm:3-6:1.0: ttyACM0: USB ACM device
</syntaxhighlight>
 
В '''более ранних''' версиях:
<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.
 
Более подробно про Minicom смотрите в нашем [[Minicom | руководстве]].
 
==== 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>
 
В свежих операционных системах Linux может потребоваться отредактировать файл:
<syntaxhighlight lang="bash">
/lib/systemd/system/ModemManager.service
</syntaxhighlight>
 
Подробности здесь:
 
[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]
 
=== 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].
 
При подключении создается устройство:
{|  border="1" class="wikitable"  
! Wiren Board 7 || Wiren Board 6.4 и новее || Более ранние
|-
|-
| 6.4 и младше
| /dev/tty.usbmodemWB71 || /dev/tty.usbmodem00001 || /dev/tty.usbserial-1410
| rowspan="2" | Micro-USB
| rowspan="2" | Debug Console || USB/UART || HT42B534
|-
|-
| 6.0 - 6.3, 5.8 - 5.||  USB/UART || CH340
|}
 
Встроенная утилита cu позволит вам работать с Debug console:
<syntaxhighlight lang="bash">
sudo cu -s 115200 -l /dev/tty.usbserial-1410
</syntaxhighlight>
 
Для выхода из cu введите символы
<syntaxhighlight lang="bash">
~!
</syntaxhighlight>
 
==== MacOS — возможные проблемы ====
Порт может не определиться. Потребуется установка драйвера. Для этого (начиная с MacOS '''High Sierra 10.13''')  нужно дать на это разрешение в <code>Settings → Security&Privacy → Allow apps downloaded from:</code>
[[Файл:Allow.png|left]]
<br clear="both" />
 
И вот хорошая [https://kig.re/2014/12/31/how-to-use-arduino-nano-mini-pro-with-CH340G-on-mac-osx-yosemite.html статья] - человек подключает Arduino к MacOS. Хоть устройство и другое, но там используется точно такой же чип. Возможно, там есть ответы на ваши вопросы.
 
=== 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" />
 
== Работа с отладочным портом ==
[[Файл:DebugConsoleWindowLogin.png|500px|thumb|right| Отладочная консоль]]
Итак:
* Контроллер к компьютеру подключен;
* Программа запущена;
* Настройки порта программы соответствуют настройкам порта Debug console.
Теперь можно начинать работу.
 
''' Если контроллер исправен '''
 
Если контроллер работает нормально — вы будете видеть сообщения, выводимые операционной системой контроллера на консоль. Нажав клавишу ENTER, вы увидите приглашение операционной системы, типа такого:
<syntaxhighlight lang="console">
Debian GNU/Linux 11 wirenboard-AQ4RCD2E ttyS0
 
wirenboard-AQ4RCD2E login:
</syntaxhighlight>
 
Вводите логин, пароль ({{Wbincludes:Controller SSH Default Login Password|short=true}}) — командная строка в вашем распоряжении. Можете настроить сеть, исправить конфигурационные файлы, посмотреть логи и т. д.
 
ВАЖНО! При работе с Debug console на экран время от времени будут «выпадать» сообщения от работающих сервисов Linux. Особенно, если сервис работает с ошибкой. Вы можете продолжать ввод команды с клавиатуры — все будет отработано корректно. Для отключения вывода «лишних» сообщений на экран используйте команду <code>dmesg -n1</code>. Теперь будут выводится только те сообщения, которые требуют немедленного вмешательства.
 
Логи можно смотреть через [[Journalctl]].
 
''' Если контроллер неисправен '''
 
Если контроллер нормально не функционирует - отключите питание контроллера выключателем.
{{note|info| Для Wiren Board 7 также отключите кабель USB (контроллер получает питание от USB, в обход выключателя). }}
Включите питание контроллера. Начнется загрузка контроллера.
{{note|info| Для Wiren Board 7 сначала присоедините кабель (сразу начнется загрузка контроллера), затем включите выключатель (для питания модулей расширения).}}
Наблюдайте сообщения, появляющиеся на экране при загрузке контроллера. Текст меняется быстро, отследить его невозможно. Но, если возникнет критическая ошибка — загрузка остановится, и сообщение об ошибке будет у вас перед глазами.
 
Пролистывая экран назад вы можете просмотреть все сообщения, выведенные при загрузке. Обращайте внимание на  слова error, warning, filed. Не можете сами разобраться — записывайте сеанс в лог файл и обращайтесь в нашу техподдержку.
 
== Физическая реализация в контроллерах ==
{|  border="1" class="wikitable"
! Версия контроллера || Тип разъема || Название разъема || Интерфейс || Чип USB/UART
|-
| 7.x || USB-C ||  Debug Console || USB/UART || HT42B534
|-
| 6.4-6.9 || Micro-USB ||  Debug Console || USB/UART || HT42B534
|-
| 5.8-6.3 || Micro-USB ||  Debug Console || USB/UART || CH340
|-
|-
| 5.6.1  
| 5.6.1 || 3-pin UART (Gnd, Rx, TX) || UART || UART (3,3B) || -
| rowspan="2" | 3-pin UART (Gnd, Rx, Tx) || UART  
|rowspan="3" | UART (3,3 В)  
|rowspan="3" |
|-
|-
| 5.3, ||  Debug UART  
| 4, 5.3 || 3-pin UART (Gnd, Rx, TX) ||  Debug UART || UART (3,3B) || -
|-
|-
| 3.5, 2.8 || 3-pin UART (Gnd, Tx, Rx) || UEXT1 (выводы 2,3,4) и 3-pin разъем без названия  
| 2.8, 3.5 || 3-pin UART (Gnd, Rx, TX) || UEXT1 (выводы 2,3,4) и 3-pin разъем без названия|| UART (3,3B) || -
|-
|-
|}
|}
Программно во всех случаях это последовательный порт.
Программно во всех случаях это последовательный порт.
== Отладочный порт в старых версиях ==
[[WB5.6_Debug_Console| Подключение к отладочному порту в Wiren Board 5.6 и младше]]
</translate>