So as we all know /cache is used for OTA updates which, when you have your phone rooted is useless.
What I'm wondering is why we can't use /dev/block/mtdblock4 (aka /cache) as a permanent onboard swap partition. Granted it will only give us an additional 30MB but the speed of this swap will be higher than that of our sdcard.
In order to test this we'll have to:
convert this partition to a linux-swap partition.
mkswap /dev/block/mtdblock4
update init.rc to no longer mount this as yaffs2
add this new swap space to the swap script
The issue is of course being able to run a partition utility on the phone. Second, if this doesn't work we don't have a way to format /cache back to yaffs2 (that I know of).
If you have experience with any of the issues I listed above please comment/post. If you don't have a clue please don't post so we can keep this thread clean. I would appreciate only experienced devs responding.
If this is possible it would benefit Hero/MotoBlur ROMS which are memory intensive.
For your second concern, why would we need to change it back to /cache? Just make it a disclaimer when people attempt this operation.
More importantly, I think the primary issue is that this is rom space is it not? Doesn't this portion of the memory have a limited amount of times that it could be written to?
Hmm why not trying "parted /dev/block/mtdblock4" in recovery? ;-)
rest would be easy.
Couldn't we use mkyaffs2img (in recovery /sbin) to turn it back into yaffs?
persiansown said:
For your second concern, why would we need to change it back to /cache? Just make it a disclaimer when people attempt this operation.
More importantly, I think the primary issue is that this is rom space is it not? Doesn't this portion of the memory have a limited amount of times that it could be written to?
Click to expand...
Click to collapse
Well my concern was if there was some adverse effect of removing /cache from the system we'd need a way to revert back.
I am not aware of any MAX amount of times that /cache can be written to.
*Edited*
Due to unintelligent comments and moronism prevalent in this thread, I removed a line from this post to keep us on track of what this thread was meant to discuss.
There's another thing:
Recovery can't be used without /cache !
So we need to convert back each shutdown and convert to linux-swap each startup..
dumfuq said:
Couldn't we use mkyaffs2img (in recovery /sbin) to turn it back into yaffs?
Click to expand...
Click to collapse
I hadn't checked in the recovery img for any yaffs2 utilities. But if that indeed does exist then this will be possible.
So then the issue would be, is this safe to attempt long term with the amount of writes being done to internal flash?
maxisma said:
There's another thing:
Recovery can't be used without /cache !
So we need to convert back each shutdown and convert to linux-swap each startup..
Click to expand...
Click to collapse
So I see recovery is using it but the only thing in it is the recovery logfile. Could we modify the recovery to read/write the logfile to system/sd/recovery or something, or is the cache used for other stuff as well?
Another idea:
Instead of using it as swap, what if we could find a way to use it as compcache space? That way we don't sacrifice any of the internal ram for compcache and still have compcache running
maxisma said:
There's another thing:
Recovery can't be used without /cache !
So we need to convert back each shutdown and convert to linux-swap each startup..
Click to expand...
Click to collapse
What part of recovery needs /cache ? Does the recovery img mount the /cache partition? I'm wondering if the recovery img could be modified to write to the ext2 partition such as /system/sd/cache .
persiansown said:
Another idea:
Instead of using it as swap, what if we could find a way to use it as compcache space? That way we don't sacrifice any of the internal ram for compcache and still have compcache running
Click to expand...
Click to collapse
This is actually a good idea and it'd be interesting to see which way would benefit us more.
shafty023 said:
What part of recovery needs /cache ? Does the recovery img mount the /cache partition? I'm wondering if the recovery img could be modified to write to the ext2 partition such as /system/sd/cache .
Click to expand...
Click to collapse
When you activate an option in recovery, for example install update.zip, it writes the command into /cache/recovery and does a "quick reboot", which reads out the command and does this.
ok first dont even try it would one
reduce life on nand
cause issues with flashing
slow down any thing accessing the nand.
to the person thinking the ram is using flash. you must have never been to high school cause even typing class explains what ram is. plus g1 has memory write speeds of about 120mb/sec thats sdram. swap will never replace ram 120mb/sec versus 6 is huge
if you want real improvements you must change the code to something more efficient.
less bloat
more native code
fewer clock cycles
improved app states(cache on sd that would save the state by dumping part of ram to load later reducing clock cycles and reducing ram)
and my favorite rewrite system libs and apps to include more native code and reducing ram usage.
btw native code is about 10-100x faster than android java. that means 10%-100% more speed(or less load)
you could make a swap file and put it on there and just mount the file...........
yeah what he said!
zenulator said:
you could make a swap file and put it on there and just mount the file...........
Click to expand...
Click to collapse
This sounds like a good idea, altho we would have to get compcache working with backing swap file.
do we know if the /cache speed is compaired to Class 6 microSD?
good luck hardheads
jokersax11 said:
ok first dont even try it would one
reduce life on nand
cause issues with flashing
slow down any thing accessing the nand.
to the person thinking the ram is using flash. you must have never been to high school cause even typing class explains what ram is. plus g1 has memory write speeds of about 120mb/sec thats sdram. swap will never replace ram 120mb/sec versus 6 is huge
Click to expand...
Click to collapse
Dude honestly get a life. I have a Bachelor's degree in Computer Science. And I could code in Intel Assembly accessing each and every register in memory while you're left googling what Intel Assembly code means. Maybe you should keep up with the latest technology. If you did you'd know there are all-in-one memory chips that support NOR, NAND flash, and RAM.
http://www.eetasia.com/ART_8800466798_499486_NT_ab9e537f.HTM
jokersax11 said:
if you want real improvements you must change the code to something more efficient.
less bloat
more native code
fewer clock cycles
improved app states(cache on sd that would save the state by dumping part of ram to load later reducing clock cycles and reducing ram)
and my favorite rewrite system libs and apps to include more native code and reducing ram usage.
btw native code is about 10-100x faster than android java. that means 10%-100% more speed(or less load)
Click to expand...
Click to collapse
Exactly what type of "native code" are you referring to? And do you have any idea what type of memory the G1 uses for RAM? Go back to your typing class.
Shafty did you see Zenulator's idea? That seems like it could work.. Does the phone ever format the cache partition?
Related
I'm going to start looking into running apps on the SD card.
What I'd like to know is, can I run the a2sd version (I plan on using Haykuro's ADP1.5Hr3) w/o any issues? Any differences to the regular version if I haven't moved my apps over?
I've been using A2SD for the past 3-4 version of Hakyuro's H series, I then went to the ADP A2SD, I have had no problem what so ever. It works great and is quick, I don't think I could ever go back to using the built in disk for application storage.
I'm currently running ADP1.5Hr3 with 192 applications.
If you dont have a SD card with the partitions necessary, and you load an a2sd version of firmware, when your phone boots up it will start looking for the partition to mount and will continue to do so in the background. This may have an adverse affect on the performance and or battery life.
If this has been fixed in any versions feel free to post it.
Dharkaron said:
If you dont have a SD card with the partitions necessary, and you load an a2sd version of firmware, when your phone boots up it will start looking for the partition to mount and will continue to do so in the background. This may have an adverse affect on the performance and or battery life.
If this has been fixed in any versions feel free to post it.
Click to expand...
Click to collapse
actually when u load an a2sd rom it doesnt look for anything to mount
because when u load an a2sd rom it only looks for a partition once you command it to
without your command it will work like an regular rom that doesnt have the a2sd mod...it will store applications and caches on your internal flash
once you start doing commands such a ln and rm that is when you are actually connecting folders to the ones on your sd card
the performance is the same if u have a2sd or not....the performance either increases or decreases when u tell the phone to do the symlinks to ur ext 2 partition
bigballa said:
actually when u load an a2sd rom it doesnt look for anything to mount
because when u load an a2sd rom it only looks for a partition once you command it to
without your command it will work like an regular rom that doesnt have the a2sd mod...it will store applications and caches on your internal flash
once you start doing commands such a ln and rm that is when you are actually connecting folders to the ones on your sd card
the performance is the same if u have a2sd or not....the performance either increases or decreases when u tell the phone to do the symlinks to ur ext 2 partition
Click to expand...
Click to collapse
????WHAT???
Looks for partition after you command to it???
The haykuro apps-to-sd roms load the ext2 module and a .sh script runs during boot that looks for the partition over and over in a loop. If found it is mounted, if not it keeps trying. This *can* cause battery issues, although I doubt it would be bad. I have no idea what you are saying about commanding to it, but that is wrong.
Re installed the app. Ran and have 54mb available happy.
on a mac
what is the equivalent of ex2 on a mac...it's not listed in the partition options
jaaronmoody said:
what is the equivalent of ex2 on a mac...it's not listed in the partition options
Click to expand...
Click to collapse
It's only possible with ext2 as far as I know. You are probably going to have to download a partition manager program
Darkrift said:
The haykuro apps-to-sd roms load the ext2 module and a .sh script runs during boot that looks for the partition over and over in a loop. If found it is mounted, if not it keeps trying. This *can* cause battery issues, although I doubt it would be bad. I have no idea what you are saying about commanding to it, but that is wrong.
Click to expand...
Click to collapse
Any more news about this and battery usage posted anywhere that i can read further?
Hi,
I'm not a developer but I think my idea is great.
1. Using CACHE partition (50Mb) as virtual ram
- I see that we are using swap ext partition to increase virtual ram, but access data speed of sdcard is not fast enough (for class2 or class4 sdcard),
- And I see that we have 50Mb free in cache partition which are only used when we use OTA update. But if we use a moded rom, why do we use OTA update ? access data speed of internal memory is really good, why don't we use cache partition as virtual ram ???
2. Runing faster with dalvik-cache on internal memory.
- As you know, after install an application, we will have apk file in data/app or data/app-private and some odex file in dalvik-cache.
- If we only use app2sd with data/app and data/app-private, our application will run faster.
There was already an idea like that.
You mean using CACHE as swap partition.
At the moment this isn't possible because we would have to format this partitions and recovery wouldnt work then.
maxisma said:
There was already an idea like that.
You mean using CACHE as swap partition.
At the moment this isn't possible because we would have to format this partitions and recovery wouldnt work then.
Click to expand...
Click to collapse
What are the partitions formatted as now?
ivanmmj said:
What are the partitions formatted as now?
Click to expand...
Click to collapse
YAFFS2
Swapfiles aren't compatible with it.
Only 1 solution:
Create a loop-ext-file and loop mount it, put a swapfile on it and you're set.
But thats slow.
The partition wouldn't have to be formatted, you can use zeroed images for swap space, I've done it in Solaris before and I'm sure some of the memory techniques for Android have implemented this before, don't quote me!
maxisma said:
There was already an idea like that.
You mean using CACHE as swap partition.
At the moment this isn't possible because we would have to format this partitions and recovery wouldnt work then.
Click to expand...
Click to collapse
Is it not possible to use something like a swap file on the cache partition? I'm not familiar enough with the workings of Android, but I know that swap files are supported in Linux and I've seen it mentioned for Android, so is there any reason this wouldn't work? It would be an amazing improvement. I see you answered while I was typing this post, thanks.
I do wish people would stop putting their ideas as [new solution] and stuff and just put it forward as an [idea] or [concept] until there's a working implementation.
maxisma said:
YAFFS2
Swapfiles aren't compatible with it.
Only 1 solution:
Create a loop-ext-file and loop mount it, put a swapfile on it and you're set.
But thats slow.
Click to expand...
Click to collapse
Would the loop mounting be slow to create or slow for performance? I wouldn't mind a bit more boot time if it meant onboard swap, but obviously if it's a slowdown vs SD or none at all, it's probably not worth it.
How would u format a folder like that??? We could elimate the recovery and instead of useing it for 50 mb swap. Let's use it on the system folder. And then we could than drag eclair in our phones but then we would have to be stuck have just one rom. We could also ask rom devs to make us img instead of .zip roms so we could just flash the images
What about Nandroid etc?
This is a must-have.
Also I think the formation of the partition would be overwritten with every reboot..
But idk.
Won't try it out.
there's an issue for using /cache as swap or compcache like maxisma said.. recovery uses a small portion of /cache to write it's files to temporarily so this wouldn't be an easy work around. this idea was already started a long time ago by shafty and well, it never turned out.
maxisma said:
YAFFS2
Swapfiles aren't compatible with it.
Only 1 solution:
Create a loop-ext-file and loop mount it, put a swapfile on it and you're set.
But thats slow.
Click to expand...
Click to collapse
You don't need a swap partition, neither real nor looped
Code:
# dd if=/dev/zero of=/cache/swapfile bs=1M count=XX
# mkswap /cache/swapfile
# swapon /cache/swapfile
Ooops, forget about it: swapon (as a busybox internal) can't do that on my CM. It does work on my machines :/
But remember guys we also have the spl as backup. We could make the nandro-backup into a .nbh file to flash but it takes a longer time to do it. We could make an app or script that does it for as. I tried to customize the init.rc, build.prop, and fstab but it changes everytime - reboot. What should I do? These files were rewriten when I rebooted. If you guys want to talk this over with me and some of my friends on gtalk, I'll create a group for us to talk more in depth. My email address is [email protected].
jroid said:
there's an issue for using /cache as swap or compcache like maxisma said.. recovery uses a small portion of /cache to write it's files to temporarily so this wouldn't be an easy work around. this idea was already started a long time ago by shafty and well, it never turned out.
Click to expand...
Click to collapse
How much code do we have for recovery? I know there are modified recovery images, I have used Cyano and RA. It seems like it would be possible to create a small ramdisk or loop mount for recovery to use and recover this RAM for use by our applications. Or a mod to the init script to format that device properly for recovery when it boots and run mkswap on it when we boot to normal mode. I'm not real familiar with Android at this level, so perhaps I'm way off base here.
Do you know how to put a custom init.rc on to the g1? When I reboot it is gone and goes back to the orginal init.rc
mohsinkhan47 said:
Do you know how to put a custom init.rc on to the g1? When I reboot it is gone and goes back to the orginal init.rc
Click to expand...
Click to collapse
You have to change the one in the initial ram disk.
1) unpack boot.img
2) change initrc
3) repack boot.img
4) flash
farmatito said:
You have to change the one in the initial ram disk.
1) unpack boot.img
2) change initrc
3) repack boot.img
4) flash
Click to expand...
Click to collapse
I did that but got " broken image file ". What do I do now?
If the 50MB on the cache partition is never used, would it be possible to re-map it to /system? Probably something akin to what the "Death" SPL did.
That is what I said but then I guess you would have to reformat the phone to accept a different amount of info in this case megabytes. We would have to reformat the system folder to hold more info on it.
rgawenda said:
You don't need a swap partition, neither real nor looped
Code:
# dd if=/dev/zero of=/cache/swapfile bs=1M count=XX
# mkswap /cache/swapfile
# swapon /cache/swapfile
Ooops, forget about it: swapon (as a busybox internal) can't do that on my CM. It does work on my machines :/
Click to expand...
Click to collapse
YAFFS2 doesn't support swapfiles.
Thats why would need a loop mounted ext-image.
Placing a swap file/partition in internal memory is risky business. Flash memory has a limited number of write cycles, and swap does many writes per second. Whereas an SD card can be replaced if worn out, internal memory cannot, so the phone becomes a brick if the flash memory is damaged by swapping.
I'm a Linux user so I know what swap, ext2, ext3 etc technically means. What I don't understand is what are the *actual* benefits of formating my SD Card to these formats. I've run into a lot of guides and how-tos but no one cares to explain why to do it.
So to sum up:
Does the Android System actually cares if I create these formats?
If it does, will I notice actual increase in performance?
What about apps2SD?
What kind of format do you recomend?
I have an HTC Desire and I'm using CyanogenMod, Oxygen and MIUI in rotation (means I replace one with another every couple months).
Thanks in advance!
aventinus said:
I'm a Linux user so I know what swap, ext2, ext3 etc technically means. What I don't understand is what are the *actual* benefits of formating my SD Card to these formats. I've run into a lot of guides and how-tos but no one cares to explain why to do it.
So to sum up:
Does the Android System actually cares if I create these formats?
If it does, will I notice actual increase in performance?
What about apps2SD?
What kind of format do you recomend?
I have an HTC Desire and I'm using CyanogenMod, Oxygen and MIUI in rotation (means I replace one with another every couple months).
Thanks in advance!
Click to expand...
Click to collapse
Faster SD Card speeds for app2sd, thats mainly it. If you don't use A2SD there isnt much point to it, but if you do it can be very useful. What some people do though are format their System and Data partitions to EXT2 or EXT4 so then the whole system is faster all around and is a large improvement over stock rfs.
fowenati said:
Faster SD Card speeds for app2sd, thats mainly it. If you don't use A2SD there isnt much point to it, but if you do it can be very useful. What some people do though are format their System and Data partitions to EXT2 or EXT4 so then the whole system is faster all around and is a large improvement over stock rfs.
Click to expand...
Click to collapse
Ok so if make an ext partition, the apps that are stored in this partition will run faster. That sounds fair. Should I have both ext and FAT partions? And if I do, how does Android know where to put the apps? Also how about swap?
aventinus said:
Ok so if make an ext partition, the apps that are stored in this partition will run faster. That sounds fair. Should I have both ext and FAT partions? And if I do, how does Android know where to put the apps? Also how about swap?
Click to expand...
Click to collapse
No need for swap, and yes EXT is automatically recognized by android for a2sd, but make sure your ROM supports it. You would have an EXT partition between 256mb-2gb max, and then the rest would be FAT.
fowenati said:
No need for swap, and yes EXT is automatically recognized by android for a2sd, but make sure your ROM supports it. You would have an EXT partition between 256mb-2gb max, and then the rest would be FAT.
Click to expand...
Click to collapse
Ok! That was really eye-opening! Thank you so much!
no problem!
SWAP on internal
Extend your RAM with very quick internal SWAP
v0.5 alpha
For the moment, the script is confirmed to work only on ROMs with the chinese x-part (or data2ext) by Atroy script only (read at the end of this post for alternative).
The only ROM I am aware of using this script out of the box is the excellent MIUI XJ x-part.
However, I intend to develop a non-loop based version shortly. It should will be compatible with most ROMs, so stay tuned.
What and Why
I decided to make a script that places the swap file on internal memory. Many people place it on SD card, but to me it seems somewhat pointless, as it hardly offers sufficient performance.
However, placing it on the internal memory makes it a much more interesting concept, because it has much better random read/write performance than even the fastest SD cards.
Warning: placing SWAP on internal memory will subject it to frequent read/write operations which in theory shortens lifespan of internal memory chip which you cannot replace. This is because flash memory has limited number of write/read cycles to it. So, consider yourself warned.
HOWEVER:
1 - although true, in reality I have been unable to find any case of this actually affecting anyone's phone. There is very limited amount of data documenting real-life effect of that process, but most likely your device will be long gone before the internal memory will show any signs of wear.
2 - the script recreates the swap file on each boot using different physical blocks of memory - this means not the same blocks are always used. More on this in 'Do it right' section.
Do It Right
1. 16-32 MB of swap should suffice. If you think you need more, you are probably wrong. NEVER use all available internal space. The larger the proportion difference between swap size and total free space on the internal data partition, the more breathing space your internal memory gets, as this allows the swap file to be moved around upon every reboot, which, in turn, will make it use the same blocks more rarely, and thus extending memory chip lifespan.
2. Get rid of bloat you don't use from the system partition, ie: ringtones, live wallpapers, useless system apps. Then create a custom
hboot with smaller system partition and larger data partition. You can do it using this (also attached to this post).
3. Play around with swappiness parameter. Still, the default set by the script should serve you well. But if you are paranoid, you can use it to further decrease how often system will write to swap.
Removal
Disable execution flag on the scipt in /system/etc/init.d and delete swap.img from internal data directory (on x-part scripts it is /mnt/asec/mtddata/ )
v0.5 alpha
* first public release
* loop device version only
Click to expand...
Click to collapse
x-part Impacted script (80% chance of rendering your ROM unbootable)
I attached a data2ext script which should offer better performance and battery life than some other a2sd scripts.
You are free to try and flash it on your ROM, but there is a good chance it won't boot any more - this is a very alpha version and I am not working on it at the moment.
Do not post complaints about it here. I only want to hear from you if it works!
So this allocates a part of your internal memory for random access? Nice.
I personally don't need more RAM, but this could be useful.
This sounds really good to my ears :good:
I will keep an eye on it.
Edit:
A small question:
So is it possible to use this for any rom if you are using data2ext for it?
Or atm only for miui xj?
Androidmarketuser said:
A small question:
So is it possible to use this for any rom if you are using data2ext for it?
Or atm only for miui xj?
Click to expand...
Click to collapse
You have to use Atroy's data2ext, which is virtually impossible to obtain because it was developed as part of chinese MIUI rom and never released as a separate script.
However, I have been working on it and I am attaching an alpha version of my adaptation of this script to the first post
Let me know if it works, but there is a good chance your ROM will not boot any more.
impactor said:
However, I have been working on it and I am attaching an alpha version of my adaptation of this script to the first post
Let me know if it works, but there is a good chance your ROM will not boot any more.
Click to expand...
Click to collapse
Thanks for your answer
I tried to install it on CM10 by vj but it didn't work. Here are my steps:
Wiped everything except sd
Installed rom, then data2ext script and finally the swap script.
I'm on a ext4 partition if it matters.
I think (not really sure) one script has created two folders: /data/ and /data-app/ on sdcard.
Or did I just install it the wrong way?
Edit: The problem was as you expected that it stucked at HTC bootlogo.
Androidmarketuser said:
Edit: The problem was as you expected that it stucked at HTC bootlogo.
Click to expand...
Click to collapse
If you want to try x-part script, then do not flash swap script until you confirm the x-part rom works.
Try with some GB rom. Maybe you'll have more luck.
impactor said:
If you want to try x-part script, then do not flash swap script until you confirm the x-part rom works.
Try with some GB rom. Maybe you'll have more luck.
Click to expand...
Click to collapse
I'll try it out that way on JB first (I am addicted to the new design, can't go back:crying, if it doesn't work I will try it out with 2.3 anyway.
---------- Post added at 08:45 PM ---------- Previous post was at 08:31 PM ----------
Ok on JB the data2ext script doesn't seem to work, I can't boot.
I will try it out later with a GB rom, propably EuroSkank
Hmm still doesn't work.
I tried MW7 on Redux2 but stucks at boot logo...
Custom hboot maker link from thalasmus blog is dead!
Can someone plz attach it here!
Sent from my HTC Desire using xda app-developers app
vasili_defy said:
Custom hboot maker link from thalasmus blog is dead!
Can someone plz attach it here!
Click to expand...
Click to collapse
Attached.
Don't have swap on internal! The number of read/writes will just kill your nand by creating loads of bad blocks.
Just my 2 cents
Kind Regards
Dave
topgeardave said:
Don't have swap on internal! The number of read/writes will just kill your nand by creating loads of bad blocks.
Just my 2 cents
Click to expand...
Click to collapse
And pray tell, apart from hearsay, what else do you have to support the claim that it will occur within foreseeable lifetime of the device?
I'd love to learn.
impactor said:
And pray tell, apart from hearsay, what else do you have to support the claim that it will occur within foreseeable lifetime of the device?
I'd love to learn.
Click to expand...
Click to collapse
After flashing ROMs on my Desire for nearly 2 years I'm starting to get bad blocks on my nand. Having a swap partition on internal would accelerate the process of getting more bad blocks. That's what I think anyway. Check your recovery.log for bad blocks next time you wipe your phone.
Kind Regards
Dave
Sent from my HTC Sensation using xda app-developers app
I tried this on Alex-V 1.8 and nothing happened
probably did something wrong
I'll try again later
topgeardave said:
After flashing ROMs on my Desire for nearly 2 years I'm starting to get bad blocks on my nand. Having a swap partition on internal would accelerate the process of getting more bad blocks. That's what I think anyway. Check your recovery.log for bad blocks next time you wipe your phone.
Kind Regards
Dave
Click to expand...
Click to collapse
Thanks for the heads-up. But I gave a clear warning about in the first post. After two years, my desire has 4 bad blocks, which amounts to less than 0.5mb of internal space (less than 0.1%). Everyone should make a concious decision about using internal swap.
It will degrade the memory chip, yes, but is the degradation significant enough to care? Everyone has to decide for himself.
impactor said:
Thanks for the heads-up. But I gave a clear warning about in the first post. After two years, my desire has 4 bad blocks, which amounts to less than 0.5mb of internal space (less than 0.1%). Everyone should make a concious decision about using internal swap.
It will degrade the memory chip, yes, but is the degradation significant enough to care? Everyone has to decide for himself.
Click to expand...
Click to collapse
how can I check if it's running on my rom...?
Balino said:
how can I check if it's running on my rom...?
Click to expand...
Click to collapse
Go into terminal and run "free"
impactor said:
Go into terminal and run "free"
Click to expand...
Click to collapse
It says swap 0... I think woh's roms doesn't support swap....
The Hefe Hook kernel allows you to mount a partition of your microSD as /data, getting 2 GB (or more) for your apps and their data.
Please ask your questions here about installation, use, or general approach.
This is great @jeffsf and can u show me how to re-partition the "real internal" storage? I mean expanding the /system since u put the /data out of it. Thanks man
Sent from my GT-N7000 using Tapatalk 2
daothanhduy1996 said:
This is great @jeffsf can u show me how to re-partition the "real internal" storage? I mean expanding the /system since u put the /data out of it.
Click to expand...
Click to collapse
Yes, you've hit on another of the reasons I've been exploring using the microSD for "live" storage. It's one thing to use potentially slow storage for photos that you basically write once or "app to SD" where you read the APK at boot time, make sure your ODEX in the Davlik cache is good, then generally read from the internal-flash cache. It is another when that memory is being read and written "constantly" when your phone is running.
The good thing is that once /data is not part of the internal flash filesystem, you don't have to worry about one ROM (kernel) thinking it begins at one place and another saying it starts at another. Previously, if one ROM had one /system size and another and a different one, the next partition, /data, would look to be corrupt when you swapped ROMs.
As a warning, not all users have fast microSD cards. Some that say "Class 10" on them really are dogs, especially for small reads/writes. The "Class" ratings are for sustained writes, as you would have with a camera recording video. If your ROM is "external /data" only, or even defaults to that, be prepared for a slew of "Your ROMs sucks. It is so slow." complaints.
You'll also need a way to automate formatting the card. It can be done on the phone, as long as you aren't trying to preserve any data.
As I recall, the layout of the MTD partitions is done in drivers/mtd/onenand/samsung_galaxys4g.h I would be careful not to move the partition boundary for efs, as you'd have to move the data it contains in your updater script. Repeating the warning about not moving the boot and recovery partitions is probably a good idea as well!
Your build tree may need some of these values, or at least think it needs some of these values. For example, device/samsung/aries-common from the CyanogenMod/cm-11.0 (KitKat) branch calls out NAND page sizes, partition sizes, and flash block sizes. I haven't looked in detail at your build tree so I can't comment on how it might handle things differently than the CyanogenMod one.
itzik2sh said:
Hi
I hope I don't ask anything silly, but please let me know if any of my assumptions is wrong :
1. I take FBi's251's AOKP milestone 6 (ICS 4.0.4)
2. 8GB SDCard was formatted to FAT32 (4GB) and EXT3 (4GB) using TWRP kernel
(Beastmode's proton kernel to be exact).
3. I would flash this kernel and it would move apps and their data to the sd-ext
without any special additions.
Thanks. I read the thread, but unfortunately 8GB SD is what i have and I think it should be enough.
Thanks again.
P.S - it's for 2 guys I already sold them my SGS4Gs. I want them to be happy...
Click to expand...
Click to collapse
AOKP should be fine. I haven't tried it recently, but it was the tree in which I did the early Hefe Kernel development.
As I understand it, you have a microSD with
partition 1: 4 GB FAT32
partition 2: 4 GB ext3
So that can work, but will need some tweaking of the init-on-fs.sh script. I intentionally didn't use the second partition as so many scripts gobble that up as sd-ext and do who knows what to it.
My first preference would be to reformat the cards, perhaps:
6 GB FAT32
1 MB ext2/3/4 (Yes, 1 MB, a sliver, choice of ext2, ext3, ext4 up to you)
2 GB ext4
since then the script will work without modification and if they install a third-party script that uses the second partition, it won't corrupt their data.
If you were to keep the formatting the way that it is now, you'd need to edit the mount commands in the script to look something like:
Code:
/system/xbin/busybox umount /data
/system/xbin/busybox mount -t ext3 -o noatime /dev/block/mmcblk0p2 /data
(removing the sd-ext mount)
I'm not sure what your expectations are, but all that the kernel and that script will do is mount a different disk partition on /data -- you need to manually move the data over (or restore from something like Titanium Backup). There may be some trickery in renaming that could be used with TWRP backups to restore from data.yaffs2.win to the new /data partition, but I haven't tried that at all.
Hi Jeff
Thanks for your quick reply, and sorry again for not seeing the Q&A thread.
I think making it :
partition 1: 4 GB FAT32 (sdcard)
partition 2: 2 GB ext3 (sd-ext)
partition 3: 2 GB ext3 (data)
partition 4: 1 MB (spare)
would be better and handle data as well. don't you think ?
Would it be worth doing with a "Team" micro-SD card (class 6 I believe) ?
Thanks.
I haven't tried a Class 6 card, but my gut feeling is that it will be dicey. I didn't "commit" to using /data on microSD until I had tried it for several days using Titanium Backup's ability to move both apps and app data to the external card. I would try that first, especially as the phones in question aren't going to be in your hands (I consider you an expert user, able to manage things outside the UI with ease).
I've attached some testing I did a while ago with Transcend and SanDisk cards. When you look at them, realize that the speed scale changes between them. I have a feeling that the real "performance" on a device is going to be related to relatively small reads and writes, not the ability to stream video to the card. I also don't know much about the Team brand, but I found that even some well-known brands didn't have the performance of the Transcend or SanDisk in the same category.
However you configure your cards, I would definitely recommend a journaling filesystem of some sort. I've had my microSD come loose inside the phone. The journal will at least help to reduce any filesystem corruption should that happen.
You don't need the fourth partition -- I have it there to be able to keep rsync backups for fast ROM swapping.
.
Regarding the apps data, have you tried exploring the Mount2SD script ?
sent from me
I've tried a couple of the scripts out there in the past. Since backing up my data is very important to me, I trust the scripts in Titanium Backup to work well with its backup/restore strategies.
Mounts2SD looks like it has gotten a lot more sophisticated than it was when I tried it in the past. It sounds like something worth trying in its current state. At a quick glance (and not looking at the code), I'd personally make some different choices about features; enabling journaling, and being concerned about why lost+found was filling up (things should only appear there if the file system is found to be corrupt).