Related
This is useful for identifying phones on the local networks by looking at DHCP lease tables in the routers. It doesn't make your phone appear on Windows networks, since the phone needs to broadcast NetBIOS name for that. If you want your phone to show up on Windows networks (and share files) - you need Samba server, and JimmyChingala is working on one.
ROM developers can insert the option to customize hostname using the way described below in their Spare Parts options. Feel free to do so.
[SOLUTION]
The following shell command does the job of changing WiFi hostname:
echo YOURHOSTNAME > /proc/sys/kernel/hostname
Click to expand...
Click to collapse
For the change to stay, it should be executed on each boot. And here the things start being more problematic.
For custom ROMs:
Most, if not all, custom ROMs include some user init shell script that will be executed on boot, making the solution easy.
Enter the following line in the Terminal / ADB shell:
echo "echo YOURHOSTNAME > /proc/sys/kernel/hostname" >> the_path_and_name_of_userinit_script.sh
chmod 777 the_path_and_name_of_userinit_script.sh
Click to expand...
Click to collapse
Several examples of custom ROMs and their userinit scripts:
Suggested - will work for most ROMs (creates another file in directory of autoexecuted scripts): /etc/init.d/88hostnameinit
Additional possibility for Enomther's ROM: /data/local/userinit.sh
Additional possibility for CyanogenMOD: /sd-ext/userinit.sh
For stock ROMs:
There is no autorun script for stock ROMs, so they have to be added through modifying boot.img. It's a complicated procedure, and even though guides exist for it - I suggest not to mess with it only because of the hostname. The easiest solution would be to create a script file with the line above using Gscript or other scripting solutions, and execute it after each reboot. If anyone really wishes to modify boot.img - I assume that he/she knows enough about Linux/Android since it can be relatively easily done only on Linux, can find the necessary guides with some googling (like I did), and in this case the modification is easiest to do directly in init.rc - changing "hostname localhost" to "hostname name_of_your_choice".
[ORIGINAL POST]
Hi people,
I'm not much of a dev, but I can find my way around with a bit of Google search And sorry about the links that don't link, new user's permissions don't allow me to...
Anyway, after messing with my router today I've noticed that Nexus transmits "localhost" as its host name to DHCP server, causing my DD-WRT to show it as "*". I went to Google and to my surprise, discovered that there isn't such an option in any Nexus ROM yet.
Found this: LINK_www_laslow_net_?p=501
To change your hostname on Cyanogen 5.x, add the following line to the bottom of /system/etc/init.d/01sysctl -- and make sure you make a backup of 01sysctl before editing it!
echo NEWHOSTNAME > /proc/sys/kernel/hostname
Click to expand...
Click to collapse
I tested it, and it didn't work. After booting, the file still read "localhost" in it, and the hostname on DHCP server reflected it.
But, I didn't get frustrated, connected with ADB, manually executed the command:
echo MyHostName > /proc/sys/kernel/hostname
checked that the file was overwritten, disabled WiFi, deleted DHCP lease, enabled WiFi back - and voila, I have a new hostname!
Then I went to search for hostname setting, which got me to /init.rc:
on boot
# basic network init
ifup lo
hostname localhost
domainname localdomain
Click to expand...
Click to collapse
Well, I guess that's the place. A tiny problem, though - it's in the boot image, which can't be easily modified. Thanks to the latest thread on update.zip creation I can probably do it myself, but I wanted to share the findings and ask for the correct way to implement.
There's a "dirty but functional" way of "disable WiFi - override /proc/sys/kernel/hostname - enable WiFi", and it's probably not a problem to stick it somewhere in the boot sequence, or even write an app that writes those changes to one of the boot scripts and allows configuration of host and domain names. But it's not the best way - DHCP might already give out a lease, and the new host name might not register.
And there's a correct (?) way of doing it, introducing it into init.rc. Since it's "on boot", I suppose that it runs after mounting the partitions - which means that the partitions are already accessible.
In this case, the best way would be executing a small shell script that would check for existence of, say, "/system/etc/settinghostdomainnames.rc" and create a default one if it's not there, then use "import /system/etc/settinghostdomainnames.rc" and set a manual trigger, like the guy is trying to do here:
LINK_groups.google.co.jp_group_android-developers_browse_thread_thread_e2f432707b735ff0
"trigger someeventtobringupnetworkinterface"
That would allow to use a custom setting for host and domain names that can be changed by SW, and adding that as another option into ROM Settings app or external app.
But the guy in question didn't succeed. What did he miss? Would it be better to do something like "on fakesystemproperty=something" and instead of manual trigger, doing "setprop fakesystemproperty something"?
I can probably test it and find out myself, but it would take loads of time compared to one of the kernel devs, and I don't even have the environment set up for modifying boot images. I was kinda hoping that one of the kernel devs would test it. I can write and post the modifications to init.rc and the custom script, they're very simple.
So, who can help me with answering the questions in the thread, and/or testing the modification?
Thanks! It's back.
Oh well, I'll keep preparing Ubuntu VM anyway
OK, first test fired - updated /init.rc in my own boot.img, checked the values. It's working, hostname is indeed modified.
Now I'll try to rewrite /init.rc in such way as to load the hostname setting from elsewhere, while not screwing the security. Will post results soon.
Setting it to the same value as the BT value would be ideal. I'm not sure how you could do that though, because the init scripts run before the frameworks load
Looking forward for a fix to this problem.
Update, but only partially on topic:
God, I hate SH scripting. Couldn't even google a normal tutorial that would explain where I went wrong. A script of 10 lines, and I can't make it work.
Let's see, I need something like this:
#!/system/bin/sh
echo "on service-exited-network_prepare" > /system/etc/net_init.rc
echo " ifup lo" >> /system/etc/net_init.rc
if [ -e "/system/etc/net_init.domain" ];
then
echo "hostname `cat /system/etc/net_init.host`" >> /system/etc/net_init.rc
else
echo "hostname localhost" >> /system/etc/net_init.rc
fi
if [ -e "/system/etc/net_init.domain" ];
then
echo "domainname `cat /system/etc/net_init.domain`" >> /system/etc/net_init.rc
else
echo "domainname localdomain" >> /system/etc/net_init.rc
fi
echo >> /system/etc/net_init.rc
Of course, this thing fails miserably with -
Syntax error: end of file unexpected (expecting "then")
What the hell am I doing wrong? Never used SH before, mostly tcsh and perl.
Thanks.
Oh well, I guess I got the problem.. Unix vs Windows file format. Sorry for bothering.
its always bothered me that you cant change the device name for wifi networks, and ive always looked for a way to change it.
kudos to you for the ambition and diligence to do it!
dont give up, if you can get it smoothed out enough im sure cyanogen will implement it in his next mod. ive always wished there was an option in wifi settings to change device name. itd be very useful for lan ip configuring and when your connected to a random hotspot lol
Ok, after fighting for a day, I still didn't manage to import another .RC file and run on service exit (I don't even see the trace of the process I'm trying to start - the first thing it does is attempting to write log, and there is no log, no matter where I put the start command), but at least for a "quick-and-dirty way" there's a very simple solution, given SD-EXT partition (I believe everyone creates it):
open terminal application, type the following command:
echo "echo YOURHOSTNAME > /proc/sys/kernel/hostname" > /sd-ext/userinit.sh
That would override the hostname of the system before boot completion.
After some reading, I believe there's nothing bad in setting the hostname twice - once default localhost in init.rc, and then overriding it using /proc/sys directory, Linux is designed to cope with that and hopefully so does Android.
So, as to pershoot's request, it's possible to write a small application to read Bluetooth device name value and write it as WiFi hostname, and include it in boot process right before 20userinit.
Now this is a task I'm not suitable for, I have no knowledge of frameworks whatsoever. Anybody up to the task?
Jack_R1 said:
After some reading, I believe there's nothing bad in setting the hostname twice - once default localhost in init.rc, and then overriding it using /proc/sys directory, Linux is designed to cope with that and hopefully so does Android.
So, as to pershoot's request, it's possible to write a small application to read Bluetooth device name value and write it as WiFi hostname, and include it in boot process right before 20userinit.
Now this is a task I'm not suitable for, I have no knowledge of frameworks whatsoever. Anybody up to the task?
Click to expand...
Click to collapse
I requested it and I'm not pershoot
Oops Sorry, my bad. Fever and lots of time in front of the computer don't do me good...
Kudos to you Jack_R1. Watching this.
Let me know if you need any help with shell scripting.
Gonna watch this and try it out later, the solution so far.
is this a stable fix?
is this confirmed to work?
Sorted out, updated with the most current info and several examples of custom ROMs.
Jack_R1 said:
Sorted out, updated with the most current info and several examples of custom ROMs.
Click to expand...
Click to collapse
I am running CM6 with a2sd and somehow the /sd-ext/userinit.rc is not executed. Even if I change permissions of the file to 777, it's not executed.
I also haven't found in init.d the script which executes userinit.rc, might be because I am running custom kernel? (wildmonks).
The only way for me to do it was to put the script in /etc/init.d/88userinit file and change it's permissions to 777
It's /scripts/userinit.sh, not userinit.rc
The execution of /sd-ext/userinit.rc used to be in /init.rc, in boot.img.
But the preferred way for most of the ROMs is to use /etc/init.d/ scripts anyway, since a lot of ROMs use them.
Changed the 1st post to reflect it.
Updated April 7th, 2011
All credit to sibere and droidzone and other devs who've developed the Data2SD codes.
Before you do anything with your phone, Pls nanodroid fisrt!!! And flash your phone at YOUR OWN RISK
It's been a while since this post last updated.
In fact, developers of HTC Desire have already create a stable method to implement Data2sd or whatever you call it, which gives you full use of EXT space to install APPs while improving I/O speed at the same time.
The theory is explained here, in case you want to take a further look at it
[DEV][DATA2SD] More space (and more I/O) for your Desire (Updated/EXT4/Flashable ZIP)
And thanks to sibere and droidzone 's great work, now we could make any ROM we like run with Data2sd. here they provide us Flashable ZIP files to make it done
[DATA2SD] Flashable zips for converting any Rom to Data2SD
Updated Instructions and Zips (14/Mar/2011)
I've streamlined the installation procedure so as to make it more generic and compatible with the newer StarBurst zips.
Basic Installation Steps for Data2SD
1. Install your ROM
2. Install the A2SD Killer (specific for your ROM)
3. Next step differs depending on whether you're reflashing your Rom on an existing install, or whether you are installing for the first time.
If you're installing the ROM for the first time:
· Reboot once after running the A2SD Killer
· Setup the timezone, language etc (But not your Google Account/Market)
·Reboot to recovery once again and install the Data2SD Installer
If you're reflashing the ROM (after having installed Data2SD once previously)
·Do not reboot after running the A2SD Killer
·Install the Data2SD Re-Installer right away
·Now reboot.
Click to expand...
Click to collapse
Download Link:
http://hotfile.com/dl/110226722/85a18a8/Data2SDv11.zip.html
http://www.easy-share.com/1914241904/Data2SDv11.zip
Important Notes from droidzone
Fully supports Cyanogen
Fully supports Clockworkmod3.0+ (Edified)
I wanted to consolidate all the flashable zips for Data2SD into one place, so that I will find it easy to update the links as I modify the scripts, and to also help Sibere to point his link to this post from OP, so that he doesnt need to reupload each file as they are modified.
Once again, I must assert that Data2SD is totally Sibere's work with other devs who've developed Data2SD code of their own. In my opinion, however, this is the best!
My contribution is conversion of his excellent code into flashable scripts which may be installed via Recovery. So you dont have to type out the code.
The flashable zip is packed as a package of zip files. Each zip file within the package is seperate flashable zip
There are the following files:
Killer, Installer and Reinstaller files for Sense Roms
A2SDKillerV11_Sense.zip
Data2SDInstallerv1.3_Sense.zip
Data2SDReInstallerv1.3_Sense.zip
Installer and Reinstaller files for AOSP Gingerbread Roms and CM7 nightlies (excluding Cyanogen 6 and MIUI 2.2 , but including Cyanogen 7 nightlies and MIUI 2.3.3 )
A2SDKillerV11_GB.zip
Data2SDInstallerv1.3_GB.zip
Data2SDReInstaller1.3_GB.zip
Installer and Reinstaller files for Cyanogen 6 and MIUI 2.2 (Not for CM7 nightlies or MIUI 2.3.3), which are Older Version
A2SDKillerV9.zip
Data2SDInstaller_cyanogen.zip
data2sd-Reinstall_cyanogen.zip
Whether you are trying this method for Sense or AOSP Roms, the installation procedure is same. Only the file is different.
Click to expand...
Click to collapse
Following droidzone's instruction, I tried these flashable ZIPs with MIUI 1.4.1(Gingerbread 2.3.3)
A2SDKillerV11_GB.zip
Data2SDInstallerv1.3_GB.zip
And it's working just fine. No random reboots, no data or APP lost or system crash after reboot. It's stable and fast!
One more note, you can ignore the previous information below...
————————————————————————————————————————————————————————————————————
updata from
melethron's post, and his update package data2whatever.zip included.
you can buy melethron a beer if you want. All credits to melethron!
I test the script with new install MIUI N1 12.24,
so far no reboot issues, or data corruption.
[DATA2whatever] Flashable All-in-one-Solution for Data2sd (HUGE update (dec 23th))
data2whatever v0.2
Features:
- Supports: Ext2, Ext3, Ext4 (and if kernel supports it: ) btrfs, ReiserFS
- Supports loop device as optional addon (as siberes data2sd)
- Flashable zip for many app2sd ROMs (no long setup required)
- It does a e2fsck (disk check) on every boot and creates a logfile on the sdcard (/sdcard/e2fscklog.txt)
- looks nice if you do a logcat on boot
- no "settings lost on reboot" bug like in my old or siberes script
- changes the scheduler for the sd-card and internal to noop for better performance on sd.
- Nandroid Backup of EXT2/3/4 external with AmonRa 2.0.0.1 or any clockwork recovery.
- Removes the common app2sd scripts on its own
Requirements
- A second partition (same as app2sd - Min 512 mb - 1024mb is highly recommended - max 2048 MB or there will be issues with market) in any format (as long as the kernel supports - ext2/3/4 support is default in most kernels - Ext4 or ReiserFS is recommended).
- An app2sd or non app2sd ROM (data2sd versions wont work) (this SHOULD work with most or at least many ROMs . Roms that are confirmed to work can be found in the post below. Please report to me it it works or not so i can update this thread. If it doesn't work i try to make it compatible asap. )
Installation
1.) Full wipe (at least needed on first installation)
2.) Flash the app2sd Version of the ROM of your choice
3.) DONT REBOOT
4.) If you rebooted then start over at 1.)
5.) flash the attached "data2whatever.zip"
6.) now reboot
ADDITIONAL INFO: Even without "life on the edge" you should watch the first 4 "don't"s of "life on the edge". The normal script use the same disk safety methods as NTFS on Windows or EXT4 on linux. But as you know you shouldnt just switch off the computer because there can still be issues in very rare cases. Reboots with tools like "snqs power menu" is the same as a batterypull (or pulling the ac plug on PC) and this isn't good in general (and this also applies for using it with app2sd). If you want to go to recovery just make a normal shutdown and switch the phone on with "volume down" button pressed.
Optional life-on-the-edge add on
you can find this add on in melethron's original post, and try it on your own risk
This patch has the same effect as sibere's and ownhere's script (loop device - the way ownhere does in v4 doesnt work though). Other than those scripts it this addon doesnt need any repartitioning or other setup (like FAT or a third partition) and can simply be installed or removed with a flashable zip. All you need for this is a normal ext 2/3/4 partition (as above ^^). Ext4 is recommended for this (as above) since it is the fastest of those 3. This patch is more risky than normal ext3/4 considering the possibility of data loss. If you want to use this add-on you should watch the following (this also applys to ownheres and sibere script and is NOT more risky than their scripts):
- DON'T use the reboot of snq's powermenu (or any other reboot app)
- DON'T use anything in the "ROM Manager" that makes it reboot.
- DON'T do adb reboot / abd reboot recovery / adb reboot bootloader
- DON'T pull the battery while the phone is on (this should be obvious)
- DON'T remove the "sync" mount options for the Quadrant "boost" (this is a fake boost anyway)
All of this is like a powerloss for the sd-card and has a high change of data corruption.
From my test with this i give you an estimate what can happen if a powerloss occurs or any of the 5 points above happen:
- 50% general chance of corruption that will be autofixed on boot (not a problem)
- 10% chance of forcecloses after reboot of some apps (this can be fixed by deleting the app data or restoring it with titanium (or other) backup)
- REALLY tiny chance (didnt happen for me in over 40 "simulated" powerlosses) that partition gets corrupted (needs complete repartitioning of the microSD so all data on it will be gone then)
As long as you watch the 5 points above and as long as you don't drop the phone and the battery jumps out this will be safe.
Installation of the addon:
- Flash the "life-on-the-edge.zip" any time after you installed "data2whatever".
Installation of the addon:
- Flash the "life-on-the-edge-UNPATCH.zip" any time after you installed "data2whatever" and the addon. (this will revert back to the normal script)
Personal remark: While this is a improvement over normal ext4 it is not the "holy-grale" of a data2sd lag fix. I'm not using this myself and use a ReiserFS as second partition instead which is more safe and completly feels the same as a "loop" device considering performance.
--------------------------------------------------------------------------------
__________________________________________________________________________________
Dec14 info update:
I uploaded A mod script for CM6.1 stable by Carrol
Carrol changes the script to create a ext4 loop device on EXT4 partition.
Code:
$BUSYBOX mkdir /mnt/asec/extdata
if [ ! -e /data/data2sd.ext.finish ];
then
echo "+++Need create ext4 loopback device for data, please wait... this is 1/5 size of your ext partition"
extsize=`$BUSYBOX df /dev/block/mmcblk0p2|$BUSYBOX grep mmcblk0p2|$BUSYBOX awk '{print $2}'`
datasize=`$BUSYBOX expr $extsize / 5 / 1024`
$BUSYBOX dd if=/dev/zero of=/data/ext4 bs=1048576 count=$datasize
/system/xbin/mkfs.ext4 -b 4096 -m 0 -F -L userdata /data/ext4
/system/bin/tune2fs -o journal_data_writeback /data/ext4
/system/bin/e2fsck /data/ext4
#/system/bin/tune2fs -O ^has_journal /data/ext4
#$BUSYBOX mount -o loop,errors=continue,noatime,nodiratime,nosuid,nodev /data/ext4 /mnt/asec/extdata
$BUSYBOX mount -o loop,barrier=0,nobh,nouser_xattr,errors=continue,noatime,nodiratime,nosuid,nodev /data/ext4 /mnt/asec/extdata
$BUSYBOX chown 1000.1000 /mnt/asec/extdata
$BUSYBOX chmod 771 /mnt/asec/extdata
$BUSYBOX cp -a /data/data /mnt/asec/extdata/
sleep 1
$BUSYBOX umount /mnt/asec/extdata
sleep 1
$BUSYBOX touch /data/data2sd.ext.finish
fi
/system/bin/e2fsck -y -v -f /data/ext4
#$BUSYBOX mount -o loop,sync,errors=continue,noatime,nodiratime,nosuid,nodev /data/ext4 /mnt/asec/extdata
#$BUSYBOX mount -o loop,errors=continue,noatime,nodiratime,nosuid,nodev /data/ext4 /mnt/asec/extdata
$BUSYBOX mount -o loop,barrier=0,nobh,nouser_xattr,errors=continue,noatime,nodiratime,nosuid,nodev /data/ext4 /mnt/asec/extdata
$BUSYBOX chown 1000.1000 /mnt/asec/extdata
$BUSYBOX chmod 771 /mnt/asec/extdata
Note that this script is for CM6.1 stable only, only ONE EXT partition needed on your SDCard, and it will be formated into EXT4, do nanodroid before you try
Also a CM6.1 ROM with Data2Ext by Carrol can be found here
CM6.1 ROM with Data2Ext by Carrol
download: http://rom.anshouji.com/htc/N1/bbs.anshouji.com-N1-data2sd-20101213.zip
________________________________________________________
ownhere Data2Ext script V4
Data2ExtV4
2010/12/12 update V4 script:
/data/:ext4, disable journaling
/data/data:ext4 loopfile on ext4 device, enable journaling on ext4 device, disable journaling on ext4 loopfile, for fast and stable sqlite3 access.
really smooth this time
Click to expand...
Click to collapse
There's a version for Desire, which is here [DATA2EXT] [11/Dec] FULL BENCHMARK, V4, Improve the efficiency of IO
While improving IO efficiency, it moves all userdata to EXT so to avoid insufficient ROM space, cos the whole EXT is recognized as the internal ROM.
with ownhere's v4 script, I got my miui rom working, no data lost or crash after reboot/battery-removed:
1. miui rom 12.03 clean installation(a2sd+ script removed), then flash update.zip of v4 script. working. applying 12.03 to 12.10 and 12.10 to 12.11 ota packages, working.
2. miui rom 12.11 clean installation, flash v4 update.zip, working.
3. miui rom 12.11 with a2sd+ running, 38 apps installed and /data/data moved to ext. The v4 update.zip can still do the job.
However, one problem is that Root explorer couldnot display Chinese filenames of APK , showing only ???. and if install those apks via root explorer, it just reports errors...
Another thing i am not sure of is not knowing how much v4 script could improve when there is only 1 ext partition. According to ownhere, 2 ext partitions are needed to make the best out of his v4 script...
I attached the v4 updtae.zip - Data2ext_update.zip ,in case you might wanna try:
1. BEFORE you try this package, you need to remove the app2ext script(file like 04apps2sd or 01 apps2sd) from /system/etc/init.d, or you would only get bootloop going on and on
2. And of course, Nanodroid...
3. disable signature checking in recovery...
______________________________________________________________________________________________
I tried merging those files into MIUI N1 ROM.
When N1 boots for the 1st time, everything's working just fine.
Now we know the previous script is faking the Quadrant score...
Quadrant bechmark really rocks with I/O scoring 8000+ and a total score @ 3000+
But after reboot, there came some issues:
System config could not be saved;
Home button wouldn't work;
Flight mode and Quiet mode missing in the reboot menu...
Could someone pls help to rewrite the script to fit in N1 ROM?
I think people using N1 would interested in such a script or rom that brings N1 more I/O performance and more space for Apps.
But I have no knowledge of coding, don't know how to fix the issues above.
So I add download link of the script CREATED by ownhere, not by me, hoping someone could make a N1 MOD...
data2ext.zip
data2ext.zip is not a flashable package
Thanks!
mattrb said:
This goes in Q and A.
Also the answer is darktremor. A simple search of the the Nexus One Android Development gets that answer.
Click to expand...
Click to collapse
Sorry, but I don't think Darktremor Apps2SD script could do the job.
Since there is difference between Apps2SD and Data2Ext:
Apps2SD moves
/data/app, /data/app-private and /data/dalvik-cache to EXT
And with some commands /data/data could also be moved to EXT
But Data2Ext moves
/data/app to EXT4
/data/data to a virtual EXT2 device on EXT4, which is the trick to improve IO efficiency working at peak level...
SO I don't know if there is a answer fort this in Q&A...
this comes up after searching
G1 data2sd instruction works for the N1 i suppose ?
http://forum.xda-developers.com/showthread.php?t=527636&highlight=app2sd
**There is NO booting into recovery and wiping of the phone!**
My bad for not being clear on the wipe instructions!
1) (optional) If you are to wipe it (your choice it is not required), then press menu->settings->SD card & phone storage->scroll to bottom of screen and select "Factory data reset". This will wipe the /data partition only removing all apps and settings. BACKUP YOUR /data dir to sd, First or you will need to down load all your apps again to include paid apps!!
2) place data2sd.img in root of SDcard (fat32)
3) terminal in or adb shell in.
4) cp /sdcard/data2sd.sh to /data/local/bin - to copy the script to your user-space
5) chmod 0750 /data/local/bin/data2sd.sh - to make it executable
6) /data/local/bin/data2sd.sh or data2sd.sh may work to run the script
7) once the install is done it should tell you to reboot. If you had the ddms debugger running, you can observer the log as it is working.
8) done. It may boot a little longer if you clean-slate installed and then restored your apps by copying them back into /data/app and /data/app-private which has the affect of reinstalling everything, and thus the boot will take a while if you have alot of apps like I do. Again you can observe this as the Android boots if you have the debugger running.
Click to expand...
Click to collapse
I'm also confused, how does darktremor move all of that to ext? Please explain. I thought darktremor moves apps to ext. If you fail, then you sir are an idiot and gtfo.
A "simple" reread (If that's even enough, maybe 100x more for you) would've told you want he wanted.
Sorry for invading your post jayfallen!!
I for one, am glad you posted this and would like to try it once you get it going.
Try this: http://forum.xda-developers.com/showthread.php?t=853001
I recommend only moving the data of non-essential apps and those apps which DO NOT contain security sensitive data (games, Google Earth, etc. should be fine).
I edited the thread title, and added download link of the script created by ownhere.
someone might wanna take a look, if you're interested in bring your N1 more I/O performance and more space for Apps.
Thanks for everyone replying this thread. I will try your suggestions.
eVil's hd rom~
it's not work on the evil's hd sense?i try that last night~ but it's very hard!!!
i m abt to try this
http://www.miui.com/thread-10723-1-1.html?extra=page=1
wish me luck
the thread @ miui.com was posted by me earlier...
that rom is just experimental, if you don't reboot, everything works fine.
once rebooted, config lost and homebutton lost...
I don't know how to fix, that's why I start this thread @ xda, hoping someone could make it work for N1...
Wow this I want
Not sure if this can help..
Found a post on HiAPK (a Chinese Android discussion forum)
here's the link to the post:
http://www.hiapk.com/bbs/viewthread.php?tid=717815&extra=page=1&filter=type&typeid=211
And here's the link to the ROM:
http://rom.anshouji.com/htc/N1/bbs.anshouji.com-N1-data2sd-20101208.zip
The rom is said to be based on Cyanogen Mod 6.1 Stable, with data2EXT enabled by default.
The attached screenshot comes from a user of the data2Ext rom, note that the internal storage has 0.9GB left.
luciefer said:
it's not work on the evil's hd sense?i try that last night~ but it's very hard!!!
Click to expand...
Click to collapse
That because the current script will only move system/app to ext. There is nothing else in there to tell it to move any other folder, thus failing.
there's been new development...
as houzuoguo mentioned, a CM6.1stable+data2ext mod ROM is out, but there're still some issues
ownhere update his script to V3
http://forum.xda-developers.com/showthread.php?t=859419
1.change loopback device to real partition for powersave and better write performance.
2.disable second partition's journaling.
3.You need 3rd partition for /data/data. But even without the third partition of this script can also work(not stable). My partition settings:second partition:1.5G, thrid partition:0.5G
meanwhile, another new approach is coming out:
http://forum.xda-developers.com/showthread.php?t=868102
NILFS2 - data2nilf2 will be much faster then data2ext and won't have Lags.
whoa
i m glad there are so many new development out everyday
feel so good knowing the n1 is not being left behind
speaking of this is pretty freaking awesome
houzuoguo said:
Not sure if this can help..
Found a post on HiAPK (a Chinese Android discussion forum)
here's the link to the post:
http://www.hiapk.com/bbs/viewthread.php?tid=717815&extra=page=1&filter=type&typeid=211
And here's the link to the ROM:
http://rom.anshouji.com/htc/N1/bbs.anshouji.com-N1-data2sd-20101208.zip
The rom is said to be based on Cyanogen Mod 6.1 Stable, with data2EXT enabled by default.
The attached screenshot comes from a user of the data2Ext rom, note that the internal storage has 0.9GB left.
Click to expand...
Click to collapse
...
That is a huge improvement in IO!
Lets hope this reaches a stable state soon
I wonder why quadrant weighs so much on disk IO for the total score.
Would this be possible on other devices? lets say the g2?
Would someone mind explaining what tangible improvements this makes? Obviously there is an impressive boost in Quadrant scores, but I'm unsure what difference it makes to the actual operation of the device.
bcpk said:
Would someone mind explaining what tangible improvements this makes? Obviously there is an impressive boost in Quadrant scores, but I'm unsure what difference it makes to the actual operation of the device.
Click to expand...
Click to collapse
App2sd u get 512mb for ext3.
Data2ext u get at least 2gb for apps and stuff
Lol. Are u serious. For io scores it cheats. See the script. Fake ext2 for quadrant
truth to be told,they say TTL 2000+ and IO 3000 is the actual scroe...
I bought this slab for my kids and wanted to get the most of it, of course XDA is where I turn to in my time of need. So, I read all the tutorials and here is where I am at:
1. Rooted with Uruk 1.0
2. Set Comp Cache to 100Mib
3. Set Swap to 100
4. Removed buttons and installed button savior
It still feels sluggish, but definitely better than stock firmware. I realize this thing is not a Ferrari, but I feel it can be snappier. What other tweaks can I do to get maximum horsepower and not care about battery? I want this thing to run full throttle. What can you guys recommend?
Archos 70s
A few thoughts
rezn said:
1. Rooted with Uruk 1.0
Click to expand...
Click to collapse
This is a good start
rezn said:
2. Set Comp Cache to 100Mib
3. Set Swap to 100
Click to expand...
Click to collapse
I think this is what's helping kill you...
Compcache is a chunk set aside from free system ram (we only have 256mb!!!), then compressed - not a very nice operating environment, but helps when theres more in memory than can be held, it'll ship the less used things to the comp - Honestly, I don't think you should go more than 15-25% of total system ram on this setting, you dont want to kill your fast, albiet small memory.
I think swap kinda sucks, even though I keep a small one on my system, but that's mainly because of the smallish spec we have to deal with... I usually dont keep this too big either - everything that gets shipped there by the system takes FOREVER to load. Maybe it works better mounted on a really fast sdcard, but I think it would be negligible.
My thoughts? Set compcache to 24-32mb and swap to 2x your compcache.
rezn said:
I realize this thing is not a Ferrari, but I feel it can be snappier. What other tweaks can I do to get maximum horsepower and not care about battery? I want this thing to run full throttle.
Click to expand...
Click to collapse
What you do with your cpu scaling has a major part to do with power, both horses and battery.
If you don't care about your battery life, set your power management to overdrive, set the cpugovernor to performance, and read up on this thread http://forum.xda-developers.com/showthread.php?t=1169625 , it will help you lock your cpu down after boot, so nothing non-SU can hijack your speeds.
Start there, and see how it runs
Thanks wokker! You provided some great information and helped me understand those compcache and swap settings better. I am going to try everything and do your suggestions and then will let you know how it goes.
Add'l recommendations
Some other tweaks you can try with a rooted Archos is the SuperCharger Script: http://forum.xda-developers.com/showthread.php?t=991276. I used Option 6 - Balanced. If you need to change your busybox version download Busybox from Stephen (Stericson). Busybox installer from jrummy16, as much as i prefer that, doesn't install correctly on my 70IT.
And SD Speed Increase from the market, based on the script from here: http://forum.xda-developers.com/showthread.php?t=1010807, to increase the cache size for SD Card reading. 2MB is the standard choice (By default the Archos only has 128kb allocated!)
Oh and turn off Live wallpapers, as nice as it looks it really bogs down the tablet!
gersto said:
Some other tweaks you can try with a rooted Archos is the SuperCharger Script: http://forum.xda-developers.com/showthread.php?t=991276. I used Option 6 - Balanced. If you need to change your busybox version download Busybox from Stephen (Stericson). Busybox installer from jrummy16, as much as i prefer that, doesn't install correctly on my 70IT.
Click to expand...
Click to collapse
I've been using AutoKiller Memory Optimizer - and from what I read in the link above is that this SuperCharger script is pretty much the same - but what about the other tweaks AKMO allows, does the SC script change those settings too?
Honestly, I like AKMO (enough to donate even!), and have been using it for sometime on my G1 and A101 (with great success, it really helps optimize everything), but don't like the load time at boot to enact all the settings, so if there's a way to script the changes I want, I would rather that.
Anyone with a bit more linux/android knowledge care to help? (I only know enough to be dangerous!)
Nope.
Nothing does what V6 SuperCharger does.
Not AKMO, Not AMM, not any minfree tweaker.
Because nothing actually fixes messed up OOM Groupings and Priorities.
As proof, nothing eliminates launcher redraws.
Except for V6.
As for the other tweaks, I'm including pretty much all the best tweaks that I can find with V8 SuperCharger - I want to implement a total system optimization.
For starters, see the following post for the 3G TurboCharger and Kick Ass Kernel Tweaks...
http://forum.xda-developers.com/showpost.php?p=15808025&postcount=208
A taste of V8... you can grab 3G TurboCharger & Kick Ass Turbo Tweak Installers from here...
3G TurboCharger and Kick Ass Kernel Tweaks
You can modify the 3G script to add metalspring's additional build.prop entries
zeppelinrox said:
For starters, see the following post for the 3G TurboCharger and Kick Ass Kernel Tweaks...
http://forum.xda-developers.com/showpost.php?p=15808025&postcount=208
Click to expand...
Click to collapse
Are these going to work alright on our systems?
V6 seems to be doing alright, but I had to heavily modify the KickAssKernel script to work on my system, and even then, I could only get the kernel tweaks to take, none of the cfq io scheduler tweaks, normalized sleeper, or noatime are going, but I'm not familiar enough with linux commands to really control the situation.
This is how I got the kernel tweaks to run:
Code:
sysctl -w vm.swappiness=0
sysctl -w vm.oom_kill_allocating_task=0
sysctl -w vm.panic_on_oom=0
sysctl -w vm.dirty_background_ratio=60
sysctl -w vm.dirty_ratio=95
sysctl -w vm.min_free_kbytes=4096
sysctl -w vm.vfs_cache_pressure=10
sysctl -w kernel.panic=0
sysctl -w kernel.panic_on_oops=1
sysctl -w kernel.msgmni=2048
sysctl -w kernel.msgmax=64000
sysctl -w kernel.shmmax=268435456
sysctl -w kernel.sem='500 512000 64 2048'
sysctl -w kernel.sched_features=24189
sysctl -w kernel.hung_task_timeout_secs=0
sysctl -w kernel.sched_latency_ns=18000000
sysctl -w kernel.sched_min_granularity_ns=1500000
sysctl -w kernel.sched_wakeup_granularity_ns=3000000
sysctl -w kernel.sched_compat_yield=1
sysctl -w kernel.sched_shares_ratelimit=256000
sysctl -w kernel.sched_child_runs_first=0
sysctl -w kernel.threads-max=5000
sysctl -w net.core.wmem_max=524288
sysctl -w net.core.rmem_max=524288
sysctl -w net.ipv4.tcp_tw_recycle=1
sysctl -w net.ipv4.tcp_rmem='6144 87380 524288'
sysctl -w net.ipv4.tcp_wmem='6144 87380 524288'
sysctl -w vm.dirty_writeback_centisecs=2000
sysctl -w vm.dirty_expire_centisecs=1000
The KickAssKernel would return ALOT of errors, until I cleaned it up to the above, then it all took just fine.
I would really like to get the other tweaks going... any suggestions?... Seems these systems with the Uruk CFW dont play exactly the same as others...
EDIT: I have tried the KickAssKernel Installer, the kernel tweaks take, but everything else (cfq, sleeper, etc.) errors out with a syntax error: unexpected line - I have tried to clean the cfq code in it's simplest form to:
Code:
for i in $(ls -d /sys/block/*)
do
echo "cfq" > $i/queue/scheduler
done
Still returns a syntax error...
Question
Does anyone know if JIT vm is enabled in UrukDroid?
wokker666 said:
EDIT: I have tried the KickAssKernel Installer, the kernel tweaks take, but everything else (cfq, sleeper, etc.) errors out with a syntax error: unexpected line - I have tried to clean the cfq code in it's simplest form to:
Code:
for i in $(ls -d /sys/block/*)
do
echo "cfq" > $i/queue/scheduler
done
Still returns a syntax error...
Click to expand...
Click to collapse
It may be a busybox issue. What version are you running?
zeppelinrox said:
It may be a busybox issue. What version are you running?
Click to expand...
Click to collapse
I'm running 1.17.2 - Comes stock with UrukDroid
wokker666 said:
Code:
for i in $(ls -d /sys/block/*)
do
echo "cfq" > $i/queue/scheduler
done
Still returns a syntax error...
Click to expand...
Click to collapse
Try...
Code:
for i in /sys/block/*/queue/scheduler
do
echo noop > $i
done
To see what schedulers that you have available type this in terminal:
cat /sys/block/*/queue/scheduler
You'll see a bunch of lines that look like this "noop anticipatory deadline [cfq]"
The one in the brackets is what is being used, the others are available options.
For our phones, noop or deadline are preferable.
zeppelinrox said:
Try...
Code:
for i in /sys/block/*/queue/scheduler
do
echo noop > $i
done
To see what schedulers that you have available type this in terminal:
cat /sys/block/*/queue/scheduler
You'll see a bunch of lines that look like this "noop anticipatory deadline [cfq]"
The one in the brackets is what is being used, the others are available options.
For our phones, noop or deadline are preferable.
Click to expand...
Click to collapse
That worked, got my scheduler running noop now, it was running anticipatory - after reading up on the different schedulers, dosen't seem efficient for flash memory that's for sure!
Making this unit better one tweak at a time!
Awesome... I'm really glad it worked!
It's tough when something works on one configuration but it's a syntax error on another.
Looks like I should tweak the tweak script
Updated the 3G and Kernel scripts...
Included the above adjustment as well as a couple of other things...
Oh yeah... V6 SuperCharger is on XDA's front page!
Link to article: http://www.xda-developers.com/android/make-the-best-out-of-your-android-device-with-v6-supercharger/
zeppelinrox said:
Oh yeah... V6 SuperCharger is on XDA's front page!
Link to article: http://www.xda-developers.com/android/make-the-best-out-of-your-android-device-with-v6-supercharger/
Click to expand...
Click to collapse
Well deserved i must say!
I'll have to try the 3G and kernel tweaks on my Eris and the Archos70....
Thank you
I had to update the 2 scripts again... the kernel script wasn't doing the noop/io schedular stuff or noatime...
Sorry
zeppelinrox said:
Thank you
I had to update the 2 scripts again... the kernel script wasn't doing the noop/io schedular stuff or noatime...
Sorry
Click to expand...
Click to collapse
Heh, I wouldn't worry about it, I'm pretty positive everyone here on xda, and everywhere else really appreciates your work, keep it up!!!
One thing I might suggest (if it's even possible), you may want to put some cpu governor settings and locks in your script, make a few different choices available.
I've really noticed a huge difference in performance ever since I reset the gov, and locked in the settings so nothing non-SU can hijack the values. (It may not be for your script though, so many different units out there with wildly different specs)
This is the gov / lock script I use: (thank you arpruss!)
Code:
cd /sys/devices/system/cpu/cpu0/cpufreq
echo interactive > scaling_governor
chmod 644 scaling_max_freq
echo 100000 > scaling_max_freq
chmod 444 scaling_max_freq
chmod 644 scaling_min_freq
echo 800000 > scaling_min_freq
chmod 444 scaling_min_freq
This has completely locked my cpu to progs that arent determined enough to use SU capability, i.e. Netflix (likes to clock you down when more is needed)
Reference thread: http://forum.xda-developers.com/showthread.php?t=1169625
You may also (again, if it's possible) want to leave *vm.swappiness=0* as a choice to the user - some like to use compcache and swap, and if the kernel tweak goes thru unchecked, the user will have their swap disabled and not even know it, and to boot, the system will start the swap services, reserve the space for them, and just never use them!
I had thought about including overclocking related settings but decided against it as I'm pretty sure that no one set of tweaks would apply to all roms.
I was actually going to leave the swappiness out for the same reason - not all roms have swap. But I forgot to remove it
zeppelinrox said:
I had thought about including overclocking related settings but decided against it as I'm pretty sure that no one set of tweaks would apply to all roms.
Click to expand...
Click to collapse
Not so much overclock settings, because alot of roms out there don't have OC kernels, but more like 'processing efficiency' settings.
Pretty much every rom has the basic governor settings, and most of those go a little beyond offering a couple more, but not all of them give a clear cut way to select what you want.
Maybe throw some basic settings in the script - ondemand, powersave, conservative, performance - and maybe even throw in interactive for those who can use it in their roms.
*Just the thoughts of a crazy, rambling perfomance junkie*
Hello guys,
I've compiled the CIFS module for our X10 (stock kernel version for 2.3.3, that is 2.6.29-00054-g5f01537 ).
Introduction
CIFS is for allowing to mount SAMBA/CIFS shares from Windows (mostly), so that they appear like a folder on the phone.
Specifically, you can watch movies on your X10 from a share, without first copying them to the phone. In fact you can mount any SAMBA share and do all operations with it.
There are two modules that do the job: cifs.ko (which is the main one) as well as nls_utf8.ko which just provides UTF-8 support for file/folder names within the shares.
Installation
Once you have unpacked the zip and extracted the two modules into the folder of your choice, the commands are these:
Code:
adb push "nls_utf8.ko" /sdcard/nls_utf8.ko
adb push "cifs.ko" /sdcard/cifs.ko
adb shell
su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
cd /system/lib/modules
cp /sdcard/nls_utf8.ko .
cp /sdcard/cifs.ko .
insmod nls_utf8.ko
insmod cifs.ko
mkdir /sdcard/cifs
mount -o username=<yours>,password=<yours>,iocharset=utf8 -t cifs //<serverip>/<sharename> /sdcard/cifs
Now you can cd to your /sdcard/cifs and see the files shared there.
Observations
1. nls_utf8.ko is not mandatory and if your files don't have UTF-8 characters and only ascii, you can skip it IF you remove the isocharset=utf8 from the mount command above.
2. Music will stutter with all players I've tried. found an opinion that might be android lowlevel subsystem for reading mp3 files, and that they don't buffer enough - and given the latency over WIFI, this will create pauses / stuttering in the music. However, you can still copy the audio files, etc.
3. Movie playing works! I've tried RockPlayer for few minutes and didn't have an issue (seems it handles buffering very well) since it is software and thus they don't rely on some Android codec / etc.
4. Skip works! Again in Rock Player, you can skip in the movie and it takes a bit to skip there, but it does.
5. umount usually fails, since I assume, Android apps don't really exit and don't really free the resources. Once a file open, it doesn't let me un-mount saying that the resource / device is busy.
Download
Use it at your own risk!
cifs.zip
Chefs can bundle the files within the ROMs they offer - but please add this link into descriptions so that people can discuss issues they might encounter.
Cool.. Will try..
Sent from my X10i using XDA Premium App
nice! i am gonna try this!
New toy I'll give this a go tonight and report back. Thanks!
Hi viulian,
Thanks for the module. Would you mind if I include it in the hotfix for my rom?
Cheers,
z
zdzihu said:
Hi viulian,
Thanks for the module. Would you mind if I include it in the hotfix for my rom?
Cheers,
z
Click to expand...
Click to collapse
Absolutely no problem Z please do.
This module definetly requires an app to manage CIFS, mounting them with selected user/pass/path.
You can try cifs manager, its good.
Btw i thought the new sources weren't released yet.
I'm using old 2.1 sources and I could build these modules using Sony's blog post about how to compile kernels (with their CodeSourcery compiler) and a bit of Google foo.
Btw, I have another one ready, the cpufreq_interactive one which I'm creating a new thread now.
Later edit:
Although initially I read posts complaining about Sony's decision to keep the old 2.1 kernel (2.6.29) instead of the recommended (2.6.32) for GingerBread, it turned out that it was actually a smart move
Basically, the cifs module at least was much more difficult to port, due to the slow_work.ko module that needed to be compiled as well and inserted before.
viulian said:
Hello guys,
I've compiled the CIFS module for our X10 (stock kernel version for 2.3.3, that is 2.6.29-00054-g5f01537 ).
Introduction
CIFS is for allowing to mount SAMBA/CIFS shares from Windows (mostly), so that they appear like a folder on the phone.
Specifically, you can watch movies on your X10 from a share, without first copying them to the phone. In fact you can mount any SAMBA share and do all operations with it.
There are two modules that do the job: cifs.ko (which is the main one) as well as nls_utf8.ko which just provides UTF-8 support for file/folder names within the shares.
Installation
Once you have unpacked the zip and extracted the two modules into the folder of your choice, the commands are these:
Code:
adb push "nls_utf8.ko" /sdcard/nls_utf8.ko
adb push "cifs.ko" /sdcard/cifs.ko
adb shell
su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
cd /system/lib/modules
cp /sdcard/nls_utf8.ko .
cp /sdcard/cifs.ko .
insmod nls_utf8.ko
insmod cifs.ko
mkdir /sdcard/cifs
mount -o username=<yours>,password=<yours>,iocharset=utf8 -t cifs //<serverip>/<sharename> /sdcard/cifs
Now you can cd to your /sdcard/cifs and see the files shared there.
Observations
1. nls_utf8.ko is not mandatory and if your files don't have UTF-8 characters and only ascii, you can skip it IF you remove the isocharset=utf8 from the mount command above.
2. Music will stutter with all players I've tried. found an opinion that might be android lowlevel subsystem for reading mp3 files, and that they don't buffer enough - and given the latency over WIFI, this will create pauses / stuttering in the music. However, you can still copy the audio files, etc.
3. Movie playing works! I've tried RockPlayer for few minutes and didn't have an issue (seems it handles buffering very well) since it is software and thus they don't rely on some Android codec / etc.
4. Skip works! Again in Rock Player, you can skip in the movie and it takes a bit to skip there, but it does.
5. umount usually fails, since I assume, Android apps don't really exit and don't really free the resources. Once a file open, it doesn't let me un-mount saying that the resource / device is busy.
Download
Use it at your own risk!
cifs.zip
Chefs can bundle the files within the ROMs they offer - but please add this link into descriptions so that people can discuss issues they might encounter.
Click to expand...
Click to collapse
Thanks viulian, very nice modules! May I include it in my rom?
Regards
Erick
Hello Erick, yes. Please add a link in your descriptions / thread / patches page etc, so people would also come here to check for possible issues, share experiences etc.
viulian said:
Hello Erick, yes. Please add a link in your descriptions / thread / patches page etc, so people would also come here to check for possible issues, share experiences etc.
Click to expand...
Click to collapse
For sure, thanks!
Hello friend,
Just wondering if I can install this through android terminal rather than adb?
Same commands/process? Thx
Aphex33 said:
Hello friend,
Just wondering if I can install this through android terminal rather than adb?
Same commands/process? Thx
Click to expand...
Click to collapse
Yes - if you handle copying the module to sdcard separately and then you become root in terminal, then it's the same.
viulian said:
Yes - if you handle copying the module to sdcard separately and then you become root in terminal, then it's the same.
Click to expand...
Click to collapse
Thx for quick response, become root in terminal? Explain please.....buy the way your modules rock! Currently using interactive.ko
Aphex33 said:
Thx for quick response, become root in terminal?
Click to expand...
Click to collapse
When you start the terminal, you notice you have a $ sign displayed to the left of the command prompt. That means you do not have the rights to do most things, since $ is for standard (limited) user.
What you need is to type command
Code:
su
And then your prompt will change to the dash sign #.
That means now you have full control over the phone, and you can start typing the commands.
Please double check what you do, and that you typed correctly - otherwise, as root, you might render your phone useless. Do not attempt if you don't feel confident enough and that you know what you are doing.
viulian said:
When you start the terminal, you notice you have a $ sign displayed to the left of the command prompt. That means you do not have the rights to do most things, since $ is for standard (limited) user.
What you need is to type command
Code:
su
And then your prompt will change to the dash sign #.
That means now you have full control over the phone, and you can start typing the commands.
Please double check what you do, and that you typed correctly - otherwise, as root, you might render your phone useless. Do not attempt if you don't feel confident enough and that you know what you are doing.
Click to expand...
Click to collapse
Thank you once again.
viulian said:
When you start the terminal, you notice you have a $ sign displayed to the left of the command prompt. That means you do not have the rights to do most things, since $ is for standard (limited) user.
What you need is to type command
Code:
su
And then your prompt will change to the dash sign #.
That means now you have full control over the phone, and you can start typing the commands.
Please double check what you do, and that you typed correctly - otherwise, as root, you might render your phone useless. Do not attempt if you don't feel confident enough and that you know what you are doing.
Click to expand...
Click to collapse
Hello, so If I have this correct, after placing the module in the correct place I have to type the commands in the first post word for word, correct? Apologize for being a noob, just wanna make sure.
hello guy
I dont know how to mount files from Windows. Someone explains clearly , please
Sorry for being noob. I think this module is awesome but dont know how to use
Got an exec format error when trying to insmod.
What can i try to solve this please ?
Thanks !
THIS IS A SCRIPT TO HAVE SWAP AND NOT A ROM!
I tested the swap on "CM10.x" by volk204 but there isn't a reason it shouldn't work on other rom versions.
version 1.0 13/11/2013 18:29 GMT+2
I experienced some lag with my wave due to its low ram memory. So after testing a few things i found myself more comfortable with setting up swapfile on sd card(NAND memory); after few minutes this terminal becomes really smooth. (It strangely is faster than setting it up on the phone memory, atleast for me)
The idea is mine, but checking around i found that many other script were made. I got the sleep line to boot part idea from "Defiant07 @ XDA" (http://forum.xda-developers.com/showthread.php?t=2359182). Everything else (as simple it is it's all mine)
Swap is the *nix term for virtual memory, that maybe many are familiar with on windows.
You set up a partition/file and use that as virtual memory. It will be much slower than real ram, but it will be much faster than reloading everything from disk everytime.
Code:
#!/system/bin/sh
# This script was authored by Defiant07 @ XDA. If you use/redistribute it, eve$
# Thanks to zeppelinrox most of all, but also many thanks to dk_zero-cool & gu5$
# Much thanks to pikachu01 @ XDA for permission to use the sysctl tweaks from T$
# Read Karl Marx!
# Nearly entirely modified by skyglow
swapfile="/storage/sdcard0/swapfile"
#swapsize in KB
swapsize=524288
swappiness=90
vfs_cache_pressure=100
dirty_background_ratio=5
dirty_ratio=20
dirty_writeback_centisecs=500
dirty_expire_centisecs=200
while [ ! "`ps | grep -m 1 [a]ndroid`" ]; do sleep 10; done
if [ ! -f "$swapfile" ]; then
dd if=/dev/zero of=$swapfile bs=1024 count=$swapsize
mkswap $swapfile
fi
# sleep 30
# mkswap $swapfile
swapon $swapfile
busybox sysctl -e -w vm.swappiness=$swappiness
busybox sysctl -e -w vm.vfs_cache_pressure=$vfs_cache_pressure
busybox sysctl -e -w vm.dirty_background_ratio=$dirty_background_ratio
busybox sysctl -e -w vm.dirty_ratio=$dirty_ratio
busybox sysctl -e -w vm.dirty_writeback_centisecs=$dirty_writeback_centisecs
busybox sysctl -e -w vm.dirty_expire_centisecs=$dirty_expire_centisecs
exit 0
Requirements
Superuser rights on terminal to change permission and copy this file
Configuration
1) set up "swapfile" field to where you want your swap
2) set up "swapsize" field to an appropriate value in KB! ( i think you should try values over 307200 => 300MB to have performance improvements)
(SD or NAND version)
SD version
size=512 MB
position=sdcard root
NAND version
size=300MB
position=bada application partition
How to install
1) Download the right zip from this page
2) Extract the file from the zip
3) Upload the file in some way on the phone
4) Become superuser
5) move it to "/system/etc/init.d"
6) this file should keep hits name "99myswap"
7) change permissions of "99myswap" to 755
8) change its rights to "root:shell"
9) done, next reboot your swap will be set up automatically
P.S.
How to check if swap is activated:
Open terminal
cat /proc/swaps
Swap filename should be displayed with the right size
[ADDED DEBUG SCRIPT]
Possible problems
1) System hangs on cyanogen loading screen ( rotating circle)
INVESTIGATING
2) Battery charge lasts less.
Any kind of virtual memory use more electrical power to perform write/read on disk (SD). This is a side effect of swap.
3) File format
*NIX file format is LF and not CR-LF (for reference why this happens http://en.wikipedia.org/wiki/Newline#Representations)
You can't edit the file with windows notepad, but use something else such as notepad++ and save it in LF coding.
4) System is slower
Possible causes are:
a) you have applications on the same filesystem where you placed the swap
b) your memory (such as SD card) is too slow. Swap will work, it will just go much slower. Try it with a better sd. I tested it with a class 4 and class 10 sdcard and they both speed up. I don't have any possibility at the moment to test a class 2. (reference http://en.wikipedia.org/wiki/Secure_Digital#Speeds)
5) How to change permissions (thanks Eltjo for copy paste from your answer)
Open terminal
Type: su
Type: cd /system/etc/init.d
Type: chmod 0755 99myswap
Type: chown root:shell 99myswap
6) zRam
On my mobile it's faster if i disable zRam from Settings > Performance > Memory Management > zRam .
Anyway i think outcome may change. Try both solutions.
could be possible to use free nand memory as swap instead of sd card?
cfernr said:
could be possible to use free nand memory as swap instead of sd card?
Click to expand...
Click to collapse
I added the NAND version that installs itself in the bada partition. If you installed the sd version remember to remove the swapfile.
darklight2k2 said:
I added the NAND version that installs itself in the bada partition. If you installed the sd version remember to remove the swapfile.
Click to expand...
Click to collapse
lets try both, thank you very much
no problem.
DEBUG REQUEST
Who had the loading screen on cyanogen circle may tell me which sd card class have?
The following procedure do not install the script, it just will work till reboot.
may them try to upload the script in a generic directory such as /storage/sdcard0 and execute it with
su
cd /storage/sdcard0
sh ./99myswap
I'd like the output of that command and the resulting /proc/swaps
then use the phone, (play/call/charge/reboot)
next boot start the script again please and tell me the resulting /proc/swaps again
Thank you for the help
seems work on my phone.
installed swapfile on nand and ram increased 30mb, but low improvement in real performance.
need to change zram options, but cant find this on my phone, maybe due to language discrepancy. can you explain better?
thank you a lot
I also cannot find zram a options under B.U.X V3.1 (4.3.1 CM10.2) by Tigrouzen
If you don't have the menu for zRam it's disabled by default. To see it you should enable all developer settings.
Settings > About phone > Build number (tap 7 times)
Some more tweaks will unlock.
saltcushy said:
I also cannot find zram a options under B.U.X V3.1 (4.3.1 CM10.2) by Tigrouzen
Click to expand...
Click to collapse
Unfortunally i didn't test that rom yet but i think the procedure above will work.
darklight2k2 said:
If you don't have the menu for zRam it's disabled by default. To see it you should enable all developer settings.
Settings > About phone > Build number (tap 7 times)
Some more tweaks will unlock.
Unfortunally i didn't test that rom yet but i think the procedure above will work.
Click to expand...
Click to collapse
tested and I have to say this is necessary if you want to enjoy a few extra mb in this phone.
I recommend nand swap because everybody have 300-400 unused mb in bada apps partition.
disabling zRAM seems also recommendable.
I hope everybody take care of this script for future ROM releases
*** I will decrease swappiness to 70 or 60, I think it is enough.
darklight2k2 said:
no problem.
DEBUG REQUEST
Who had the loading screen on cyanogen circle may tell me which sd card class have?
The following procedure do not install the script, it just will work till reboot.
may them try to upload the script in a generic directory such as /storage/sdcard0 and execute it with
su
cd /storage/sdcard0
sh ./99myswap
I'd like the output of that command and the resulting /proc/swaps
Thank you for the help
Click to expand...
Click to collapse
i've a samsung class 10 32gb.
i've not run the script with sh command, just copied it to /system/etc/init.d (aplied chmod and chown) and reboot the phone. after that it hangs on CM circle on first boot and have to re-install the rom. wipe data/factory reset didn't help.
best regards
JonasVFC said:
i've a samsung class 10 32gb.
i've not run the script with sh command, just copied it to /system/etc/init.d (aplied chmod and chown) and reboot the phone. after that it hangs on CM circle on first boot and have to re-install the rom. wipe data/factory reset didn't help.
best regards
Click to expand...
Click to collapse
To try to solve it i need to know what happens when executed with the sh command
darklight2k2 said:
To try to solve it i need to know what happens when executed with the sh command
Click to expand...
Click to collapse
after installing the rom again it can boot the first time but hangs on the second like everybody else
running with sh it runs ok
JonasVFC said:
after installing the rom again it can boot the first time but hangs on the second like everybody else
running with sh it runs ok
Click to expand...
Click to collapse
that's why i said not install in the problem request
problem is with chown, just run the chmod 755. didn't run chown command last time and it booted second and third time
edit: nevermind, it hanged again
darklight2k2 said:
that's why i said not install in the problem request
Click to expand...
Click to collapse
i did it with 2 different ways....with a fresh install between and both hang
JonasVFC said:
i did it with 2 different ways....with a fresh install between and both hang
Click to expand...
Click to collapse
You're just posting and posting what happens but not what i asked you to do to five me information.
darklight2k2 said:
You're just posting and posting what happens but not what i asked you to do to five me information.
Click to expand...
Click to collapse
i did what you asked, read again, i ran it with sh: it runs fine!! creates the swapfile and outputs some parameters that are in the script like swapiness and others....
JonasVFC said:
i did what you asked, read again, i ran it with sh: it runs fine!! creates the swapfile and outputs some parameters that are in the script like swapiness and others....
Click to expand...
Click to collapse
Hi, @JonasVFC.
I understand you've been running the Swap version of Android v2.1 Volk204. How do you get it?.
Yo, if I install the file in the directory 99myswap indicating the first page, but I get that the system does not start, stays on constantly CM logo.
A greeting.
chapito said:
Hi, @JonasVFC.
I understand you've been running the Swap version of Android v2.1 Volk204. How do you get it?.
Yo, if I install the file in the directory 99myswap indicating the first page, but I get that the system does not start, stays on constantly CM logo.
A greeting.
Click to expand...
Click to collapse
May you guys try the following attached file please?
when it hangs may you post the logfile created in the phone directory ( you can get it from bada)