Показать полную графическую версию : Драйвер планшета wizardpen не хочет работать в Mandriva 64bit
Планшет Genius G-Pen 450.
В Mandriva 32bit (2007.0) работало отлично (вот по этой инструкции (http://fieral.wordpress.com/2006/11/18/howto-install-genius-tablet-linux/)). В 64-битной (2008.0) не хочет. Выдаёт ошибку (Xorg.0.log):
(II) LoadModule: "wizardpen"
(II) Loading /usr/lib/xorg/modules/input//wizardpen_drv.so
dlopen: /usr/lib/xorg/modules/input//wizardpen_drv.so: wrong ELF class: ELFCLASS32
(EE) Failed to load /usr/lib/xorg/modules/input//wizardpen_drv.so
(II) UnloadModule: "wizardpen"
(EE) Failed to load module "wizardpen" (loader failed, 7)
(EE) No Input driver matching `wizardpen'
Видел, как на одном из иностранных форумов предлагали перекомпилированный драйвер под убунту 64 бит, но ссылка уже не работает. Да и вообще, под мандриву бы мне...=)
Может надо что-то переделать в исходниках?))
ruslandh
03-01-2008, 12:39
Надо пересобрать драйвер в 64-х битной среде из исходников (желательно из src.rpm)
Драйвер распространяется в исходниках. Собирал в той же системе, что и использовать планирую.
Никаких rpm/deb и т.д. нет. Это как бы самопальный драйвер. Разработка прекращена в конце 2005 года.
ruslandh
03-01-2008, 13:42
Coutty, мне трудно вам ответить, т.к. не являюсь пользователем Мандривы. Я слышал про хитрый biarch внутри него, возможно это связано с этим. Во всяком случае ругань идёт на 32-битную библиотеку.
Ещё разок подниму тему.
Процесс установки:
1. Скачиваем, распаковываем.
2. #xmkmf
Создаёт Makefile
3. #make
Создаёт wizardpen.o и wizardpen_drv.so (он, понятное дело, драйвером и является).
rm -f wizardpen.o
gcc -m32 -O2 -fno-strength-reduce -fno-strict-aliasing -fPIC -I../Xincludes -I. -IXincludes/xc/programs/Xserver/hw/xfree86/common -IXincludes/xc/programs/Xserver/hw/xfree86/loader -IXincludes/xc/programs/Xserver/hw/xfree86/os-support -IXincludes/xc/programs/Xserver/include -IXincludes/xc/programs/Xserver/mi -IXincludes/xc/exports/include/X11 -IXincludes/xc/include/extensions -I/usr/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DSHAPE -DXINPUT -DXKB -DLBX -DXAPPGROUP -DXCSECURITY -DTOGCUP -DXF86BIGFONT -DDPMSExtension -DXPRINT -DPIXPRIV -DPANORAMIX -DRENDER -DRANDR -DXFIXES -DDAMAGE -DCOMPOSITE -DXEVIE -DGCCUSESGAS -DAVOID_GLYPHBLT -DPIXPRIV -DSINGLEDEPTH -DXFreeXDGA -DXvExtension -DXFree86LOADER -DDLOPEN_HACK -DXFree86Server -DXF86VIDMODE -DXvMCExtension -DSMART_SCHEDULE -DBUILDDEBUG -DXResExtension -DX_BYTE_ORDER=X_LITTLE_ENDIAN -DXORG_VERSION_CURRENT="(((6) * 10000000) + ((8) * 100000) + ((99) * 1000) + 903)" -DNDEBUG -DFUNCPROTO=15 -DNARROWPROTO -DIN_MODULE -DXFree86Module -DLINUX_INPUT -c wizardpen.c
rm -f wizardpen_drv.so
gcc -m32 -o wizardpen_drv.so -shared -nostdlib wizardpen.o -Wl,-Bstatic -lgcc -Wl,-Bdynamic
Это вывод после make.
Видно, что вначале оно удаляет объектный файл wizardpen.o, а потом компилит исходник. После чего удаляет wizardpen_drv.so и собирает драйвер.
Короче, это всё не срабатывает - система грузится, но насчёт драйвера - неудачная попытка загрузить (см. 1 сообщение).
Теперь, если взять параметр -m32 и заменить на -m64 в обеих командах (ну так, от балды делаю - неизвестно, что оно означает на самом деле), то также нормально компилится и даже загружается (судя по логу). Но в логе xorg'а в конце написано: фатальная ошибка, бэктрэйс и 7 драйверов перечислены.
Поэтому даже не знаю. Может быть я совсем не то исправляю?
ruslandh
30-01-2008, 21:00
These `-m' switches are supported in addition to the above on AMD
x86-64 processors in 64-bit environments.
`-m32'
`-m64'
Generate code for a 32-bit or 64-bit environment. The 32-bit
environment sets int, long and pointer to 32 bits and generates
code that runs on any i386 system. The 64-bit environment sets
int to 32 bits and long and pointer to 64 bits and generates code
for AMD's x86-64 architecture.
Значит, я всё-таки угадал=)
Я хотел почитать man gcc, но там столько информации... А поиском по man'у пользоваться не умею. man man тоже очень длинный))
Значит, драйвер получается 64-битный. Но иксы не грузятся. Вот, части лога:
Появляется ошибка:
(EE) AIGLX error: dlsym for __driCreateNewScreen_20050727 failed (/usr/lib64/dri/fglrx_dri.so: undefined symbol: __driCreateNewScreen_20050727)
(EE) AIGLX: reverting to software rendering
Пробовал отключить AIGLX вместе с ещё чем-то (сейчас не припомню, но что-то с 3D-столом связано). Всё равно иксы не грузятся. Также пробовал сменить драйвер на vesa - не помогло.
Насчёт загрузки драйвера планшета:
(II) LoadModule: "wizardpen"
(II) Loading /usr/lib64/xorg/modules/input//wizardpen_drv.so
(II) Module wizardpen: vendor="The XFree86 Project"
compiled for 6.8.99.903, module version = 0.4.1
Module class: XFree86 XInput Driver
ABI class: XFree86 XInput driver, version 0.4
Т.е. всё нормально, как я понимаю.
И в самом конце:
Backtrace:
0: /etc/X11/X(xf86SigHandler+0x6d) [0x4806cd]
1: /lib64/libc.so.6 [0x2b4c902f91c0]
2: /etc/X11/X(xf86CollectInputOptions+0x3c) [0x48449c]
3: /usr/lib64/xorg/modules/input//wizardpen_drv.so [0x2b4c91f1e66c]
4: /etc/X11/X(InitInput+0x17c) [0x46248c]
5: /etc/X11/X(main+0x361) [0x433e81]
6: /lib64/libc.so.6(__libc_start_main+0xf4) [0x2b4c902e6ae4]
7: /etc/X11/X(FontFileCompleteXLFD+0x229) [0x4332d9]
Fatal server error:
Caught signal 11. Server aborting
Т.е. либо драйвер планшета, либо иксы. Но драйвер без иксов мне не нужен))
Может быть всё-таки что-то ещё нужно сменить в параметрах компилятора?
ruslandh
30-01-2008, 21:46
Где-то в недрах fglrx не хватает функции __driCreateNewScreen, которую, как я понимаю, вызывает Х.
ruslandh, с этим-то ничего поделать я не могу. Разве что отключить fglrx. Впрочем, я сейчас глянул - даже без планшетного драйвера эти строчки с ошибкой присутствуют. Но иксы грузятся.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.