Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp ) (Непонятное зацикливание буфера.)
Модераторы: dimbor, Модераторы разделов
Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )
Дано
Запущенный firefox 5 (OpenSUSE 11.4 со всеми обновлениями) и запущенная терминал сессия через rdesktop (Windows XP SP3)
В Win XP Запущен MS Access .
Так вот если скопировать в буфер Ctrl+C в терминалке и вставить в firefox linux первый раз работает, но последующие буфер обмена между rdesktop и linux перестает работать. Программа для наблюдения за буфером обмена в windows показывает, что буфер дико колбасит (как будто ктото нажимает бытстро Ctrl+C или еще чего(но буфер не изменяется)). как результат буфер как будто циклится и пока что нибудь из firefox в firefox не скопируешь пляска не останавливается. Выяснилось , что это косвенно связано с буфером линукс primary (как известно у линукса два буфера primary и обычный). Как костыль помогла утилита parcellite следящая за только обычным буфером.
Кто нибудь сталкивался с этим ? Каковы могут быть причины зависания буфера в Linux ?
Это наблюдалось только в случае Ctrl+C + Ctrl+V между windows терминал и линукс. Причем Opera ведет себя немного по другому
В консоль от rdesktop выдает WARNING: Failed to aquire ownership of PRIMARY clipboard (какой там может быть primary, если там винда)
И еще вопрос, как вырубить вообще primary clipboard ?
Чтото об этом здесь, но нормального решения не видно Курощение nomachine клиента - за шаг до ...
Запущенный firefox 5 (OpenSUSE 11.4 со всеми обновлениями) и запущенная терминал сессия через rdesktop (Windows XP SP3)
В Win XP Запущен MS Access .
Так вот если скопировать в буфер Ctrl+C в терминалке и вставить в firefox linux первый раз работает, но последующие буфер обмена между rdesktop и linux перестает работать. Программа для наблюдения за буфером обмена в windows показывает, что буфер дико колбасит (как будто ктото нажимает бытстро Ctrl+C или еще чего(но буфер не изменяется)). как результат буфер как будто циклится и пока что нибудь из firefox в firefox не скопируешь пляска не останавливается. Выяснилось , что это косвенно связано с буфером линукс primary (как известно у линукса два буфера primary и обычный). Как костыль помогла утилита parcellite следящая за только обычным буфером.
Кто нибудь сталкивался с этим ? Каковы могут быть причины зависания буфера в Linux ?
Это наблюдалось только в случае Ctrl+C + Ctrl+V между windows терминал и линукс. Причем Opera ведет себя немного по другому
В консоль от rdesktop выдает WARNING: Failed to aquire ownership of PRIMARY clipboard (какой там может быть primary, если там винда)
И еще вопрос, как вырубить вообще primary clipboard ?
Чтото об этом здесь, но нормального решения не видно Курощение nomachine клиента - за шаг до ...
Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )
Ism писал(а): ↑18.07.2011 17:23В консоль от rdesktop выдает WARNING: Failed to aquire ownership of PRIMARY clipboard (какой там может быть primary, если там винда)
И еще вопрос, как вырубить вообще primary clipboard ?
Чтото об этом здесь, но нормального решения не видно Курощение nomachine клиента - за шаг до ...
Нормальное решение легко разглядывается даже без мелкоскопа, да только вот оно для nx-клиента виндового. Торчит в коде (wincutpaste.c)/.
Что такое "primary clipboard" является большой загадкой без разгадки, потому как термин эквивалентен новой версии виндовс от Торвальдса.
Есть винда, там имеется clipboard, оно же буфер обмена. А есть иксы - там вообще нет буфера обмена. Есть два селекшенса (selection) - как это перевести корректно ХЗ. Один зовется PRIMARY, другой - CLIPBOARD, оба представляют из себя интерфейс к своему буферу в виндовом понимании. Иксячая прога и икс-сервер работают либо с одним селекшенсом, либо с другим. И первым шагом при любой операции всегда идет RequestSelection ("aquire ownership" - это оно же). В "курощении" дохрена на эту тему писал.
По поводу "вырубить", да, одним из косяков nx-клиента и было умение работать только с "PRIMARY", тогда как вайн... опять же все в "курощении" есть. Но всего лишь одним из чуть ли не десятка бяк по клипборде. Но Вашем же случае и архитектура несколько другая и ситуевина клент-сервер перевернута наоборот. Так что из стольких букв будет только один короткий вывод: При желании что-то самому поправить - ICCCM в зубы и вперед отлаживать rdesktop. А может уже поправили, только до дистра еще не дошло.
Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )
В названии темы упомянуты и rdesktop, и freerdp. Они оба ведут себя одинаково? Какие версии этих клиентов вы пробовали?
but in the darkness, behind your smile, you scream... © Dio
Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )
freerdp работает лучше, но тоже иногда буфер непредсказуемо вырубается (и виснет намертво при вставке, rdesktop нет)
Это при схеме машина linux Firefox -> NX Сессия -> В NX сессии запущен freerdp (кажется странным , но минимизирует проблемы с буфером, в отличии от запуска freerdp прямо с моей Linux машины)
Выяснилось , что причина зависания при вставке - монитор CB Monitor windows
Также если запустить виртуальную машину с Windows и рядом rdp сессию через скажем rdesktop буфер вообще сходит с ума (кстати лечится включением буфера обмена в одну сторону в виртуалке)
Помогает parcellite следящая только за Ctrl+C , если во время зависания буфера ткнуть в последний запомненную ею строку, то все начинает работать до следующего зависания буфера
Только что в консоли выдал
Это при схеме машина linux Firefox -> NX Сессия -> В NX сессии запущен freerdp (кажется странным , но минимизирует проблемы с буфером, в отличии от запуска freerdp прямо с моей Linux машины)
Выяснилось , что причина зависания при вставке - монитор CB Monitor windows
Также если запустить виртуальную машину с Windows и рядом rdp сессию через скажем rdesktop буфер вообще сходит с ума (кстати лечится включением буфера обмена в одну сторону в виртуалке)
Помогает parcellite следящая только за Ctrl+C , если во время зависания буфера ткнуть в последний запомненную ею строку, то все начинает работать до следующего зависания буфера
Только что в консоли выдал
stas@ubuntu-server:~$ ./start_freerdp_session
./start_freerdp_session: строка 1: #!/bin/bash: Нет такого файла или каталога
1680x906
freerdp_chanman_load_plugin: filename cliprdr
freerdp_chanman_load_plugin: /usr/lib/freerdp/cliprdr.so
MyVirtualChannelInit:
xkbLayout: en_US,ru xkbVariant:
xkbLayout: en_US,ru xkbVariant: ,
xkbLayout: en_US,ru xkbVariant:
xkbLayout: en_US,ru xkbVariant: ,
find_keyboard_layout_in_xorg_rules: 0
Found locale : _
detect_keyboard_layout_from_locale: 0
Loading keymap xfree86
xkbfilepath: /usr/share/freerdp/keymaps/xfree86
Loading keymap xfree86(basic)
xkbfilepath: /usr/share/freerdp/keymaps/xfree86
Loading keymap aliases(qwerty)
xkbfilepath: /usr/share/freerdp/keymaps/aliases
kbd_init: detect_and_load_keyboard returned 0
freerdp_kbd_init: 409
starting thread 0 to 192.168.1.253:3389
main thread, waiting for all threads to exit
freerdp_chanman_pre_connect:
keyboard_layout: 409
connecting to 192.168.1.253:3389
Legacy RDP encryption negotiated
freerdp_chanman_post_connect: server name [192.168.1.253] chan_man->num_libs [1]
MyVirtualChannelOpen:
cliprdr: owner not support TARGETS. sending all format.
cliprdr: owner not support TARGETS. sending all format.
cliprdr: owner not support TARGETS. sending all format.
clipboard_get_requested_data: no data
clipboard_get_requested_data: no data
clipboard_get_requested_data: no data
clipboard_get_requested_data: no data
cliprdr: owner not support TARGETS. sending all format.
Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )
Можете объяснить попроще, как вопроизвести проблему? Только давайте без NX-сессии.
Я иду в RDP-сессию с помощью freerdp такой командой:
Что мне нужно сделать, чтобы буфер обмена заглючило?
Я иду в RDP-сессию с помощью freerdp такой командой:
Код: Выделить всё
xfreerdp --plugin cliprdr <ip>
Что мне нужно сделать, чтобы буфер обмена заглючило?
but in the darkness, behind your smile, you scream... © Dio
Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )
1 Запускаем xfreerdp сессию
2 Запускаем на своей машине Linux Firefox
3 Запускаем в rdp сессии Microsoft Office (это важно)
4 Пробуем копировать из firefox в MS Access (или Excel)
Результат, гдето с пятой попытки получаем вечный цикл Ctrl+V. (можно открыть этот долбаный буфер микрософт офис - Правка->буфер обмена офис и увидеть этот ад )
Решение очевидно, выключить оффисовский буфер. Это уменьшит количество геморроя на порядок.
2 Запускаем на своей машине Linux Firefox
3 Запускаем в rdp сессии Microsoft Office (это важно)
4 Пробуем копировать из firefox в MS Access (или Excel)
Результат, гдето с пятой попытки получаем вечный цикл Ctrl+V. (можно открыть этот долбаный буфер микрософт офис - Правка->буфер обмена офис и увидеть этот ад )
Решение очевидно, выключить оффисовский буфер. Это уменьшит количество геморроя на порядок.
Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )
Может быть, это офисовский буфер обмена и глючит? Раз с другими приложениями во freerdp-сессии проблем не возникает.
Не пробовали аналогичный сценарий проверить на Windows из родного RDP-клиента?
Если это всё же проблема freerdp, рекомендую запостить issue вот сюда: https://github.com/FreeRDP/FreeRDP/issues?m...&state=open
Кстати, вы так и не сказали, какую версию freerdp используете. Перед тем, как постить issue, стоит проверить работу версии из GIT.
Не пробовали аналогичный сценарий проверить на Windows из родного RDP-клиента?
Если это всё же проблема freerdp, рекомендую запостить issue вот сюда: https://github.com/FreeRDP/FreeRDP/issues?m...&state=open
Кстати, вы так и не сказали, какую версию freerdp используете. Перед тем, как постить issue, стоит проверить работу версии из GIT.
but in the darkness, behind your smile, you scream... © Dio
Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )
версия freerdp 0.8.2-4.1
версия rdesktop 1.6.0-46.47.1
Прикол в том, что глюк непросто воспроизвести (может он уже исправлен в современных версиях MS Office, у нас 2003)
По видимому когда Office прокручивает вниз запомненные строки буфера (их 24) , он вызывает некое прерывание, которое заставляет xfreerdp или rdesktop повторить вставку и так пока ктото не запнется (в большинстве случаев вставка в Office в терминал сессии с тормозами , но происходит)
Причем непонятно, кто виновник торжества, это можно найти только тотальным дебагом (и буферов линукс тоже) воспроизведя описанные обстоятельства
Кстати нашел как вырубить этот слишком умный буфер обмена Microsoft Office .
1 Меню Правка->Буфер обмена Office (появится панелька справа)
2 Внизу панельки Параметры , снять все галочки, кроме Показать значок буфера обмена в панели задач
3 В трее должна появиться заначек дискетки, нажать на нее правой кнопкой мыши и нажать Прекратить сбор данных
После этого буфер MS Office должен работать как обычный одиночный буфер обмена windows
версия rdesktop 1.6.0-46.47.1
Прикол в том, что глюк непросто воспроизвести (может он уже исправлен в современных версиях MS Office, у нас 2003)
По видимому когда Office прокручивает вниз запомненные строки буфера (их 24) , он вызывает некое прерывание, которое заставляет xfreerdp или rdesktop повторить вставку и так пока ктото не запнется (в большинстве случаев вставка в Office в терминал сессии с тормозами , но происходит)
Причем непонятно, кто виновник торжества, это можно найти только тотальным дебагом (и буферов линукс тоже) воспроизведя описанные обстоятельства
Кстати нашел как вырубить этот слишком умный буфер обмена Microsoft Office .
1 Меню Правка->Буфер обмена Office (появится панелька справа)
2 Внизу панельки Параметры , снять все галочки, кроме Показать значок буфера обмена в панели задач
3 В трее должна появиться заначек дискетки, нажать на нее правой кнопкой мыши и нажать Прекратить сбор данных
После этого буфер MS Office должен работать как обычный одиночный буфер обмена windows
Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )
Так вы пробовали или нет воспроизвести этот глюк, зайдя с винды родным rdp-клиентом?
but in the darkness, behind your smile, you scream... © Dio
Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )
Не пробовал, но те, кто сидят по rdp из винды говорили о том, что там тоже буфер иногда перестает работать, связано это как то с описанной выше проблемой, неизвестно.(Возможно оказывает влияние запущенный рядом виндовый nxclient)
Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )
Маленький апдейт, вышел freerdp 1.0 там пофикшены некоторые баги которые мне мешали, появился 32 бит цвет, буфер обмена больше не режет последний символ при параллельной работе с nx сервером
Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )
Апдейт 2 , написал программку заменяющую стандартный буфер обмена
1 Пробрасываем папку на виндовс rdp сервер
это xfreerdp 1.0
2 Нацеливаем на один и тот же файл программу в винде и линуксе и ставим в автозагрузку
Теперь при изменении содержимого текстового файла в линукс программа получает его содержимое в винде
Программа проста как топор, но и работает без сбоев, правда конфликтует с xclipboard
Написана на Lazarus 0.9.30.2 Компилится без изменений и в винде и в линуксе.
Теоретически для передачи можно использовать сокеты, но мне лень. Вообще у данного сетевого буфера обмена неплохой потенциал, его можно заставить кидать контент любого типа обработанный для конкретной платформы
1 Пробрасываем папку на виндовс rdp сервер
#!/bin/bash
numlockx on
# Вычисляем свободное пространство экрана корме панели задач
x=$(xprop -root _NET_WORKAREA | awk '{print $5}' | tr "," " ")
y=$(xprop -root _NET_WORKAREA | awk '{print $6}' | tr "," " ")
res=`expr $x`x`expr $y - 0`
echo $res
# Окно без декораций очень удобно
xfreerdp --plugin rdpdr --data disk:Sagruzki:/home/user/Загрузки/ -- --ignore-certificate --gdi hw -x 0x87 -D -g $res -z -a 32 -u user___ -p password___ 192.168.1.248
это xfreerdp 1.0
2 Нацеливаем на один и тот же файл программу в винде и линуксе и ставим в автозагрузку
Теперь при изменении содержимого текстового файла в линукс программа получает его содержимое в винде
Программа проста как топор, но и работает без сбоев, правда конфликтует с xclipboard
Написана на Lazarus 0.9.30.2 Компилится без изменений и в винде и в линуксе.
Теоретически для передачи можно использовать сокеты, но мне лень. Вообще у данного сетевого буфера обмена неплохой потенциал, его можно заставить кидать контент любого типа обработанный для конкретной платформы