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

 
(не показано 246 промежуточных версий 9 участников)
Строка 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, вы сможете увидеть информацию, выводимую контроллером на экран при его начальной загрузке.


<languages/>
Нужен этот порт для аварийных ситуаций, когда подключения по сети недоступны. Например, если вы неверно сконфигурировали сеть, и контроллер не может к ней подключиться. Или, если возникла какая-то проблема, мешающая контроллеру нормально загрузиться. Для обычной работы использовать это подключение мы не рекомендуем, используйте [[Веб-интерфейс Wiren Board | веб-интерфейс]] или SSH.


== Подключение ==
{{YouTube
|link=https://youtu.be/VA_XHrY1RVA?t=135
|text= Про командную строку, SSH и Debug Console}}


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


<!--T:105-->
Подключение выполняется стандартными кабелями, их легко купить. В комплекте с вашим смартфоном может быть такой.  
Физически в разных версиях контроллера отладочный порт реализован по разному:
* для версий '''WB 5.8 и позднее, включая  WB6''' он выглядит как Micro-USB разъём (подпись ''Debug Console'' или ''Debug USB'');
* для версий '''WB 5.6 и ранее''' он выглядит как трёхштыревой разъём (подпись ''Debug UART'').
Программно во всех случаях это последовательный порт.
[[Файл:Debugusb58.png|250px|thumb|right|Разъем ''Debug USB'']]


<!--T:3-->
{{note|warn| Бывают кабели с такими же разъёмами, но предназначенные только для зарядки они не подойдут. }}
== Подключение к отладочному порту в Wiren Board 5.8 и старше == <!--T:104-->
[[Файл:USBA-MICROUSBB.png|250px|thumb|right|Кабель USB Micro-USB]]
[[Файл:SerialUART_Win.png|250px|thumb|right|Номер порта в Windows]]
'''Как найти порт: '''


На корпусе напротив разъема отладочного порта находится надпись ''Debug Console''.
Для подключения  '''Wiren Board 7''' к компьютеру нужен кабель '''USB Тип A – USB Тип C'''.


'''Как подключать:'''
Для подключения более ранних контроллеров - '''USB тип A – Micro-USB Тип B'''.


Для подключения понадобится стандартный кабель USB — Micro-USB - такой же, как для подключения сотовых телефонов. Более точное название кабеля USB (A) Micro-USB (B). Разъем USB (А) подключается к компьютеру, Micro-USB (B) к контроллеру.
Самый простой способ проверить, подходит ли кабель для подключения к контроллеру подключить к компьютеру через этот кабель мобильный телефон. Если компьютер обнаружил новое устройство кабель можно использовать и для контролера.


Кабели от зарядных устройств подходят, но бывают исключения. Лучше выбирать такие, на которых указано, что они предназначены для передачи данных.  
== Настройка порта, программное обеспечение ==
Если кабель выбран правильно, Windows сообщит звуком об обнаружении устройства.
Необходимо определить, к какому порту компьютера подключен 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 ||  Программный контроль потока
|-
|}


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


