fujitsu-usb-touchscreen no kubuntu 13.04 (64 bits) no P1630: erros de 'make'

1

Instalei o Kubuntu 13.04 (64 bits) no meu novo Fujitsu LifeBook P1630 e adicionei apenas alguns pacotes:

Primeiro aptitude , então eu fiz aptitude update && safe-upgrade , depois xinput-calibrator (o que parece funcionar, exceto que tenho que executá-lo novamente toda vez que eu reiniciar o sistema), então gcc , make , build-essential , checkinstall , binutils e linux-source .

Então baixei o arquivo cybergene-fujitsu-usb-touchscreen-112fdb75b406.zip que está vinculado a partir da página < href="https://bitbucket.org/cybergene/fujitsu-usb-touchscreen/overview"> link (Eu estou supondo que é a v3.3.9 indescritível, que não parece estar ligada sob esse nome de qualquer lugar); Eu extraí seu conteúdo para um diretório %código% e tentou executar ~/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406 . O traço do console (er, Konsole) está abaixo:

archelon@ingelrayok:~/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406$ make
make -C /lib/modules/3.8.0-30-generic/build M=/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406 modules
make[1]: Entering directory '/usr/src/linux-headers-3.8.0-30-generic'
  CC [M]  /home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.o
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c: In function ‘usb_u810_tablet_irq’:
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:133:4: error: implicit declaration of function ‘dbg’ [-Werror=implicit-function-declaration]
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:182:3: error: implicit declaration of function ‘err’ [-Werror=implicit-function-declaration]
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c: In function ‘usb_u810_tablet_probe’:
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:246:6: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:253:6: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:263:6: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:270:6: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:277:6: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:302:5: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:358:5: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:366:5: error: called object ‘err’ is not a function
cc1: some warnings being treated as errors
make[2]: *** [/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.o] Error 1
make[1]: *** [_module_/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.8.0-30-generic'
make: *** [fujitsu_usb_touchscreen.ko] Error 2
archelon@ingelrayok:~/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406$

Devo notar também que make conclui sem erros no meu outro computador, um Toshiba Satellite R10 executando o Kubuntu 12.04; esta máquina também tem um tablet (totalmente operacional) com caneta. (O tablet da Toshiba é uma Wacom com digitalizador ativo, em oposição à tela touchscreen resistiva USB da Fujitsu). Então, provavelmente eu só estou perdendo algum pacote ou outro - eu não compilei nada por anos e nunca fui particularmente bom nisso. Talvez você possa me resolver.

ATUALIZAÇÃO: substituí 13.04 por 12.04 LTS, mantendo minha partição / home e agora o pacote compila: make conclui sem erros. No entanto, make não. [Para ser mais preciso, corri make install (ou melhor, checkinstall ), que chama sudo checkinstall , porque, até onde posso dizer, o primeiro é uma atualização simples do último (pelo menos para os meus propósitos), fornecendo integração com o sistema de gerenciamento de pacotes.] Inicialmente, falhou com o seguinte erro:

make: execvp: /etc/init.d/fujitsu_touchscreen: Permission denied
make: *** [install] Error 127

Após algumas pesquisas, tentei usar make install no arquivo afetado:

$ sudo chmod +x /etc/init.d/fujitsu_touchscreen

Rodando chmod +x novamente, o erro de permissão é visto como resolvido; ele avança muito antes de falhar novamente. O log que ele oferece para imprimir no stdout mostra um erro sudo checkinstall , da seguinte forma:

dpkg: error processing /home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/cybergene-fujitsu-usb-touchscreen-112fdb75b406_amd64.deb (--install):
 unable to create '/sys/module/fujitsu/usb/touchscreen/parameters/touch_maxy.dpkg-new' (while processing '/sys/module/fujitsu/usb/touchscreen/parameters/touch_maxy'): No such file or directory

E, de fato, embora haja dpkg , não há /sys/module/fujitsu_usb_touchscreen/parameters/touch_maxy ; aparentemente, um erro tipográfico foi introduzido em algum lugar. Assim, devo encontrar e consertar isso. Mas infelizmente eu tenho muito pouca idéia de onde procurar além da seção /sys/module/fujitsu/usb/touchscreen/parameters/touch_maxy do makefile, e não está lá. (Eu entendo que há, por vezes, um arquivo install; em vez disso? Mas não há neste caso.) ... Ajuda?

(Já que esta é uma questão completamente distinta, eu fiz uma pergunta separada: 'make install' falha aparentemente devido a erro de digitação, mas não em makefile: Como localizar e corrigir? )

ATUALIZAÇÃO 2013-10-18 Depois de reinstalar o Kubuntu 12.04 novamente, desta vez recriando a partição / home (que, mais uma vez, foi gerada durante uma instalação do 13.04), não consigo mais reproduzir o erro estranho imediatamente acima. Ainda estou curioso para saber como os sublinhados foram alterados para cortes, mas parece que ninguém faz ideia. Talvez seja também interessante notar que, embora eu ainda não tenha executado com êxito install neste pacote, fiz checkinstall ; ele requer a executabilização de make install e a instalação de /etc/init.d/fujitsu_touchscreen , e a GUI congela logo após a conclusão da instalação, e não há nenhuma nova funcionalidade específica que tenha notado, e o sistema não pode mais continuar sendo suspenso. Subseqüentemente, perdi o interesse em hal , já que parece que o pacote Magick Rotation pode fornecer tudo o que eu estava procurando. Não funciona, no entanto, "fora da caixa"; Eu arquivei um relatório de erros que também documenta a solução deselegante que eu descobri.

    
por Archelon 15.09.2013 / 00:41

1 resposta

1

O fujitsu_usb_touchscreen.c diz que é v0.3.9, apesar do arquivo README incluso reportar "módulo kernel e utilitários v0.3.5 do Fujitsu usb touchscreen". Eu odeio dizer isso, mas "funciona para mim":

wget https://bitbucket.org/cybergene/fujitsu-usb-touchscreen/get/112fdb75b406.zip
unzip 112fdb75b406.zip
cd cybergene-fujitsu-usb-touchscreen-112fdb75b406
make

Três possibilidades:

  1. Possivelmente o arquivo zip está corrompido? Tente fazer o download novamente e repita as etapas de extração / criação?

  2. Verifique se você tem o pacote atual de linux-headers instalado (isso é necessário para as inclusões: linux / kernel.h, linux / slab.h, linux / module.h, linux / init.h, linux /usb/input.h). por exemplo: find /usr/src/ -iname slab.h

  3. O autor do pacote diz: "Envie um e-mail para mim se você tiver problemas para instalar o pacote." Você já tentou isso?

- implorar: editar

Eu tenho testado isso em convidados do VirtualBox. O que eu estava trabalhando foi instalado a partir do kubuntu-13.04-desktop-i386.iso há algum tempo e provavelmente tem alguns cabeçalhos extras que o deixaram feliz.

Acabei de instalar um guest limpo do kubuntu-13.04-desktop-amd64.iso e fui capaz de reproduzir o seu erro. Não tenho certeza o que está acontecendo lá, mas se em fujitsu_usb_touchscreen.c eu adiciono as seguintes linhas imediatamente após o includes então ele compila sem erro:

#define dbg(args...) printk(args)
#define err(args...) printk(args)

Além disso, a função usb_u810_tablet_probe () define um int err que é confuso para humanos versus a função err() / macro.

Espero que isso ajude!

    
por Phoeey 15.09.2013 / 02:16