Aninhava sessões de console RDP e VMWare e ILO: repetição de teclas e latência

17

Estou trabalhando em uma instalação de servidor remoto inteiramente por meio do ILO (mas isso também se aplica a sessões de console IPMI e VMWare). Devido ao aplicativo e ambiente de software, meu acesso é restrito a um servidor Windows que devo acessar por meio do RDP. A partir desse sistema para o servidor de destino é realizado via HP ILO2 ou ILO3.

Estou tentando executar uma instalação do CentOS em um ambiente em que não posso usar um sistema de implantação totalmente automatizado. Eu estou fazendo isso via modo de texto, mas as teclas estão repetindo aleatoriamente e é difícil selecionar as opções de instalação adequadas. Por exemplo:

ks=http://all.yourbase.org/kickstart/ks.cfg

acaba parecendo:

ks====httttttp://allll..yourbaseee.....org/kicksstart/ks.cccfg

Estou fazendo isso usando o cliente RDP da Microsoft (no Mac e no Windows). Eu também notei isso antes ao executar instalações ou fazer o trabalho remoto em sessões aninhadas.

Existe uma boa solução para isso, ou simplesmente uma função do (s) protocolo (s)?

    
por ewwhite 17.01.2011 / 03:31

7 respostas

10

Considerando que uma conexão SSH transmite toques , uma conexão ILO da HP transmite estados de chave . Cada vez que você pressiona uma tecla, o servidor recebe eventos KeyDown e KeyUp separados. Os pressionamentos repetidos de teclas ocorrem quando o evento KeyUp é recebido tardiamente.

As duas razões mais prováveis para o evento KeyUp ser recebido tardiamente são:

  1. Problemas de congestionamento / desempenho da rede.
  2. Baixo desempenho do sistema do cliente que inicia a conexão do ILO. Se o cliente for uma máquina virtual, o sistema host subjacente está sobrecarregado ou a VM tem recursos inadequados de memória / CPU alocados?

Se a causa raiz não puder ser abordada:

  1. O problema de repetição de chave pode ser resolvido desabilitando uma configuração do ILO2 chamada "Key Up / Down". Isso fará com que o ILO2 transmita pressionamentos de teclas em vez de estados de teclas. Infelizmente, essa configuração foi removida do ILO3.
  2. Se o sistema operacional de destino for o Linux, talvez seja possível contornar o problema redirecionando o console para ttyS0 e usando uma sessão VSP (Virtual Serial Port) em vez de um console virtual. Isso eliminará o problema da tecla para cima / para baixo, porque as conexões seriais transmitem pressionamentos de tecla em vez de eventos de ativação / desativação da tecla.
  3. Pode ser útil ajustar a taxa de repetição de chave e / ou desativar a repetição automática inteiramente no sistema de destino. Eu reconheço que isso pode não ser fácil de realizar, dependendo da gravidade do problema de repetição da chave.
  4. Considerando que você está usando um Mac como sua estação de trabalho local, pode valer a pena tentar colar comandos completos em seu cliente Mac RDP usando o Command-V. Eu não sei se isso é uma solução viável, mas pode ter um efeito interessante. Eu sempre gostei de trabalhar em máquinas Windows remotas de uma estação de trabalho Mac especificamente porque as combinações de teclas de atalho locais continuam a funcionar de maneira previsível.

Referências:

por 28.12.2012 / 19:59
5

Parece que isso é apenas um problema com o protocolo. Reduzi o problema de alguma forma usando Ericom Blaze como o transporte RDP para o servidor central do qual me conecto; por exemplo. "caixa de salto".

Outras coisas:

Estou tentando evitar várias sessões aninhadas.

Estou executando o VMWare Fusion com o Windows 7 no meu Mac para permitir que eu use o RDP nativo do Windows em certos casos.

Isso é tudo que eu posso ver por enquanto.

    
por 29.01.2011 / 21:16
2

você precisa editar o arquivo .vmx para adicionar a seguinte linha:

keyboard.typematicMinDelay="2000000"

elimina o "salto".

Com a minha versão do vmware, tenho que fazer essa alteração quando a VM está inativa. Entendo que pode ser feito a partir de uma janela de edição, mas não consegui encontrar esse lugar.

    
por 09.04.2014 / 20:36
1

O problema está acontecendo com sua conexão com o rdp (você pode digitar corretamente o bloco de notas?) ou entre o RDP e o iLO)?

