Hi David,
see the 'autorun' attribute for module periodic functions [1] for starting/stopping of them.
In the generated doc I pointed to earlier it says that for the geo_mag module it is set to LOCK, meaning it will always run.
About the mag calibration:
I don't really know much about the ARDrone specifically...
But the magnetometer calibration is something totally separate from the setting of the local magnetic field.
- The mag calibration will - well - calibrate your mag mounted in the airframe (hard- and soft iron effects).
This (theoretically) makes it possible to actually measure the local magnetic field without the distortions from your airframe.
- To calculate the true heading (w.r.t. geographic north), you need to (at least) know the local magnetic declination.
Like with a compass, declination is enough if you always place your sensor in the horizontal plane and are not too close to the poles...
But since an aircraft doesn't quite always stay in the horizontal plane ;-), you can only properly calculate it if you have the full vector of the local magnetic field (including the not insiginificant inclination).
The latter already requires a "calibrated" magnetometer and is what the geo_mag module provides (or you do by hand by setting AHRS_H_[X|Y|Z])
Hope that clears it up a bit...
Cheers, Felix