|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 22114
|
Implementare un driver di periferica in Android
Salve ragazzi, forse sto per fare una domanda un po' inusuale per questa sezione ma come è possibile integrare un driver di periferica in Android Honeycomb versione 3.2?
Ho installato una rom cucinata basata su tale OS ma il modem (Ericsson F3307G interno 3G) non viene riconosciuto dal sistema. Qualcuno potrebbe farmi una mini guida oppure linkarmi delle risorse da leggere (anche in inglese) per capire come implementare tale driver in Android? Il Tablet che uso si chiama Point of view Mobii Tegra 10.2 pollici. Grazie anticipatamente a chi mi risponderà.
__________________
Questa opera è distribuita secondo le regole di licenza Creative Commons salvo diversa indicazione. Chiunque volesse citare il contenuto di questo post deve necessariamente riportare il link originario. Ultima modifica di c.m.g : 16-09-2011 alle 14:15. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 22114
|
up
__________________
Questa opera è distribuita secondo le regole di licenza Creative Commons salvo diversa indicazione. Chiunque volesse citare il contenuto di questo post deve necessariamente riportare il link originario. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Sono normali driver per linux, quindi valgono le stesse regole.
Ti conviene iniziare con la classica guida http://lwn.net/Kernel/LDD3/ e anche questo tutorial non è male http://www.freesoftwaremagazine.com/.../drivers_linux |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 22114
|
Quote:
__________________
Questa opera è distribuita secondo le regole di licenza Creative Commons salvo diversa indicazione. Chiunque volesse citare il contenuto di questo post deve necessariamente riportare il link originario. |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 22114
|
Il discorso è che sembra che oggi c'è sempre meno gente disposta ad aiutarti ed io sono sempre uno che riconosce la gentilezza altrui.
__________________
Questa opera è distribuita secondo le regole di licenza Creative Commons salvo diversa indicazione. Chiunque volesse citare il contenuto di questo post deve necessariamente riportare il link originario. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 22114
|
faccio il punto della situazione:
ho trovato un driver già scritto che va bene per android 2.2 e 2.3 ma non so se va bene per il 3.2. Poi se ho capito bene bisogna implementarlo nel kernel e ricompilarlo. come procedo?
__________________
Questa opera è distribuita secondo le regole di licenza Creative Commons salvo diversa indicazione. Chiunque volesse citare il contenuto di questo post deve necessariamente riportare il link originario. |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
moltissimi driver vengono compilati come moduli, quindi non serve ricompilare il kernel per intero ( ma ovviamente si può fare anche così ) per la versione di android dovresti fare qualche prova, ma il kernel è rimasto il 2.6 fin dall'inizio quindi non penso che non vada quello che ti serve è ovviamente gcc, make, ecc... poi gli header del kernel e possibilmente i sorgenti ( quelli presi dai repository di android però ) i sorgenti del driver dovrebbero avere un makefile adatto, in caso contrario puoi creare un makefile di questo tipo Codice:
obj-m = mio-driver.ko
KVERSION = $(shell uname -r)
all:
make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean
ovviamente puoi benissimo dare il comando make modules direttamente, andando nella directory root dei sorgenti del kernel fatto questo avrai il modulo mio-driver.ko che verrà caricato tramite il comando insmod mio-driver.ko chiaramente potresti inserire il modulo direttamente nel kernel ( ricompilando tutto ) ma a che pro? dimenticavo una cosa, la nomenclatura delle directory in android è diversa, mentre in linux i moduli stanno in /lib/modules, in android vanno in /system/lib/modules occhio che quello che ho scritto vale nel caso tu voglia compilare il modulo direttamente sulla piattaforma di destinazione....in caso di cross-compilazione devi cambiare alcune cose come spiegato qui http://finsframework.org/mediawiki/i...ild_of_Android ho letto pure di gente che usa il ndk di google per compilare i moduli come spiegato qui http://stackoverflow.com/questions/4...-module-source non ho mai provato ma sembra essere del tutto simile al mio metodo solo c'hai la toolchain già bella e impacchettata ho notato che loro prelevano la configurazione del kernel dal device con installato android e usano quella per compilare i moduli e/o il kernel http://wiki.cyanogenmod.com/wiki/Bui...el_from_source nel mio caso ho ricompilato android da zero per girare su un netbook x86, quindi la configurazione l'ho costruita da me Ultima modifica di pabloski : 19-09-2011 alle 13:03. |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 22114
|
grazie veramente di cuore
__________________
Questa opera è distribuita secondo le regole di licenza Creative Commons salvo diversa indicazione. Chiunque volesse citare il contenuto di questo post deve necessariamente riportare il link originario. Ultima modifica di c.m.g : 19-09-2011 alle 14:04. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:21.




















