One of the most important aspects of a working system is Data Management.
During the lifetime of a running system, data and configuration details are setup with the expectation that they are secure.
Ensuring that the data you create and configure on your device is sustained is a high priority.
The notes on this page are a starting point to ensuring the various aspects of this are catered for.
The scope of this document is currently aimed towards the N900-DE, however the principles are expected for MeeGo globally.
Please help to expand upon this document
Single partition installation vs Dual Part installation.
Maemo device installation consists of 2 parts:
- RootFS Code partition.
- eMMC Data Partition
MeeGo Installation consists of 1 part:
- RootFS Code + Data Partition.
With Maemo, it is possible for the Backup tool to store User data onto the eMMC and ensure that between installations the data is safe and can be restored from.
MeeGo however has no such ability.
Even the Netbook is an all-in-one installation.
This causes serious problems for data during updates or reinstallations.
The following application requests and points are based around having this problem solved.
The N900 device is *lucky* to have the eMMC available (even if not used at present)
Other MeeGo devices may not have such a device/data storage area available.
Backup/Restore application is needed.
Now we can get on networks and get past initialisation issues, a mechanism to Backup/Restore data between reflashing is necessary.
Added complexity for N900-de is that the whole "image" is on one partition which is overwritten by each image flashed.
- Use eMMC from maemo to store MeeGo N900-DE backup data files
- Change the N900-DE image so that MicroSD is partitioned into Code (regular flash) and Data (similar to eMMC)
- make a compatible data Backup/Restore application and store alongside Maemo backup files (very hard)
A suggestion from IRC:
- <KaIRC> lcuk: and given that YaST package manager is also a graphical frontend to zypper nowadays, I would think MeeGo can do things similarly - but yes, nicer interface is always good :)
- <lcuk> if you can make it work on n900-de I would like some screenshots
- <KaIRC> lcuk: well, YaST is the integrated system management tool in openSUSE, I have no idea if or how it would run on MeeGo
Maemo Data Import is needed.
Similar to the Backup/Restore application.
This would require the Maemo Sharing to be functional first.
- Mechanism to Import some or all of the Maemo data:
- Import Contacts
- Import network settings
- Import SMS messages/Conversations
- Import Misc application settings
SSU is needed.
Now that we are doing more and filling in data, a mechanism to update is required.
- Start with a daily/weekly image
- Open Application "System-Update"
- Check for updates, compare on device repository against latest available system
Maemo Data Sharing
To access realtime and safely the data stored on the eMMC live and direct.
- To allow sharing the data from Maemo side.
- Photographs and videos taken with the device camera
- Music and example files.
- Mountpoint now accessible within N900-CE builds
Accessing the Maemo eMMC MyDocs partition for importing contacts
- On Maemo, open Contacts and select the menu "Export"
- Follow the wizard through using defaults.
- This will create a folder ~/MyDocs/Exported Contacts/
- Folder contents will be vcards in 2.1 format
- Bootup MeeGo and running the following should show all the files:
mount -t vfat /dev/mmcblk1p1 /media/maemoMyDocs
ls /media/maemoMyDocs/Exported\ contacts
echo "Smile :)"
- now we just need to import them :)
Wider script is available for testing:
Accessing the root partition
Quick discussions in IRC asking how to proceed:
- <lcuk> from standard n900-de, does anybody know the "mount" commands required to mount: eMMC and maemo rootfs?
- <lbt> lcuk: use dmesg to identify the block devices
- <lcuk> lbt do they all show up?
- <lbt> then mkdir a target dir like /mnt/maemo and /mnt/mmc
- <lbt> they should, yes
- <lcuk> ok thanks, will investigate
- <lcuk> I am going to try first to see about accessing them
- <lbt> then mount /dev/device /mnt/place
- <jsv> lcuk: "cat /proc/self/mounts" on maemo5 console shows what's where. you should be able to ignore the bind mounts
- <jsv> also, before you ask "mount -t ubifs ubi0:rootfs <mountpoint>" for rootfs on NAND
merlin1991 highlighted this thread: http://forum.meego.com/showthread.php?t=3511
- <lcuk> osso-backup appears to be closed source (the maemo backup tool)
- <lcuk> I wonder what would be required to tweak within that to run on n900-de
- <lcuk> obviously it is hildonised, but that is less of a tweak than rewriting from scratch
- <lcuk> hm
Scripts for Importing on firstboot
- <lcuk> Sage, do you know any current meego packages which do scriptwork after bootup? ie where would the best place to put * this contacts import code?
- <Sage> lcuk: like during every boot or first boot?
- <lcuk> during bootup, but late enough in the sqequence that qtmobility and qcoreapplication type things will work
- <lcuk> we can determine firstboot or not based on a file somewhere that is written by the script
- <Sage> ok
- <lcuk> (similar to how maemo boot time optification scripts worked)
- <Sage> I would say that if you want Xorg be there and if you want to run those as user then /etc/xdg/autostart/
- <Sage> if you want to execute as root then /etc/init.d/
- <lamikr> lcuk Sage /etc/xdg/autostart/sample-media-install.desktop is an example from script that checks whether script is already run...
- <lcuk> ok thanks Sage, lamikr :) I will investigate both areas and see how to proceed. Adding these notes to the datamanagement page in the meantime
- <lamikr> lcuk Sage Don't though much like from this approach but don't know anything better atm.
<Sage> files in /etc/xdg/autostart/ are executed as meego user so mount will fail
The summer release wishes to have contact import, so this is a specific import side
but will need to have access to data exported from maemo