[alsa-devel] ERROR: USB Sound card with unsafe characters

Clemens Ladisch clemens at ladisch.de
Mon Feb 29 10:42:14 CET 2016


Brian Jones wrote:
> I don't know how to get this bug to the developers

Just send it to the alsa-devel list.  Once.

> My USB soundcard is an Asus Xonar U7 Echelon Edition
> <https://www.asus.com/Sound-Cards/Xonar_U7_Echelon_Edition/> which
> identifies itself to alsa as "Xonar U7 Echelon Ed." The card is supported
> by alsa and works well in analog mode but I cannot get digital output via
> alsa.
>
> Attempts to change the iec958 device in USB-Audio.conf fail because of the
> period char and apparently my level of OS (Mint 17.3 based on Ubuntu 14.04,
> kernel 3.19.0-32) does not have alsa supporting USB vendorid:productid
> naming

The vendor:product naming is used only for device that do not have a name.
The newer version of alsa-lib would replace unsafe characters (like '.')
with an underscore.


Try changing /usr/share/alsa/cards/USB-Audio.conf.  Dont add an entry to
the USB-Audio.pcm.iec958_device list near the top, but go to the bottom,
to the USB-Audio.pcm.iec958.0 definition, and change this:

USB-Audio.pcm.iec958.0 {
	@args [ CARD AES0 AES1 AES2 AES3 ]
	@args.CARD { type string }
	@args.AES0 { type integer }
	@args.AES1 { type integer }
	@args.AES2 { type integer }
	@args.AES3 { type integer }
	@func refer
	name {
		...(lots of stuff)...
	}
	default {
		...(lots of stuff)...
	}
}

to this:

USB-Audio.pcm.iec958.0 {
	@args [ CARD AES0 AES1 AES2 AES3 ]
	@args.CARD { type string }
	@args.AES0 { type integer }
	@args.AES1 { type integer }
	@args.AES2 { type integer }
	@args.AES3 { type integer }
	type hw                         # no @func
	card $CARD
	device 1
}

(This will break S/PDIF on all other USB devices, but who cares ...)


Regards,
Clemens


More information about the Alsa-devel mailing list