Ho provato il modulo patchato ma purtroppo non funziona con il mio v5.
Visualizzazione stampabile
riprendiamo il discorso sui file di log.
ho scoperto che esistono alcuni "modi" di avvio del cell:
- mode 0 : avvio normale
- mode 8 : avvio per caricabatteria collegato
- mode 7 : avvio per sveglia
in /data/log_other_mode vengono automaticamente salvati i log di tutti i modi diversi da 0 (avvio normale).
esiste un metodo per forzare il log anche per il mode=0.
si va nella cartella /data/misc/mblog e si modifica con un editor testo (RootExplorer) il file mblog_config si modifica la prima riga in:
autostart=1
dopo il riavvio, il log per il mode=0 e' attivo e troveremo i dati di log nella cartella /data/log_temp.
ora andiamo in /sys/bus/Platform/drivers/msensor e anche qui apriamo con l'editor di testo il file trace e modifichiamo la prima riga in:
0x001F
cosi' facendo abbiamo abilitato tutti i log del modulo memsicd3416x.
ora usiamo la bussola qualche secondo.
prima di poter analizzare i log dobbiamo fermare l'acquisizione, si ritorna nella cartella /data/misc/mblog si modifica nuovamente il file mblog_config scrivendo sulla prima riga:
autostart=0
riavviamo e ora possiamo copiare il contenuto della cartella /data/log_temp sul PC per poterla analizzare.
cercate le linee contenenti mmc3416 (se lo avete/sapete usare GREP e' l'ideale), troverete cose tipo queste:
<6>[ 246.798421] (1)[181:memsicd3416x]mmc3416x Get daemon data: 1919, -1406, 32918, 3, -12800, -30976, 41536, 3, 0, 445, -611, 0!
<6>[ 246.807936] (0)[55:kworker/0:1]mmc3416x mmc3416x_orientation_operate is called
<6>[ 246.807960] (0)[55:kworker/0:1]mmc3416x Hwm get o-sensor data: 0, 20025, -27495. divide 8192, status 0!
oppure messaggi di errore che ci possono aiutare a capire perché il sensore magnetico non funziona.
se volete, mandatemi una copia dei log in MP, mi piacerebbe studiarci su.
Ciao becar, ecco i miei log:
[ I log possono essere ottenuti anche tramite EngineerMode, vengono memorizzati sulla SD in "/mtklog". Non ho capito se sono gli stessi.]
Allego una parte di log SD e un log preso da: /data/log_temp.
L'avvio veloce è disattivo da tempo. il modulo ha il nome corretto e le permissions sono le stesse del vecchio modulo, ho provato anche a dargli 775 ma non cambia nulla.
Se per roll invertito intendi il fatto che con marine compass metti il telefono in verticale e quindi si vede anche il sotto della bussola ed il nord è al posto del sud e viceversa, allora sì...
Strano, il modulo patchato e' quello che uso, ed e' uguale alla rom stock. Continuo a pensare che hai sbagliato qualcosa nel copiarlo sul cell.
no, quello e' il funzionamento normale di MarineCompass.Quote:
Se per roll invertito intendi il fatto che con marine compass metti il telefono in verticale e quindi si vede anche il sotto della bussola ed il nord è al posto del sud e viceversa, allora sì...
io se metto il cell il landscape (ruotato sul lato lungo) ho la bussola capovolta.
errata (1.0): Allegato 84065
corretta (-1.0): Allegato 84066
grazie per la dritta, e' sicuramente molto piu' semplice usando EngineerMode :)
come avrai gia' visto c'e' un problema di comunicazione sul bus i2c con il sensore:
<4>[ 1328.230073] (1)[184:memsicd3416x]I2C_TxData delay!
<3>[ 1328.239061] (2)[184:memsicd3416x]I2C_TxData retry over 3
<3>[ 1328.239081] (2)[184:memsicd3416x]MMC3416X_IOC_TM failed
nel sorgente queste line vengono scritte dalla funzione I2C_TxData
chiamata da mmc3416x_unlocked_ioctl:codice:for(loop_i = 0; loop_i < MMC3416X_RETRY_COUNT; loop_i++)
{
if(i2c_master_send(this_client, (const char*)txData, length) > 0)
{
break;
}
printk("I2C_TxData delay!\n");
mdelay(10);
}
if(loop_i >= MMC3416X_RETRY_COUNT)
{
printk(KERN_ERR "%s retry over %d\n", __func__, MMC3416X_RETRY_COUNT);
return -EIO;
}
mi e' passata per la mente l'idea che avessero montato alcuni V5 con il BMM050 e mi sarebbe piaciuto provare a scambiare i moduli, ma questo codice sta nel Kernel, ossia in boot.img, che mi e' impossibile cambiare, quindi al momento non ho idee per ulteriori test.codice:case MMC31XX_IOC_TM:
data[0] = MMC3416X_REG_CTRL;
data[1] = MMC3416X_CTRL_TM;
if (I2C_TxData(data, 2) < 0)
{
printk(KERN_ERR "MMC3416X_IOC_TM failed\n");
return -EFAULT;
}
Stavo per chiedere se il sensore non fosse incluso nel mtk6589 come BT, GPS e WIFI, ma mi sembra di capire che non sia così:
MediaTek - MediaTek Strengthens Global Position with World?s First Quad-Core Cortex-A7 System on a Chip ? MT6589
Anche io ipotizzavo hardware diversi (l'alternativa è mal funzionanti, non ci sono altre possibilità).
Dico una cavolata: non si trovano kernel bmm050 semi-compatibili, giusto per provare la bussola?
Ho riprovato la MIUI e la Sony (anche la LEWA: bussola morta), effettivamente riguardo alla bussola non è questione di imprecisione, è proprio che leggono il sensore sbagliato: il nord risulta in direzione dell'inclinazione verso il basso. Siamo messi male :(
GROSSA NOVITA!!! ( da: ROM [CM10.1][Vowney V5] CyanogenMod 10.1 Stock Mix Rom by FilipMCMine | [Custom]-[Updated] add the 09/29/2013 on Needrom )
$ su
# cd /system/bin
# Memsicd
e la bussola si muove!!!! :D :D
ho fatto una rapida analisi del codice sorgente per il bus i2c, e una ricerca in rete per sapere i dettagli del protocollo i2c, il tutto per avere una spiegazione a queste 2 righe del tuo log:
<3>[ 1328.062980] (0)[184:memsicd3416x]i2c i2c-3: I2C_ACKERR
<3>[ 1328.063005] (0)[184:memsicd3416x]i2c i2c-3: addr: 60, transfer error
l'indirizzo 60 e' quello del memsic (ovvio) mentre il bmm050 (se mai ci fosse) e' all'indirizzo 10.
l'errore ACKERR vuol dire che a quell'indirizzo nessuno ha risposto alla richiesta di trasferimento dati, quindi 3 ipotesi:
- il chip manca del tutto
- il memsic e' guasto
- hanno montato il bmm050 (fattibile solo se il circuito stampato prevede le 2 opzioni, perché ha la piedinatura diversa)
bisognerebbe scaricarne un po e vedere direttamente nel .zip nel file /system/data/misc/projectconfig.mk cosa c'e' scritto nelle righe:Quote:
Dico una cavolata: non si trovano kernel bmm050 semi-compatibili, giusto per provare la bussola?
CUSTOM_HAL_MSENSORLIB = mmc3416x mmc328x akm8975 ami304 yamaha530 mag3110 akmd8963 bmm050
CUSTOM_KERNEL_MAGNETOMETER = mmc3416x
MTK_AUTO_DETECT_MAGNETOMETER = no
se ci fosse l'autodetect sarebbe il massimo.
La direzione non è giusta ma è stabile e non invertita, occorre solo trovare come correggerla! :D
fai un paio di test piu' seri:
- usa CPU-Z e vedi se oltre ai valori in BMM050 Orientation sensor, ti ritrovi un valore che varia in BMM050 Magnetic field sensor
- verifica se cambiano i valori dentro /sys/bus/platform/drivers/msensor/sensordata come avevi gia' fatto
un momento.. qualcosa non quadra, forse ho cantato vittoria troppo in fretta... comunque sicuramente non è come la MIUI.
porc...! peccato!
quel memsicd deve essere un altro modulo per sensore magnetico abbandonato nella rom come il bmm050d, akmd8975, akmd8963, ami304d, magd.
se hai tempo e voglia, prova per ognuno a rinominarli memsicd3416x, riavvia (avvio rapido=0ff) e prova che effetto hanno.
Dunque, la Marine compass galleggia e si mantiene in equilibrio ma la direzione Nord è fissa sul cel :(
In pratica Azimut si mantiene costante, variano Pitch e Roll.
In effetti non si capisce perché a te e a pochi altri funziona e alla maggioranza no! Le possibilità sono solo due:
A malfunzionamento hardware
B hardware diverso
Ma possibile che siano così imbecilli da montare un hd diverso a loro insaputa? O lo sanno e non sanno farlo funzionare?
Comunque mi sembra poco probabile che abbiano cambiato sensore, quindi verrebbe da pensare ad un problema hd, resta da spiegare perché con il comando "memsicd" Pitch e Roll funzionano! (anche Azimut da un valore non bloccato, varia di pochissimo ma varia, quindi qualcosa arriva)
e' un pensiiero che mi viene perché come stringa identificativa c'e' quella del BMM050.
baste che guardi i valori dell'accelerometro con CPU-Z e ti renderai conto che determinare Pitch (rotazione su asse X) e Roll (rotazione su asse Y) attraverso i valori dell'accelerometro e' la cosa piu' facile da fare.Quote:
resta da spiegare perché con il comando "memsicd" Pitch e Roll funzionano! (anche Azimut da un valore non bloccato, varia di pochissimo ma varia, quindi qualcosa arriva)
L'azimuth con con l'accelerometro invece non si puo' determinare.
ti diro' di piu', anche il modulo memsicd3416x della rom stock calcola Pitch e Roll con l'accelerometro.
Guarda gli screenshot:
verticale: Allegato 84209 capovolto: Allegato 84210
orizzontale SX: Allegato 84211 orizzontale DX: Allegato 84212
quando l'accelerometro segna valori vicini a 9,8 (accel di gravita) il Pitch e il Roll sono vicini a 90°, altrimenti sono inferiori, esattamente come l'accelerazione (il cell e' invece sempre a 90°, e l'accelerometro che misura in modo diverso l'accelerazione positiva da quella negativa)
Becar scusa per l'OT.. Tu trovasti i codici sorgente del V5?
Perche' gli ingegneri della FEA stanno lavorando alla prima cyano per un dispositivo MTK quindi se abbiamo le sorgenti del kernel potremmo fare un porting quando uscira'
sarebbe bello trovare la ROM del gemello (MOGU M5):
http://shop.moguphone.com/goods.php?id=39
5-äþéìîâûé Mogu M5 ñ OGS äèñïëååì è íà ñîáñòâåííîé ROM âûéäåò 28 ìàÿ » China Review - îáçîðû êèòàéñêèõ òåëåôîíîâ, ñìàðòôîíîâ è ïëàíøåòíûõ ÏÊ
nell'ultima foto si vede lo stampato: e' identico al mio V5.
Ho provato il bmm050d: tutto morto (proverò anche gli altri).
Considerando che ad alcuni (pochi) la bussola funziona con la ROM stock, le ipotesi possono essere solo due: malfunzionamento/diverso sensore.
Considerando che anche a te - se non ho capito male - rileva come sensore bmm050d ma la bussola funziona con altri drivers (non so se sia il termine corretto), mi viene sempre più da pensare che ci sia un errore nei programmi che rilevano il chip; che il chip sia uno solo e nella maggior parte dei telefoni sia difettoso, questo spiegherebbe anche il "silenzio" e la mancata risoluzione da parte di Vowney (e forse anche il prezzo più basso dei terminali simili). Poi non so, spero non sia così, ma la vedo dura...
a me funziona senza nessun driver :)
voglio dire che i moduli che ti ho elencato prima li ho tolti tutti dalla cartella /system/bin compreso quello buono memsicd3416, e se apro il file sensordata ci trovo sempre dei numeri che cambiano in base alla posizione del cell, questo perché, come ho gia' detto, il driver vero e proprio e' nel kernel, quei moduli fanno solo da interfaccia tra il kernel e le app.
la scritta BMM050 che vedi in tutti i programmi diagnostici e' fissa, ossia non c'e' un autodetect del chip, quello e' un testo fisso che fa parte della descrizione del telefono.
ho scritto sul Forum Mogu una rchiesta di ROM, ora cerco l'email dell'assistenza e scrivo anche a loro.
ieri ho visto che Etotalk vende il Mogu a 300$ e il V5 a 180$, ci sara' un motivo ? :o
MOGU M5
VOWNEY V5
io non l'ho trovato il Mogu su Pandawill
a me non serve a niente, come hai gia' detto la mia bussola gia' funziona, era un tentativo di aiutare quelli come te a cui non funziona.Quote:
Sono sempre più convinto che la mia bussola non si muoverà mai in direzione Nord!
A cosa ti serve la ROM MOGU? Sicuramente non fa farà funzionare la mia bussola, ne sono convinto, e la tua già funziona.
l'idea e' che i 2 cell possano avere delle micro differenze, magari c'e' stato uno sbaglio in fase di produzione e alcuni V5 hanno il circuito del M5, in cui (sempre fantasticando) il sensore non e' il MMC4316 ma qualcosa'altro, e forse il kernel Mogu lo gestisce correttamente.
( Intendevo che il V5 costa meno di 180 su pandawill )
Fammi capire, mi stai dicendo che sensordata è aggiornato direttamente dal kernel e che il modulo è solo un'interfaccia, quindi con i moduli abbiamo solo perso tempo, visto che il mio kernel non aggiorna un cavolo - o meglio aggiorna sempre con gli stessi dati - e che il problema sta solo nel kernel o nel modulo (probabilmente guasto, anche se io spero nella tua immaginazione :D) ?
Poi un'altra cosa non ho capito: "chipinfo" dice mmc3416x; non è questo il sensore riconosciuto dal kernel? Oppure non è riconosciuto ma "impostato" nel kernel?
Ricordo che c'è anche un altro cel gemello del nostro che alcuni hanno ricevuto al posto del V5: Fly.. qualcosa che non ricordo.
Inoltre, a questo punto, dando per morta la bussola (salvo miracoli) sposterei l'attenzione sul tema "V5 - google maps" visto che non funziona; non solo salta, si riavvia anche il cel, e io sospetto che sia dovuto alla mancanza della bussola, o peggio ai dati sballati che arrivano!
Già che ci sono confermo che invece Copilot funziona bene, anche senza bussola.
Ahhh ecco! :)
io invece volevo insinuare che 2 cell identici sono venduti a prezzi diversi perché forse uno e' lo scarto di fabbrica, cioe' quello che non ha superato tutti i test di qualita'.
da quel che ho capito io e' cosi'. Ho fatto anche io quelle prove con tutti i moduli in /system/bin :p prima di te.Quote:
Fammi capire, mi stai dicendo che sensordata è aggiornato direttamente dal kernel e che il modulo è solo un'interfaccia, quindi con i moduli abbiamo solo perso tempo,
purtroppo il nostro kernel e' compilato senza autodetect, il driver usato per il sensore magnetico e' fissato a memsicd3416x (vedi le definizioni in /system/data/misc/ProjectConfig.mk che ho postato qualche messaggio piu' sopra) e quando lui parte (nel kernel) scrive il file chipinfo con il suo nome.Quote:
Poi un'altra cosa non ho capito: "chipinfo" dice mmc3416x; non è questo il sensore riconosciuto dal kernel? Oppure non è riconosciuto ma "impostato" nel kernel?
sul loro sito non c'e' nulla da 5" che somiglia al V5: SmartphonesQuote:
Ricordo che c'è anche un altro cel gemello del nostro che alcuni hanno ricevuto al posto del V5: Fly.. qualcosa che non ricordo.
dimmi che prove devo fare e vediamo se con la bussola funzionante il problema non si pone.Quote:
Inoltre a questo punto, dando per morta la bussola (salvo miracoli) sposterei l'attenzione sul tema "V5 - google maps" visto che non funziona; non solo salta, si riavvia anche il cel, e io sospetto che sia dovuto alla mancanza della bussola, o peggio ai dati sballati che arrivano!
pero' sarebbe meglio aprire una nuova discussione, e lasciare in questa la ricerca al modo per far funzionare la bussola.
Dovresti cominciare a verificare se il navigatore di google prende il segnale, se funziona correttamente o se da i numeri e magari ti riavvia il cel. Grazie :D
Ps poi cerco il Fly qualcosa... se ne parlava su qualche forum.. è identico cambia solo la fotocamera da 6mpx (pare). Io lo avevo trovato in vendita, non ricordo dove.
il gemello è il firefly v5
tutti i programmi di navigazione prendono le informazioni dal servizio di localizzazione, Maps non credo che faccia diversamente.
a me funziona, e visto che la bussola funziona la mappa gira in base a come metto il cell. non ho mai provato a usarlo in movimento o con istruzioni di guida attive, provero' e ti faccio sapere.
Hai gia' provato a cancellare Dati+Cache, disinstallarlo e riscaricarlo dal PlayStore ?
trovato, in effetti e' un altro gemello, di cui pero' non si trova un sito web del costruttore, in piu' c'e' una foto su AnteLife in cui si leggono gli IMEI e ho provato a metterli in un paio di siti che ti danno marca e modello del cell e nessuno dei 2 lo riconosce.
sara' la terza scelta :) Mogu -> Vowney -> Firefly
Allora se Maps da un problema fate un Logcat e gli diamo un'occhiata, puo' darsi che sia un problema di GApps (essendo comunque non ufficiali)
Per la questione Mogu, Vowney, Firefly bhe da quello che ho potuto notare in mesi di ricerche per il telefono migliore in qualita'/prezzo tra i chinafonini bhe non e' raro trovare telefoni uguali con Brand diversi.. ora non ricordo tutti i cell ma posso farvi l'esempio dello Star e del Bluebo B6000 telefono uguali ma brand diversi (i prezzi non lo so).. alla fine quella che produce i telefoni credo sia la stessa fabbrica e secondo voi su un cell da 150$ si mettano a fare un controllo qualità' o vedono solo se si accende? U.U
Per la bussola, bhe ho parlato con quelli di mixeshop e il telefono per la festa della cina parte Lunedi'/Martedi' (li sto odiando, ma almeno su skype rispondono sempre) quindi fino ad allora non ho niente su cui lavorare (a parte una mia Rom, gia' pronta da flashare e non vedo l'ora di farlo u.u)!
Ah comunque non e' raro (nemmeno nei telefono di marche blasonate come Samsung, Htc, Lg) che durante la produzione con il device gia' in vendita si cambiano chip interni (per questioni economiche o di scarso supporto quantitativo da parte delle "vecchie" aziende) quindi non per forza il Vowney deve essere uno scarto!
Parliamoci chiaro, a parte la bussola non ho mai sentito lamentarvi d'altro, il che e' ottimo considerando che anche se apri il forum dell'HTC ONE ci sono milioni di lamentele!