Integrazione driver Touchscreen nei kernel source [RISOLTO]

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
tobeFrank
Linux 0.x
Linux 0.x
Messaggi: 32
Iscritto il: mer 9 set 2009, 8:58
Slackware: 12.2-13
Kernel: 2.6.31.4-2.6.24
Desktop: KDE 3.5
Località: Latina

Integrazione driver Touchscreen nei kernel source [RISOLTO]

Messaggio da tobeFrank »

Salve a tutti, sono un nuovo utente slackware e sono tornato a Linux dopo qualche anno. Attualmente utilizzo Slackware 12.2 su un Samsung NC10 e ho la necessità di integrare i driver di un touchscreen all'interno dei sorgenti kernel (per l'operazione sto usando i sorgenti 2.6.27.31 e 2.6.15).

Ho a disposizione i driver della casa costruttrice che, a quanto scritto nel README sono stati compilati per il kernel 2.6.15. Insieme ai driver c'è anche una guida per eseguire l'installazione ma non è molto accurata...(voglio essere gentile).

Comunque i problemi che ho sono questi:

1) il kernel 2.6.15 una volta compilato, ancora prima di integrare i driver di cui ho bisogno, mi va in freeze durante il boot quando rileva il mouse, che dovrebbe essere un touchpad Synaptics, riconosciuto da altri kernel come un semplice mouse PS/2.

2) sul kernel 2.6.27.31 invece, visto che la prima compilazione non ha dato problemi, sono passato già all'integrazione vera e propria dei driver agendo nel seguente modo:

