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

 
(не показано 267 промежуточных версий 11 участников)
Строка 1: Строка 1:
{{DISPLAYTITLE:Отладочный порт в контроллерах 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>
Подключившись к нему, как и в случае [[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| Бывают кабели с такими же разъёмами, но предназначенные только для зарядки — они не подойдут. }}
Для подключения  '''Wiren Board 7''' к компьютеру нужен кабель '''USB Тип A – USB Тип C'''.
Для подключения более ранних контроллеров - '''USB тип A – Micro-USB Тип B'''.
Самый простой способ проверить, подходит ли кабель для подключения к контроллеру — подключить к компьютеру через этот кабель мобильный телефон. Если компьютер обнаружил новое устройство — кабель можно использовать и для контролера.


<languages/>
== Настройка порта, программное обеспечение ==
Необходимо определить, к какому порту компьютера подключен Wiren Board, и настроить этот порт в соответствии с настройками Debug console.
{|  border="1" class="wikitable"
|+ Параметры порта Debug console
! Параметр|| Значение || Описание
|-
|-
| Baud rate || 115200 ||  Скорость, бит/с
|-
| Data bits || 8 ||  Количество битов данных
|-
| Parity || None ||  Бит чётности
|-
| Stop bits || 1 ||  Количество стоповых битов
|-
| Hardware flow control || None ||  Аппаратный контроль потока
|-
| Software flow control || None ||  Программный контроль потока
|-
|}


<translate>
=== Windows ===
<!--T:100-->
Если у вас на компьютере '''Windows 10''', а контроллер '''Wiren Board 6.4 или новее''', то система сама, после физического подключения, назначит виртуальный COM порт и установит необходимый драйвер. Увидеть номер этого порта можно в Диспетчере устройств Windows:
Контроллеры Wirenboard имеют отладочный асинхронный последовательный порт порт (debug UART), подключившись к которому можно получить прямой доступ к консоли контроллера. Этот порт позволяет также использовать последовательную консоль (serial console) при загрузке системы для анализа результатов загрузки и взаимодействия, например, с загрузчиком.
[[Файл:Dispatcher.png|left]]
<br clear="both" />


<!--T:105-->
При использовании '''Windows XP, 7, 8''' скачайте и установите драйвер. Для установки драйвера вам потребуются навыки администрирования ОС Windows, ссылки на файлы:
В моделях контроллеров до версии 5.6 включительно аппаратный доступ к консоли осуществляется через выводы GND, RX и TX, расположенные на плате модуля. Их использование требует специального переходника USB-UART или RS-232-UART. Начиная с версии 5.8 на контроллеры Wirenboard модуль USB-UART устанавливается по умолчанию, а на плате распаивается разъем Micro-USB, имеющий обозначение "Debug USB".  
* для [https://wirenboard.com/wiki/images/3/38/HT42B534_inf.zip Wiren Board 6.4 или новее];
* для [http://www.wch.cn/downloads/CH341SER_ZIP.html более ранних версий].


<!--T:1-->
Далее подключайте контроллер, и в Диспетчере устройств Windows вы должны увидеть виртуальный COM порт, как на иллюстрации выше.
'''Внимание!'''
[[Файл:Duart.jpg|thumb|right|Адаптер USB-UART]]


<!--T:2-->
В качестве программы для общения с контроллером мы рекомендуем использовать [https://mobaxterm.mobatek.net/ MobaXterm] от компании Mobatek. ЕЕ возможности очень обширны. В платной версии их больше, но для наших целей достаточно и бесплатной версии.
# Подключайте Debug UART только через переходники USB-UART или RS-232-UART с напряжением 3,3 В.
# UART не является синонимом RS-232 (где напряжение на линии может быть 5 В, 12 В и т.д.). Подключение Debug UART к порту RS-232 (или переходнику USB-RS-232) напрямую '''приведет к необратимому повреждению устройства'''.


<!--T:3-->
Нам нужно создать новую сессию '''Sessions''' → '''New session''' → '''Serial''':
<!--
[[Файл:Sessions.png|left]]
'''Debug UART''', он же отладочный UART - порт в Wiren Board, подключившись к которому можно получить прямой доступ к консоли Wiren Board. На него также выводится консоль Linux при загрузке. Доступ к консоли также можно получить через [[SSH]].
<br clear="both" />
--->


и настроить ее:
[[Файл:Basic.png|left]]
<br clear="both" />


== Подключение к отладочному порту в новых моделях контроллеров (5.8 и старше) == <!--T:104-->
Во вкладке '''Terminal settings''' вы можете настроить шрифт, цвета и, при необходимости, указать файл для записи всего, что будет выводится на экран во время сеанса:
[[Файл:USBA-MICROUSBB.png|250px|thumb|right|Кабель USB — Micro-USB]]
[[Файл:SessionLog.png|left]]
Для подключения вам понадобится стандартный кабель USB (A) — Micro-USB (B). Разъем USB (А) подключается к компьютеру, Micro-USB (B) — к контроллеру.
<br clear="both" />
[[Файл:Debugusb58.png|250px|thumb|right|Разъем '''Debug USB''']]


На корпусе напротив разъема находится надпись Debug Console. В новых моделях контролера используется адаптер 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 может варьироваться в зависимости от подключенных уже устройств. В Windows номер порта можно найти в диспетчере Устройств.
=== 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 на сайте производителя] или в другом месте.
В '''более ранних''' версиях:
Настройки соединения те же: '''115200 8N1''' (115200 кбит/с, 8 бит, нет бита чётности, один стоп-бит).
<syntaxhighlight lang="console">
usb 1-1: ch341-uart converter now attached to ttyUSB0
</syntaxhighlight>


<!--T:108-->
Номер порта ttyUSBx или ttyACMx может меняться, в зависимости от того, что у вас подключено к контроллеру.
[[Файл:SerialUART_Win.png|250px|thumb|right|Номер порта в Windows]]


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


== Подключение к отладочному порту в моделях, младше Wiren Board 5.8 == <!--T:4-->
Более подробно про Minicom смотрите в нашем [[Minicom | руководстве]].


<!--T:106-->
==== Linux — возможные проблемы ====
<!-- == Как подключиться по Wiren Board по отладочному порту == -->
Сервис '''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>


<!--T:107-->
В свежих операционных системах Linux может потребоваться отредактировать файл:
#Подключите адаптер USB-UART к компьютеру, соедините контакты адаптера с контактами (штырьками) отладочного порта на контроллере по схеме GND к GND, TX к RX, RX к TX. На некоторых переходниках маркировка перепутана — попробуйте соединить TX с TX и RX с RX. Адаптер USB-UART должен поддерживаться ядром Linux (либо должен быть скомпилирован соответствующий модуль). Для ОС Windows необходимо установить драйвер конкретного адаптера.
<syntaxhighlight lang="bash">
#Запустите программу для работы с последовательным портом и выберите следующие настройки соединения: '''115200 8N1''' (115200 кбит/с, 8 бит, нет бита чётности, один стоп-бит). При входе в систему используйте следующие логин и пароль: ''root'' - ''wirenboard'' (они заданы по умолчанию). В Windows номер порта можно найти в диспетчере Устройств.
/lib/systemd/system/ModemManager.service
</syntaxhighlight>


Подробности здесь:


== Если вы работает с последовательным портом впервые == <!--T:7-->
[https://bugs.launchpad.net/ubuntu/+source/modemmanager/+bug/1827328 ModemManager does not honor blacklisted ttys]
=== Установка программы для работы с последовательным портом ===


<!--T:8-->
[https://nick.zoic.org/art/failed-to-set-dtr-rts-systemd-modemmanager SystemD ModemManager: failed to set dtr/rts]
Для работы с последовательным портом установите на вашем компьютере подходящую утилиту - например, PuTTY:
* версия для Windows - [http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe скачать с официального сайта]
* версия для Linux Debian или Ubuntu - выполните команду ''apt-get install putty''
Подойдут также [http://elinux.org/RPi_Serial_Connection другие программы].


=== Подключение === <!--T:9-->
=== MacOS ===
{{note|warn| Если у вас Wiren Board 7 и Mac с USB Тип C на процессоре Intel - нужно отключить питание контроллера, он будет питаться от USB. При наличии питания порт операционной системой не определяется. На более старые Mac и Mac на процессорах Apple эта особенность не распространяется. }}


<!--T:10-->
Начиная с версии MacOS '''10.14 Mojave''' все должно определиться автоматически. Предыдущие версии, возможно, потребуют установки драйвера [http://www.wch.cn/download/ch341ser_mac_zip.html CH341SER_MAC].  
#Запустите приложение от имени администратора:
#* в Windows - щёлкните по значку PuTTY правой кнопкой и выберите ''Run This Program As An Administrator''
#* в Linux - <code>gksu putty</code>
#В меню слева выберите последний пункт - ''Serial''. В появившиеся поля справа введите настройки порта:
#*название последовательного порта
#**для Windows - это ''COM4'' ('''цифра может меняться''', точную можно узнать через ''Диспетчер устройств'', найдя в нём переходник USB-UART)
#**для Linux - это ''/dev/ttyUSB0'' ('''цифра может меняться''', смотрите список файлов в папке ''/dev/'')
#*скорость - ''115200''
#*количество битов в посылке - ''8''
#*количество стоп-битов - ''1''
#*чётность - ''нет''
#*контроль потока - ''нет''
#:[[Файл:Putty serial settings.png|500px]]
#В меню слева выберите первый пункт - ''Session''. Справа переключите тип подключения на Serial - в поля должны попасть настройки порта. Затем нажмите ''Open''.
#:[[Файл:Putty serial open.png|500px]]
#Чтобы проверить, правильно ли вы всё сделали, кнопкой выключите и включите контроллер - на экране должны появиться сообщения о загрузке. После завершения загрузки появится запрос логина - введите ''root'' и нажмите ''Enter'', и пароля - введите ''wirenboard'' (вводимые символы не будут отображаться) и нажмите ''Enter''.
#Появится приветственное сообщение - вы в консоли контроллера.
#:[[Файл:Putty serial logged in.png|500px]]


При подключении создается устройство:
{|  border="1" class="wikitable"
! Wiren Board 7 || Wiren Board 6.4 и новее || Более ранние
|-
| /dev/tty.usbmodemWB71 || /dev/tty.usbmodem00001 ||  /dev/tty.usbserial-1410
|-
|}


Встроенная утилита cu позволит вам работать с Debug console:
<syntaxhighlight lang="bash">
sudo cu -s 115200 -l /dev/tty.usbserial-1410
</syntaxhighlight>


== Как найти штырьки разъёма Debug UART на устройстве ==
Для выхода из cu введите символы
=== Wiren Board 5 ===
<syntaxhighlight lang="bash">
<gallery mode="packed" heights=200 widths=200>
~!
Image:Wb53 uart.jpg|Wiren Board 5.3
</syntaxhighlight>
Image:Wb56 uart.jpg|Wiren Board 5.6
 
</gallery>
==== MacOS — возможные проблемы ====
=== Wiren Board 4 ===
Порт может не определиться. Потребуется установка драйвера. Для этого (начиная с MacOS '''High Sierra 10.13''')  нужно дать на это разрешение в <code>Settings → Security&Privacy → Allow apps downloaded from:</code>
Выведен на боковую панель рядом с разъёмами для microSD и microSIM карт.
[[Файл: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>


===Wiren Board Smart Home 3.5===
Вводите логин, пароль ({{Wbincludes:Controller SSH Default Login Password|short=true}}) — командная строка в вашем распоряжении. Можете настроить сеть, исправить конфигурационные файлы, посмотреть логи и т. д.  
[[Файл:WB3.5.png|thumb|400px|Wiren Board Smart Home rev 3.5]]
Debug UART выведен на разъём UEXT1, а также отдельно на гребёнку (рядом с аудиовыходом, см. схему)


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


===Wiren Board 2.8===
Логи можно смотреть через [[Journalctl]].


[[Image:UEXTPINS.jpg|thumb|UEXT pinout for [[Insulation-displacement connector|IDC]] connector<br/>(looking into connector on host board)]]
''' Если контроллер неисправен '''


Выведен на разъём UEXT1 (чёрный разъём с десятью штырьками на длинной стороне платы).
Если контроллер нормально не функционирует - отключите питание контроллера выключателем.
{{note|info| Для Wiren Board 7 также отключите кабель USB (контроллер получает питание от USB, в обход выключателя). }}
Включите питание контроллера. Начнется загрузка контроллера.
{{note|info| Для Wiren Board 7 сначала присоедините кабель (сразу начнется загрузка контроллера), затем включите выключатель (для питания модулей расширения).}}
Наблюдайте сообщения, появляющиеся на экране при загрузке контроллера. Текст меняется быстро, отследить его невозможно. Но, если возникнет критическая ошибка — загрузка остановится, и сообщение об ошибке будет у вас перед глазами.


Пролистывая экран назад вы можете просмотреть все сообщения, выведенные при загрузке. Обращайте внимание на  слова error, warning, filed. Не можете сами разобраться — записывайте сеанс в лог файл и обращайтесь в нашу техподдержку.


</translate>
== Физическая реализация в контроллерах ==
{|  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 || 3-pin UART (Gnd, Rx, TX) ||  UART || UART (3,3B) || -
|-
| 4, 5.3 || 3-pin UART (Gnd, Rx, TX) ||  Debug UART || UART (3,3B) || -
|-
| 2.8, 3.5 || 3-pin UART (Gnd, Rx, TX) ||  UEXT1 (выводы 2,3,4) и 3-pin разъем без названия|| UART (3,3B) || -
|-
|}
Программно во всех случаях это последовательный порт.