| View previous topic :: View next topic |
| Author |
Message |
Featherfoot Veteran

Joined: 28 Dec 2002 Posts: 1108 Location: Stuart, Florida
|
Posted: Thu Feb 24, 2011 1:32 am Post subject: Need hw address for USB TV tuner WinTV-HVR-950Q |
|
|
I am trying to get sound working in tvtime for my WinTV-HVR-950Q. I need help figuring out the hardware address for the sound.
There is a script in http://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-HVR-950Q that describes how to get sound from the driver over to tvtime. The line in question is:
| Code: |
sox -t alsa hw:1,0 -t alsa default &>/dev/null &
|
It does not work as shown and the reason is probably that hw:1,0 is incorrect for this installation. I would like to know how to determine the correct value.
lsusb -v for the device gives the following:
| Code: |
bopper jc # lsusb -s 001:002 -v
Bus 001 Device 002: ID 2040:7200 Hauppauge
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x2040 Hauppauge
idProduct 0x7200
bcdDevice 0.05
iManufacturer 1
iProduct 2
iSerial 10
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 267
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0300 1x 768 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 2
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x03fc 1x 1020 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 3
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 4
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0c00 2x 1024 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 5
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x1400 3x 1024 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 0
iInterface 11
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 38
bInCollection 1
baInterfaceNr( 0) 2
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0602 Digital Audio Interface
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 2
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 3
iTerminal 0
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 3
bSourceID 1
bControlSize 1
bmaControls( 0) 0x01
Mute Control
iFeature 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 11
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 11
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
bDelay 1 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 2
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 48000
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0100 1x 256 bytes
bInterval 4
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
|
I'd appreciate your help.[/code] |
|
| Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 54513 Location: 56N 3W
|
Posted: Thu Feb 24, 2011 8:17 pm Post subject: |
|
|
Featherfoot,
That hw:1,0 is alsaspeak for the second sound card found on your system. If you look in you will see a controlCn file for each card.
So if you have 0, 1 and 2 try hw:0,0 hw:1,0 hw:2,0 and so on.
Sanity warning. The card numbers depend on sound card initialisation order, which is not a constant. You need to make your sound kernel drivers modules and edit also.conf if you get random ordering each boot. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
| Back to top |
|
 |
Featherfoot Veteran

