Editing Opt Problem

Warning: You are not logged in. Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
= The /opt Problem =
= The /opt Problem =
-
There is not enough space on the [[rootfs]] to fit all applications, therefore an additional partition has to be used. But how?
+
There is not enough space on root to fit all applications, therefore additional partition has to be used. But just how?
-
There is a section in the Maemo 5 Developer Guide explaining the basics:  
+
There is a section in the Maemo 5 Developer Guide explaining the basics:
-
[[Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing/Installing_under_opt_and_MyDocs|Installing under /opt and /MyDocs]]
+
http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging%2C_Deploying_and_Distributing/Installing_under_opt_and_MyDocs
= Current situation =
= Current situation =
Line 11: Line 11:
* 32GB eMMC: /home ~2GB (ext3), /home/user/MyDocs ~29GB (vfat), swap 0.7GB
* 32GB eMMC: /home ~2GB (ext3), /home/user/MyDocs ~29GB (vfat), swap 0.7GB
* symlink: /opt/ -> /home/opt/
* symlink: /opt/ -> /home/opt/
-
* OneNAND is probably "much" faster than the eMMC (hard numbers? read? write? small blobs? big blobs?)
+
* OneNAND is faster (hard numbers? read? write? small blobs? big blobs?)
-
* file system [http://talk.maemo.org/showpost.php?p=504332&postcount=76 benchmark results] for different media
+
-
* OneNAND performance figures: Sustained read performance: 108MB/s. Sustained write performance: up to 17MB/s. See [http://www.samsung.com/global/business/semiconductor/products/fusionmemory/downloads/onenand_brochure_200609.pdf Samsung OneNAND specs].
+
-
* eMMC performance figures: read performance 37MB/s. Write performance 20MB/s. Write speed of 17MB/s has been achieved in this test at [http://symbianbriefs.blogspot.com/2010/01/n900-review-part-10-transferring-data.html symbianbriefs.blogspot.com]. My own read tests however show ~11MB/s (370MB file).
+
* Decisions were taken in a "what shall we do about /opt?" BOF at the [[Maemo Summit 2009]]. Minutes: http://lists.maemo.org/pipermail/maemo-developers/2009-October/021289.html
* Decisions were taken in a "what shall we do about /opt?" BOF at the [[Maemo Summit 2009]]. Minutes: http://lists.maemo.org/pipermail/maemo-developers/2009-October/021289.html
Line 21: Line 18:
* Firmware should be flashable.
* Firmware should be flashable.
* Should not break applications.
* Should not break applications.
-
* One should be able to install more than 256mb worth of software.
+
* One should be able to install more that 256mb worth of software.
-
* Standards compliance, less need to make incompatible quirks.
+
* Standards compliance, less need to make uncompatible quirks.
* A fix should be doable after shipping (before shipping, probably not?)
* A fix should be doable after shipping (before shipping, probably not?)
-
= Current problems / developer and packaging issues =
+
== Current problems / developer and packaging issues ==
This should be a list of current problems developers are experiencing related to optification:
This should be a list of current problems developers are experiencing related to optification:
Line 34: Line 31:
* [[/Non-Optified_packages|List of non-optified packages and applications]] - Please feel free to add every piece of software which is using too much space in rootfs
* [[/Non-Optified_packages|List of non-optified packages and applications]] - Please feel free to add every piece of software which is using too much space in rootfs
-
 
-
= Tool for detection of non-optified packages =
 
-
[[Image:Storageusage.png|thumb|300px|<br>[http://code.google.com/p/storageusage/ Storage Usage] provides a great visual way to detect non-optified packages.
 
-
]]
 
= Possible solutions, even the bad ones =
= Possible solutions, even the bad ones =
Line 54: Line 47:
==== Have a 2-5gb partition on the emmc for addon packages mounted to /usr/local or /opt ====
==== Have a 2-5gb partition on the emmc for addon packages mounted to /usr/local or /opt ====
* Most apps by default usually go there
* Most apps by default usually go there
-
* for /opt store according to the FHS standard /opt/<package> and symlink to /opt/maemo/{bin,lib,share,...} (actually the standard is /opt/<vendor>/whatever In this case using /opt/maemo directly would work).
+
* for /opt store according to the FHS standard /opt/<package> and symlink to /opt/{bin,lib,share,...}
* Having ld.so.conf and PATH set properly avoids all the symlink madness
* Having ld.so.conf and PATH set properly avoids all the symlink madness
* Don't do symlinks for /usr/local|/opt - make it a real partition
* Don't do symlinks for /usr/local|/opt - make it a real partition
Line 62: Line 55:
==== store addon packages completely in /home/opt hierarchy ====
==== store addon packages completely in /home/opt hierarchy ====
-
* [http://wiki.maemo.org/User:Tanner#full_optification see this page]
 
* like previous solution but on the standard /home partition
* like previous solution but on the standard /home partition
-
* very clean solution as no files (except for /var/lib/dpkg which may be moved as well) are created or modified on the NAND.
+
* very clean solution if speed advantage of OneNAND over eMMC turns out to be a myth
-
* /etc and /var could be copied there as well and mounted to root using bind. This way OneNAND would only be changed be reflashes and if /home is not mounted (e.g., by a keypress during boot) a fallback  system could boot from unmodified OneNAND.
+
-
* if OneNAND is significantly faster, mark some often used shared libraries as candidates for a /usr/lib/cache directory in which they are copied during installation until a certain cache limit is reached.
+
==== During packaging move all files >500kb to /opt and symlink to root ====
==== During packaging move all files >500kb to /opt and symlink to root ====
Line 102: Line 92:
* How much faster OneNAND is? Numbers?
* How much faster OneNAND is? Numbers?
* Can flasher flash on eMMC?
* Can flasher flash on eMMC?
-
* Leave only the bootable and rescue stuff in the rootfs
 
-
* Maybe use it uncompressed for speed and add a /fast/usr folder to OneNAND to store some system files that would benefit from the speed (example: move /usr/something to /fast/usr and symlink it or just place /fast/usr in the path)
 
==== Use mount -o bind (or -o rbind) ====
==== Use mount -o bind (or -o rbind) ====
Line 125: Line 113:
* Maybe somebody can see something good in this?
* Maybe somebody can see something good in this?
* Difficult hack.. would need all the tools etc to be visible in the chroot.
* Difficult hack.. would need all the tools etc to be visible in the chroot.
-
 
-
==== Make /usr another partition ====
 
-
You know, historically /usr exists entirely for the purpose of separating the application partition from the underlying system, which is exactly our problem.
 
-
* All the core nokia software and libraries should be relocated to / or maybe a /maemo.
 
-
* /usr and /opt should become symlinks to /home/usr and /home/opt.
 
-
* Maemo targeted GUI software would be encouraged to use /opt/[application].
 
-
* Linux libraries and CLI software could safely use /usr, minimizing the required modifications.
 
-
* Any frequently used accessed files in /home but not /home/user/MyDocs could be cached in /cache, which then gets overlaid with /home using unionfs or something more specialized.
 
-
* Another location like /alt could be used by packages that know they need the NAND's speed, but this is discouraged.
 
[[Category:Development]]
[[Category:Development]]

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)