Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Железо в Linux (http://forum.oszone.net/forumdisplay.php?f=29)
-   -   Драйвер планшета wizardpen не хочет работать в Mandriva 64bit (http://forum.oszone.net/showthread.php?t=97232)

Coutty 03-01-2008 12:28 708073

Драйвер планшета wizardpen не хочет работать в Mandriva 64bit
 
Планшет Genius G-Pen 450.
В Mandriva 32bit (2007.0) работало отлично (вот по этой инструкции). В 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 708084

Надо пересобрать драйвер в 64-х битной среде из исходников (желательно из src.rpm)

Coutty 03-01-2008 12:48 708095

Драйвер распространяется в исходниках. Собирал в той же системе, что и использовать планирую.

Никаких rpm/deb и т.д. нет. Это как бы самопальный драйвер. Разработка прекращена в конце 2005 года.

ruslandh 03-01-2008 13:42 708124

Coutty, мне трудно вам ответить, т.к. не являюсь пользователем Мандривы. Я слышал про хитрый biarch внутри него, возможно это связано с этим. Во всяком случае ругань идёт на 32-битную библиотеку.

Coutty 30-01-2008 18:41 729208

Ещё разок подниму тему.

Процесс установки:
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 729325

Цитата:

Цитата info gcc
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.


Coutty 30-01-2008 21:34 729356

Значит, я всё-таки угадал=)
Я хотел почитать 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 729364

Где-то в недрах fglrx не хватает функции __driCreateNewScreen, которую, как я понимаю, вызывает Х.

Coutty 30-01-2008 21:57 729368

ruslandh, с этим-то ничего поделать я не могу. Разве что отключить fglrx. Впрочем, я сейчас глянул - даже без планшетного драйвера эти строчки с ошибкой присутствуют. Но иксы грузятся.


Время: 22:54.

Время: 22:54.
© OSzone.net 2001-