Joined: 28 Dec 2002 Posts: 1108 Location: Stuart, Florida
|
Posted: Fri Feb 25, 2011 7:11 pm Post subject: |
|
|
Thanks for the answer.
When I tried what you suggested, it showed that none olf the controlCn's were defined, nor were the hwCnDm's.
Another person had suggested that the device numbers were visible on one of the screens of alsamixer. I found it by selecting F2 and then cards. The same information is in /proc/asound/cards.
| Code: |
jc@bopper ~ $ cat /proc/asound/cards
0 [SB ]: HDA-Intel - HDA ATI SB
HDA ATI SB at 0xfe024000 irq 16
1 [NVidia ]: HDA-Intel - HDA NVidia
HDA NVidia at 0xfbffc000 irq 19
2 [HVR950Q ]: USB-Audio - HVR-950Q
Hauppauge HVR-950Q at usb-0000:00:12.2-2, high speed
|
That solved the tvtime problem. The next part is the inconsistent order devices get assigned that you and other people allude to.
The Alsa HOWTO document doesn't really discuss the problem of having multiple sound cards very well, but I tried to follow that. I ran the alsaconf command to set up /etc/modprobe.d/alsa.conf, but it only seemed to put a trivial setup in alsa.conf, not one which accounted for multiple sound cards, which really doesn't help much. I deduced that I need to build some option lines with indexes on them. Two of the three fields was pretty clear. The definition of what the second field is is vague, though. It looks like a driver name, but that really doesn't define the device. I poked around for device names, but the names have been interpreted to make them user friendly. Unfortunately, there are only examples, not rules.
In the end, I set up a file with driver names and I get many outraged messages when the system starts up, so I think I set up the option lines wrong.
tvtime and flash still work, but I'd appreciate your input on how to set up the option lines.
| Code: |
jc@bopper /etc/modprobe.d $ cat alsa.conf
# Alsa kernel modules' configuration file.
# ALSA portion
# OSS/Free portion
##
## IMPORTANT:
## You need to customise this section for your specific sound card(s)
## and then run `update-modules' command.
## Read alsa-driver's INSTALL file in /usr/share/doc for more info.
##
## ALSA portion
## alias snd-card-0 snd-interwave
## alias snd-card-1 snd-ens1371
## OSS/Free portion
## alias sound-slot-0 snd-card-0
## alias sound-slot-1 snd-card-1
##
# OSS/Free portion - card #1
## OSS/Free portion - card #2
## alias sound-service-1-0 snd-mixer-oss
## alias sound-service-1-3 snd-pcm-oss
## alias sound-service-1-12 snd-pcm-oss
alias /dev/mixer snd-mixer-oss
alias /dev/dsp snd-pcm-oss
alias /dev/midi snd-seq-oss
# Set this to the correct number of cards.
# --- BEGIN: Generated by ALSACONF, do not edit. ---
# --- ALSACONF version 1.0.23 ---
alias char-major-116 snd
alias char-major-14 soundcore
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
alias snd-card-0 snd-hda-intel
alias sound-slot-0 snd-hda-intel
# --- END: Generated by ALSACONF, do not edit. ---
option snd-hda-intel index=0
option snd-hda-intel index=1
option snd-usb-audio index=2
jc@bopper /etc/modprobe.d $
|
This is clearly wrong, as I thought it was and /etc/init.d/alsasound restart is not happy.
| Code: |
bopper modprobe.d # /etc/init.d/alsasound restart
* WARNING: you are stopping a boot service.
* Storing ALSA Mixer Levels ... [ ok ]
* Loading ALSA modules ...
WARNING: /etc/modprobe.d/alsa.conf line 44: ignoring bad line starting with 'option'
WARNING: /etc/modprobe.d/alsa.conf line 45: ignoring bad line starting with 'option'
WARNING: /etc/modprobe.d/alsa.conf line 46: ignoring bad line starting with 'option'
* Loading: snd-card-0 ...
WARNING: /etc/modprobe.d/alsa.conf line 44: ignoring bad line starting with 'option'
WARNING: /etc/modprobe.d/alsa.conf line 45: ignoring bad line starting with 'option'
WARNING: /etc/modprobe.d/alsa.conf line 46: ignoring bad line starting with 'option' [ ok ]
* Restoring Mixer Levels ... [ ok ]
bopper modprobe.d #
|
This whole area is a mess. There are references to hw numbers, but it is really hard to figure out how to determine what these are.
Then there is the definition of what goes in the option lines for alsa.conf to define the device and how you determine what it is.
I appreciate that the maintainers are doing a lot for nothing, but it would be nice if somebody who understands this stuff could make it a little easier for the rest of us. |
|
| Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 54513 Location: 56N 3W
|
Posted: Fri Feb 25, 2011 7:42 pm Post subject: |
|
|
Featherfoot,
alsaconf seems to work for a single card,after that, you need to edit it manually.
Heres my working alsa.conf for two sound cards.
| Code: | # Alsa kernel modules' configuration file.
# ALSA portion
alias char-major-116 snd
# OSS/Free portion
alias char-major-14 soundcore
##
## IMPORTANT:
## You need to customise this section for your specific sound card(s)
## and then run `update-modules' command.
## Read alsa-driver's INSTALL file in /usr/share/doc for more info.
##
## ALSA portion
alias snd-card-0 snd-hda-intel
alias snd-card-1 snd-usb-audio
# alias snd-card-x <kernel-module for sound card x>
## OSS/Free portion
alias sound-slot-0 snd-card-0
alias sound-slot-1 snd-card-1
#alias sound-slot-x snd-card-x
##
# OSS/Free portion - card #1
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
## OSS/Free portion - card #2
alias sound-service-1-0 snd-mixer-oss
alias sound-service-1-3 snd-pcm-oss
alias sound-service-1-12 snd-pcm-oss
## OSS/Free portion - card #x
#alias sound-service-x-0 snd-mixer-oss
#alias sound-service-x-3 snd-pcm-oss
#alias sound-service-x-12 snd-pcm-oss
alias /dev/mixer snd-mixer-oss
alias /dev/dsp snd-pcm-oss
alias /dev/midi snd-seq-oss
# Set this to the correct number of cards.
options snd cards_limit=2 |
I've embedded some commented template sections to show how to extend it.
You can have up to 16 sound cards with the standard kernel. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
| Back to top |
|
 |
Featherfoot Veteran

Joined: 28 Dec 2002 Posts: 1108 Location: Stuart, Florida
|
Posted: Fri Feb 25, 2011 7:53 pm Post subject: |
|
|
Thank you Neddy. I will study your file.
One key thing I had wrong: "option" is supposed to be "options". |
|
| Back to top |
|
 |
Ant P. Watchman

Joined: 18 Apr 2009 Posts: 6920
|
Posted: Fri Feb 25, 2011 9:36 pm Post subject: |
|
|
| Code: | | options snd-usb-audio index=2 |
Your tuner will be hw:2,0 there as a result. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|