Доступ последовательного порта Putty к консоли RS-232 с двухсимвольным дисплеем с USB / последовательным кабелем

909
Glassfrog

Я пытаюсь получить доступ к консоли администрирования брандмауэра Matrix Sense через интерфейс RS-232, и отображение, которое я получаю с Putty, странно. Аппаратное обеспечение - материнская плата PC Engines APU4B4 .

Я использую дешевый конвертер USB-RS-232 на своей машине с Windows 7. Устройство было распознано через порт COM4 без необходимости установки драйвера на моей стороне.

Итак, с этими параметрами:

  • Скорость 115200 бод
  • 8 бит данных
  • 1 стоповый бит
  • Четность нет
  • Контроль потока XON / XOFF

Putty parameters page 1

Я также немного подправил некоторые другие параметры, чтобы найти лучшее отображение:

  • Локальное эхо Force Off
  • Редактирование локальной линии Force on

Но это, кажется, не делает много.

Putty parameters page 2

В конце концов я получаю это странное отображение:

Putty display

Некоторые символы отображаются дважды, а другие кажутся случайными. Похоже, я близок к решению, но я не могу понять, что здесь не так.

0

2 ответа на вопрос

1
Kamil Maciorowski

У меня нет опыта работы с таким оборудованием, но я нашел эту ветку, описывающую подобные симптомы на APU1D.

Отклик:

Вы включили как собственную поддержку последовательной консоли iPXE ( CONSOLE_SERIALin config/console.h), так и перенаправление последовательной консоли BIOS.

Неправильное исправление:

Я не понимал, что консоль PCBIOS была включена, потому что опция была закомментирована в config/console.h.

Undefining CONSOLE_PCBIOSin config/console.hрешил мою проблему.

Объяснение, почему это неправильно:

CONSOLE_PCBIOS это «нормальная» консоль, которая пишет на экран и читает с клавиатуры.

CONSOLE_SERIAL это собственный драйвер последовательного порта iPXE.

Последовательное перенаправление BIOS - это функция, реализуемая вашим BIOS (и настраиваемая с помощью экрана настройки BIOS), в которой символы, записанные на экране, также будут отправляться на последовательный порт.

Проблема в том, что у вас CONSOLE_SERIALи BIOS, и последовательное перенаправление включено. iPXE записывает каждый символ как на экран (из-за CONSOLE_PCBIOS), так и в последовательный порт (из-за CONSOLE_SERIAL). Затем BIOS записывает дополнительную копию символа в последовательный порт, поскольку у вас включено последовательное перенаправление BIOS. Таким образом, у вас есть две копии каждого символа на последовательном порту: одна написана непосредственно iPXE, другая - вашим BIOS.

Решение состоит в том, чтобы либо отключить, CONSOLE_SERIALлибо отключить последовательное перенаправление BIOS (через экран настройки BIOS). Не отключайте CONSOLE_BIOS...

(вероятно имелось ввиду CONSOLE_PCBIOS)

... если вы действительно не хотите иметь возможность взаимодействовать через локальную клавиатуру и монитор.

Вы можете обнаружить, что iPXE CONSOLE_SERIALболее надежен, чем функция последовательного перенаправления BIOS, и поэтому может быть предпочтительнее оставить его CONSOLE_SERIALвключенным и отключить последовательное перенаправление BIOS (через экран настройки BIOS).

Отзыв от автора:

По крайней мере, в случае этой платы Alix последовательный драйвер iPXE действительно является предпочтительным вариантом (еще не пробовал другие последовательные устройства), так как меню не отображается должным образом с помощью функции перенаправления BIOS.

К сожалению, эти устройства поставляются с очень ограниченным BIOS, фактически могут быть изменены только параметры загрузки.

Тем не менее, я нашел решение, которым я доволен. Я изменил файл config/defaults/pcbios.h, изменив строку, определяющую CONSOLE_PCBIOSпараметр:

 #define CONSOLE_PCBIOS ( CONSOLE_USAGE_ALL & ~CONSOLE_USAGE_TUI ) 

Таким образом, по крайней мере, меню печатается только один раз в моей последовательной настройке, и выход iPXE, кажется, также работает нормально в обычных случаях (не последовательных).

Даже если ваш случай несколько отличается, я думаю, что основная причина схожа: два компонента программного обеспечения отправляют символы в последовательный порт, один из них - BIOS. Найдите способ заставить замолчать одного или другого.

