Visualizzazione stampabile
-
ext3 /system
Ciao,
sto cercando di capire se si riesce a fare in modo da utilizzare nu filesystem di tipo ext3 al posto del cramfs utilizzato attualmente per la partizione di sistema.
E' importante perchè attualmente si perde un bel po' di spazio se si applica la modifica "full root"
Diciamo che sono molto vicino alla soluzione. Ma avrei alcuni dubbi che vorrei condividere.
1) il cramfs è un filesiystem compresso e occupa una certa dimensione all'interno del firmware. Sostituendolo con un filesystem ext3, avremmo un file (system.img) più grosso (non compresso). Come dovremmo gestire questo aumento di dimensioni. Dobbiamo gestirlo all'interno della mtd table ? Dobbiamo modificare il fiel parameters quando andiamo a flashare il nuovo firmware ?
Attendo illuminanti risposte :)
Ciao
-
oltre allo spazio, si perde anche in velocità?
-
Quote:
Originariamente inviato da
jacock
oltre allo spazio, si perde anche in velocità?
In teoria si, perchè ext3 dovrebbe essere più lento del cramfs, ma in pratica stiamo parlando di memorie flash, e non dovremmo risentire di rallentamenti. Ma non sono un espero, potrei dire un mare di caxxate. :)
-
Quote:
Originariamente inviato da
yatto
Ciao,
sto cercando di capire se si riesce a fare in modo da utilizzare nu filesystem di tipo ext3 al posto del cramfs utilizzato attualmente per la partizione di sistema.
E' importante perchè attualmente si perde un bel po' di spazio se si applica la modifica "full root"
Diciamo che sono molto vicino alla soluzione. Ma avrei alcuni dubbi che vorrei condividere.
1) il cramfs è un filesiystem compresso e occupa una certa dimensione all'interno del firmware. Sostituendolo con un filesystem ext3, avremmo un file (system.img) più grosso (non compresso). Come dovremmo gestire questo aumento di dimensioni. Dobbiamo gestirlo all'interno della mtd table ? Dobbiamo modificare il fiel parameters quando andiamo a flashare il nuovo firmware ?
Attendo illuminanti risposte :)
Ciao
Ciao Yatto, sai già come la penso, comunque modificare la dimensione delle partizioni non è un problema. Infatti nell' ultima Rom che pubblicherò ci sarà lo spazio originale anche se in realtà abbiamo 2 file system. Nel' attuale 3.0 restano oltre 800 mb liberi. Per quanto mi riguarda, continuerò ad utilizzare il sistema attuale, non userò una ext3 perchè reputo il sistema attuale migliore come prestazioni. Se deciderai di portare avanti il progetto avrai tutto il mio solito appoggio.
Ps: Ricordati la modifica che ti ho chiesto!!
Grazie
Pistoneone
-
Quote:
Originariamente inviato da
yatto
In teoria si, perchè ext3 dovrebbe essere più lento del cramfs, ma in pratica stiamo parlando di memorie flash, e non dovremmo risentire di rallentamenti. Ma non sono un espero, potrei dire un mare di caxxate. :)
????? e allora perchè facciamo questo¿¿¿¿¿¿¿¿¿
non è il contrario?
-
Quote:
Originariamente inviato da
pistoneone
Ciao Yatto, sai già come la penso, comunque modificare la dimensione delle partizioni non è un problema. Infatti nell' ultima Rom che pubblicherò ci sarà lo spazio originale anche se in realtà abbiamo 2 file system. Nel' attuale 3.0 restano oltre 800 mb liberi. Per quanto mi riguarda, continuerò ad utilizzare il sistema attuale, non userò una ext3 perchè reputo il sistema attuale migliore come prestazioni. Se deciderai di portare avanti il progetto avrai tutto il mio solito appoggio.
Ps: Ricordati la modifica che ti ho chiesto!!
Grazie
Pistoneone
Ciao,
iniziamo con la modifica che mi hai chiesto : Te l'ho inviata "in tempo reale", non te ne sei accorto ? :O :O :( :)
per quanto riguarda il discorso delle partizioni...
bisogna "riallocare" lo spazio. Se sei in grado di farlo allora siamo a cavallo ! :) Dimmi cosa dobbiamo fare !
Non ho capito perchè reputi l'attuale sistema migliore. Se riusciamo a "trasformare" l'attuale partizione di sistema in ext3 con conseguente full root non è meglio ?
;)
-
Quote:
Originariamente inviato da
yatto
Ciao,
iniziamo con la modifica che mi hai chiesto : Te l'ho inviata "in tempo reale", non te ne sei accorto ? :O :O :( :)
per quanto riguarda il discorso delle partizioni...
bisogna "riallocare" lo spazio. Se sei in grado di farlo allora siamo a cavallo ! :) Dimmi cosa dobbiamo fare !
Non ho capito perchè reputi l'attuale sistema migliore. Se riusciamo a "trasformare" l'attuale partizione di sistema in ext3 con conseguente full root non è meglio ?
;)
Non capisco cosa intendi quando dici full root .... più full root di così che cosa c'è?
PS: non ho ricevuto niente, forse avevo i messaggi pieni.
Me la rimandi please?
Grazie
Pistoneone
-
E' vero che ora c'è il full root. Ma è un Wark Around, in quanto abbiamo una sottocartella di una partizione (data) che si comporta come un'altra partizione (system). Abbiamo dello spazio sprecato perchè la vera system c'è e non è utilizzata !
Allora io dico di sostituirla con una system di tipo ext3 e risolviamo tutti i problemi per bene ! :)
-
Quote:
Originariamente inviato da
yatto
E' vero che ora c'è il full root. Ma è un Wark Around, in quanto abbiamo una sottocartella di una partizione (data) che si comporta come un'altra partizione (system). Abbiamo dello spazio sprecato perchè la vera system c'è e non è utilizzata !
Allora io dico di sostituirla con una system di tipo ext3 e risolviamo tutti i problemi per bene ! :)
Riesci a farlo?
-
Quote:
Originariamente inviato da
gexking
Riesci a farlo?
penso di si. Ma ho il problema della dimensione.
Per spiegarci meglio. le attuali partizioni vengono flashate ad indirizzi specifici nella rom. Questi indirizzi sono memeorizzati da qualche parte. Se io ingrandisco la partizione system, dovrò modificare l'indirizzo in cui inizia la partizione immediatamente successiva, altrimenti ci sono dati che verranno sovrascritti. La domanda è : come e dove vanno modificati questi offsets ? nel file parameters ?
-
Quote:
Originariamente inviato da
yatto
penso di si. Ma ho il problema della dimensione.
Per spiegarci meglio. le attuali partizioni vengono flashate ad indirizzi specifici nella rom. Questi indirizzi sono memeorizzati da qualche parte. Se io ingrandisco la partizione system, dovrò modificare l'indirizzo in cui inizia la partizione immediatamente successiva, altrimenti ci sono dati che verranno sovrascritti. La domanda è : come e dove vanno modificati questi offsets ? nel file parameters ?
si probabilmente si, e da parameters che aumento lo spazio per le app :)
-
Quote:
Originariamente inviato da
yatto
penso di si. Ma ho il problema della dimensione.
Per spiegarci meglio. le attuali partizioni vengono flashate ad indirizzi specifici nella rom. Questi indirizzi sono memeorizzati da qualche parte. Se io ingrandisco la partizione system, dovrò modificare l'indirizzo in cui inizia la partizione immediatamente successiva, altrimenti ci sono dati che verranno sovrascritti. La domanda è : come e dove vanno modificati questi offsets ? nel file parameters ?
Esatto proprio li... c'è da fare un calcolo.
-
Quote:
Originariamente inviato da
pistoneone
Esatto proprio li... c'è da fare un calcolo.
qui posto il file parameter con 900mb per le app LINK
-
Probabilmente sapete ga' tuto quello che sto' per scrivere pero' vale la pena buttare giu' due righe:
La riga CMDLINE: in params sono i parametri passati al kernel di linux al boot, quelli che su un pc normale stanno sulla linea "linux" in grub.conf
Il parametro di kernel mtdparts e' in pratica una partition table per le flash nand e nor (mtd=memory technology devices).
Di fatto si comporta esattamente con una partition table fdisk sull'hard disk di un pc, quindi e' possibile spippolare questi numeri per cambiare il partizionamento della flash, considerando che il significato dei parametri e' dimensione, offset di inizio e nome partizione; esempio estratto dai parameters standard:
0x00004000@0x0000A000(recovery)
0x00080000@0x0000E000(system)
significa che la "partizione" di nome system ha dimensioni 0x80000 e inizia alla locazione 0xE000, cioe' dove la partizione precedente (recovery) termina (recovery inizia a A000 + 4000 di lunghezza = E000)
Il sistema poi crea uno special file in dev per ogni partizione partendo da /dev/mtdblock0 (misc)
Inoltre il kernel standard mediacom supporta sia ext3 che jaffs2 estratto da "cat /proc/filesystems":
ext3
cramfs
vfat
nodev fuse
yaffs
yaffs2
se si cambia il filesystem occorre cambiare il comando mount in init.rc nell'imagine boot.img di conseguenza, per esempio se riformatto in ext3 la partizione system dovro' cambiare la linea :
mount cramfs mtd@system /system
in:
mount ext3 mtd@system /system
Posso confermare, perche' lo ho provato, che e' possibile avere una system in formato ext3.
creare system.img su linux e' banale:
- si crea un file di zeri grosso quanto la img che vogliamo creare:
dd if=/dev/zero of=system.img bs=1 count=120000000
- lo si formatta ext3:
mkfs.ext3 system.img
-si disattivano gli fsck automatici:
tune2fs -c 0 -i 0 system.img
- si crea una cartella e si monta l'immagine in loopback:
mkdir system.img.mnt; mount system.img system.img.mnt -o loop
a questo punto basta copiarci su il contenuto della propria system, smontarla e scriverla sul tablet insieme alla boot.img con init.rc modificato.
I pro di una system ext3 sono:
- root completo
- primo boot mooolto piu' veloce rispetto al root wendal in cui al primo boot occoerre ricopiare l'intero contenuto system in data
- piu' velocita' nel caricameto e piu' memoria ram libero in quanto il kernel puo' eseguire mmap direttamente sul file
I contro:
- spazio, il cramfs e' compresso lz quindi ci sta molta piu' roba, infatti con le dimensioni tipiche si una system.img (120Mb) non ci sta' nemmeno il sistema base!
- i continui sync di ext3 alla lunga danneggieranno la flash, ma questo gia' avviene per la partizione data
Una terza opzione, ancora migliore di ext3, sarebbe usare il jaffs2 che e' stato scritto apposta per le memorie flash ed e' utilizzato da quasi tutti i device android in circolazione.
Potrebbe aver senso unificare la partizione sytem e quella data per ottimizare l'uso dello spazio, oppure utilizzare tutta la flash interna per le partizioni data e system e usare solo la sd card per i dati personali....
E' tutto molto divertente, ma alla fine io il tablet lo uso quasi esclusivamente per leggere ebook quindi per ora sono tornato alla system in cramfs senza root semplicemente personalizzando gli apk preistallati secondo le mie esigenze personali :-)
-
io voto jaffs2...
oppure lascerei tutto cosi e morta la :)
-
Ciao eldiau, era un po' che non postavi le tue utilissime informzioni. Io sono per questa soluzione (wendal), si è vero che il primo boot è lungo ma nell' utilizzo normale non noto il minimo rallentamento. Grazie di condividere le tue conoscenze.
Buona serata
Pistoneone
-
@eldiau: Grazie per le splendida spiegazione. Tutto chiarissimo.
-
Ciao,
potreste postare un file parameters con la dimensione per la system a 200 MB ?
ho visto il file parmamters di gex, ma non ho ben capito come interpretarlo :
CMDLINE: console=ttyS1,115200n8n androidboot.console=ttyS1 init=/init initrd=0x62000000,
0x500000 mtdparts=rk29xxnand:0x00002000@0x00002000(misc),
0x00004000@0x00004000(kernel),
0x00002000@0x00008000(boot),
0x00004000@0x0000A000(recovery),
0x00080000@0x0000E000(system),
0x00082000@0x0008E000(backup),
0x0003a000@0x00110000(cache),
0x00200000@0x0014a000(userdata),
0x00002000@0x0034a000(kpanic),-@0x0034c000(user)
Nella Fattispecie System 0x00080000@0x0000E000 se ho ben capito vuol dire che è grande 0x00080000 che trasformato in decimale è 524288. Che cosa rappresenta questo valore ?
Inoltre non ho ben capito "come" utilizzare il file. Con quale programma ?
Grazie.
-
@Pistoneone:
Figurati, purtroppo nonho molto tempo da dedicare all'hacking di questo bel tablet ma se posso aiutare sono convinto che l'unione faccia la forza ;-)
@yatto:
Piu' ho meno in maniera empirica penso che la Flash Nand venga indirizzata per locazione di dati e una di parita', quindi la dimensione va divisa per 2, di conseguenza 0x80000 = 524288 /2 = 262144 Kbyte / 1024 = 256MB
Intendi il file prameters? Lo passi al programmino che permette di flashare le .img separatamente, lo trovi per esempio nelle rom di Pistoneone, oppure lo ricomponi dentro la update.img con gli script di wendal
Fammi sapere cosa produrrai!
-
Quote:
Originariamente inviato da
eldiau
creare system.img su linux e' banale:
- si crea un file di zeri grosso quanto la img che vogliamo creare:
dd if=/dev/zero of=system.img bs=1 count=120000000
Ciao,
una curiosità : perchè non utilizzare bs=1k count 120000 ?
differenza in prestazioni ?
grazie,
saluti.
-
Quote:
Originariamente inviato da
yatto
Ciao,
una curiosità : perchè non utilizzare bs=1k count 120000 ?
differenza in prestazioni ?
.
Nono, anzi e' sicuramente piu' veloce scrivere a botte di 1K anziche' di 1byte. Ma non e' la stessa cosa 120000000 byte non sono 120000 Kbyte ma 117187.5Kbyte perche' un Kbyte sono 1024byte non 1000...
Io lo ho scritto in byte perche' il risultato di un "ls -l" da la dimensione in byte quindi mi sembrava piu' chiaro...
Stai testando una system.img in ext3?
-
Si ho preparato un system.img in ext3 e un boot.img dove la ystem viene montata ext3 piuttosto che cramfs (ovviamente). L'ho dato a Gex ma mi ha detto che non ha funzionato...
Ora sto cercando di capire il perchè... eppure il filesystem lo monto (sotto linux ovviamente) tranquillamente...
:(
-
sarebbe carino recuperare eventuali file in /data/dontpanic/ dopo un boot non funzionante....
-
Ciao,
sono riuscito a far funzionare il tutto :)
Per chi volesse provare, al link c'è la modifica per la rom Pistone 3.1 :
Multiupload.com - upload your files to multiple file hosting sites!
il link contiene due files: system.img e boot.img da rimpiazzare nella rom di Pistoneone.
la /system ovviamente è ext3 e non più cramfs.
:)
-
ciao Yatto!
ovviamente sei riuscito a farla montare nel posto giusto ora?
o sempre con il link?
-
La partizione ext3 sostituisce quella cramfs, quindi viene montata nel posto giusto, senza link. Quindi si libera lo spazio della partizione data che era stato dedicato alla cartella sysrw
-
Quote:
Originariamente inviato da
eldiau
sarebbe carino recuperare eventuali file in /data/dontpanic/ dopo un boot non funzionante....
Ciao eldiau,
ho montato il filesystem con la seguente stringa copiata pari pari da un firmware teclast :
mount ext3 mtd@system /system wait ro noatime nodiratime
secondo te posso aggiungere/modificare qualche parametro per un funzionamento migliore ? miriferisco ai parametri "noatime", "noadirtime", "wait", "nosuid", "nodev" etc. etc.
grazie per la risposta (eventuale) :)
ciao
-
Quote:
Originariamente inviato da
yatto
Ciao eldiau,
ho montato il filesystem con la seguente stringa copiata pari pari da un firmware teclast :
mount ext3 mtd@system /system wait ro noatime nodiratime
secondo te posso aggiungere/modificare qualche parametro per un funzionamento migliore ? miriferisco ai parametri "noatime", "noadirtime", "wait", "nosuid", "nodev" etc. etc.
grazie per la risposta (eventuale) :)
ciao
@ yatto la cartella system a me risulta no writable,
quindi non posso sostituire o editare file in tale cartella.
:-X
-
Quote:
Originariamente inviato da
MagicOne
@ yatto la cartella system a me risulta no writable,
quindi non posso sostituire o editare file in tale cartella.
:-X
Hai provato con root Explorer premendo il pulsante Mount RW??
-
Quote:
Originariamente inviato da
Samhain
Hai provato con root Explorer premendo il pulsante Mount RW??
ehm... no o_O
dove si trova il pulsante?
-
Quote:
Originariamente inviato da
MagicOne
ehm... no o_O
dove si trova il pulsante?
in alto ci dovrebbe essere una riga "Mounted as r/o" e li vicino "Mount R/W"
-
Quote:
Originariamente inviato da
Samhain
in alto ci dovrebbe essere una riga "Mounted as r/o" e li vicino "Mount R/W"
Ecco. Fatto. Sì funziona il tutto ok. Ora posso sostituire ed editare. Thanks :D
-
Quote:
Originariamente inviato da
yatto
Ciao eldiau,
ho montato il filesystem con la seguente stringa copiata pari pari da un firmware teclast :
mount ext3 mtd@system /system wait ro noatime nodiratime
secondo te posso aggiungere/modificare qualche parametro per un funzionamento migliore ? miriferisco ai parametri "noatime", "noadirtime", "wait", "nosuid", "nodev" etc. etc.
grazie per la risposta (eventuale) :)
ciao
Ciao Yatto,
potresti provare ad aggiungere "commit=50", ext3 esegue il commit del journal ogni 5 secondi, questo fa si che, quando il filesystem e montato in RW ci sia attivita' di disco ogni 5 secondi, il che non fa per nulla bene ad una flash.
Con "commit=50" limiti questo intervallo a 50 secondi, e quindi preservi la vita della flash... e' un finezza perche' ha valore solo quando system e' montato RW e di norma rimane sempre RO...
(50 lo scelto io arbitrariamete, poi anche salire oltre ma non troppo)
Non mi viene in mente altro di utile! Il motivo per cui in precedenza non ti faceva il boot era quasi sicuramente il "wait"
-
Quote:
Originariamente inviato da eldiau
Quote:
Originariamente inviato da yatto
Ciao eldiau,
ho montato il filesystem con la seguente stringa copiata pari pari da un firmware teclast :
mount ext3 mtd@system /system wait ro noatime nodiratime
secondo te posso aggiungere/modificare qualche parametro per un funzionamento migliore ? miriferisco ai parametri "noatime", "noadirtime", "wait", "nosuid", "nodev" etc. etc.
grazie per la risposta (eventuale) :)
ciao
Ciao Yatto,
potresti provare ad aggiungere "commit=50", ext3 esegue il commit del journal ogni 5 secondi, questo fa si che, quando il filesystem e montato in RW ci sia attivita' di disco ogni 5 secondi, il che non fa per nulla bene ad una flash.
Con "commit=50" limiti questo intervallo a 50 secondi, e quindi preservi la vita della flash... e' un finezza perche' ha valore solo quando system e' montato RW e di norma rimane sempre RO...
(50 lo scelto io arbitrariamete, poi anche salire oltre ma non troppo)
Non mi viene in mente altro di utile! Il motivo per cui in precedenza non ti faceva il boot era quasi sicuramente il "wait"
Ciao eldiau..
Per il fatto che dici tu il problema si può risolvere anche dopo che hai inserito la rom con l'ext3 con questa guida che ho trovato:
http://alex.amiran.it/20071118/ottim...li-e-server-1/
Inviato dal mio Garmin-Asus A10 usando Androidiani App
-
Quote:
Originariamente inviato da
eldiau
Posso confermare, perche' lo ho provato, che e' possibile avere una system in formato ext3.
hai provato anche con yaffs2? Io sto provando da ieri ma non mi fa neanche il boot.....
-
Quote:
Originariamente inviato da
Samhain
hai provato anche con yaffs2? Io sto provando da ieri ma non mi fa neanche il boot.....
confermo, sarebbe ottimo...dato che è stato sviluppato proprio per le memorie nand mi sembra...
-
il fatto di usare ext3 anche per la system non lo vedo come un problema. Inifatti non dimentichiamoci che /data e /cache sono due filesystem che vengono montati in ext3 dal firmware originale, senza modificare il timing del commit del journal, lasciandolo di default. La Nand è sempre la stessa quindi si rovinerebbe lo stesso... :)
Per me è un grosso passo avanti avere ext3, ma se si riuscisse ad averte Yaff2 o ext4 sarebbe ancora meglio. Pensate che lo smartpad 800 che è un altro prodotto, completamente diverso utilizza ext4 per i sui filesystem.
saluti.
-
Quote:
Originariamente inviato da
yatto
Per me è un grosso passo avanti avere ext3, ma se si riuscisse ad averte Yaff2 o ext4 sarebbe ancora meglio. Pensate che lo smartpad 800 che è un altro prodotto, completamente diverso utilizza ext4 per i sui filesystem.saluti.
Completamente d'accordo, yatto... solo che da alcuni test (dovrei ri-cercarli) fatti su nand usando yaffs2 e ext3 la differenza era si leggera, ma percepibile. l'800 (coby kyros 8024) non dovrebbe avere in comune con l'810c chipset e controller nand hynix? sarebbe quindi possibile un porting della rom nitrox su cui stavi lavorando (credo) anche sull'810c?
-
Quote:
Originariamente inviato da
yatto
il fatto di usare ext3 anche per la system non lo vedo come un problema. Inifatti non dimentichiamoci che /data e /cache sono due filesystem che vengono montati in ext3 dal firmware originale, senza modificare il timing del commit del journal, lasciandolo di default. La Nand è sempre la stessa quindi si rovinerebbe lo stesso... :)
Per me è un grosso passo avanti avere ext3, ma se si riuscisse ad averte Yaff2 o ext4 sarebbe ancora meglio. Pensate che lo smartpad 800 che è un altro prodotto, completamente diverso utilizza ext4 per i sui filesystem.
saluti.
la yaffs2 è già inclusa nel kernel dello smartpad 810c.... bisognerebbe solo riuscire a farla funzionare...
-
Quote:
Originariamente inviato da
Samhain
hai provato anche con yaffs2? Io sto provando da ieri ma non mi fa neanche il boot.....
Ciao Samhain,
Non ho provato yaffs2 anche se in effetti e' supportato nel kernel e sarebbe la scelta piu' logica... io in questo momento pero' non ho tempo di fare prove e ext3 mi soddisfa!
Se riesci ad avere piu' info sul perche' si blocca, prova con un "adb logcat" durante il boot e a cambiare in parameters "console=ttyS1,115200n8n" in "console=tty1" e "androidboot.console=ttyS1" in "androidboot.console=tty1", se hai fortuna riesci a scorgere l'errore... questa cosa che non si riesce ad avere una console linux decente al boot e' odiosa!!!