cras--the Chrome Audio System/Server--uses its 4th parameter to configure the derivation of the config files that it picks up during start. In:
# cat /usr/share/cros/init/cras.sh
...
# For boards that need a different device config, check which config
# directory to use. Use that directory for both volume curves
# and DSP config.
if [ -f /etc/cras/get_device_config_dir ]; then
device_config_dir="$(sh /etc/cras/get_device_config_dir)"
DEVICE_CONFIG_DIR="--device_config_dir=${device_config_dir}"
DSP_CONFIG="--dsp_config=${device_config_dir}/dsp.ini"
fi
if [ -f /etc/cras/get_internal_ucm_suffix ]; then
internal_ucm_suffix="$(sh /etc/cras/get_internal_ucm_suffix)"
INTERNAL_UCM_SUFFIX="--internal_ucm_suffix=${internal_ucm_suffix}"
fi
exec minijail0 -u cras -g cras -G -n -- /usr/bin/cras \
${DSP_CONFIG} ${DEVICE_CONFIG_DIR} ${DISABLE_PROFILE} \
${INTERNAL_UCM_SUFFIX}
This results in a sub-optimal amount of duplication of configuration and model name proliferation in the Unified Build directory structure. E.g. https://chrome-internal-review.googlesource.com/c/416772/ .
This bug will track changing cras itself to do something smarter, cleaner, better.
Comment 1 by conradlo@chromium.org
, Jul 25 2017