Ho copiato i driver del touchscreen nella directory linux-2.6.27.31/drivers/input/touchscreen e poi ho modificato i file Kconfig e Makefile presenti sempre nella stessa directory in modo da creare la corrispondente voce nel menu di xconfig (le modifiche da fare le avevo scritte sulla guida d'installazione dei driver).

Questa operazione sembra essere andata a buon fine perchè ho riconfigurato il kernel selezionando il supporto per il Touchscreen nel menu di xconfig senza problemi, ma quando vado a compilare l'immagine del kernel e arrivo ai miei driver,cosa che accade quasi subito, mi da errore ed esce dalla compilazione.


Qualcuno ha qualche idea su come risolvere la cosa? o una soluzione alternativa?

Immagino che se la casa costruttrice ha specificato che i driver sono per il 2.6.15 un motivo ci sarà, ma capita davvero così frequentemente che i driver compilati su un kernel non girino più su kernel successivi o precedenti? e se volessi riscriverli io quanto è complicato?

Offtopic: Ho anche un quesito più banale, giusto una curiosità per risparmiare tempo, se riconfiguro il kernel non cambiando i moduli, quando passo alla compilazione devo comunque ricompilare anche i moduli o posso ricompilare solo l'immagine del kernel?

Grazie mille per l'aiuto.
Ultima modifica di tobeFrank il mer 16 set 2009, 10:35, modificato 1 volta in totale.

Vic Steele
Linux 3.x
Linux 3.x
Messaggi: 534
Iscritto il: dom 27 apr 2008, 13:46
Nome Cognome: Luigi Caiazza
Slackware: current x86_64
Kernel: 3.0.0
Desktop: Fluxbox / KDE 4.7.0
Distribuzione: Fedora 15
Località: Potenza
Contatta:

Re: Integrazione driver Touchscreen nei kernel source

Messaggio da Vic Steele »

Prima di compilare un kernel di anni fa (con le sue conseguenze), hai controllato il menu di configurazione dei kernel più recenti?
Credo proprio che abbiano interrotto il rilascio sul sito ufficiale perché oggi non è più necessario (i moduli sono già integrati nei kernel maggiori del 2.6.15).

tobeFrank
Linux 0.x
Linux 0.x
Messaggi: 32
Iscritto il: mer 9 set 2009, 8:58
Slackware: 12.2-13
Kernel: 2.6.31.4-2.6.24
Desktop: KDE 3.5
Località: Latina

Re: Integrazione driver Touchscreen nei kernel source

Messaggio da tobeFrank »

Si ho controllato i menu di configurazione e una piccola sezione touchscreen era già presente nella 2.6.15, ma il problema rimane, ho a disposizione solo quei driver e in qualche modo devo far funzionare questo touchscreen, in più sono obbligato a modificare i source perchè dovrò utilizzare il kernel da me compilato per realizzare una live che parta da smartcard, quindi non posso neanche caricarli come modulo (almeno credo).

I source li ho scaricati tutti tramite kernel.org (se è al rilascio dei source che ti riferivi).

L'unica soluzione alternativa che mi viene in mente è di cambiare touchscreen e di usarne uno già supportato di default dagli ultimi kernel...ma è da valutare come soluzione.

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: Integrazione driver Touchscreen nei kernel source

Messaggio da 414N »

Probabilmente alcune interfacce dei driver di periferica dal 2.6.15 agli attuali kernel sono cambiati.
Non ho capito se disponi dei sorgenti dei driver o meno. Nel caso tu li abbia, posta gli errori di compilazione con il kernel più recente che intendi usare. Magari con due smartellate li convinciamo ad andare.
Altrimenti la vedo dura...
tobeFrank ha scritto: Offtopic: Ho anche un quesito più banale, giusto una curiosità per risparmiare tempo, se riconfiguro il kernel non cambiando i moduli, quando passo alla compilazione devo comunque ricompilare anche i moduli o posso ricompilare solo l'immagine del kernel?
make è abbastanza intelligente da capire autonomamente cosa deve essere ricompilato o meno, percui, se disponi ancora di tutti i file oggetto creati durante la compilazione del kernel, make ricompilerà solo le parti che lo necessitano in base al cambio di configurazione che hai fatto.

tobeFrank
Linux 0.x
Linux 0.x
Messaggi: 32
Iscritto il: mer 9 set 2009, 8:58
Slackware: 12.2-13
Kernel: 2.6.31.4-2.6.24
Desktop: KDE 3.5
Località: Latina

Re: Integrazione driver Touchscreen nei kernel source

Messaggio da tobeFrank »

Guarda io ho due file per il touchscreen, un .o e un .h, penso che siano i source ma non ne sono sicuro perchè è la prima volta che mi cimento in cose del genere (prima d'ora usavo linux al massimo come sitema operativo per i server e comunque in maniera abbastanza superficiale).

Questo è l'output della compilazione:

bash-3.1# cd /usr/src/linux-2.6.27.31
bash-3.1# make -j5 bzImage
CHK include/linux/version.h
CHK include/linux/utsrelease.h
CALL scripts/checksyscalls.sh
CHK include/linux/compile.h
CC drivers/input/touchscreen/tsusbhid.o
drivers/input/touchscreen/tsusbhid.c:19:35: error: linux/devfs_fs_kernel.h: No such file or directory
drivers/input/touchscreen/tsusbhid.c: In function 'tsusbhid_irq':
drivers/input/touchscreen/tsusbhid.c:111: error: 'SLAB_ATOMIC' undeclared (first use in this function)
drivers/input/touchscreen/tsusbhid.c:111: error: (Each undeclared identifier is reported only once
drivers/input/touchscreen/tsusbhid.c:111: error: for each function it appears in.)
drivers/input/touchscreen/tsusbhid.c: In function 'touch_open':
drivers/input/touchscreen/tsusbhid.c:454: warning: assignment discards qualifiers from pointer target type
drivers/input/touchscreen/tsusbhid.c: In function 'tsusbhid_register_chrdev':
drivers/input/touchscreen/tsusbhid.c:729: error: implicit declaration of function 'devfs_mk_cdev'
drivers/input/touchscreen/tsusbhid.c: In function 'tsusbhid_unregister_chrdev':
drivers/input/touchscreen/tsusbhid.c:754: error: implicit declaration of function 'devfs_remove'
drivers/input/touchscreen/tsusbhid.c:738: warning: unused variable 'minor'
drivers/input/touchscreen/tsusbhid.c: In function 'tsusbhid_probe':
drivers/input/touchscreen/tsusbhid.c:862: error: 'SLAB_ATOMIC' undeclared (first use in this function)
drivers/input/touchscreen/tsusbhid.c:896: warning: passing argument 6 of 'usb_fill_int_urb' from incompatible pointer type
drivers/input/touchscreen/tsusbhid.c: In function 'tsusbhid_init':
drivers/input/touchscreen/tsusbhid.c:1027: error: implicit declaration of function 'devfs_mk_dir'
make[3]: *** [drivers/input/touchscreen/tsusbhid.o] Error 1
make[2]: *** [drivers/input/touchscreen] Error 2
make[1]: *** [drivers/input] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [drivers] Error 2
bash-3.1#

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: Integrazione driver Touchscreen nei kernel source

Messaggio da 414N »

tobeFrank ha scritto:Guarda io ho due file per il touchscreen, un .o e un .h, penso che siano i source ma non ne sono sicuro perchè è la prima volta che mi cimento in cose del genere (prima d'ora usavo linux al massimo come sitema operativo per i server e comunque in maniera abbastanza superficiale).
Allora hai un header ed un file oggetto. Non disponi di tutti i sorgenti.
Forse, intervenendo sull'header, si riesce a farlo andare a braccetto con il 2.6.27.
tobeFrank ha scritto:

Codice: Seleziona tutto

bash-3.1# cd /usr/src/linux-2.6.27.31
bash-3.1# make -j5 bzImage
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CALL    scripts/checksyscalls.sh
  CHK     include/linux/compile.h
  CC      drivers/input/touchscreen/tsusbhid.o
drivers/input/touchscreen/tsusbhid.c:19:35: error: linux/devfs_fs_kernel.h: No such file or directory
drivers/input/touchscreen/tsusbhid.c: In function 'tsusbhid_irq':
drivers/input/touchscreen/tsusbhid.c:111: error: 'SLAB_ATOMIC' undeclared (first use in this function)
drivers/input/touchscreen/tsusbhid.c:111: error: (Each undeclared identifier is reported only once
drivers/input/touchscreen/tsusbhid.c:111: error: for each function it appears in.)
drivers/input/touchscreen/tsusbhid.c: In function 'touch_open':
drivers/input/touchscreen/tsusbhid.c:454: warning: assignment discards qualifiers from pointer target type
drivers/input/touchscreen/tsusbhid.c: In function 'tsusbhid_register_chrdev':
drivers/input/touchscreen/tsusbhid.c:729: error: implicit declaration of function 'devfs_mk_cdev'
drivers/input/touchscreen/tsusbhid.c: In function 'tsusbhid_unregister_chrdev':
drivers/input/touchscreen/tsusbhid.c:754: error: implicit declaration of function 'devfs_remove'
drivers/input/touchscreen/tsusbhid.c:738: warning: unused variable 'minor'
drivers/input/touchscreen/tsusbhid.c: In function 'tsusbhid_probe':
drivers/input/touchscreen/tsusbhid.c:862: error: 'SLAB_ATOMIC' undeclared (first use in this function)
drivers/input/touchscreen/tsusbhid.c:896: warning: passing argument 6 of 'usb_fill_int_urb' from incompatible pointer type
drivers/input/touchscreen/tsusbhid.c: In function 'tsusbhid_init':
drivers/input/touchscreen/tsusbhid.c:1027: error: implicit declaration of function 'devfs_mk_dir'
make[3]: *** [drivers/input/touchscreen/tsusbhid.o] Error 1
make[2]: *** [drivers/input/touchscreen] Error 2
make[1]: *** [drivers/input] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [drivers] Error 2
bash-3.1# 
Tutti questi errori potrebbero essere scatenati dal fattto che nell'header di cui disponi si faccia riferimento all'header "linux/devfs_fs_kernel.h" che non sembra esistere più. Se nell'header di cui disponi c'è una riga

Codice: Seleziona tutto

#include <linux/devfs_fs_kernel.h>
prova a commentarla (// all'inizio della riga) e a rilanciare la compilazione.

tobeFrank
Linux 0.x
Linux 0.x
Messaggi: 32
Iscritto il: mer 9 set 2009, 8:58
Slackware: 12.2-13
Kernel: 2.6.31.4-2.6.24
Desktop: KDE 3.5
Località: Latina

Re: Integrazione driver Touchscreen nei kernel source

Messaggio da tobeFrank »

Ho trovato la riga che dicevi ma era contenuta nel file oggetto (che tra l'altro non era un file oggetto ma un .c). L'errore relativo all'header "linux/devfs_fs_kernel.h" è scomparsa ma gli altri errori sono rimasti tutti.

bash-3.1# cd /usr/src/linux-2.6.27.31
bash-3.1# make -j5 bzImage
CHK include/linux/version.h
CHK include/linux/utsrelease.h
CALL scripts/checksyscalls.sh
CHK include/linux/compile.h
CC drivers/input/touchscreen/tsusbhid.o
drivers/input/touchscreen/tsusbhid.c: In function 'tsusbhid_irq':
drivers/input/touchscreen/tsusbhid.c:111: error: 'SLAB_ATOMIC' undeclared (first use in this function)
drivers/input/touchscreen/tsusbhid.c:111: error: (Each undeclared identifier is reported only once
drivers/input/touchscreen/tsusbhid.c:111: error: for each function it appears in.)
drivers/input/touchscreen/tsusbhid.c: In function 'touch_open':
drivers/input/touchscreen/tsusbhid.c:454: warning: assignment discards qualifiers from pointer target type
drivers/input/touchscreen/tsusbhid.c: In function 'tsusbhid_register_chrdev':
drivers/input/touchscreen/tsusbhid.c:729: error: implicit declaration of function 'devfs_mk_cdev'
drivers/input/touchscreen/tsusbhid.c: In function 'tsusbhid_unregister_chrdev':
drivers/input/touchscreen/tsusbhid.c:754: error: implicit declaration of function 'devfs_remove'
drivers/input/touchscreen/tsusbhid.c:738: warning: unused variable 'minor'
drivers/input/touchscreen/tsusbhid.c: In function 'tsusbhid_probe':
drivers/input/touchscreen/tsusbhid.c:862: error: 'SLAB_ATOMIC' undeclared (first use in this function)
drivers/input/touchscreen/tsusbhid.c:896: warning: passing argument 6 of 'usb_fill_int_urb' from incompatible pointer type
drivers/input/touchscreen/tsusbhid.c: In function 'tsusbhid_init':
drivers/input/touchscreen/tsusbhid.c:1027: error: implicit declaration of function 'devfs_mk_dir'
make[3]: *** [drivers/input/touchscreen/tsusbhid.o] Error 1
make[2]: *** [drivers/input/touchscreen] Error 2
make[1]: *** [drivers/input] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [drivers] Error 2
bash-3.1#


Gli errori 729, 754 e 1027 hanno a che fare con devfs... a occhio direi che si riferiscono a qualcosa contenuto nell'header che ho escluso, magari esiste un equivalente nelle nuove versioni di kernel che ha un altro nome, ma dove cercare?

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Integrazione driver Touchscreen nei kernel source

Messaggio da conraid »

devfs non esiste più, adesso viene tutto gestito da udev
per il touchscreen guarda questo progetto
http://tslib.berlios.de/
se cerchi nella loro ml vedi anche l'uso con il tuo
https://lists.berlios.de/pipermail/tsli ... 00068.html
al limite chiedi a loro

altri link
http://pengutronix.de/software/xf86-inp ... ex_en.html
http://www.conan.de/touchscreen/evtouch.html

tobeFrank
Linux 0.x
Linux 0.x
Messaggi: 32
Iscritto il: mer 9 set 2009, 8:58
Slackware: 12.2-13
Kernel: 2.6.31.4-2.6.24
Desktop: KDE 3.5
Località: Latina

Re: Integrazione driver Touchscreen nei kernel source

Messaggio da tobeFrank »

Grazie mille, do un'occhiata subito e vi faccio sapere, comunque se vi venisse qualche altra idea sono sempre qui!

tobeFrank
Linux 0.x
Linux 0.x
Messaggi: 32
Iscritto il: mer 9 set 2009, 8:58
Slackware: 12.2-13
Kernel: 2.6.31.4-2.6.24
Desktop: KDE 3.5
Località: Latina

Re: Integrazione driver Touchscreen nei kernel source

Messaggio da tobeFrank »

Dopo un pò di ricerche sono riuscito a trovare dei driver un pò più aggiornati tramite il sito del controller del touchscreen (che è l'HT580), questi vanno integrati sul kernel 2.6.24, mi sto concentrando su questo ora. Vi faccio sapere come va...

tobeFrank
Linux 0.x
Linux 0.x
Messaggi: 32
Iscritto il: mer 9 set 2009, 8:58
Slackware: 12.2-13
Kernel: 2.6.31.4-2.6.24
Desktop: KDE 3.5
Località: Latina

Re: Integrazione driver Touchscreen nei kernel source

Messaggio da tobeFrank »

Allora pare che i driver ora funzionino, sono riuscito ad integrarli nei source e a compilare kernel e moduli...solo che...

il problema adesso mi si presenta all'avvio visto che durante il boot, subito dopo aver montato il file system, si blocca tutto durante il check del fs e appare:

/sbin/e2fsck: No such file or directory.... /dev/sda3

Mi dice che il fs potrebbe essere corrotto (è un ext2) e poi una tiritera sui superblock e che dovrei lanciare il comando e2fsck -v -y [device] oppure lanciare sempre e2fsck con un superblock alternativo...

mi da la possibilità di entrare in single user ma se faccio control-d si riavvia e se inserisco la pwd di root mi da addiruttura login incorrect.

Ovviamente /dev/sda3 è proprio la mia parizione di root, che sto usando ora mentre scrivo avendo caricato il vecchio kernel, e non da nessun problema, tanto meno commetto errori inserendo la pwd di root...

Che cavolo mi invento? Sto provando a cercare in giro su internet ma dei pochi episodi simili che ho trovato nessuno ha avuto problemi con la pwd di root... :-k

tobeFrank
Linux 0.x
Linux 0.x
Messaggi: 32
Iscritto il: mer 9 set 2009, 8:58
Slackware: 12.2-13
Kernel: 2.6.31.4-2.6.24
Desktop: KDE 3.5
Località: Latina

Re: Integrazione driver Touchscreen nei kernel source

Messaggio da tobeFrank »

Ragazzi ho risolto riconfigurando il kernel, ora funziona tutto...edito il titolo e ci metto [risolto].

Grazie a tutti!

Rispondi