How to calibrate Accelerometer sensor physically?
If you want to calibrate without special equipment, you can do it if you are willing to employ some mathematical gymnastics.  For this example, we are going to assume that the accelerometer is linear but you can put linearity correction terms or as many correction coefficients as you like, at the cost of more complexity.

For these equations, We will call the actual acceleration X, Y, and Z, and the uncorrected accelerometer readings are Ax, Ay, and Az.  If you assume that the accelerometer is linear and that its error is mostly due to offset and gain (reasonable for a first approach) then you could get the true reading of the accelerometer by applying a slope-intercept approach.  Each accelerometer would have a slope constant, which we will call Mx, My and Mz, and an offset constant, which we will call Bx, By and Bz.  So the true acceleration in the x direction can be stated X = (Mx)*(Ax) + Bx.

You now only have to determine the values for Mx, My, Mz, Bx, By, and Bz to apply to the raw readings.  Take advantage of the fact that the earth's gravity is an acceleration of 1 g, so from Pythagoras we know that X^2 + Y^2 + Z^2 = (1G)^2.  But X^2 = [(Mx)*(Ax) + Bx]^2 or Mx^2*Ax^2 + 2*Mx*Ax + Bx^2.  So you have [Mx^2*Ax^2 + 2*Mx*Ax + Bx^2] + [My^2*Ay^2 + 2*My*Ay + By^2] + [Mz^2*Az^2 + 2*Mz*Az + Bz^2] = 1G^2.

You have an equation with six unknowns (Mx, My, Mz, Bx, By, and Bz).  By rotating the device (and keeping it still) to six different orientations, you will have six different sets of values for Ax, Ay, and Az.  Do the math and solve for your correction constants, then check in other orientations by applying the correction to Ax, Ay, and Az.  The sum of the squares after correction should always be 1G^2.

If you want to put in more correction variables (for temperature or linearity, etc) you can, and the number of simultaneous equations will increase.

Good luck!