Rickymax
30/11/12, 00:48:34
At the suggestion of several users, I am forking the previous thread. I am planning on supporting several ROMs and this is the best course to keep everything organized and provide support.
What is this?
Background:
The speed of the flash memory in the Transformer line of tablets is very poor. This is very apparent when installing or updating applications from the Play Store, copying files over USB, or using an app that caches lots of data like a web browser. The tablet will hiccup and stutter due to the I/O bottleneck. Running Androbench shows random write speeds averaging less than .2MB/sec.
The workaround:
Utilizing a fast, class 10 microSD card, we can move the /data partition to something significantly faster. The /data partition is where apps are installed to and where they store their configuration information and data. By redirecting /data to these fast microSD cards, we eliminate this bottleneck from our devices. With a properly fast card, users have reported a complete elimination of I/O related hiccups and system freezes. I have based my enhancements on the initial work (http://forum.xda-developers.com/showthread.php?t=1803252) by TweakerL on the Transformer Prime. Credit to fordwolden to porting his work to the Infinity.
The enhancements:
Previous implementations of this mod had the internal data partition mounted to /data2, with the media subfolder (your internal user storage) only available via root apps. There were symlinks set up at /sdcardi, etc, but these still required root permission to access. This is due to permissions on the /data partition and applies to both /data and /data2. Google gets around this by creating a "virtual" sdcard that points to /data/media. I have created a second "virtual" sdcard that points to /data2/media. This mod creates the scenario below:
/data = ext4 partition on microSD (fast)
/data2 = ext4 partition on internal storage (slow)
New changes:
/data/media -> Virtual SD Card Daemon -> /storage/sdcard0
/data2/media -> Virtual SD Card Daemon -> /storage/sdcardi
/sdcardi -> Symlink -> /storage/sdcardi
/mnt/sdcard_internal -> Symlink -> /storage/sdcardi
/storage/sdcardi is the virtual SD card for the internal storage. You should see all the files you had saved to this space before using data2sd. These files should be accessibly by any standard non-root Android app. Additionally, it should mount over USB! (CM10 only for now). Screenshot of this:
http://forum.xda-developers.com/attachment.php?attachmentid=1440999&d=1351541337
Installation
Requirements
1) Class 10 microSD, at least 8gb
2) A computer with card reader
3) Partitioning software. Recommended: MiniTool Partition Wizard (http://descargar.cnet.com/MiniTool-Partition-Wizard-Home-Edition/3000-2094_4-10962200.html) for Windows and GParted for Linux.
Instructions
1) Decide how big you want to make the ext4 partition for /data. Remember, this is going to be the space for installing applications AND the /sdcard space that games will use the cache their extra data. Kindle books, Dropbox files, pics from the camera WILL ALL GO HERE. Personally, I decided to make the ext4 partition the whole 64gb of my card.
The ext4 partition has to be partition #2 on the microSD card. Why? This is to give people with large cards the option of creating a FAT32 or NTFS area as partition #1. This allows the card to be read by a Windows or Mac computer using a card reader. I use my tablet as my card reader with the USB cable, so I wasn't worried about this. I used MiniTool to create a small 8mb unformatted partition as partition #1, then a second 64gb partition to fill the rest of the card. I formatted this second partition in ext4.
2) Create two partitions, both of type "Primary" rather than "Logical" if given the choice. I also set the second partition as "Active". Format this second partition in ext4. It does not matter if the first partition is formatted or unformatted, or what size it is.
3) Insert microSD into tablet and flash the data2sd conversion zip for your ROM. After booting back into Android, you should be greeted with the Setup Wizard. Remember, this is a fresh /data partition, so it's a clean slate. It's a good idea to take a TitaniumBackup** ahead of time. I am experimenting with ways to make the transition more painless.
**Note about taking a TitaniumBackup before switching to data2sd. After the conversion, your internal storage will be mounted to /sdcardi. By default, TitaniumBackup looks for previous backups in /sdcard not in /sdcardi. You have two choices. Copy the TitaniumBackup folder from /sdcardi to /sdcard and restart the app, or change the backup location to /sdcardi/TitaniumBackup in the app preferences. Either of these options should work fine.
NOTE: I've officially thrown in the towel on the sdcardi USB support on CleanROM. I don't know if it's changes by ASUS or by Scott, but it just does not work. I was able to figure CM out because I could look at the source code on Github and trace the exact changes needed. We don't have source for the stock ROM and I haven't been able to fix it without.
Download
These are flashable zips. It will disable journaling on the microSD ext4 partition. You do not have to do this manually! Flash these after flashing the ROM. It should also be able to upgrade an older data2SD installation of CM10.
CleanROM 3.0.3: http://d-h.st/LTd
CleanROM 2.6: http://d-h.st/Zp2
cm-10-20121125-NIGHTLY: http://d-h.st/sZE
cm-10.0.0: http://d-h.st/ClA
CleanROM 2.4: http://d-h.st/tkT
cm-10-20121109-NIGHTLY: http://d-h.st/Xy8
cm-10-20121105-NIGHTLY: http://d-h.st/4GO
cm-10-20121103-NIGHTLY: http://d-h.st/b0B
cm-10-20121102-NIGHTLY: http://d-h.st/eBw
cm-10-20121031-NIGHTLY: http://d-h.st/0ku
BakedBlack Bean 6 - 10/31/2012: http://d-h.st/Gdj
BakedBlack Bean 6 - 10/26/2012: http://d-h.st/6EC
cm-10-20121030-NIGHTLY: http://d-h.st/wMA
cm-10-20121029-NIGHTLY: http://d-h.st/k66
CleanROM 2.3: http://d-h.st/kgh
Custom Kernels:
The data2sd zips above come with a modified stock kernel for each ROM. If you want to use a custom kernel, I have modified the ones below. Flash these AFTER flashing the above data2sd zip your ROM. The zips below do not come with all the files required for data2sd, just the kernel. As an example, if you flash a new CM10 nightly, you will need to flash the data2sd zip for the the same nightly from above, then whichever custom kernel from below.
clemsynTFUniversalCyano650GPUFsyncver3: http://d-h.st/duw
ClemsynTFUniversalStock: http://d-h.st/IBm
clemsynTFUniversal650GPUver7 (Stock/CleanROM): http://d-h.st/S4k
What is this?
Background:
The speed of the flash memory in the Transformer line of tablets is very poor. This is very apparent when installing or updating applications from the Play Store, copying files over USB, or using an app that caches lots of data like a web browser. The tablet will hiccup and stutter due to the I/O bottleneck. Running Androbench shows random write speeds averaging less than .2MB/sec.
The workaround:
Utilizing a fast, class 10 microSD card, we can move the /data partition to something significantly faster. The /data partition is where apps are installed to and where they store their configuration information and data. By redirecting /data to these fast microSD cards, we eliminate this bottleneck from our devices. With a properly fast card, users have reported a complete elimination of I/O related hiccups and system freezes. I have based my enhancements on the initial work (http://forum.xda-developers.com/showthread.php?t=1803252) by TweakerL on the Transformer Prime. Credit to fordwolden to porting his work to the Infinity.
The enhancements:
Previous implementations of this mod had the internal data partition mounted to /data2, with the media subfolder (your internal user storage) only available via root apps. There were symlinks set up at /sdcardi, etc, but these still required root permission to access. This is due to permissions on the /data partition and applies to both /data and /data2. Google gets around this by creating a "virtual" sdcard that points to /data/media. I have created a second "virtual" sdcard that points to /data2/media. This mod creates the scenario below:
/data = ext4 partition on microSD (fast)
/data2 = ext4 partition on internal storage (slow)
New changes:
/data/media -> Virtual SD Card Daemon -> /storage/sdcard0
/data2/media -> Virtual SD Card Daemon -> /storage/sdcardi
/sdcardi -> Symlink -> /storage/sdcardi
/mnt/sdcard_internal -> Symlink -> /storage/sdcardi
/storage/sdcardi is the virtual SD card for the internal storage. You should see all the files you had saved to this space before using data2sd. These files should be accessibly by any standard non-root Android app. Additionally, it should mount over USB! (CM10 only for now). Screenshot of this:
http://forum.xda-developers.com/attachment.php?attachmentid=1440999&d=1351541337
Installation
Requirements
1) Class 10 microSD, at least 8gb
2) A computer with card reader
3) Partitioning software. Recommended: MiniTool Partition Wizard (http://descargar.cnet.com/MiniTool-Partition-Wizard-Home-Edition/3000-2094_4-10962200.html) for Windows and GParted for Linux.
Instructions
1) Decide how big you want to make the ext4 partition for /data. Remember, this is going to be the space for installing applications AND the /sdcard space that games will use the cache their extra data. Kindle books, Dropbox files, pics from the camera WILL ALL GO HERE. Personally, I decided to make the ext4 partition the whole 64gb of my card.
The ext4 partition has to be partition #2 on the microSD card. Why? This is to give people with large cards the option of creating a FAT32 or NTFS area as partition #1. This allows the card to be read by a Windows or Mac computer using a card reader. I use my tablet as my card reader with the USB cable, so I wasn't worried about this. I used MiniTool to create a small 8mb unformatted partition as partition #1, then a second 64gb partition to fill the rest of the card. I formatted this second partition in ext4.
2) Create two partitions, both of type "Primary" rather than "Logical" if given the choice. I also set the second partition as "Active". Format this second partition in ext4. It does not matter if the first partition is formatted or unformatted, or what size it is.
3) Insert microSD into tablet and flash the data2sd conversion zip for your ROM. After booting back into Android, you should be greeted with the Setup Wizard. Remember, this is a fresh /data partition, so it's a clean slate. It's a good idea to take a TitaniumBackup** ahead of time. I am experimenting with ways to make the transition more painless.
**Note about taking a TitaniumBackup before switching to data2sd. After the conversion, your internal storage will be mounted to /sdcardi. By default, TitaniumBackup looks for previous backups in /sdcard not in /sdcardi. You have two choices. Copy the TitaniumBackup folder from /sdcardi to /sdcard and restart the app, or change the backup location to /sdcardi/TitaniumBackup in the app preferences. Either of these options should work fine.
NOTE: I've officially thrown in the towel on the sdcardi USB support on CleanROM. I don't know if it's changes by ASUS or by Scott, but it just does not work. I was able to figure CM out because I could look at the source code on Github and trace the exact changes needed. We don't have source for the stock ROM and I haven't been able to fix it without.
Download
These are flashable zips. It will disable journaling on the microSD ext4 partition. You do not have to do this manually! Flash these after flashing the ROM. It should also be able to upgrade an older data2SD installation of CM10.
CleanROM 3.0.3: http://d-h.st/LTd
CleanROM 2.6: http://d-h.st/Zp2
cm-10-20121125-NIGHTLY: http://d-h.st/sZE
cm-10.0.0: http://d-h.st/ClA
CleanROM 2.4: http://d-h.st/tkT
cm-10-20121109-NIGHTLY: http://d-h.st/Xy8
cm-10-20121105-NIGHTLY: http://d-h.st/4GO
cm-10-20121103-NIGHTLY: http://d-h.st/b0B
cm-10-20121102-NIGHTLY: http://d-h.st/eBw
cm-10-20121031-NIGHTLY: http://d-h.st/0ku
BakedBlack Bean 6 - 10/31/2012: http://d-h.st/Gdj
BakedBlack Bean 6 - 10/26/2012: http://d-h.st/6EC
cm-10-20121030-NIGHTLY: http://d-h.st/wMA
cm-10-20121029-NIGHTLY: http://d-h.st/k66
CleanROM 2.3: http://d-h.st/kgh
Custom Kernels:
The data2sd zips above come with a modified stock kernel for each ROM. If you want to use a custom kernel, I have modified the ones below. Flash these AFTER flashing the above data2sd zip your ROM. The zips below do not come with all the files required for data2sd, just the kernel. As an example, if you flash a new CM10 nightly, you will need to flash the data2sd zip for the the same nightly from above, then whichever custom kernel from below.
clemsynTFUniversalCyano650GPUFsyncver3: http://d-h.st/duw
ClemsynTFUniversalStock: http://d-h.st/IBm
clemsynTFUniversal650GPUver7 (Stock/CleanROM): http://d-h.st/S4k