source: trunk/third/xntp/html/driver7.htm @ 17260

Revision 17260, 24.6 KB checked in by zacheiss, 23 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r17259, which included commits to RCS files with non-trunk default branches.
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
2<html>
3<head>
4<meta name="generator" content="HTML Tidy, see www.w3.org">
5<title>Radio CHU Audio Demodulator/Decoder</title>
6</head>
7<body>
8<h3>Radio CHU Audio Demodulator/Decoder</h3>
9
10<hr>
11<h4>Synopsis</h4>
12
13Address: 127.127.7.<i>u</i> <br>
14Reference ID: <tt>CHU</tt> <br>
15Driver ID: <tt>CHU</tt> <br>
16Modem Port: <tt>/dev/chu<i>u</i></tt>; 300 baud, 8-bits, no parity
17<br>
18Autotune Port: <tt>/dev/icom</tt>; 1200/9600 baud, 8-bits, no
19parity <br>
20Audio Device: <tt>/dev/chu_audio</tt> and <tt>/dev/audioctl</tt>
21
22<h4>Description</h4>
23
24<p>This driver synchronizes the computer time using data encoded in
25radio transmissions from Canadian time/frequency station CHU in
26Ottawa, Ontario. It replaces an earlier one, built by Dennis
27Ferguson in 1988, which required a special line discipline to
28preprocessed the signal. The new driver includes more powerful
29algorithms implemented directly in the driver and requires no
30preprocessing.</p>
31
32<p>CHU transmissions are made continuously on 3330 kHz, 7335 kHz
33and 14670 kHz in upper sideband, compatible AM mode. An ordinary
34shortwave receiver can be tuned manually to one of these
35frequencies or, in the case of ICOM receivers, the receiver can be
36tuned automatically as propagation conditions change throughout the
37day and night. The performance of this driver when tracking the
38station is ordinarily better than 1 ms in time with frequency drift
39less than 0.5 PPM when not tracking the station.</p>
40
41<p>While there are currently no known commercial CHU receivers, a
42simple but effective receiver/demodulator can be constructed from
43an ordinary shortwave receiver and Bell 103 compatible, 300-b/s
44modem or modem chip, as described in the <a href="gadget.htm">
45Gadget Box PPS Level Converter and CHU Modem</a> page. The driver
46can use the modem to receive the radio signal and demodulate the
47data or, if available, the driver can use the audio codec of the
48Sun workstation or another with compatible audio interface. In the
49latter case, the driver implements the modem using DSP routines, so
50the radio can be connected directly to either the microphone on
51line input port.</p>
52
53<p>This driver incorporates several features in common with other
54audio drivers such as described in the <a href="driver36.htm">Radio
55WWV/H Audio Demodulator/Decoder</a> and the <a href="driver6.htm">
56IRIG Audio Decoder</a> pages. They include automatic gain control
57(AGC), selectable audio codec port and signal monitoring
58capabilities. For a discussion of these common features, as well as
59a guide to hookup, debugging and monitoring, see the <a href=
60"audio.htm">Reference Clock Audio Drivers</a> page.</p>
61
62<p>Ordinarily, the driver poll interval is set to 14 (about 4.5 h),
63although this can be changed with configuration commands. As long
64as the clock is set or verified at least once during this interval,
65the NTP algorithms will consider the source reachable and
66selectable to discipline the system clock. However, if this does
67not happen for eight poll intervals, the algorithms will consider
68the source unreachable and some other source will be chosen (if
69available) to discipline the system clock.</p>
70
71<p>The decoding algorithms process the data using
72maximum-likelihood techniques which exploit the considerable degree
73of redundancy available in each broadcast message or burst. As
74described below, every character is sent twice and, in the case of
75format A bursts, the burst is sent eight times every minute. In the
76case of format B bursts, which are sent once each minute, the burst
77is considered correct only if every character matches its
78repetition in the burst. In the case of format A messages, a
79majority decoder requires at least six repetitions for each digit
80in the timecode and more than half of the repetitions decode to the
81same digit. Every character in every burst provides an independent
82timestamp upon arrival with a potential total of over 60 timestamps
83for each minute.</p>
84
85<p>A timecode in the format described below is assembled when all
86bursts have been received in the minute. The timecode is considered
87valid and the clock set when at least one valid format B burst has
88been decoded and the above requirements are met. The <tt>yyyy</tt>
89year field in the timecode indicates whether a valid format B burst
90has been received. Upon startup, this field is initialized at zero;
91when a valid format B burst is received, it is set to the current
92Gregorian year. The <tt>q</tt> quality character field in the
93timecode indicates whether a valid timecode has been determined. If
94any of the high order three bits of this character are set, the
95timecode is invalid.</p>
96
97<p>Once the clock has been set for the first time, it will appear
98reachable and selectable to discipline the system clock, even if
99the broadcast signal is lost. Since the signals are almost always
100available during some period of the day and the NTP clock
101discipline algorithms are designed to work well even in this case,
102it is unlikely that the system clock could drift more than a few
103tens of milliseconds during periods of signal loss. To protect
104against this most unlikely situation, if after four days with no
105signals, the clock is considered unset and resumes the
106synchronization procedure from the beginning.</p>
107
108<p>The last three fields in the timecode are useful in assessing
109the quality of the radio channel during the most recent minute
110bursts were received. The <tt>bcnt</tt> field shows the number of
111format A bursts in the range 1-8. The <tt>dist</tt> field shows the
112majority decoder distance, or the minimum number of sample
113repetitions for each digit of the timecode in the range 0-16. The
114<tt>tsmp</tt> field shows the number of timestamps determined in
115the range 0-60. For a valid timecode, <tt>bcnt</tt> must be at
116least 3, <tt>dist</tt> must be greater than <tt>bcnt</tt> and <tt>
117tsmp</tt> must be at least 20.</p>
118
119<h4>Program Operation</h4>
120
121<p>The program consists of four major parts: the DSP modem, maximum
122likelihood UART, burst assembler and majority decoder. The DSP
123modem demodulates Bell 103 modem answer-frequency signals; that is,
124frequency-shift keyed (FSK) tones of 2225 Hz (mark) and 2025 Hz
125(space). This is done using a 4th-order IIR filter and
126limiter/discriminator with 500-Hz bandpass centered on 2125 Hz and
127followed by a FIR raised-cosine lowpass filter optimized for the
128300-b/s data rate. Alternately, the driver can be compiled to
129delete the modem and input 300 b/s data directly from an external
130modem via a serial port.</p>
131
132<p>The maximum likelihood UART is implemented using a set of eight
13311-stage shift registers, one for each of eight phases of the
134300-b/s bit clock. At each phase a new baseband signal value from
135the DSP modem is shifted into the corresponding register and the
136maximum and minimum over all 11 samples computed. This establishes
137a slice level midway between the maximum and minimum over all
138stages. For each stage, a signal level above this level is a mark
139(1) and below is a space (0). A quality metric is calculated for
140each register with respect to the slice level and the a-priori
141signal consisting of a mark bit (previous stop bit), space (start)
142bit, eight arbitrary information bits and the first of the two mark
143(stop) bits.</p>
144
145<p>The shift registers are processed in round-robin order as each
146modem value arrives until one of them shows a valid framing pattern
147consisting of a mark bit, space bit, eight arbitrary data bits and
148a mark bit. When found, the data bits from the register with the
149best metric is chosen as the maximum likelihood character and the
150UART begins to process the next character.</p>
151
152<p>The burst assembler processes characters either from the maximum
153likelihood UART or directly from the serial port as configured. A
154burst begins when a character is received and is processed after a
155timeout interval when no characters are received. If the interval
156between characters is greater than two characters, but less than
157the timeout interval, the burst is rejected as a runt and a new
158burst begun. As each character is received, a timestamp is captured
159and saved for later processing.</p>
160
161<p>A valid burst consists of ten characters in two replicated
162five-character blocks. A format B block contains the year and other
163information in ten hexadecimal digits. A format A block contains
164the timecode in ten decimal digits, the first of which is a framing
165code (6). The burst assembler must deal with cases where the first
166character of a format A burst is lost or is noise. This is done
167using the framing code to correct the phase, either one character
168early or one character late.</p>
169
170<p>The burst distance is incremented by one for each bit in the
171first block that matches the corresponding bit in the second block
172and decremented by one otherwise. In a format B burst the second
173block is bit-inverted relative to the first, so a perfect burst of
174five 8-bit characters has distance -40. In a format A block the two
175blocks are identical, so a perfect burst has distance +40. Format B
176bursts must be perfect to be acceptable; however, format A bursts,
177which are further processed by the majority decoder, are acceptable
178if the distance is at least 28.</p>
179
180<p>Each minute of transmission includes eight format A bursts
181containing two timecodes for each second from 31 through 39. The
182majority decoder uses a decoding matrix of ten rows, one for each
183digit position in the timecode, and 16 columns, one for each 4-bit
184code combination that might be decoded at that position. In order
185to use the character timestamps, it is necessary to reliably
186determine the second number of each burst. In a valid burst, the
187last digit of the two timecodes in the block must match and the
188value must be in the range 2-9 and greater than in the previous
189burst.</p>
190
191<p>As each hex digit of a valid burst is processed, the value at
192the row corresponding to the digit position in the timecode and
193column corresponding to the code found at that position is
194incremented. At the end of each minute of transmission, each row of
195the decoding matrix encodes the number of occurrences of each code
196found at the corresponding position of the timecode. However, the
197first digit (framing code) is always 6, the ninth (second tens) is
198always 3 and the last (second units) changes for each burst, so are
199not used.</p>
200
201<p>The maximum over all occurrences at each timecode digit position
202is the distance for that position and the corresponding code is the
203maximum likelihood candidate. If the distance is zero, the decoder
204assumes a miss; if the distance is not more than half the total
205number of occurrences, the decoder assumes a soft error; if two
206different codes with the same distance are found, the decoder
207assumes a hard error. In all these cases the decoder encodes a
208non-decimal character which will later cause a format error when
209the timecode is reformatted. The decoding distance is defined as
210the minimum distance over the first nine digits; the tenth digit
211varies over the seconds and is uncounted.</p>
212
213<p>The result of the majority decoder is a nine-digit timecode
214representing the maximum likelihood candidate for the transmitted
215timecode in that minute. Note that the second and fraction within
216the minute are always zero and that the actual reference point to
217calculate timestamp offsets is backdated to the first second of the
218minute. At this point the timecode block is reformatted and the
219year, days, hours and minutes extracted along with other
220information from the format B burst, including DST state, DUT1
221correction and leap warning. The reformatting operation checks the
222timecode for invalid code combinations that might have been left by
223the majority decoder and rejects the entire timecode if found.</p>
224
225<p>If the timecode is valid, it is passed to the reference clock
226interface along with the backdated timestamp offsets accumulated
227over the minute. A perfect set of nine bursts could generate as
228many as 90 timestamps, but the maximum the interface can handle is
22960. These are processed by the interface using a median filter and
230trimmed-mean average, so the resulting system clock correction is
231usually much better than would otherwise be the case with radio
232noise, UART jitter and occasional burst errors.</p>
233
234<h4>Autotune</h4>
235
236<p>The driver includes provisions to automatically tune the radio
237in response to changing radio propagation conditions throughout the
238day and night. The radio interface is compatible with the ICOM CI-V
239standard, which is a bidirectional serial bus operating at TTL
240levels. The bus can be connected to a standard serial port using a
241level converter such as the CT-17. The serial port speed is
242presently compiled in the program, but can be changed in the <tt>
243icom.h</tt> header file.</p>
244
245<p>Each ICOM radio is assigned a unique 8-bit ID select code,
246usually expressed in hex format. To activate the CI-V interface,
247the <tt>mode</tt> keyword of the <tt>server</tt> configuration
248command specifies a nonzero select code in decimal format. A table
249of ID select codes for the known ICOM radios is given below. Since
250all ICOM select codes are less than 128, the high order bit of the
251code is used by the driver to specify the baud rate. If this bit is
252not set, the rate is 9600 bps for the newer radios; if set, the
253rate is 1200 bps for the older radios. A missing <tt>mode</tt>
254keyword or a zero argument leaves the interface disabled.</p>
255
256<p>If specified, the driver will attempt to open the device <tt>
257/dev/icom</tt> and, if successful will tune the radio to 3.330 MHz.
258If after five minutes at this frequency not more than two format A
259bursts have been received for any minute, the driver will tune to
2607.335 MHz, then to 14.670 MHz, then return to 3.330 MHz and
261continue in this cycle. However, the driver is liberal in what it
262assumes of the configuration. If the <tt>/dev/icom</tt> link is not
263present or the open fails or the CI-V bus or radio is inoperative,
264the driver quietly gives up with no harm done.</p>
265
266<h4>Radio Broadcast Format</h4>
267
268<p>The CHU time broadcast includes an audio signal compatible with
269the Bell 103 modem standard (mark = 2225 Hz, space = 2025 Hz). It
270consist of nine, ten-character bursts transmitted at 300 b/s and
271beginning each second from second 31 to second 39 of the minute.
272Each character consists of eight data bits plus one start bit and
273two stop bits to encode two hex digits. The burst data consist of
274five characters (ten hex digits) followed by a repeat of these
275characters. In format A, the characters are repeated in the same
276polarity; in format B, the characters are repeated in the opposite
277polarity.</p>
278
279<p>Format A bursts are sent at seconds 32 through 39 of the minute
280in hex digits</p>
281
282<p><tt>6dddhhmmss6dddhhmmss</tt></p>
283
284<p>The first ten digits encode a frame marker (<tt>6</tt>) followed
285by the day (<tt>ddd</tt>), hour (<tt>hh</tt>), minute (<tt>mm</tt>)
286and second (<tt>ss</tt>). Since format A bursts are sent during the
287third decade of seconds the tens digit of <tt>ss</tt> is always 3.
288The driver uses this to determine correct burst synchronization.
289These digits are then repeated with the same polarity.</p>
290
291<p>Format B bursts are sent at second 31 of the minute in hex
292digits</p>
293
294<p><tt>xdyyyyttaaxdyyyyttaa</tt></p>
295
296<p>The first ten digits encode a code (<tt>x</tt> described below)
297followed by the DUT1 (<tt>d</tt> in deciseconds), Gregorian year
298(<tt>yyyy</tt>), difference TAI - UTC (<tt>tt</tt>) and daylight
299time indicator (<tt>aa</tt>) peculiar to Canada. These digits are
300then repeated with inverted polarity.</p>
301
302<p>The <tt>x</tt> is coded</p>
303
304<dl>
305<dt><tt>1</tt></dt>
306
307<dd>Sign of DUT (0 = +)/dd&gt;</dd>
308
309<dt><tt>2</tt></dt>
310
311<dd>Leap second warning. One second will be added.</dd>
312
313<dt><tt>4</tt></dt>
314
315<dd>Leap second warning. One second will be subtracted. This is not
316likely to happen in our universe.</dd>
317
318<dt><tt>8</tt></dt>
319
320<dd>Even parity bit for this nibble.</dd>
321</dl>
322
323<p>By design, the last stop bit of the last character in the burst
324coincides with 0.5 second. Since characters have 11 bits and are
325transmitted at 300 b/s, the last stop bit of the first character
326coincides with 0.5 - 10 * 11/300 = 0.133 second. Depending on the
327UART, character interrupts can vary somewhere between the beginning
328of bit 9 and end of bit 11. These eccentricities can be corrected
329along with the radio propagation delay using the <tt>fudge
330time1</tt> variable.</p>
331
332<h4>Debugging Aids</h4>
333
334<p>The most convenient way to track the program status is using the
335<tt>ntpq</tt> program and the <tt>clockvar</tt> command. This
336displays the last determined timecode and related status and error
337counters, even when the program is not discipline the system clock.
338If the debugging trace feature (<tt>-d</tt> on the <tt>ntpd</tt>
339command line)is enabled, the program produces detailed status
340messages as it operates. If the <tt>fudge flag 4</tt> is set, these
341messages are written to the <tt>clockstats</tt> file. All messages
342produced by this driver have the prefix <tt>chu</tt> for convenient
343filtering with the Unix <tt>grep</tt> command.</p>
344
345<p>With debugging enabled the driver produces messages in the
346following formats:</p>
347
348<p>A format <tt>chuA</tt> message is produced for each format A
349burst received in seconds 32 through 39 of the minute:</p>
350
351<p><tt>chuA n b s code</tt></p>
352
353<p>where <tt>n</tt> is the number of characters in the burst
354(0-11), <tt>b</tt> the burst distance (0-40), <tt>s</tt> the
355synchronization distance (0-40) and <tt>code</tt> the burst
356characters as received. Note that the hex digits in each character
357are reversed and the last ten digits inverted, so the burst</p>
358
359<p><tt>11 40 1091891300ef6e76ecff</tt></p>
360
361<p>is interpreted as containing 11 characters with burst distance
36240. The nibble-swapped timecode shows DUT1 +0.1 second, year 1998
363and TAI -UTC 31 seconds.</p>
364
365<p>A format <tt>chuB</tt> message is produced for each format B
366burst received in second 31 of the minute:</p>
367
368<p><tt>chuB n b f s m code</tt></p>
369
370<p>where <tt>n</tt> is the number of characters in the burst
371(0-11), <tt>b</tt> the burst distance (0-40), <tt>f</tt> the field
372alignment (-1, 0, 1), <tt>s</tt>the synchronization distance
373(0-16), <tt>m</tt>the burst number (2-9) and <tt>code</tt> the
374burst characters as received. Note that the hex digits in each
375character are reversed, so the burst</p>
376
377<p><tt>10 38 0 16 9 06851292930685129293</tt></p>
378
379<p>is interpreted as containing 11 characters with burst distance
38038, field alignment 0, synchronization distance 16 and burst number
3819. The nibble-swapped timecode shows day 58, hour 21, minute 29 and
382second 39.</p>
383
384<p>If the CI-V interface for ICOM radios is active, a debug level
385greater than 1 will produce a trace of the CI-V command and
386response messages. Interpretation of these messages requires
387knowledge of the CI-V protocol, which is beyond the scope of this
388document.</p>
389
390<h4>Monitor Data</h4>
391
392When enabled by the <tt>filegen</tt> facility, every received
393timecode is written to the <tt>clockstats</tt> file in the
394following format:
395
396<pre>
397        sq yy ddd hh:mm:ss.fff ld dut lset agc rfrq bcnt dist tsmp
398
399        s       sync indicator
400        q       quality character
401        yyyy    Gregorian year
402        ddd     day of year
403        hh      hour of day
404        mm      minute of hour
405        ss      second of minute
406        fff     millisecond of second
407        l       leap second warning
408        d       DST state
409        dut     DUT sign and magnitude in deciseconds
410        lset    minutes since last set
411        agc     audio gain (0-255)
412        rfrq    radio frequency
413        bcnt    burst count
414        dist    decoding distance
415        tsmp    timestamps captured
416</pre>
417
418The fields beginning with <tt>year</tt> and extending through <tt>
419dut</tt> are decoded from the received data and are in fixed-length
420format. The <tt>agc</tt> and <tt>lset</tt> fields, as well as the
421following driver-dependent fields, are in variable-length format.
422
423<dl>
424<dt><tt>s</tt></dt>
425
426<dd>The sync indicator is initially <tt>?</tt> before the clock is
427set, but turns to space when the clock is correctly set.</dd>
428
429<dt><tt>q</tt></dt>
430
431<dd>The quality character is a four-bit hexadecimal code showing
432which alarms have been raised during the most recent minute. Each
433bit is associated with a specific alarm condition according to the
434following:
435
436<dl>
437<dt><tt>8</tt></dt>
438
439<dd>Decoder alarm. A majority of repetitions for at least one digit
440of the timecode fails to agree.</dd>
441
442<dt><tt>4</tt></dt>
443
444<dd>Timestamp alarm. Fewer than 20 timestamps have been
445determined.</dd>
446
447<dt><tt>2</tt></dt>
448
449<dd>Format alarm. The majority timecode contains invalid bit
450combinations.</dd>
451
452<dt><tt>1</tt></dt>
453
454<dd>Frame alarm. A framing or format error occurred on at least one
455burst during the minute.</dd>
456</dl>
457
458It is important to note that one or more of the above alarms does
459not necessarily indicate a clock error, but only that the decoder
460has detected a condition that may in future result in an
461error.</dd>
462
463<dt><tt>yyyy ddd hh:mm:ss.fff</tt></dt>
464
465<dd>The timecode format itself is self explanatory. Note that the
466Gregorian year is decoded directly from the transmitted
467timecode.</dd>
468
469<dt><tt>l</tt></dt>
470
471<dd>The leap second warning is normally space, but changes to <tt>
472L</tt> if a leap second is to occur at the end of the month of June
473or December.</dd>
474
475<dt><tt>d</tt></dt>
476
477<dd>The DST code for Canada encodes the state for all
478provinces.</dd>
479
480<dt><tt>dut</tt></dt>
481
482<dd>The DUT sign and magnitude shows the current UT1 offset
483relative to the displayed UTC time, in deciseconds.</dd>
484
485<dt><tt>lset</tt></dt>
486
487<dd>Before the clock is set, the interval since last set is the
488number of minutes since the program was started; after the clock is
489set, this is number of minutes since the time was last verified
490relative to the broadcast signal.</dd>
491
492<dt><tt>agc</tt></dt>
493
494<dd>The audio gain shows the current codec gain setting in the
495range 0 to 255. Ordinarily, the receiver audio gain control or IRIG
496level control should be set for a value midway in this range.</dd>
497
498<dt><tt>rfrq</tt></dt>
499
500<dd>The current radio frequency, if the CI-V interface is active,
501or 'X' if not.</dd>
502
503<dt><tt>bcnt</tt></dt>
504
505<dd>The number of format A bursts received during the most recent
506minute bursts were received.</dd>
507
508<dt><tt>dist</tt></dt>
509
510<dd>The minimum decoding distance determined during the most recent
511minute bursts were received.</dd>
512
513<dt><tt>tsmp</tt></dt>
514
515<dd>The number of timestamps determined during the most recent
516minute bursts were received.</dd>
517</dl>
518
519<h4>Modes</h4>
520
521<p>The <tt>mode</tt> keyword of the <tt>server</tt> configuration
522command specifies the ICOM ID select code. A missing or zero
523argument disables the CI-V interface. Following are the ID select
524codes for the known radios.</p>
525
526<table cols="6" width="100%">
527<tr>
528<td>Radio</td>
529<td>Hex</td>
530<td>Decimal</td>
531<td>Radio</td>
532<td>Hex</td>
533<td>Decimal</td>
534</tr>
535
536<tr>
537<td>IC725</td>
538<td>0x28</td>
539<td>40</td>
540<td>IC781</td>
541<td>0x26</td>
542<td>38</td>
543</tr>
544
545<tr>
546<td>IC726</td>
547<td>0x30</td>
548<td>48</td>
549<td>R7000</td>
550<td>0x08</td>
551<td>8</td>
552</tr>
553
554<tr>
555<td>IC735</td>
556<td>0x04</td>
557<td>4</td>
558<td>R71</td>
559<td>0x1A</td>
560<td>26</td>
561</tr>
562
563<tr>
564<td>IC751</td>
565<td>0x1c</td>
566<td>28</td>
567<td>R7100</td>
568<td>0x34</td>
569<td>52</td>
570</tr>
571
572<tr>
573<td>IC761</td>
574<td>0x1e</td>
575<td>30</td>
576<td>R72</td>
577<td>0x32</td>
578<td>50</td>
579</tr>
580
581<tr>
582<td>IC765</td>
583<td>0x2c</td>
584<td>44</td>
585<td>R8500</td>
586<td>0x4a</td>
587<td>74</td>
588</tr>
589
590<tr>
591<td>IC775</td>
592<td>0x46</td>
593<td>68</td>
594<td>R9000</td>
595<td>0x2a</td>
596<td>42</td>
597</tr>
598</table>
599
600<h4>Fudge Factors</h4>
601
602<dl>
603<dt><tt>time1 <i>time</i></tt></dt>
604
605<dd>Specifies the propagation delay for CHU (45:18N 75:45N), in
606seconds and fraction, with default 0.0.</dd>
607
608<dt><tt>time2 <i>time</i></tt></dt>
609
610<dd>Not used by this driver.</dd>
611
612<dt><tt>stratum <i>number</i></tt></dt>
613
614<dd>Specifies the driver stratum, in decimal from 0 to 15, with
615default 0.</dd>
616
617<dt><tt>refid <i>string</i></tt></dt>
618
619<dd>Specifies the driver reference identifier, an ASCII string from
620one to four characters, with default <tt>CHU</tt>.</dd>
621
622<dt><tt>flag1 0 | 1</tt></dt>
623
624<dd>Not used by this driver.</dd>
625
626<dt><tt>flag2 0 | 1</tt></dt>
627
628<dd>When the audio driver is compiled, this flag selects the audio
629input port, where 0 is the mike port (default) and 1 is the line-in
630port. It does not seem useful to select the compact disc player
631port.</dd>
632
633<dt><tt>flag3 0 | 1</tt></dt>
634
635<dd>When the audio driver is compiled, this flag enables audio
636monitoring of the input signal. For this purpose, the speaker
637volume must be set before the driver is started.</dd>
638
639<dt><tt>flag4 0 | 1</tt></dt>
640
641<dd>Enable verbose <tt>clockstats</tt> recording if set.</dd>
642</dl>
643
644<h4>Additional Information</h4>
645
646<a href="refclock.htm">Reference Clock Drivers</a> <br>
647<a href="audio.htm">Reference Clock Audio Drivers</a> 
648
649<hr>
650<a href="index.htm"><img align="left" src="pic/home.gif" alt=
651"gif"></a>
652
653<address><a href="mailto:mills@udel.edu">David L. Mills
654&lt;mills@udel.edu&gt;</a></address>
655</body>
656</html>
657
Note: See TracBrowser for help on using the repository browser.