Ladies and Gentlemen,

A few month ago I wrote about my problem with a rather old USB phone 
device. The device works fine on my older systems but fails on my 
relatively new desktop. I am doing my tests with aplay like this:
    aplay -v -D usb-phone -t wav /usr/share/sounds/alsa/Front_Center.wav
with the attached /etc/asound.conf file.

I am using CentOS systems, by now version 8 (version 7 and some earlier
in qemu-kvm VM's), but the original use of the phone device is on a real
centos-6 system. I originally assumed my problem was caused by the newer
version of the software or by the change from i686 to x86_64 hardware. 
However, I now know that the device works just fine under Centos-8 and 
on x86_64 hardware. The problem arises in the USB hardware and the USB
drivers for it. On the systems where the device works as expected the
hardware driver used is uhci_hcd (which I think is actually an ehci_hcd 
companion), on the system where the phone device doesn't work the USB
driver is xhci_hcd. On the system with xhci_hcd driver there are no other 
drivers available (I have not made any experiments at the UEFI level).
In a VM which provides a uhci_hcd driver on the host with the xhci_hcd 
driver the test also fails.

The centos kernel's are always relatively "old", the current centos-8
version is 4.18.0-147.5.1.el8_1. I now assume that the problem lies
somewhere between the snd-usb-audio module and the uhci_hcd emulation 
of the xhci_hcd driver. So my question now is, what can be done to make 
my old, slow USB phone device work with the xhci_hcd driver?

I will gladly provide more details but would need to know what could
help in this case.

Any advice would be appreciated. Thanks, AG

   Alfred Ganz                        
   AG Consulting                                (203) 624-9667
   440 Prospect Street # 11
   New Haven, CT 06511
# Place your global alsa-lib configuration here...

@hooks [
                func load
                files [
                errors false

# This is an alias for the phone
pcm.usb-audio {
                type hw
                card 1
                device 0

# This creates a converting alias for the phone
pcm_slave.myslave {
                pcm "hw:1,0"
                format S16_LE
                channels 1
                rate 8000
pcm.usb-convert {
                type plug
                slave myslave

# The short version of the same thing
pcm.usb-phone {
                type plug
                slave {
                        pcm "hw:1,0"
                        format S16_LE
                        channels 1
                        rate 8000

Alsa-user mailing list

Reply via email to