Topic: UDEV rule for automatic start of hdsploader

Hi folks.

I could not find a UDEV rule to start the hdsploader (of course it can be also done with an entry in rc.local). I think for the future the better choice is to put in in a UDEV rule.

/etc/udev/rules.d/40-hdsp9632.rules
#
ACTION=="add", SUBSYSTEMS=="pci",  ATTR{name}=="RME Hammerfall HDSP 9632", RUN+="/bin/sh -c '/usr/bin/hdsploader'"
#


BTW: Who is maintaining the drivers and packages?

\Klaus

Re: UDEV rule for automatic start of hdsploader

I guess driver maintenance must by ALSA.

Can I recommend two places?
The linux-audio-user mailing list. http://lists.linuxaudio.org/mailman/lis … audio-user
And then the alsa mailing lists
http://www.alsa-project.org/main/index. … ling-lists

If you prefer forums maybe:
http://www.linuxmusicians.com/

Your post looks interesting. But I think you should copy-paste them to the places I've mentioned. You would have a much bigger and more interested audience.

I've been trying myself to make udev work with HDSP 9632. It doesn't work though. I contacted alsa developers and I got some very technical info. Things that I think would be better of if they were in the hands of a technical guy like you.

As for as I can tell from another post of yours you are trying to control sound with only the amixer. A guy called Esben Stein just posted this:




Nope. I never use hdspmixer.

#init 96kHz operation
amixer -c $1 cset numid=11,iface=PCM,name='Sample Clock Source' 6

#direct out playback 1&2 to headphones
amixer cset numid=5 28,26,10000
amixer cset numid=5 29,27,10000

#set volume for main out
amixer -c 0 cset numid=5 26,0,$1
amixer -c 0 cset numid=5 27,1,$1

#mute playback 26 and 27 to output 26 and 27 (headphone)
amixer -c $1 cset numid=5 26,26,0
amixer -c $1 cset numid=5 27,27,0

#direct out playback 1&2 to headphones
amixer -c $1 cset numid=5 28,26,10000
amixer -c $1 cset numid=5 29,27,10000



I don't know if that's any help. Oh he adds:



Some general information:

# source:
# 0-17  -> physical input
# 26-43 -> playback (software output)

# destination:
# 0-17  -> physical output
# 26-27 -> line out (phone)

# gain: 0-65536 -> 0 is minus infinity, 32768 is 0 dB, 65535 is + 6dB

# use 'Mixer' ctl with amixer (numid=5).

# 3 parameters: source, destination and gain

amixer -c <device> cset numid=5 <source>,<destination>,<attenuation>

Re: UDEV rule for automatic start of hdsploader

Oh and one of the alsa developers told my this when talking about UDEV. And this I for sure don't understand.

I guess route plugin used by RME96*.conf does not support mmap when there is
channel conversion since minimum channels supported by hdsp is 14


static struct snd_pcm_hardware snd_hdsp_playback_subinfo =
{
   .info = (SNDRV_PCM_INFO_MMAP |
                SNDRV_PCM_INFO_MMAP_VALID |
                SNDRV_PCM_INFO_NONINTERLEAVED |
                SNDRV_PCM_INFO_SYNC_START |
                SNDRV_PCM_INFO_DOUBLE),
#ifdef SNDRV_BIG_ENDIAN
   .formats = SNDRV_PCM_FMTBIT_S32_BE,
#else
   .formats = SNDRV_PCM_FMTBIT_S32_LE,
#endif
   .rates = (SNDRV_PCM_RATE_32000 |
                SNDRV_PCM_RATE_44100 |
                SNDRV_PCM_RATE_48000 |
                SNDRV_PCM_RATE_64000 |
                SNDRV_PCM_RATE_88200 |
                SNDRV_PCM_RATE_96000),
   .rate_min = 32000,
   .rate_max = 96000,
   .channels_min = 14,
   .channels_max = HDSP_MAX_CHANNELS,
   .buffer_bytes_max = HDSP_CHANNEL_BUFFER_BYTES * HDSP_MAX_CHANNELS,
   .period_bytes_min = (64 * 4) * 10,
   .period_bytes_max = (8192 * 4) * HDSP_MAX_CHANNELS,
   .periods_min = 2,
   .periods_max = 2,
   .fifo_size = 0
};

Re: UDEV rule for automatic start of hdsploader

One more:

The firmware is stored under Ubuntu-Karmic/Mint-Helena  by default:  /lib/firmware/hdsploader/multiface_firmware_rev11.bin and  /lib/firmware/hdsploader/multiface_firmware.bin 

Introduce links to it: /usr/share/alsa/firmware/hdsploader/multiface_firmware_rev11.bin and /usr/share/alsa/firmware/hdsploader/multiface_firmware.bin