Thank you for that information. I think you found one cause of the problem, and what I understand is that the firewall I bought has a bug in it, because before your post, I did not know about iPXE. Now the second question is not solved and is related to the "rubbish" characters I can read after each line. So I think for the iPXE issue I should send the information to the manufacturer. Glassfrog 5 лет назад 0
@Glassfrog Я не знаю, участвует ли iPXE или что-то еще. Я просто подозреваю, что у вас есть что-то еще, кроме того, что ваш BIOS отправляет символы на последовательный порт * и * на экран. BIOS следит за тем, что выводится на экран и отражается от последовательного порта, следовательно, дублируются символы. Kamil Maciorowski 5 лет назад 1
Это не исключено - у меня недавно была такая же проблема с GRUB2; Я включил его собственную последовательную поддержку и не понял, что HP BIOS уже сделал последовательное перенаправление, поэтому я получил два пересекающихся меню. grawity 5 лет назад 1
0
Glassfrog

Я смог правильно видеть консоль после перезагрузки брандмауэра и перезагрузки моей машины. Я запустил сначала Putty, а затем запустил брандмауэр.

Вот журналы (я подверг цензуре **** некоторые критические точки). Но вы можете видеть, что некоторые части журналов все еще имеют «проблему двойных символов». Второй момент, то есть «мусорные персонажи», ушел.

Спасибо @Kamil Maciorowski за вашу драгоценную помощь.