Внутри контроллера установлен переходник USB-UART (в версиях контроллера WB5.8-WB6.3 используется адаптер USB-Serial CH340/CH341).
При использовании '''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 более ранних версий].


*Linux: адаптер обычно определяется автоматически, при подключении в выводе команды <code>dmesg</code> должна появится строка <code>usb 1-1: ch341-uart converter now attached to ttyUSB0</code>. Номер порта ttyUSB может меняться, в зависимости от уже подключенных устройств. Смотрите список файлов в папке /dev/ .
Далее подключайте контроллер, и в Диспетчере устройств Windows вы должны увидеть виртуальный COM порт, как на иллюстрации выше.


*Windows: нужно установить [http://www.winchiphead.com/download/CH341/CH341SER.ZIP драйвер адаптера]: /CH341SER/Setup.exe (запуск от имени администратора). В Диспетчере устройств (Device Manager) в разделе Ports(COM&LPT) должен появиться виртуальный COM-порт контроллера. Если не очевидно, какой из портов используется контроллером, можно отсоединить кабель и включить снова.
В качестве программы для общения с контроллером мы рекомендуем использовать [https://mobaxterm.mobatek.net/ MobaXterm] от компании Mobatek. ЕЕ возможности очень обширны. В платной версии их больше, но для наших целей достаточно и бесплатной версии.


Нам нужно создать новую сессию '''Sessions''' → '''New session''' → '''Serial''':
[[Файл:Sessions.png|left]]
<br clear="both" />


'''Примечание.''' Начиная с ревизии '''6.4''' используется другой адаптер USB-Serial.  
и настроить ее:
[[Файл:Basic.png|left]]
<br clear="both" />


*Linux: адаптер обычно определяется автоматически как ''/dev/ttyACM0'', при этом номер порта ttyACM может быть иным в зависимости от уже подключенных устройств. Тем не менее, для корректной работы отладочной консоли на контроллерах данной ревизии на linux-системах, рекомендуется . [[#Настройка работы отладочного порта в linux для WB6.4 и выше | настроить правило ''udev'' для ModemManager]]
Во вкладке '''Terminal settings''' вы можете настроить шрифт, цвета и, при необходимости, указать файл для записи всего, что будет выводится на экран во время сеанса:
[[Файл:SessionLog.png|left]]
<br clear="both" />


*Windows: нужно установить [http://www.winchiphead.com/download/CH341/CH341SER.ZIP драйвер адаптера]: /CH341SER/Setup.exe (запуск от имени администратора). В Диспетчере устройств (Device Manager) в разделе Ports(COM&LPT) должен появиться виртуальный COM-порт контроллера. Если не очевидно, какой из портов используется контроллером, можно отсоединить кабель и включить снова.
А во вкладке '''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>


<!--T:108-->
В '''более ранних''' версиях:
<syntaxhighlight lang="console">
usb 1-1: ch341-uart converter now attached to ttyUSB0
</syntaxhighlight>


== Подключение к отладочному порту в Wiren Board 5.6 и младше== <!--T:4-->
Номер порта ttyUSBx или ttyACMx может меняться, в зависимости от того, что у вас подключено к контроллеру.  
'''Как найти порт:'''


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


'''Как подключать:'''
Более подробно про Minicom смотрите в нашем [[Minicom | руководстве]].


Для подключения понадобится переходник USB-UART.
==== Linux — возможные проблемы ====
'''Внимание!'''
Сервис '''ModemManager''' может мешать работе с портом. Если у вас WirenBoard 6.4 или новее — правильно сконфигурируйте udev.
[[Файл:Duart.jpg|thumb|right|Адаптер USB-UART]]
* Создайте файл исключений 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>


* Подключайте Debug UART только через переходники USB-UART с напряжением 3.3 В.
В свежих операционных системах Linux может потребоваться отредактировать файл:
* UART не является синонимом RS-232 (где напряжение на линии может быть 5 В, 12 В и т.д.). Подключение Debug UART к порту RS-232 (или переходнику USB-RS-232) напрямую '''приведет к необратимому повреждению устройства'''.
<syntaxhighlight lang="bash">
/lib/systemd/system/ModemManager.service
</syntaxhighlight>


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


