Вкладені сеанси консолі RDP та VMWare та ILO: повторення та затримка натискання клавіш


17

Я працюю над установкою віддаленого сервера повністю через ILO (але це стосується і консолей IPMI та VMWare консолей). Через програмне забезпечення та середовище мій доступ обмежений сервером Windows, до якого я повинен отримати доступ через RDP. Перехід з цієї системи на цільовий сервер здійснюється через HP ILO2 або ILO3.

Я намагаюся запустити інсталяцію CentOS в середовищі, де я не можу використовувати повністю автоматизовану систему розгортання. Я роблю це в текстовому режимі, але натискання клавіш повторюються випадковим чином і важко вибрати правильні параметри встановлення. Наприклад:

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

виглядає так:

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

Я роблю це за допомогою клієнта RDP Microsoft (на Mac та Windows). Я також це помічав і раніше, коли запускав установки або робив віддалену роботу в вкладених сесіях.

введіть тут опис зображення

Чи є приємне виправлення цього чи це просто функція протоколів?


3
Я сподіваюся, що адміністратори, які мають велику кількість віддалених систем, або консультанти, яким потрібно перейнятись у різних системах, щоб переживати це.
ewwhite

2
Я ненавиджу це говорити, але у мене теж є звичайна проблема і мені ще не шкода знайти спосіб її вирішення.
Чоп33

3
Це не вирішує вашу проблему, але якщо віддаленою кінцевою точкою є консоль VMware, цей документ від VMware пропонує рішення.
larsks

Чи виникає ця повторна проблема натискання клавіш лише між сеансом RDP та консоллю ilo?
Rqomey

@Rqomey Я не впевнений, на якому шарі виникають поверхні. Кінцевий результат той самий. Припустимо щось на зразок: Mac -> RDP-сеанс Windows, який працює підключенням до клієнтської консолі ILO або vSphere.
ewwhite

Відповіді:


10

У той час як з'єднання SSH передає обведення ключами , з'єднання HP ILO передає ключові стани . Щоразу, коли ви натискаєте клавішу, сервер отримує окремі події KeyDown та KeyUp. Повторне натискання клавіш призводить до того, що подія KeyUp надходить пізно.

Дві найімовірніші причини події KeyUp, що надходить пізно, є:

  1. Проблеми перевантаженості мережею / ефективність роботи мережі.
  2. Низька продуктивність клієнтської системи, яка ініціює з'єднання ILO. Якщо клієнт - це віртуальна машина, чи перезавантажена базова система хостингу, чи в VM не виділено недостатньо ресурсів пам'яті / процесора?

Якщо першопричину не вдається усунути:

  1. Проблему повторення ключа можна вирішити, відключивши налаштування ILO2 під назвою "Клавіша вгору / вниз". Це призведе до того, що ILO2 передаватиме натискання клавіш замість ключових станів. На жаль, цей параметр було видалено з ILO3.
  2. Якщо цільовою операційною системою є Linux, можливо, вам вдасться вирішити проблему, перенаправляючи консоль на ttyS0сеанс і використовуючи сеанс віртуального послідовного порту (VSP) замість віртуальної консолі. Це призведе до усунення проблеми "Клавіша вгору / вниз", оскільки послідовні з'єднання передають натискання клавіш замість подій клавіш вгору / вниз.
  3. Може бути корисним відрегулювати швидкість повторення ключа та / або повністю відключити автоматичне повторення в цільовій системі. Я визнаю, що це може бути нелегко досягти, залежно від гостроти ключової проблеми повторення.
  4. Зважаючи на те, що ви використовуєте Mac як локальну робочу станцію, можливо, варто спробувати вставити цілі команди у ваш клієнт Mac RDP за допомогою Command-V. Я не знаю, чи це життєздатне рішення, але це може мати цікавий ефект. Я часто вдячний за роботу на віддалених машинах Windows з робочої станції Mac саме тому, що локальні комбінації клавіш та гарячих клавіш продовжують працювати передбачувано.

Список літератури:


Будь-яке розуміння з боку віддаленої консолі VMWare цього? Я бачу те саме.
ewwhite

2
У VMware досить просто обійтися, просто змінивши затримку повторення ключа на 2 секунди, але глобально це не можна (файл .vmx потрібно змінити для кожної віртуальної машини): kb.vmware.com/selfservice/microsites /…
Skyhawk

1
У рамках цих же ліній може бути корисно вбудувати ще ВСІ сесії Windows. RDP'ing до сервера в тому ж мережевому сегменті, що і iLO, може зменшити вашу затримку між ключами, щоб не виникнути проблем.
longneck

5

Схоже, це просто проблема з протоколом. Я дещо зменшив проблему, використовуючи Ericom Blaze як транспорт RDP для центрального сервера, з якого я підключаюся; напр., "стрибок коробки".

Інші речі:

Я намагаюся уникати декількох вкладених сеансів.

На моєму Mac я використовую VMWare Fusion з Windows 7, щоб дозволити мені використовувати певний RDP від ​​Windows у певних випадках.

Це приблизно все, що я зараз бачу.


2

вам потрібно відредагувати .vmx файл, щоб додати такий рядок:

keyboard.typematicMinDelay = "2000000"

воно виймає «відскок».

З моєю версією vmware я повинен змінити цю зміну, коли VM не працює. Я розумію, що це можна зробити з вікна редагування, але мені не вдалося знайти це місце.


1

Чи виникає проблема з підключенням до rdp (чи можете ви правильно ввести блокнот?) Або між RDP та iLO)?

