nixpkgs/upstart-jobs/alsa.nix
Eelco Dolstra 5f60393ffe * Let udev call modprobe to load modules for all known hardware. This
makes the `hardware-scan' job unnecessary.  (In fact the new
  approach appears to be more thorough; it loads some drivers that
  were not previously loaded.)

svn path=/nixos/trunk/; revision=12248
2008-07-02 21:19:04 +00:00

50 lines
884 B
Nix

{modprobe, alsaUtils}:
let
soundState = "/var/lib/alsa/asound.state";
in
{
name = "alsa";
extraPath = [alsaUtils];
# Alsalib seems to require the existence of this group, even if it's
# not used (e.g., doesn't own any devices).
groups = [
{ name = "audio";
gid = (import ../system/ids.nix).gids.audio;
}
];
job = ''
start on udev
stop on shutdown
start script
mkdir -m 0755 -p $(dirname ${soundState})
# Load some additional modules.
for mod in snd_pcm_oss; do
${modprobe}/sbin/modprobe $mod || true
done
# Restore the sound state.
${alsaUtils}/sbin/alsactl -f ${soundState} restore
end script
respawn sleep 1000000 # !!! hack
stop script
# Save the sound state.
${alsaUtils}/sbin/alsactl -f ${soundState} store
end script
'';
}