Sorry about the garble in the previous post it's tidied up now
I found that alsctl restore would work if I run it in a terminal but not if I put it in bootlocal.sh (with a sleep command). Saying that it would still complain about the directory problem. I have check I believe I am up to date with the versions
I got round this problem by running the appropriate amixer commands in bootlocal.sh and this got me sound as soon as I'm in without having to go through the mixer first.