Нужный флаг в нужном месте

Из серии чтоб «самому не забыть».

Решил после обновления Lubuntu на версию 13.10 пересобрать xrdp, включая сервер X11rdp. (Версию брал последнюю, из github.) Эта штука «широко известна в узких кругах» и используется в качестве какого-никакого аналога терминального сервера Windows. Работает, в общем и целом, нормально. Огромное достоинство — подключаться к машине c linux можно прямо из-под штатного виндового клиента mstsc.

В принципе, пересобирать именно гитхабовскую версию мне доводилось неоднократно, под разными версиями Ubuntu и разными архитектурами. В этот раз нужно было под i386 собрать, на Lubuntu 13.10. Сборка прошла вроде бы нормально, но внезапно выяснилось, что в X11rdp-сессии не работают ни setxkbmap, ни xkbcomp. Притом никаких ругательств в консоли при попытке набрать setxkbmap -layout ru нет вообще. setxkbmap -print показывает, что всё в порядке — а всё равно в консоли латиница заместо русских букв. М-да.

Решил но нетбуке, где ещё до 13.10 не обновился, повторить сборку. И опаньки — в получившемся X11rdp setxkbmap работает! Фиг знает, в чём причина. В итоге просто перекопировал этот собранный файл с нетбука на рабочую машину.

Как выяснилось, промблемы этим не исчерпываются. Обычно юзеры используют в терминальной сессии гуглобраузер chromium, и он работает нормально. Но внезапно я запустил Огнелиса и… Из сессии меня моментально выбросило. Притом повторное подключение пошло уже на след. дисплей. Пришлось чистить /tmp.

Это реальная лажа. Раньше я помню, такие фортеля тоже выскакивали, и виноваты в том были собираемые вместе с X11rdp драйвера рендеринга типа swrast_dri.so (кажется, я сам это установил опытным путём, не влезая в гугль), но я их сразу и убрал. Тут-то чего, спрашивается? Слава Богу, есть такой скрипт, оказывается, называется X11rdp-o-matic, и что он активно обсуждается. И как раз в обсуждении этого скрипта (типа, задумка в том, чтобы сборка происходила полностью в автоматическом режиме — но, честно говоря, в данном случае не вижу преимуществ по сравнению со сборкой непосредственно из оригинального источника) дали ссылку на это: http://www.mail-archive.com/xrdp-devel@lists.sourceforge.net/msg01240.html. Т.е. в Makefile папки xrdp/xorg/X11R7.6/rdp надо просто добавить флаг -Wl,‑‑no-as-needed перед флагом -lGL. И это всё (NB: за тем лишь исключением, что благодаря специфике действия -Wl,‑‑no-as-needed все флаги, идущие после -lGL, нужно переставить до -Wl,‑‑no-as-needed)! Огнелис теперь запускается в свежесобранном X11rdp замечательно!

Кстати, о Makefile. Я безо всяких проблем (во всяком случае, видимых) подсунул туда версию xorg 1.9.4 заместо 1.9.3 — сборка прошла нормально. 🙂 Да и шрифты из файла x11_file_list.txt повыбрасывал. Но это уже мелочи…


Запись опубликована в рубрике компьютерное с метками , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.