FreeBSD/amd64 (pfSense.localdomain) (ttyu0)  pfSense - Serial: ▒▒▒▒▒▒▒▒▒▒ - Netgate Device ID: ********************  *** Welcome to pfSense 2.4.3-RELEASE-p1 (amd64) on pfSense ***  WAN (wan) -> igb2 -> LAN (lan) -> igb3 -> v4: 176.16.0.1/12 OPT1 (opt1) -> igb0 -> OPT2 (opt2) -> igb1 -> ****** (opt3) -> ovpnc1 ->  0) Logout (SSH only) 9) pfTop 1) Assign Interfaces 10) Filter Logs 2) Set interface(s) IP address 11) Restart webConfigurator 3) Reset webConfigurator password 12) PHP shell + pfSense tools 4) Reset to factory defaults 13) Update from console 5) Reboot system 14) Disable Secure Shell (sshd) 6) Halt system 15) Restore recent configuration 7) Ping host 16) Restart PHP-FPM 8) Shell  Enter an option: 4   You are about to reset the firewall to factory defaults. The firewall will reboot afteruresetting the configuration. All additional packages installed will be removed. Booting from Hard Disk...|n]? y H F1 pfSenserebooting now. Sep 15 06:33:20 ipsec_starter[38232]: charon stopped after 200 ms F6 PXE 06:33:20 ipsec_starter[38232]: ipsec starter stopped Boot: F1 ax 60 seconds) for system process `vnlru' to stop... done //bboooott//ccoonnffiigg:: --SS111155220000 --Daemon' to stop... done Daiting (max 60 seconds) for system process `syncer' to stop... //ncing disks, vnodes remaining... 0 0 done All buffers synced. Coonnssoolleess:: iinntteerrnnaall vviiddeeoo//kkeeyybbooaarrdd sseerriia uhub2: detached BIIOOSS ddrriivvee CC:: iiss ddiisskk00 coreboot build 20171130 BIIOOSS 663399kkBB//33440066445566kkBB aavvaaiillaabbllee mmeemmoorryy 4080 MB ECC DRAM  SeaBIOS (version rel-1.11.0.1-0-g90da88d) FrreeeeBBSSDD//xx8866 bboooottssttrraapp llooaaddeerr,, RReevviissiioonn 1 Press F10 key now for boot menn (MMoonn MMaarr 1199 0066::5566::3311 CCDDTT 22001188 rroooott@@bbuuiilld  Looaaddiinngg //bboooott//ddeeffaauullttss//llooaaddeerr..ccoonnff  | H ____ H __ ____ // __||______ ______ __ ____ ______ ______ H || ''__ \\|| ||__// ____||// __ \\ ''__ \\// ____||// __ \\ H || ||__)) || __\\____ \\ ____// || || \\____ \\ ____// H || ..____/___//\\______||__|| ||__||______//\\______|| H ||__|| H H H++=======================================H++================================== H|| HWWeellccoommee ttoo ppffSSeennssee H|| H|||| H||HH..BBoooott MMuullttii UUsseerr [[EEnntteerr]] | H||HH..BBoooott [[SS]]iinnggllee UUsseerr|||| __________________ | H||HH..[[EEsscc]]aappee ttoo llooaaddeerr pprroommpptt`` ________ // | H||HH..RReebboooott H|||| // // // | H|| H|||| // //______// // | H||HOOppttiioonnss:: H|||| // ____________// | H||HH..[[KK]]eerrnneell:: kkeerrnneell ((11 ooff 22)) /| H||HH..CCoonnffiigguurree BBoooott [[OO]]ppttiioonnss...... //_| H|| H|| // | H|| H|| //______________________ _ H++=======================================H++==================================   // HAAuuttoobboooott iinn 22 sseeccoonnddss.. [[SSppaaccee]] ttoo ppaauuse HAAuuttoobboooott iinn 11 sseeccoonnddss.. [[SSppaaccee]] ttoo ppaauuse H  //bboooott//kkeerrnneell//kkeerrnn ddaattaa==00xxbb66ffaa ssyymmss==[[00xx8 ++08 ++00xx1 ]] affeedd  Boooottiinngg......  KDB: debugger backends: ddb KDB: current backend: ddb Copyright (c) 1992-2017 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 11.1-RELEASE-p10 #13 r313908+293707af843(RELENG_2_4): Thu May 10 15:09:8 root@buildbot2.netgate.com:/builder/ce-243/tmp/obj/builder/ce-243/tmp/FreeB4 FreeBSD clang version 5.0.1 (tags/RELEASE_501/final 320880) (based on LLVM 5.0.) VT(vga): resolution 640x480 CPU: AMD GX-412TC SOC (998.15-MHz K8-class CPU) Origin="AuthenticAMD" Id=0x****** Family=0x16 Model=0x30 Stepping=1 Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,> Features2=0x3ed8220b<SSE3,PCLMULQDQ,MON,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT> AMD Features=0x2e500800<SYSCALL,NX,MMX+,FFXSR,Page1GB,RDTSCP,LM> AMD Features2=0x1d4037ff<LAHF,CMP,SVM,ExtAPIC,CR8,ABM,SSE4A,MAS,Prefetch,OSVW> Structured Extended Features=0x8<BMI1> XSAVE Features=0x1<XSAVEOPT> SVM: NP,NRIP,AFlush,DAssist,NAsids=8 TSC: P-state invariant, performance statistics real memory = 5083496448 (4848 MB) avail memory = 4073701376 (3884 MB) Event timer "LAPIC" quality 100 ACPI APIC Table: <CORE COREBOOT> FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs FreeBSD/SMP: 1 package(s) x 4 core(s) ioapic1: Changing APIC ID to 5 ioapic0 <Version 2.1> irqs 0-23 on motherboard ioapic1 <Version 2.1> irqs 24-55 on motherboard SMP: AP CPU #1 Launched! SMP: AP CPU #3 Launched! SMP: AP CPU #2 Launched! Timecounter "TSC" frequency 998149043 Hz quality 1000 iwi_monitor: You need to read the LICENSE file in /usr/share/doc/legal/intel_iw. iwi_monitor: If you agree with the license, set legal.intel_iwi.license_ack=1 i. module_register_init: MOD_LOAD (iwi_monitor_fw, 0xffffffff80682e00, 0) error 1 random: entropy device external interface wlan: mac acl policy registered ipw_bss: You need to read the LICENSE file in /usr/share/doc/legal/intel_ipw.LI. ipw_bss: If you agree with the license, set legal.intel_ipw.license_ack=1 in /b. module_register_init: MOD_LOAD (ipw_bss_fw, 0xffffffff8065c140, 0) error 1 ipw_ibss: You need to read the LICENSE file in /usr/share/doc/legal/intel_ipw.L. ipw_ibss: If you agree with the license, set legal.intel_ipw.license_ack=1 in /. module_register_init: MOD_LOAD (ipw_ibss_fw, 0xffffffff8065c1f0, 0) error 1 ipw_monitor: You need to read the LICENSE file in /usr/share/doc/legal/intel_ip. ipw_monitor: If you agree with the license, set legal.intel_ipw.license_ack=1 i. module_register_init: MOD_LOAD (ipw_monitor_fw, 0xffffffff8065c2a0, 0) error 1 iwi_bss: You need to read the LICENSE file in /usr/share/doc/legal/intel_iwi.LI. iwi_bss: If you agree with the license, set legal.intel_iwi.license_ack=1 in /b. module_register_init: MOD_LOAD (iwi_bss_fw, 0xffffffff80682ca0, 0) error 1 iwi_ibss: You need to read the LICENSE file in /usr/share/doc/legal/intel_iwi.L. iwi_ibss: If you agree with the license, set legal.intel_iwi.license_ack=1 in /. module_register_init: MOD_LOAD (iwi_ibss_fw, 0xffffffff80682d50, 0) error 1 kbd0 at kbdmux0 netmap: loaded module module_register_init: MOD_LOAD (vesa, 0xffffffff81162ce0, 0) error 19 nexus0 vtvga0: <VT VGA driver> on motherboard cryptosoft0: <software crypto> on motherboard padlock0: No ACE support. acpi0: <CORE COREBOOT> on motherboard acpi0: Power Button (fixed) cpu0: <ACPI CPU> on acpi0 cpu1: <ACPI CPU> on acpi0 cpu2: <ACPI CPU> on acpi0 cpu3: <ACPI CPU> on acpi0 atrtc0: <AT realtime clock> port 0x70-0x71 irq 8 on acpi0 Event timer "RTC" frequency 32768 Hz quality 0 attimer0: <AT timer> port 0x40-0x43 irq 0 on acpi0 Timecounter "i8254" frequency 1193182 Hz quality 0 Event timer "i8254" frequency 1193182 Hz quality 100 hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0 Timecounter "HPET" frequency 14318180 Hz quality 950 Timecounter "ACPI-safe" frequency 3579545 Hz quality 850 acpi_timer0: <32-bit timer at 3.579545MHz> port 0x818-0x81b on acpi0 acpi_button0: <Power Button> on acpi0 pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0 pci0: <ACPI PCI bus> on pcib0 pcib1: <ACPI PCI-PCI bridge> irq 24 at device 2.1 on pci0 pcib1: failed to allocate initial I/O port window: 0x1000-0x1fff pci1: <ACPI PCI bus> on pcib1 igb0: <Intel(R) PRO/1000 Network Connection, Version - 2.5.3-k> mem 0xf7900000-1 igb0: Using MSIX interrupts with 3 vectors igb0: Ethernet address: **:**:**:**:**:** igb0: Bound queue 0 to cpu 0 igb0: Bound queue 1 to cpu 1 igb0: netmap queues/slots: TX 2/1024, RX 2/1024 pcib2: <ACPI PCI-PCI bridge> irq 25 at device 2.2 on pci0 pci2: <ACPI PCI bus> on pcib2 igb1: <Intel(R) PRO/1000 Network Connection, Version - 2.5.3-k> port 0x2000-0x22 igb1: Using MSIX interrupts with 3 vectors igb1: Ethernet address: **:**:**:**:**:** igb1: Bound queue 0 to cpu 2 igb1: Bound queue 1 to cpu 3 igb1: netmap queues/slots: TX 2/1024, RX 2/1024 pcib3: <ACPI PCI-PCI bridge> irq 26 at device 2.3 on pci0 pci3: <ACPI PCI bus> on pcib3 igb2: <Intel(R) PRO/1000 Network Connection, Version - 2.5.3-k> port 0x3000-0x33 igb2: Using MSIX interrupts with 3 vectors igb2: Ethernet address: **:**:**:**:**:** igb2: Bound queue 0 to cpu 0 igb2: Bound queue 1 to cpu 1 igb2: netmap queues/slots: TX 2/1024, RX 2/1024 pcib4: <ACPI PCI-PCI bridge> at device 2.4 on pci0 pci4: <ACPI PCI bus> on pcib4 igb3: <Intel(R) PRO/1000 Network Connection, Version - 2.5.3-k> port 0x4000-0x44 igb3: Using MSIX interrupts with 3 vectors igb3: Ethernet address: **:**:**:**:**:** igb3: Bound queue 0 to cpu 2 igb3: Bound queue 1 to cpu 3 igb3: netmap queues/slots: TX 2/1024, RX 2/1024 pci0: <encrypt/decrypt> at device 8.0 (no driver attached) xhci0: <AMD FCH USB 3.0 controller> mem 0xf7f22000-0xf7f23fff irq 18 at device 0 xhci0: 32 bytes context size, 64-bit DMA xhci0: Unable to map MSI-X table usbus0 on xhci0 usbus0: 5.0Gbps Super Speed USB v3.0 ahci0: <AMD Hudson-2 AHCI SATA controller> port 0x5010-0x5017,0x5020-0x5023,0x50 ahci0: AHCI v1.30 with 2 6Gbps ports, Port Multiplier supported with FBS ahcich0: <AHCI channel> at channel 0 on ahci0 ahcich1: <AHCI channel> at channel 1 on ahci0 ehci0: <AMD FCH USB 2.0 controller> mem 0xf7f26000-0xf7f260ff irq 18 at device 0 usbus1: EHCI version 1.0 usbus1 on ehci0 usbus1: 480Mbps High Speed USB v2.0 isab0: <PCI-ISA bridge> at device 20.3 on pci0 isa0: <ISA bus> on isab0 sdhci_pci0: <Generic SD HCI> mem 0xf7f27000-0xf7f270ff at device 20.7 on pci0 sdhci_pci0: 1 slot(s) allocated orm0: <ISA Option ROM> at iomem 0xef000-0xeffff on isa0 ppc0: cannot reserve I/O port range uart0: <16550 or compatible> at port 0x3f8 irq 4 flags 0x10 on isa0 uart0: console (115200,n,8,1) uart1: <16550 or compatible> at port 0x2f8 irq 3 on isa0 hwpstate0: <Cool`n'Quiet 2.0> on cpu0 Timecounters tick every 1.000 msec nvme cam probe device init ugen0.1: <0x1022 XHCI root HUB> at usbus0 ugen1.1: <AMD EHCI root HUB> at usbus1 uhub0: <0x1022 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0 uhub1: <AMD EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1 uhub0: 4 ports with 4 removable, self powered uhub1: 2 ports with 2 removable, self powered ugen1.2: <vendor 0x0438 product 0x7900> at usbus1 uhub2 on uhub1 uhub2: <vendor 0x0438 product 0x7900, class 9/0, rev 2.00/0.18, addr 2> on usbu1 uhub2: 4 ports with 4 removable, self powered ada0 at ahcich0 bus 0 scbus0 target 0 lun 0 ada0: <T50S2STMLC-004G OHY06A S> ATA8-ACS SATA 2.x device ada0: Serial Number ************* ada0: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 512bytes) ada0: 3831MB (7847280 512 byte sectors) Trying to mount root from ufs:/dev/ufsid/**************** [rw]... WARNING: /: TRIM flag on fs but disk does not support TRIM Configuring crash dumps... No suitable dump device was found. /dev/ufsid/****************: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ufsid/****************: clean, 669160 free (4136 frags, 83128 blocks, 0.4%) Filesystems are clean, continuing... Mounting filesystems... random: unblocking device.  __ _ __ / _|___ ___ _ __ ___ ___ | '_ \| |_/ __|/ _ \ '_ \/ __|/ _ \ | |_) | _\__ \ __/ | | \__ \ __/ | .__/|_| |___/\___|_| |_|___/\___| |_|   Welcome to pfSense 2.4.3-RELEASE (Patch 1)...  ...ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib /usr/local/lE 32-bit compatibility ldconfig path: /usr/lib32 done. External config loader 1.0 is now starting... ada0s1 ada0s1a Launching the init system...Updating CPU Microcode... CPU: AMD GX-412TC SOC (998.15-MHz K8-class CPU) Origin="AuthenticAMD" Id=0x****** Family=0x16 Model=0x30 Stepping=1 Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,> Features2=0x3ed8220b<SSE3,PCLMULQDQ,MON,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT> AMD Features=0x2e500800<SYSCALL,NX,MMX+,FFXSR,Page1GB,RDTSCP,LM> AMD Features2=0x1d4037ff<LAHF,CMP,SVM,ExtAPIC,CR8,ABM,SSE4A,MAS,Prefetch,OSVW> Structured Extended Features=0x8<BMI1> XSAVE Features=0x1<XSAVEOPT> SVM: NP,NRIP,AFlush,DAssist,NAsids=8 TSC: P-state invariant, performance statistics Done. .... done. Initializing.................. done. Starting device manager (devd)...done. Loading configuration......done. ..............................Updating configuration...done. Checking config backups consistency...done. Setting up extended sysctls...done. Setting timezone...done. Configuring loopback interface...done. Starting syslog...done. Starting Secure Shell Services...done. Setting up interfaces microcode...done. Configuring loopback interface...done. Creating wireless clone interfaces...done. Configuring LAGG interfaces...done. Configuring VLAN interfaces...done. Configuring QinQ interfaces...done. Configuring WAN interface...done. Configuring LAN interface...done. Configuring CARP settings...done. Syncing OpenVPN settings...done. Configuring firewall......done. Starting PFLOG...done. Setting up gateway monitors...done. Setting up static routes...done. Setting up DNSs...Starting DNS Resolver...done. done. Synchronizing user settings...done. Starting webConfigurator...done. Configuring CRON...done. Starting NTP time client...done. Starting DHCP service...done. Starting DHCPv6 service...done. Configuring firewall......done. Generating RRD graphs...done. Starting syslog...done. Starting CRON... done. pfSense 2.4.3-RELEASE (Patch 1) amd64 Thu May 10 15:02:52 CDT 2018 Bootup complete 

Похожие вопросы