diff options
Diffstat (limited to 'Documentation/sound/alsa/Procfile.txt')
-rw-r--r-- | Documentation/sound/alsa/Procfile.txt | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/Documentation/sound/alsa/Procfile.txt b/Documentation/sound/alsa/Procfile.txt new file mode 100644 index 000000000000..25c5d648aef6 --- /dev/null +++ b/Documentation/sound/alsa/Procfile.txt | |||
@@ -0,0 +1,191 @@ | |||
1 | Proc Files of ALSA Drivers | ||
2 | ========================== | ||
3 | Takashi Iwai <tiwai@suse.de> | ||
4 | |||
5 | General | ||
6 | ------- | ||
7 | |||
8 | ALSA has its own proc tree, /proc/asound. Many useful information are | ||
9 | found in this tree. When you encounter a problem and need debugging, | ||
10 | check the files listed in the following sections. | ||
11 | |||
12 | Each card has its subtree cardX, where X is from 0 to 7. The | ||
13 | card-specific files are stored in the card* subdirectories. | ||
14 | |||
15 | |||
16 | Global Information | ||
17 | ------------------ | ||
18 | |||
19 | cards | ||
20 | Shows the list of currently configured ALSA drivers, | ||
21 | index, the id string, short and long descriptions. | ||
22 | |||
23 | version | ||
24 | Shows the version string and compile date. | ||
25 | |||
26 | modules | ||
27 | Lists the module of each card | ||
28 | |||
29 | devices | ||
30 | Lists the ALSA native device mappings. | ||
31 | |||
32 | meminfo | ||
33 | Shows the status of allocated pages via ALSA drivers. | ||
34 | Appears only when CONFIG_SND_DEBUG=y. | ||
35 | |||
36 | hwdep | ||
37 | Lists the currently available hwdep devices in format of | ||
38 | <card>-<device>: <name> | ||
39 | |||
40 | pcm | ||
41 | Lists the currently available PCM devices in format of | ||
42 | <card>-<device>: <id>: <name> : <sub-streams> | ||
43 | |||
44 | timer | ||
45 | Lists the currently available timer devices | ||
46 | |||
47 | |||
48 | oss/devices | ||
49 | Lists the OSS device mappings. | ||
50 | |||
51 | oss/sndstat | ||
52 | Provides the output compatible with /dev/sndstat. | ||
53 | You can symlink this to /dev/sndstat. | ||
54 | |||
55 | |||
56 | Card Specific Files | ||
57 | ------------------- | ||
58 | |||
59 | The card-specific files are found in /proc/asound/card* directories. | ||
60 | Some drivers (e.g. cmipci) have their own proc entries for the | ||
61 | register dump, etc (e.g. /proc/asound/card*/cmipci shows the register | ||
62 | dump). These files would be really helpful for debugging. | ||
63 | |||
64 | When PCM devices are available on this card, you can see directories | ||
65 | like pcm0p or pcm1c. They hold the PCM information for each PCM | ||
66 | stream. The number after 'pcm' is the PCM device number from 0, and | ||
67 | the last 'p' or 'c' means playback or capture direction. The files in | ||
68 | this subtree is described later. | ||
69 | |||
70 | The status of MIDI I/O is found in midi* files. It shows the device | ||
71 | name and the received/transmitted bytes through the MIDI device. | ||
72 | |||
73 | When the card is equipped with AC97 codecs, there are codec97#* | ||
74 | subdirectories (desribed later). | ||
75 | |||
76 | When the OSS mixer emulation is enabled (and the module is loaded), | ||
77 | oss_mixer file appears here, too. This shows the current mapping of | ||
78 | OSS mixer elements to the ALSA control elements. You can change the | ||
79 | mapping by writing to this device. Read OSS-Emulation.txt for | ||
80 | details. | ||
81 | |||
82 | |||
83 | PCM Proc Files | ||
84 | -------------- | ||
85 | |||
86 | card*/pcm*/info | ||
87 | The general information of this PCM device: card #, device #, | ||
88 | substreams, etc. | ||
89 | |||
90 | card*/pcm*/xrun_debug | ||
91 | This file appears when CONFIG_SND_DEBUG=y. | ||
92 | This shows the status of xrun (= buffer overrun/xrun) debug of | ||
93 | ALSA PCM middle layer, as an integer from 0 to 2. The value | ||
94 | can be changed by writing to this file, such as | ||
95 | |||
96 | # cat 2 > /proc/asound/card0/pcm0p/xrun_debug | ||
97 | |||
98 | When this value is greater than 0, the driver will show the | ||
99 | messages to kernel log when an xrun is detected. The debug | ||
100 | message is shown also when the invalid H/W pointer is detected | ||
101 | at the update of periods (usually called from the interrupt | ||
102 | handler). | ||
103 | |||
104 | When this value is greater than 1, the driver will show the | ||
105 | stack trace additionally. This may help the debugging. | ||
106 | |||
107 | card*/pcm*/sub*/info | ||
108 | The general information of this PCM sub-stream. | ||
109 | |||
110 | card*/pcm*/sub*/status | ||
111 | The current status of this PCM sub-stream, elapsed time, | ||
112 | H/W position, etc. | ||
113 | |||
114 | card*/pcm*/sub*/hw_params | ||
115 | The hardware parameters set for this sub-stream. | ||
116 | |||
117 | card*/pcm*/sub*/sw_params | ||
118 | The soft parameters set for this sub-stream. | ||
119 | |||
120 | card*/pcm*/sub*/prealloc | ||
121 | The buffer pre-allocation information. | ||
122 | |||
123 | |||
124 | AC97 Codec Information | ||
125 | ---------------------- | ||
126 | |||
127 | card*/codec97#*/ac97#?-? | ||
128 | Shows the general information of this AC97 codec chip, such as | ||
129 | name, capabilities, set up. | ||
130 | |||
131 | card*/codec97#0/ac97#?-?+regs | ||
132 | Shows the AC97 register dump. Useful for debugging. | ||
133 | |||
134 | When CONFIG_SND_DEBUG is enabled, you can write to this file for | ||
135 | changing an AC97 register directly. Pass two hex numbers. | ||
136 | For example, | ||
137 | |||
138 | # echo 02 9f1f > /proc/asound/card0/codec97#0/ac97#0-0+regs | ||
139 | |||
140 | |||
141 | Sequencer Information | ||
142 | --------------------- | ||
143 | |||
144 | seq/drivers | ||
145 | Lists the currently available ALSA sequencer drivers. | ||
146 | |||
147 | seq/clients | ||
148 | Shows the list of currently available sequencer clinets and | ||
149 | ports. The connection status and the running status are shown | ||
150 | in this file, too. | ||
151 | |||
152 | seq/queues | ||
153 | Lists the currently allocated/running sequener queues. | ||
154 | |||
155 | seq/timer | ||
156 | Lists the currently allocated/running sequencer timers. | ||
157 | |||
158 | seq/oss | ||
159 | Lists the OSS-compatible sequencer stuffs. | ||
160 | |||
161 | |||
162 | Help For Debugging? | ||
163 | ------------------- | ||
164 | |||
165 | When the problem is related with PCM, first try to turn on xrun_debug | ||
166 | mode. This will give you the kernel messages when and where xrun | ||
167 | happened. | ||
168 | |||
169 | If it's really a bug, report it with the following information | ||
170 | |||
171 | - the name of the driver/card, show in /proc/asound/cards | ||
172 | - the reigster dump, if available (e.g. card*/cmipci) | ||
173 | |||
174 | when it's a PCM problem, | ||
175 | |||
176 | - set-up of PCM, shown in hw_parms, sw_params, and status in the PCM | ||
177 | sub-stream directory | ||
178 | |||
179 | when it's a mixer problem, | ||
180 | |||
181 | - AC97 proc files, codec97#*/* files | ||
182 | |||
183 | for USB audio/midi, | ||
184 | |||
185 | - output of lsusb -v | ||
186 | - stream* files in card directory | ||
187 | |||
188 | |||
189 | The ALSA bug-tracking system is found at: | ||
190 | |||
191 | https://bugtrack.alsa-project.org/alsa-bug/ | ||