The reason is, that your calibration setting get set only once, at boot time by evtouch_config. When you unplug it the settings are removed when evtouch is unloaded. On plugging it in HAL sets the default settings as specified in /usr/share/hal/fdi/policy/20thirdparty/50-....fdi
and loads the evtouch driver, which reads the calibration settings into its memory. Therefore it doesn't work to simply call evtouch_config while the X window system is running.
The only way I found to make the calibration settings survive a replug-in or a hibernation is to set them directly in the HAL policy file. The following command converts the calibration settings to HAL policy format and prints the result on stdout.
awk -F= '{print " <merge key=\"input.x11_options."tolower($1)"\" type=\"string\">"$2"</merge>"}' /etc/evtouch/config
Replace the corresponding merge commands in the policy file (/usr/share/hal/fdi/policy/20thirdparty/50-....fdi
) corresponding to your device.
Of course you do not need the evtouch_config daemon any more when you use this method, so you can remove it from /etc/rc.conf
.