Якщо між RDP та iLO (я знаю, ви це вже робили)

  1. Використання віддаленої консолі Java було майже неможливим. Я виявив, що якщо я використовував "віддалену консоль" (її можна назвати. Net), це призвело до масового вдосконалення. Затримка була меншою, затримка не була вразливою, і повторних і втрачених натискань клавіш не відбулося.

  2. Завантажте живий CD, встановіть opensh-сервер та використовуйте ssh для підключення. Зробіть нашу установку через ssh (якщо з’єднання погано використовувати, також екран.

Якщо між вами та RDP:

Використовуйте freenx або vnc, налаштовані на низьку пропускну здатність до вікна вікна. Це повинно принаймні очистити натискання клавіш. Чи підключення до RDP нормально (це те, де трапляються проблеми з натисканням клавіш?

Якщо обидва: запишіть команди в блокнот, тоді скопіюйте та вставте, якщо можете, сподіваємось, це буде працювати краще, ніж набирати текст.


Я точно використовую консоль .NET.
ewwhite

1

Перше, що важливо пам'ятати, - це відключити повторення клавіш у всіх процесах обробки ваших натискань клавіш, у тому числі на віртуальній машині або сесії RDP, через яку ви підключаєтесь, а також на хост-машині верхнього рівня. Це не виправляє кінцеву машину цілі, але це робить багато для покращення ситуації.

Що стосується цільової машини:

Існують повідомлення, що використання ssh для підключення до порту SSH HP iLO дозволяє уникнути повторних ключових проблем, але я не міг використовувати цей метод, оскільки мій хост (online.net) не пропустив порт 22 через брандмауер iLO. Але якщо у вас є доступ до SSH-порту iLO (швидше за все, 22), це здається найпростішим підходом.

Я спробував за допомогою системного блоку встановити швидкість повторення клавіатури та час затримки під час завантаження:

# 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

(Переконайтесь, що у /sbin/kbdrateвас є kbdrate. Пишіть /etc/systemd/systemd/slower-keyboard-repeat.serviceі systemctl daemon-reload && systemctl enable slower-keyboard-repeat.service)

але, як згадувалося в коментарі, це було лише частковим успіхом, оскільки вимагало перезавантаження, щоб встановити частоту повторення на новій клавіатурі, яку додає iLO. Але це досить добре, якщо ви все в порядку з перезавантаженням машини.

У кінцевому рахунку я закінчив виправлення ядра Linux, щоб змінити швидкість повторення за замовчуванням і час затримки на всіх клавіатурах:

From 78c32f539b89bf385985bea47a7058a540d31da0 Mon Sep 17 00:00:00 2001
From: Ivan Kozik <ivan@ludios.org>
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

і це вирішило проблему для мене.


0

Я знаю, ви сказали, що ви обмежені, але я не можу придумати нічого кращого, ніж: встановити VNC або TeamViewer, принаймні лише для того, щоб зробити найважливішу частину вашої установки.

Друге рішення - використовувати проксі-сервер для переадресації типу Media Center для введення повідомлень, щоб ви підключили другу клавіатуру до свого комп’ютера, а за допомогою HID пересилали лише цю клавіатуру через TCP / SOAP на сервер. Але оскільки це передбачає встановлення демонів програмного забезпечення на сервер, ви також можете почати з VNC.

Я ніколи не зазнавав повторних натискань клавіш, але у мене виникають значні відставання миші при роботі з VMware над RDP, коли в гостьовій ОС не завантажені інструменти VMware.

Останнім варіантом, у якому я не підходить, є звернутися в службу підтримки Microsoft і повідомити про рішення, яке вони вам дають тут .. як билет на відкритий ресурс.


0

З мого досвіду, це допомогло мені, якщо я намагаюся забути все, що я дізнався про набір сенсорного тексту, і намагаюся пробивати клавіші одна за одною і дуже, дуже швидко. Переважно використовуйте лише один палець, щоб вам не було зручно і почніть вводити занадто швидко. Вона також дозволяє вам зосередитися на тому , щоб натиснути клавішу швидкого . Це все це може здатися жартом, але я виявив, що мій правий середній палець (я права рука), безумовно, найбільш здатний швидко натискати клавіші.

І звичайно, я намагаюся якомога швидше підняти та запустити SSH. Якщо вони занадто обмежені, щоб дозволити це робити ... ой.

Спробуйте також використовувати різні консолі. Зазвичай версія Java була б найгіршою, але якщо у вас виникли проблеми з версією .NET, можливо, ви захочете спробувати Java. Будьте готові, що плагін Java може зірвати ваш браузер (це лише проблема з iLO 2; iLO 3 перемістився з плагіна на додаток для веб-запуску).


Це грубе рішення. Будь-яка ідея, чому це відбувається?
ewwhite

1
Називати це «рішенням» досить щедро. Ні, я поняття не маю, чому це відбувається, але я завжди звинувачував протокол віддаленого з'єднання. Тепер, коли ви змусили мене задуматися над цим, у мене була інша ідея ... Ви коли-небудь намагалися відтворити це за допомогою екранної клавіатури з додатків Windows Access? У мене виникає відчуття, що програма на клавіатурі на екрані може працювати бездоганно.
chutz

На цьому тижні я спробував підключити екранну клавіатуру з випуском VMWare vCloud. Спливаюча консоль суперечила екранній клавіатурі для фокусування, тому вони не були сумісні.
ewwhite
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.