Как активировать модуль записи Xorg на Raspbian?

13

Я пытаюсь автоматизировать некоторые тесты на моем RaspberryPi, и я использую Python Pymouse для выполнения некоторых эмулируемых кликов. На моем Debian он работает нормально, но когда дело доходит до Raspbian, он продолжает сбой с этим сообщением об ошибке при попытке импортировать pymouse:

pi@pi ~/ $ python test.py
Traceback (most recent call last):
  File "test.py", line 2, in <module>
    from pymouse import PyMouse 
  File "/usr/local/lib/python2.7/dist-packages/pymouse/__init__.py", line 95, in <module>
    from unix import PyMouse, PyMouseEvent
  File "/usr/local/lib/python2.7/dist-packages/pymouse/unix.py", line 53, in <module>
    class PyMouseEvent(PyMouseEventMeta):
  File "/usr/local/lib/python2.7/dist-packages/pymouse/unix.py", line 54, in PyMouseEvent
    ctx = display2.record_create_context(
  File "/usr/lib/pymodules/python2.7/Xlib/display.py", line 216, in __getattr__
    raise AttributeError(attr)
AttributeError: record_create_context

Поэтому я провел некоторое исследование и обнаружил, что моя проблема может быть вызвана отсутствующим модулем записи в моей установке x11. Я уже создал файл по умолчанию /etc/X11/xorg.conf и добавил следующие строки:

Section "Module"
    Load "record"
EndSection

После перезагрузки я не смог найти никакой разницы. Я думаю, модуль не установлен до сих пор в Raspbian? Как я могу установить его?

Обновление: я нашел кого-то еще , кто столкнулся с подобной проблемой на fedora, и он задокументировал тот факт, что его не /usr/lib/xorg/modules/extensions/librecord.soбыло. Это не моя проблема, так как файл существует. Я также попытался использовать Xorg -configureдля создания нового xorg.conf и после этого перезапустил свой Pi. Все еще не повезло. :-(

Вот еще некоторая информация, которая может быть полезна:

pi@pi ~/ $ grep LoadModule /var/log/Xorg.0.log
[169058.900] (II) LoadModule: "fbturbo"
[169058.912] (II) LoadModule: "fbdev"

И:

pi@pi ~/ $ xdpyinfo name of display:    :0.0 version number:    11.0 vendor string:    AT&T Laboratories Cambridge vendor release number:   3332 [...] number of extensions:    7
    BIG-REQUESTS
    MIT-SHM
    MIT-SUNDRY-NONSTANDARD
    SHAPE
    SYNC
    XC-MISC
    XTEST [...]

Это сообщение было перенесено с RaspberryPi.stackexchange.com .

kumzugloom
источник
Вероятно, вам следует перенести это на Raspberry Pi Stack Exchange, поскольку вы используете Raspian.
SpecialBomb
Проверяли ли вы разные версии между вашими установками Debian и Raspbian? Один из Xorg / pymouse / any их зависимостей может существенно отличаться.
Матиас Урлихс

Ответы:

1

Вы можете проверить это без остатка pymouse, запустив python и запустив

from Xlib.display import Display
display = Display()
display.record_create_context

который должен напечатать

<bound method Display.create_context of <Xlib.display.Display instance at ...>>

Похоже, что соответствует

$ xdpyinfo | grep -i record
    RECORD

(это number of extensions:в полном выводе.)

Если последний не появляется, ваш X-сервер не поддерживает его, что очень необычно, поскольку он стал частью основного сервера в июле 2012 года, что также объясняет, почему попытка загрузить модуль не работает; модуль не загружался примерно четыре года назад.

python-xlibсама получила recordподдержку в версии 0.14 в 2007 году, так что это еще менее вероятно, будет устаревшим ...

Eichin
источник
0

http://mirrordirector-mb.raspbian.org/raspbian/pool/main/x/xmacro/

Это макро рекордер. Он скомпилирован, но я предполагаю, что он работает так, как он говорит. Я не проверял это, но это кажется намного проще, чем взломать программу на python, в которой вы не можете понять, где она ломается.

хгх о
источник