Подключите адаптер USB-UART к компьютеру, соедините контакты адаптера с контактами (штырьками) отладочного порта на контроллере по схеме:
[https://bugs.launchpad.net/ubuntu/+source/modemmanager/+bug/1827328 ModemManager does not honor blacklisted ttys]
*GND к GND,
*TX к RX,
*RX к TX.
На некоторых переходниках маркировка перепутана — попробуйте соединить TX с TX и RX с RX.  


[https://nick.zoic.org/art/failed-to-set-dtr-rts-systemd-modemmanager SystemD ModemManager: failed to set dtr/rts]


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


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


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


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


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


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


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


<!--T:10-->
=== Android ===
#Запустите приложение от имени администратора:
[[Файл:OTG.png|150px|thumb|right| OTG-кабель]]
#* в Windows - щёлкните по значку PuTTY правой кнопкой и выберите ''Run This Program As An Administrator''
Начиная с Android версии 9 все работает без установки дополнительных драйверов. Подключение через OTG. Тестировалось с приложением [https://play.google.com/store/apps/details?id=jp.sugnakys.usbserialconsole&hl=en_US USB Serial Console], если ссылка не работает - ищите в Google Play.
#* в Linux - <code>gksu putty</code> <br /><br />
<br clear="both" />
#В меню слева выберите последний пункт - ''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 ===
[[Файл:DebugConsoleWindowLogin.png|500px|thumb|right| Отладочная консоль]]
Debug UART для версии 5.3 выведен на боковую панель, для 5.6 - выведен на гребенку между разъемами FW и IR.
Итак:
* Контроллер к компьютеру подключен;
* Программа запущена;
* Настройки порта программы соответствуют настройкам порта Debug console.
Теперь можно начинать работу.  


<gallery mode="packed" heights=200 widths=200 style="text-align:left">
''' Если контроллер исправен '''
Image:Wb53 uart.jpg|Wiren Board 5.3
Image:Wb56 uart.jpg|Wiren Board 5.6
</gallery>
=== Wiren Board 4 ===
Выведен на боковую панель рядом с разъёмами для microSD и microSIM карт.


===Wiren Board Smart Home 3.5===
Если контроллер работает нормально — вы будете видеть сообщения, выводимые операционной системой контроллера на консоль. Нажав клавишу ENTER, вы увидите приглашение операционной системы, типа такого:
Debug UART выведен на разъём UEXT1, а также отдельно на гребёнку (рядом с аудиовыходом, см. схему)
<syntaxhighlight lang="console">
Для Debug UART используются ножки 2,3,4 (см. рисунок).
Debian GNU/Linux 11 wirenboard-AQ4RCD2E ttyS0


<gallery mode="packed" heights=400 widths=400 style="text-align:left">
wirenboard-AQ4RCD2E login:
Image:WB3.5.png|Wiren Board Smart Home rev 3.5
</syntaxhighlight>
</gallery>


===Wiren Board 2.8===
Вводите логин, пароль ({{Wbincludes:Controller SSH Default Login Password|short=true}}) — командная строка в вашем распоряжении. Можете настроить сеть, исправить конфигурационные файлы, посмотреть логи и т. д.  
Выведен на разъём UEXT1 (чёрный разъём с десятью штырьками на длинной стороне платы).


<gallery mode="packed" heights=200 widths=200 style="text-align:left">
ВАЖНО! При работе с Debug console на экран время от времени будут «выпадать» сообщения от работающих сервисов Linux. Особенно, если сервис работает с ошибкой. Вы можете продолжать ввод команды с клавиатуры — все будет отработано корректно. Для отключения вывода «лишних» сообщений на экран используйте команду <code>dmesg -n1</code>. Теперь будут выводится только те сообщения, которые требуют немедленного вмешательства.
Image:UEXTPINS.jpg|thumb|UEXT pinout for [[Insulation-displacement connector|IDC]] connector<br/>(looking into connector on host board)
</gallery>


== Настройка работы отладочного порта в linux для WB6.4 и выше ==
Логи можно смотреть через [[Journalctl]].


'''Суть проблемы:''' на некоторых системах процесс ModemManager автоматически открывает устройство ''/dev/ttyACM0''.
''' Если контроллер неисправен '''
Для этого необходимо отключить ModemManager для данного устройства с помощью правил ''udev''.


* Создаем файл исключений ''udev''
Если контроллер нормально не функционирует - отключите питание контроллера выключателем.
<syntaxhighlight lang="bash"> sudo nano /etc/udev/rules.d/99-wb-debug-usb.rules </syntaxhighlight>
{{note|info| Для Wiren Board 7 также отключите кабель USB (контроллер получает питание от USB, в обход выключателя). }}
Включите питание контроллера. Начнется загрузка контроллера.
{{note|info| Для Wiren Board 7 сначала присоедините кабель (сразу начнется загрузка контроллера), затем включите выключатель (для питания модулей расширения).}}
Наблюдайте сообщения, появляющиеся на экране при загрузке контроллера. Текст меняется быстро, отследить его невозможно. Но, если возникнет критическая ошибка — загрузка остановится, и сообщение об ошибке будет у вас перед глазами.


* в который записываем cтрочку
Пролистывая экран назад вы можете просмотреть все сообщения, выведенные при загрузке. Обращайте внимание на  слова error, warning, filed. Не можете сами разобраться — записывайте сеанс в лог файл и обращайтесь в нашу техподдержку.
<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>
{|  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) || -
|-
|}
Программно во всех случаях это последовательный порт.