Se entre o RDP e o iLO (eu sei que você já fez isso)

  1. O uso do console remoto Java era quase impossível. Eu encontrei se eu usei o "console remoto" (pode ser chamado .net), resultou em uma melhoria maciça. A latência era menor, a latência não era nervosa e as teclas repetidas e perdidas não aconteciam.

  2. Inicialize o live cd, instale o servidor openssh e use o ssh para conectar-se. Faça a nossa instalação através do ssh (se a conexão for uma tela de mau uso também.

Se entre você e o RDP:

Use o freenx ou o vnc sintonizados na banda baixa com a caixa do windows. Isso deve pelo menos limpar as teclas digitadas. A conexão com o RDP está ok (é onde os problemas de pressionamento de tecla estão acontecendo?

Se ambos: Escreva os comandos em um bloco de notas, copie e cole, se puder, esperamos que funcione melhor do que digitar.

    
por 26.11.2012 / 11:39
1

A primeira coisa importante a ser lembrada é desativar a repetição de chave em tudo que está processando seus pressionamentos de tecla, incluindo na máquina virtual ou sessão RDP que você está conectando, bem como na máquina host de nível superior. Isso não conserta a máquina de destino final, mas faz muito para melhorar a situação.

Quanto à máquina de destino:

Existem relatos de que usar o ssh para se conectar à porta SSH do HP iLO evita problemas de repetição de chave, mas não consegui usar esse método porque meu host (online.net) não permitiu a porta 22 através do firewall do iLO. Mas se você tiver acesso à porta SSH do iLO (provavelmente 22), essa será a abordagem mais fácil.

Eu tentei usar uma unidade systemd para definir a taxa de repetição do teclado e o tempo de atraso na inicialização:

# Note that kbdrate only affects existing keyboards, and HP iLO attaches a new
# USB keyboard when you connect, so you may have to reboot (with the iLO console
# attached) to get the keyboard delay and repeat rate to take effect.

[Unit]
Description=Set longer delay time for key repeat

[Service]
Type=oneshot
RemainAfterExit=yes
StandardInput=tty
StandardOutput=tty
ExecStart=/sbin/kbdrate -d 1000 -r 2

[Install]
WantedBy=multi-user.target
WantedBy=rescue.target

(Certifique-se de que /sbin/kbdrate é onde você tem kbdrate . Escreva para /etc/systemd/systemd/slower-keyboard-repeat.service e systemctl daemon-reload && systemctl enable slower-keyboard-repeat.service )

mas, como mencionado no comentário, isso foi apenas um sucesso parcial porque exigiu uma reinicialização para definir a taxa de repetição no novo teclado que o iLO anexa. Mas é bom o suficiente se você está bem com a reinicialização da máquina.

Por fim, acabei corrigindo o kernel do Linux para alterar a taxa de repetição padrão e o tempo de atraso em todos os teclados:

From 78c32f539b89bf385985bea47a7058a540d31da0 Mon Sep 17 00:00:00 2001
From: Ivan Kozik <[email protected]>
Date: Thu, 30 Mar 2017 13:31:17 +0000
Subject: [PATCH] Increase the default keyboard repeat delay from 250ms to
 1000ms and repeat rate from 1000/33 Hz to 1000/500 Hz to avoid unintentional
 repeated keystrokes when using remote consoles such as HP iLO over
 high-latency links.  These consoles (HP iLO included) often transmit key
 states (up/down) instead of keystrokes, making it impossible to even enter a
 password and log in.

Fixing this in the kernel avoids problems with kbdrate where the parameters
passed to kbdrate don't apply to the new keyboards attached by HP iLO.
---
 drivers/input/input.c          | 2 +-
 drivers/input/keyboard/atkbd.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/input/input.c b/drivers/input/input.c
index 880605959aa6..a195af2d062a 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -2126,7 +2126,7 @@ int input_register_device(struct input_dev *dev)
     * is handled by the driver itself and we don't do it in input.c.
     */
    if (!dev->rep[REP_DELAY] && !dev->rep[REP_PERIOD])
-       input_enable_softrepeat(dev, 250, 33);
+       input_enable_softrepeat(dev, 1000, 500);

    if (!dev->getkeycode)
        dev->getkeycode = input_default_getkeycode;
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index ec876b5b1382..9dd04c2215b3 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -1096,8 +1096,8 @@ static void atkbd_set_device_attrs(struct atkbd *atkbd)
            BIT_MASK(LED_MUTE) | BIT_MASK(LED_MISC);

    if (!atkbd->softrepeat) {
-       input_dev->rep[REP_DELAY] = 250;
-       input_dev->rep[REP_PERIOD] = 33;
+       input_dev->rep[REP_DELAY] = 1000;
+       input_dev->rep[REP_PERIOD] = 500;
    }

    input_dev->mscbit[0] = atkbd->softraw ? BIT_MASK(MSC_SCAN) :
-- 
2.11.0

e isso resolveu o problema para mim.

    
por 30.03.2017 / 16:38
0

Eu sei que você disse que é restrito, mas não consigo pensar em nada melhor do que: instalar o VNC ou o TeamViewer, pelo menos apenas para fazer a parte crítica da sua instalação.

A segunda solução é usar um proxy de encaminhamento de tipo do Media Center para mensagens de entrada, para que você conecte um segundo teclado ao computador e, usando o HID, encaminhe apenas esse teclado sobre TCP / SOAP para o servidor. Mas, como isso envolve a instalação de daemons de software no servidor, é melhor começar com o VNC.

Eu nunca experimentei pressionamentos de tecla repetidos, mas recebo um grande atraso do mouse ao trabalhar com o VMware sobre o RDP, quando o sistema operacional convidado não tem o VMware Tools carregado.

A opção final que eu tenho, se nenhuma acima for adequada, é entrar em contato com o suporte da Microsoft e relatar a resolução que eles fornecem aqui ... como um ticket de código aberto.

    
por 27.01.2011 / 22:46
0

Na minha experiência, isso me ajudou se eu tentar esquecer tudo o que aprendi sobre digitação e tentar apertar as teclas uma por uma e muito, muito rapidamente. De preferência, use apenas um dedo para que você não fique muito confortável e comece a digitar rápido demais. Também permite que você se concentre em pressionar rapidamente a tecla . Essa coisa toda pode soar como uma brincadeira, mas descobri que meu dedo médio direito (eu sou destro) é de longe o mais capaz de apertar as teclas rapidamente.

E, claro, eu tento colocar o SSH em funcionamento o mais rápido possível depois disso. Se estiver muito restrito para poder fazer isso ... ai.

Tente também usar os diferentes consoles. Normalmente, a versão Java seria a pior, mas se você está tendo problemas com a versão .NET, então você pode querer experimentar o Java. Basta estar preparado para que o plug-in java possa travar seu navegador (isso é apenas um problema com o iLO 2; o iLO 3 foi movido de um plug-in para um aplicativo de início na web).

    
por 26.12.2012 / 05:04