Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp ) (Непонятное зацикливание буфера.)

Модераторы: dimbor, Модераторы разделов

Ответить
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )

Сообщение Ism »

Дано

Запущенный 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 клиента - за шаг до ...
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )

Сообщение dimbor »

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. А может уже поправили, только до дистра еще не дошло.

Спасибо сказали:
Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )

Сообщение broom »

В названии темы упомянуты и rdesktop, и freerdp. Они оба ведут себя одинаково? Какие версии этих клиентов вы пробовали?
but in the darkness, behind your smile, you scream... © Dio
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )

Сообщение Ism »

freerdp работает лучше, но тоже иногда буфер непредсказуемо вырубается (и виснет намертво при вставке, rdesktop нет)
Это при схеме машина 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.
Спасибо сказали:
Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )

Сообщение broom »

Можете объяснить попроще, как вопроизвести проблему? Только давайте без NX-сессии.
Я иду в RDP-сессию с помощью freerdp такой командой:

Код: Выделить всё

xfreerdp --plugin cliprdr <ip>

Что мне нужно сделать, чтобы буфер обмена заглючило?
but in the darkness, behind your smile, you scream... © Dio
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )

Сообщение Ism »

1 Запускаем xfreerdp сессию
2 Запускаем на своей машине Linux Firefox
3 Запускаем в rdp сессии Microsoft Office (это важно)
4 Пробуем копировать из firefox в MS Access (или Excel)

Результат, гдето с пятой попытки получаем вечный цикл Ctrl+V. (можно открыть этот долбаный буфер микрософт офис - Правка->буфер обмена офис и увидеть этот ад )

Решение очевидно, выключить оффисовский буфер. Это уменьшит количество геморроя на порядок.
Спасибо сказали:
Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )

Сообщение broom »

Может быть, это офисовский буфер обмена и глючит? Раз с другими приложениями во freerdp-сессии проблем не возникает.
Не пробовали аналогичный сценарий проверить на 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
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )

Сообщение Ism »

версия 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
Спасибо сказали:
Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )

Сообщение broom »

Ism писал(а):
20.07.2011 15:44
Причем непонятно, кто виновник торжества, это можно найти только тотальным дебагом (и буферов линукс тоже) воспроизведя описанные обстоятельства

Так вы пробовали или нет воспроизвести этот глюк, зайдя с винды родным rdp-клиентом?
but in the darkness, behind your smile, you scream... © Dio
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )

Сообщение Ism »

Не пробовал, но те, кто сидят по rdp из винды говорили о том, что там тоже буфер иногда перестает работать, связано это как то с описанной выше проблемой, неизвестно.(Возможно оказывает влияние запущенный рядом виндовый nxclient)
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )

Сообщение Ism »

Маленький апдейт, вышел freerdp 1.0 там пофикшены некоторые баги которые мне мешали, появился 32 бит цвет, буфер обмена больше не режет последний символ при параллельной работе с nx сервером
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Фильм Пипец-2 или буфер обмена Linux + rdesktop ( xfreerdp )

Сообщение Ism »

Апдейт 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 Нацеливаем на один и тот же файл программу в винде и линуксе и ставим в автозагрузку

ClipboardWatchDog.tar.gz
(150.33 КБ) 15 скачиваний


Теперь при изменении содержимого текстового файла в линукс программа получает его содержимое в винде

Программа проста как топор, но и работает без сбоев, правда конфликтует с xclipboard

clipboard_wd.png


Написана на Lazarus 0.9.30.2 Компилится без изменений и в винде и в линуксе.

Теоретически для передачи можно использовать сокеты, но мне лень. Вообще у данного сетевого буфера обмена неплохой потенциал, его можно заставить кидать контент любого типа обработанный для конкретной платформы
Спасибо сказали:
Ответить