[maemo-developers] [maemo-developers] Question about how mmc is auto-mounted in Nokia 770

From: Peter K.Lee saint at corenova.com
Date: Sun Apr 16 09:33:37 EEST 2006
Hi, I'm new to this list, got my Nokia a few months ago, but just
started really playing with it today.

If this has already been addressed in previous threads, I would
appreciate gentle pointers in the right direction.  My quick searches
came up empty so far...

I'm trying to better utilize the extended storage capability of
plugging in a RS-MMC.

I looked over previous hacks on using SWAP on MMC, as well as the
ExtendedRootFilesystem stuff that allows you to install apps and
personal settings, etc. to the MMC.

Well, I think using it that way is fine... except I *do* want to have
some applications installed directly on the internal storage.  Key
things being: btkeyboard stuff, xterm, etc.

If at all possible, I'd also like to be able to insert/remove the MMC
card while the 770 is running, while still be able to take advantage
of extending the root filesystem to the MMC.

I have some ideas on how to do this transparently via some 'mount
--bind' calls to bind the target directories (i.e. /var/lib/install,
/root, /home, etc.) to somewhere like
/media/mmc2/var/lib/install/orig, then 'mount --bind' the
/media/mmc2/var/lib/install directory back to /var/lib/install,
cleaning up by symlinking the entire directory tree of
/media/mmc2/var/lib/install/orig into /var/lib/install.

Well, I'm just focusing on the apps for now, but I could definitely
foresee 'shadowing' more and more core directories from the internal
system image off to the MMC on-the-fly for testing, customization,
etc. w/o having to reflash the 770, ever.

If anything truly does get broken, you can always pop out the MMC, and
reboot to get your system right back where it was.

Since number of writes to the internal image is limited, we may even
consider mounting the internal image 'ro' forever (except for firmware
updates from Nokia?), and rely on the external MMC for the actual
developmental releases of the firmware.

Various community driven distributions centered around plugging in
various MMC for differing tasks (with bundled apps, environments,
etc.) seems like a likely evolution.

Well, I'm getting ahead of myself here... so back to my original
question of how MMC is auto-mounted in Nokia 770...

I checked /etc/fstab and it appears that /media/mmc1 mount is set to
noauto, and it doesn't seem like there are anything on /etc/init.d
that actually mounts the mmc1.  I also checked /etc/udev for traces of
auto creating /dev/mmcblk0p1 and /dev/mmcblk0p2 but couldn't find
any...  (I just started looking into udev, so maybe I'm not seeing
something?)

Since udevstart is called & udev is linked to hotplug in
/etc/init.d/minircS, minircS must run before any runlevel is init?

So, I'm guessing that there's some daemon process running that
captures events from udev, and explicitly mounts the MMC.  But what is
this daemon process, and when does it run?  Shouldn't it run before
udevstart in order for it to capture the events it generates as it
creates device nodes from sysfs?  I couldn't see anything in minircS
that seems to launch a process before udev...

Perhaps the daemon process doesn't depend on udev at all, but just
checks for existence of /dev/mmcblk0p1 and mounts it in the correct
place sometime later down the road.

Even unmounts can take place by just checking for /dev/mmcblk0p1 and
if it doesn't exist, do the actual unmount of /media/mmc1 completely
ignoring what udev is there to do in the first place...

Well, hopefully somebody can enlighten me on how this all truly works!

Cheers,

-Peter

More information about the maemo-developers mailing list