aboutsummaryrefslogtreecommitdiff
path: root/documentation/content/mn/books/handbook/multimedia/_index.adoc
blob: 0ed4fa6d0a49b4561ca0f91798d278410f381c46 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
---
title: Бүлэг 8. Мультимедиа
part: хэсэг II. Нийтлэг асуудлууд
prev: books/handbook/desktop
next: books/handbook/kernelconfig
showBookMenu: true
weight: 11
path: "/books/handbook/"
---

[[multimedia]]
= Мультимедиа
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 8
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/handbook/multimedia/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[[multimedia-synopsis]]
== Ерөнхий агуулга

FreeBSD нь танд өөрийн компьютераас гарах өндөр чанарын гаралтад сэтгэл ханамжтай байх боломжийг олгож төрөл бүрийн дууны картуудыг дэмждэг. Энэ нь аудиог MPEG Аудио Давхарга 3 (MP3), WAV, болон Ogg Vorbis зэрэг бусад олон хэлбэршилтүүдээр бичлэг хийх болон тоглуулах чадвартай байдаг. FreeBSD-ийн портын цуглуулга нь таны бичигдсэн аудиог засварлах, дууны нөлөөллүүдийг нэмэх болон залгагдсан MIDI төхөөрөмжүүд хянахыг зөвшөөрөх програмуудыг бас агуулдаг.

Зарим нэг туршилтын тусламжтайгаар FreeBSD нь видео файлууд болон DVD-үүдийг тоглуулахыг дэмжиж чаддаг. Төрөл бүрийн видео зөөвөрлөгчийг кодчилох, хөрвүүлэх, болон тоглуулах програмуудын тоо дууны програмуудын тоотой харьцуулах юм бол хязгаарлагдмал байдаг. Жишээ нь, үүнийг бичиж байх үед, package:audio/sox[]-той адил хэлбэршилтүүдийн хооронд хөрвүүлэхэд хэрэглэгдэх дахин кодчилох сайн програм FreeBSD-ийн портын цуглуулгад байхгүй байгаа билээ. Гэхдээ энэ талбар дахь програм хангамжийн байдал хурдацтай өөрчлөгдөж байна.

Энэ бүлэг нь таны дууны картыг тохируулахад шаардлагатай алхмуудыг тайлбарлах болно. X11-ийн (crossref:x11[x11,X Цонхот систем]) тохиргоо болон суулгац нь таны видео тоног төхөөрөмжийн асуудлуудыг аль хэдийн зохицуулсан байдаг боловч илүү сайн тоглуулахын тулд зарим нэгэн нарийн тохируулгууд хийх хэрэгтэй байж болох юм.

Энэ бүлгийг уншиж дууссаны дараа та дараах зүйлсийг мэдэх болно:

* Таны дууны карт чинь танигдсан байхаар өөрийн системээ хэрхэн тохируулах талаар.
* Таны карт ажиллаж байгааг шалгах аргууд.
* Өөрийн дууны тохиргооны алдааг хэрхэн олж засварлах талаар.
* MP3-ууд болон бусад аудиог хэрхэн тоглуулах ба кодчилох талаар.
* X серверээр видео хэрхэн дэмжигдсэн талаар.
* Сайн үр дүн өгдөг зарим нэгэн тоглуулагч/кодчилогч портууд.
* DVD-үүд, [.filename]#.mpg# болон [.filename]#.avi# файлуудыг хэрхэн тоглуулах талаар.
* CD болон DVD-ээс файлууд уруу агуулгыг хэрхэн авах талаар.
* TV карт хэрхэн тохируулах талаар.
* Дүрс скан хийгчийг хэрхэн тохируулах талаар.

Энэ бүлгийг уншихаасаа өмнө, та дараах зүйлсийг мэдэх шаардлагатай:

* Шинэ цөмийг хэрхэн тохируулж суулгах талаар мэдэх (crossref:kernelconfig[kernelconfig,FreeBSD цөмийг тохируулах нь]).

[WARNING]
====

man:mount[8] тушаалаар аудио CD-үүдийг холбохыг оролдох нь хамгийн гайгүйдээ алдаанд, хамгийн муудаа __цөмийн сүйрэл__д хүргэж болох юм. Эдгээр зөөвөрлөгчид нь ердийн ISO файлын системүүдээс ялгаатай тусгай кодчилолуудтай байдаг.
====

[[sound-setup]]
== Дууны картыг тохируулах

[[sound-device]]
=== Системийг тохируулах

Эхлэхээсээ өмнө та өөртөө байгаа картынхаа загвар, ашиглаж байгаа бичил схем болон PCI эсвэл ISA картны алин болохыг мэдэх шаардлагатай. FreeBSD нь төрөл бүрийн PCI эсвэл ISA картуудыг дэмждэг. link:{u-rel120-hardware}[Тоног төхөөрөмжийн тэмдэглэгээ]ний дэмжигдсэн аудио төхөөрөмжүүдийн жагсаалтыг шалгаж өөрийн картыг дэмжигдсэн эсэхийг үзээрэй. Тоног төхөөрөмжийн тэмдэглэгээ нь таны картыг ямар драйвер дэмждэгийг бас хэлэх болно.

Өөрийн дууны төхөөрөмжийг ашиглахын тулд тохирох төхөөрөмжийн драйверийг та ачаалах хэрэгтэй болно. Үүнийг хоёр аргын аль нэгээр хийж болно. Хамгийн амархан арга бол man:kldload[8] тушаалаар өөрийн картныхаа цөмийн модулийг тушаалын мөрөөс:

[source,shell]
....
# kldload snd_emu10k1
....

гэж ачаалах юм уу эсвэл [.filename]#/boot/loader.conf# файлд тохирох мөрийг ингэж нэмэн дуудаж болно:

[.programlisting]
....
snd_emu10k1_load="YES"
....

Эдгээр жишээнүүд нь Creative SoundBlaster(R) Live! дууны картанд зориулагдсан юм. Бусад байгаа дуудагдаж болох дууны модулиуд [.filename]#/boot/defaults/loader.conf#-д жагсаагдсан байдаг. Хэрэв та аль драйверийг ашиглахаа мэдэхгүй эргэлзэж байвал [.filename]#snd_driver# модулийг дуудаж үзэж болох юм:

[source,shell]
....
# kldload snd_driver
....

Энэ нь хамгийн түгээмэл драйверуудыг нэг удаа ачаалдаг метадрайвер юм. Энэ нь зөв драйверийг хайхыг хурдасгадаг. Дууны бүх драйверуудыг [.filename]#/boot/loader.conf# файлаар ачаалах бас боломжтой байдаг.

[.filename]#snd_driver# метадрайверийг дуудсаны дараа та өөрийн дууны картдаа ямар драйвер сонгогдсоныг олохыг хүсвэл [.filename]#/dev/sndstat# файлыг `cat /dev/sndstat` тушаалын тусламжтай шалгаж болох юм.

Хоёр дахь арга нь өөрийн дууны картын дэмжлэгийг өөрийн цөмдөө эмхэтгэх явдал юм. Доорх хэсэг нь энэ аргаар өөрийн тоног төхөөрөмжид зориулан дэмжлэг нэмэхэд шаардлагатай мэдээллийг өгнө. Өөрийн цөмийг дахин эмхэтгэх тухай дэлгэрэнгүй мэдээллийг crossref:kernelconfig[kernelconfig,FreeBSD цөмийг тохируулах нь]-с үзнэ үү.

==== Дууны дэмжлэгтэй цөмийг тохируулах

Эхлээд хийх ёстой зүйл нь аудио тогтолцооны драйвер man:sound[4]-г цөм уруу нэмэх явдал юм. Ингэхийн тулд та дараах мөрийг цөмийн тохиргооны файлдаа нэмэх хэрэгтэй болно:

[.programlisting]
....
device sound
....

Дараа нь та өөрийн дууны картдаа зориулж дэмжлэг нэмэх хэрэгтэй. Тийм болохоор картыг ямар драйвер дэмждэгийг мэдэх хэрэгтэй. Өөрийн дууны картын зөв драйверийг тодорхойлохын тулд link:{u-rel120-hardware}[Тоног төхөөрөмжийн тэмдэглэгээ]ний дэмжигдсэн аудио төхөөрөмжүүдийн жагсаалтыг шалгах хэрэгтэй. Жишээ нь Creative SoundBlaster(R) Live! дууны карт нь man:snd_emu10k1[4] драйвераар дэмжигдсэн байдаг. Энэ картанд зориулж дэмжлэг нэмэхийн тулд доор дурдсаныг ашиглана:

[.programlisting]
....
device snd_emu10k1
....

Хэрхэн ашиглах талаар драйверийн гарын авлагын хуудаснаас уншихаа мартуузай. Дэмжигдсэн дууны драйверуудын цөмийн тохиргооны зөв бичиглэлийг [.filename]#/usr/src/sys/conf/NOTES# файлаас бас олж болно.

PnP биш ISA дууны картууд нь цөмийг картын тохируулгуудын (IRQ, I/O порт, гэх мэт) тухай мэдээлэлтэй нь танаас шаардаж болох юм. Энэ нь бүх PnP биш ISA дууны картуудын хувьд үнэн байдаг. Үүнийг [.filename]#/boot/device.hints# файлын тусламжтай хийдэг. Системийг ачаалах үед man:loader[8] нь энэ файлыг уншиж тохируулгуудыг цөм уруу дамжуулдаг. Жишээ нь хуучин Creative SoundBlaster(R) 16 ISA PnP биш карт man:snd_sbc[4] драйверийг `snd_sb16`-тай цуг ашиглах болно. Энэ картны хувьд дараах мөрүүдийг цөмийн тохиргооны файлд нэмэх хэрэгтэй:

[.programlisting]
....
device snd_sbc
device snd_sb16
....

бөгөөд бас доор дурдсаныг [.filename]#/boot/device.hints#-д нэмэх хэрэгтэй:

[.programlisting]
....
hint.sbc.0.at="isa"
hint.sbc.0.port="0x220"
hint.sbc.0.irq="5"
hint.sbc.0.drq="1"
hint.sbc.0.flags="0x15"
....

Энэ тохиолдолд карт нь `0x220` I/O порт болон IRQ `5`-ыг ашиглаж байна.

[.filename]#/boot/device.hints# файлд ашигласан зөв бичиглэлийн талаар man:sound[4] драйверийн гарын авлагын хуудас болон ашиглах гэж байгаа драйверийн гарын авлагын хуудсанд өгүүлсэн байдаг.

Дээр үзүүлсэн тохируулгууд нь анхдагчууд юм. Зарим тохиолдолд та IRQ юм уу эсвэл бусад тохируулгуудыг өөрийн картдаа тааруулан өөрчлөх хэрэг гарч болох юм. Энэ картны талаар дэлгэрэнгүй мэдээллийг man:snd_sbc[4] гарын авлагын хуудаснаас үзнэ үү.

[[sound-testing]]
=== Дууны картыг тест хийх

Өөрчилсөн цөмийг дахин ачаалсны дараа эсвэл шаардлагатай модулийг дуудсаны дараа дууны карт нь иймэрхүүгээр таны системийн мэдэгдлийн буферт (man:dmesg[8]) гарч ирэх ёстой:

[source,shell]
....
pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: <Cirrus Logic CS4205 AC97 Codec>
....

Дууны картын төлөвийг [.filename]#/dev/sndstat# файлын тусламжтай шалгаж болно:

[source,shell]
....
# cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384
kld snd_ich (1p/2r/0v channels duplex default)
....

Таны системээс гарах гаралт өөр өөр байж болно. Хэрэв ямар ч [.filename]#pcm# төхөөрөмжүүд гарч ирэхгүй байвал буцаад урьд нь юу хийснийгээ дахин шалгах хэрэгтэй. Өөрийн цөмийн тохиргооны файлыг дахин шалгаж зөв төхөөрөмжийн драйвер сонгогдсон эсэхийг шалгаарай. Нийтлэг асуудлууд <<troubleshooting>> хэсэгт жагсаагдсан байгаа.

Хэрэв бүгд зүгээр болвол одоо та ажиллагаатай дууны карттай байх ёстой. Хэрэв таны CD-ROM эсвэл DVD-ROM хөтчийн дууны гаралтын холбогч таны дууны карттай зөв холбогдсон бол та хөтөчдөө CD хийж түүнийг man:cdcontrol[1]-оор тоглуулж болно:

[source,shell]
....
% cdcontrol -f /dev/acd0 play 1
....

package:audio/workman[] зэрэг төрөл бүрийн програмууд нь илүү нөхөрсөг интерфэйсийн боломжтой байдаг. Та MP3 аудио файлууд сонсохын тулд package:audio/mpg123[] зэрэг програмыг суулгахыг хүсэж болох юм.

Картыг хурдан тест хийх өөр нэг арга бол [.filename]#/dev/dsp# уруу өгөгдөл иймэрхүү маягаар илгээх явдал юм:

[source,shell]
....
% cat filename > /dev/dsp
....

Энд байгаа [.filename]#filename# нь ямар ч файл байж болно. Энэ тушаалын мөр нь шуугиан үүсгэх ёстой бөгөөд энэ нь уг дууны карт ажиллаж байгааг баталж байгаа юм.

[NOTE]
====
Төхөөрөмжийн цэгүүд болох [.filename]#/dev/dsp*# шаардлагатай тохиолдолд автоматаар үүсдэг. Хэрэв тэдгээр нь ашиглагдаагүй бол байхгүй байх бөгөөд man:ls[1] тушаалын гаралтад харагдахгүй байна.
====

Дууны картын холигчийн түвшингүүдийг man:mixer[8] тушаалаар өөрчилж болно. Илүү дэлгэрэнгүйг man:mixer[8] гарын авлагын хуудаснаас олж болно.

[[troubleshooting]]
==== Нийтлэг асуудлууд

[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
| Алдаа
| Шийдэл

|`sb_dspwr(XX) timed out`
|

I/O порт зөв тохируулагдаагүй.

|`bad irq XX`
|

IRQ буруу тохируулагдсан. Тохируулагдсан IRQ болон дууны IRQ адил байгаа эсэхийг шалгана.

|`xxx: gus pcm not attached, out of memory`
|

Төхөөрөмжийн ашиглах хангалттай санах ой байхгүй байна.

|`xxx: can't open /dev/dsp!`
|

Өөр програм төхөөрөмжийг онгорхой барьж байгаа эсэхийг `fstat \| grep dsp` тушаалаар шалгана. Дурдахад илүүдэхгүй хэргийн эзэд бол esound болон KDE-ийн дууны дэмжлэгүүд юм.
|===

Өөр нэг асуудал бол орчин үеийн график картууд ихэвчлэн HDMI төст зүйлсүүдтэй ажиллахын тулд өөрсдийн дууны драйвертай ирдэг. Энэ дууны төхөөрөмж нь жинхэнэ дууны картаас өмнө танигдах тохиолдол байдаг бөгөөд ингэснээр дууны карт нь анхдагч тоглуулагч төхөөрөмж хэлбэрээр ашиглагдахгүй болдог. Үүнийг шалгахын тулд dmesg ажиллуулж `pcm` гэж байгаа эсэхийг шалгаарай. Гаралт нэг иймэрхүү байна:

[.programlisting]
....
...
hdac0: HDA Driver Revision: 20100226_0142
hdac1: HDA Driver Revision: 20100226_0142
hdac0: HDA Codec #0: NVidia (Unknown)
hdac0: HDA Codec #1: NVidia (Unknown)
hdac0: HDA Codec #2: NVidia (Unknown)
hdac0: HDA Codec #3: NVidia (Unknown)
pcm0: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 0 nid 1 on hdac0
pcm1: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 1 nid 1 on hdac0
pcm2: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 2 nid 1 on hdac0
pcm3: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 3 nid 1 on hdac0
hdac1: HDA Codec #2: Realtek ALC889
pcm4: <HDA Realtek ALC889 PCM #0 Analog> at cad 2 nid 1 on hdac1
pcm5: <HDA Realtek ALC889 PCM #1 Analog> at cad 2 nid 1 on hdac1
pcm6: <HDA Realtek ALC889 PCM #2 Digital> at cad 2 nid 1 on hdac1
pcm7: <HDA Realtek ALC889 PCM #3 Digital> at cad 2 nid 1 on hdac1
...
....

Энд график карт (`NVidia`) нь дууны картаас (`Realtek ALC889`) өмнө танигдсан байна. Дууны картыг анхдагч тоглуулагч төхөөрөмж хэлбэрээр ашиглахын тулд `hw.snd.default_unit`-г тоглуулахад ашиглах хэрэгслээр солих хэрэгтэй, өөрөөр хэлбэл:

[source,shell]
....
# sysctl hw.snd.default_unit=n
....

Энд `n` нь ашиглах дууны төхөөрөмжийн тоо бөгөөд жишээн дээр `4` байна. Дараах мөрийг [.filename]#/etc/sysctl.conf# файлд нэмж өгөн энэ өөрчлөлтийг байнгын болгож болно:

[.programlisting]
....
hw.snd.default_unit=4
....

[[sound-multiple-sources]]
=== Дууны олон эхүүдийг хэрэглэх нь

esound эсвэл artsd нь зарим нэг програмуудтай дууны төхөөрөмжийг хуваалцахыг дэмждэггүй бөгөөд энэ тохиолдолд заримдаа зэрэг тоглуулах чадвартай дууны олон эхүүдтэй байх туйлын сонирхол байдаг.

FreeBSD нь man:sysctl[8] хэрэгслийн тусламжтай идэвхжүүлж болох __Виртуал Дууны Сувгууд__ын тусламжтай үүнийг хийх боломжийг танд олгодог. Виртуал сувгууд нь цөмд дууг холих замаар өөрийн дууны картын тоглуулалтыг олон болгохыг танд зөвшөөрдөг.

Виртуал сувгуудын тоог тохируулах sysctl-ийн гурван хувьсагч байдаг бөгөөд хэрэв та `root` хэрэглэгч бол иймэрхүү маягаар үүнийг тохируулж болно:

[source,shell]
....
# sysctl dev.pcm.0.play.vchans=4
# sysctl dev.pcm.0.rec.vchans=4
# sysctl hw.snd.maxautovchans=4
....

Дээрх жишээ нь дөрвөн виртуал сувгийг хуваарилж байгаа бөгөөд энэ тоо нь өдөр тутмын хэрэглээнд зориулагдсан практик тоо юм. `dev.pcm.0.play.vchans=4` болон `dev.pcm.0.rec.vchans=4` нь [.filename]#pcm0#-ийн тоглуулах болон бичих виртуал сувгуудын тоо бөгөөд төхөөрөмжийг залгасны дараа тохируулах боломжтой болдог. `hw.snd.maxautovchans` нь man:kldload[8] ашиглан залгагдах үед шинэ аудио төхөөрөмжид өгөгдөх виртуал сувгуудын тоо юм. [.filename]#pcm# төхөөрөмж нь тоног төхөөрөмжийн драйверуудаас тусдаа дуудагдаж болох учраас `hw.snd.maxautovchans` нь дараа нь залгагдах төхөөрөмжүүдэд өгөгдөх виртуал сувгуудын тоог хадгалдаг. Дэлгэрэнгүй мэдээллийг man:pcm[4] гарын авлагын хуудаснаас үзнэ үү.

[NOTE]
====
Төхөөрөмжийг ашиглаж байхад та виртуал сувгуудын тоог өөрчилж чадахгүй. Эхлээд хөгжим тоглуулагчид юм уу эсвэл дууны дэмонууд зэрэг төхөөрөмжийг ашиглаж байгаа програмуудыг хаах хэрэгтэй.
====

Зөв [.filename]#pcm# төхөөрөмж [.filename]#/dev/dsp0#-ийг хүсэх програмд мэдэгдэлгүйгээр автоматаар хуваарилагдах болно.

=== Холигчийн сувгуудын анхдагч утгуудыг тохируулах

Өөр өөр холигчийн сувгуудын анхдагч утгууд нь man:pcm[4] драйверийн эх кодонд бичигдэж хийгдсэн байдаг. Холигчийн ажиллуулах явцад санагдсан утгуудыг тохируулах боломжийг олгодог олон төрлийн програмууд болон дэмонууд байдаг боловч энэ нь цэвэр шийдэл биш юм. Холигчийн анхдагч утгуудыг драйверийн түвшинд тохируулж болдог. Үүнийг [.filename]#/boot/device.hints# файлд тохирох утгуудыг тодорхойлон хийдэг. Өөрөө хэлбэл:

[.programlisting]
....
hint.pcm.0.vol="50"
....

Энэ нь man:pcm[4] модуль ачаалагдах үед дууны сувгийн чангыг анхдагч утга 50 гэж тохируулах болно.

[[sound-mp3]]
== MP3 аудио

MP3 (MPEG Давхарга 3 Аудио) нь CD-тэй ойролцоо дууны чанарт хүрдэг бөгөөд энэ боломжийг таны FreeBSD ажлын станц ашиглахгүйгээр үлдэх ямар нэг шалтгаан байх ёсгүй юм.

[[mp3-players]]
=== MP3 тоглуулагчид

Хамгийн алдартай X11 MP3 тоглуулагч бол XMMS (X Multimedia System) юм. Nullsoft-ийн Winamp-тай GUI нь бараг л адилхан болохоор Winamp-ийн арьснуудыг XMMS-д ашиглаж болдог. XMMS нь өөрийн гэсэн залгаасын дэмжлэгтэй бас байдаг.

XMMS нь package:multimedia/xmms[] портоос эсвэл багцаас суулгагдаж болдог.

XMMS-ийн интерфэйс нь хялбар бөгөөд тоглуулах жагсаалт, графикийн тэнцүүлэгч болон өөр олон боломжуудтай байдаг. Winamp-ийг мэддэг хүмүүс XMMS-ийг ашиглахад хялбарыг олж мэдэх болно.

package:audio/mpg123[] нь өөр нэг, тушаалын мөрийн MP3 тоглуулагч юм.

mpg123-ийг тушаалын мөрөөс дууны төхөөрөмж болон MP3 файлыг зааж өгөн ажиллуулж болно. Таны дууны төхөөрөмж [.filename]#/dev/dsp1.0# бөгөөд MP3 файл _Foobar-GreatestHits.mp3_-ийг тоглуулахыг хүсэж байгаа гэж үзвэл дараах тушаалыг ажиллуулна:

[source,shell]
....
# mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!

Playing MPEG stream from Foobar-GreatestHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo

....

[[rip-cd]]
=== CD Аудио замуудыг авах нь

CD эсвэл CD замыг MP3 уруу кодчилохоосоо өмнө CD дээрх аудио өгөгдлийг хатуу хөтөч уруугаа авах ёстой. Түүхий CDDA (CD Digital Audio) өгөгдлийг WAV файлууд уруу хуулан үүнийг хийдэг.

package:sysutils/cdrtools[] цуглуулгын `cdda2wav` хэрэгсэл нь CD-үүдээс аудио мэдээлэл болон тэдгээртэй холбоотой мэдээллийг авахад хэрэглэгддэг.

Хөтөчид аудио CD байхад дараах тушаалыг (`root`-ээр) ажиллуулж бүх CD-г тус тусдаа (зам тус бүрийг) WAV файлуудад авч болно:

[source,shell]
....
# cdda2wav -D 0,1,0 -B
....

cdda2wav нь ATAPI (IDE) CDROM хөтчүүдийг дэмжих болно. IDE хөтчөөс авахын тулд SCSI нэгжийн дугааруудын оронд төхөөрөмжийн нэрийг заах хэрэгтэй. Жишээ нь 7-р замыг IDE хөтчөөс авахын тулд:

[source,shell]
....
# cdda2wav -D /dev/acd0 -t 7
....

`-D _0,1,0_` тохируулга нь `cdrecord -scanbus` тушаалын гаралттай таарч байгаа SCSI төхөөрөмж [.filename]#0,1,0#-ийг заана.

Замуудыг авахын тулд `-t` тохируулгыг доор үзүүлсэн шиг ашиглана:

[source,shell]
....
# cdda2wav -D 0,1,0 -t 7
....

Энэ жишээ нь аудио CDROM-ийн долдугаар замыг авч байна. Хэсэг замуудыг авахын тулд, жишээ нь, нэгээс долоо хүртэлх замыг авахын тулд хүрээг зааж өгнө:

[source,shell]
....
# cdda2wav -D 0,1,0 -t 1+7
....

man:dd[1] хэрэгсэл ATAPI хөтчүүд дээрх аудио замуудыг гаргаж авахад бас ашиглагдаж болно. Энэ боломжийн талаар дэлгэрэнгүйг crossref:disks[duplicating-audiocds,Аудио CD-үүдийг хувилах]-с уншина уу.

[[mp3-encoding]]
=== MP3-уудыг кодчилох

Өнөө үед сонгож байгаа mp3 кодчилогч бол Lame юм. Lame нь package:audio/lame[] портын модноос олдож болно.

Авсан WAV файлуудыг ашиглан дараах тушаал [.filename]#audio01.wav#-г [.filename]#audio01.mp3# болгон хөрвүүлнэ:

[source,shell]
....
# lame -h -b 128 \
--tt "Foo Song Title" \
--ta "FooBar Artist" \
--tl "FooBar Album" \
--ty "2001" \
--tc "Ripped and encoded by Foo" \
--tg "Genre" \
audio01.wav audio01.mp3
....

128 кбит нь ашиглагдаж байгаа стандарт MP3 битийн хурд юм шиг байгаа юм. Олон хүмүүс илүү өндөр чанарын 160 эсвэл 192 гэсэн хурдуудад сэтгэл ханамжтай байдаг. Битийн хурд өндөр болох тусам MP3 илүү их дискний хэмжээг ашиглах боловч чанар өндөр болдог. `-h` тохируулга нь "илүү өндөр чанартай боловч бага зэрэг удаан" горимыг идэвхжүүлдэг. `--t`-ээр эхэлсэн тохируулгууд ID3 мэдээллүүдийг заадаг бөгөөд энэ нь MP3 файл дотор оруулах дууны мэдээллийг ихэвчлэн агуулдаг. Нэмэлт кодчилох тохируулгуудыг lame-ийн гарын авлагын хуудаснаас лавлан олж болно.

[[mp3-decoding]]
=== MP3-уудыг декод хийх

Аудио CD-г MP3-уудаас шарахын тул тэдгээр нь шахагдаагүй WAV хэлбэршилт уруу хөрвүүлэгдэх ёстой. XMMS болон mpg123 нь MP3-ийн гаралтыг шахаагүй файлын хэлбэршилт уруу гаргахыг дэмждэг.

XMMS-ээр диск уруу бичихдээ:

[.procedure]
====
. XMMS-ийг ажиллуулна.
. Цонхон дээр баруун товчлуурыг дарж XMMS-ийн цэсийг гаргана.
. `Options`-оос `Preference`-ийг сонгоно.
. Гаралтын Залгаасыг (Output Plugin) "Disk Writer Plugin" болгон өөрчилнө.
. `Configure`-г дарна.
. Шахагдаагүй файлуудыг бичих санг оруулна (эсвэл browse-ийг сонгоно).
. MP3 файлыг XMMS уруу, дууны чангыг 100% болгон EQ тохиргоонуудыг хааж ердийнхөөрөө дуудна.
. `Play`-г дарна - XMMS нь MP3 тоглуулж байгаа юм шигээр гарах бөгөөд гэхдээ хөгжим сонсогдохгүй. Энэ нь үнэндээ MP3-ийг файл уруу тоглуулж байгаа юм.
. MP3-уудыг дахин сонсохын тулд анхдагч Гаралтын Залгаасыг буцааж өмнө нь байсан шигээр тохируулахаа мартуузай.
====

mpg123-аар stdout уруу бичих:

[.procedure]
====
. `mpg123 -s audio01.mp3 > audio01.pcm` тушаалыг ажиллуулна
====

XMMS нь файлыг WAV хэлбэршилтээр бичдэг бол mpg123 нь MP3-ийг түүхий PCM аудио өгөгдөл болгон хөрвүүлдэг. Эдгээр хэлбэршилтүүдийг cdrecord-д аудио CD-үүд хийхийн тулд ашиглаж болно. Та түүхий PCM-ийг man:burncd[8]-д ашиглах ёстой. Хэрэв та WAV файлуудыг ашиглавал зам болгоны эхэнд богино тик гэсэн чимээг мэдрэх бөгөөд энэ чимээ нь WAV файлын толгой юм. Та WAV файлын толгойг SoX хэрэгсэл ашиглан арилгаж болно (үүнийг package:audio/sox[] портоос эсвэл багцаас суулгаж болно):

[source,shell]
....
% sox -t wav -r 44100 -s -w -c 2 track.wav track.raw
....

FreeBSD дээр CD шарагчийг ашиглах тухай илүү дэлгэрэнгүй мэдээллийг crossref:disks[creating-cds,Оптик зөөвөрлөгчийг (CD-үүд) үүсгэж ашиглах нь]-с уншина уу.

[[video-playback]]
== Видео тоглуулах

Видео тоглуулах нь маш шинэ, хурдацтай хөгжиж байгаа хэрэглээний талбар юм. Хүлээцтэй байгаарай. Дууны хувьд хийгдсэн шиг бүгд асуудалгүй ажиллахгүй байж болох юм.

Эхлэхээсээ өмнө өөрийн видео картын загвар болон ашиглаж байгаа бичил схемийг та мэдэх шаардлагатай. Xorg нь төрөл бүрийн видео картуудыг дэмждэг боловч цөөхөн нь сайн тоглуулах ажиллагаатай байдаг. Өөрийн картыг ашиглан X серверийн дэмжсэн өргөтгөлүүдийн жагсаалтыг авахын тулд X11-ийг ажиллаж байхад нь man:xdpyinfo[1] тушаалыг ашиглах хэрэгтэй.

Ер нь богино хэмжээний MPEG файлтай байх нь зүйтэй бөгөөд төрөл бүрийн тоглуулагч болон тохируулгуудыг шалгахад тест файл маягаар ашиглагдаж болох юм. Зарим нэгэн DVD тоглуулагчид анхдагчаар [.filename]#/dev/dvd#-д DVD зөөвөрлөгчийг хайх юм уу эсвэл энэ төхөөрөмжийн нэрийг тэдгээрт бичигдсэн байх ёстой гэж үздэг болохоор та симболын холбоосыг тохирох төхөөрөмжүүд уруу хийж өгөх нь ашигтай байж болох юм:

[source,shell]
....
# ln -sf /dev/acd0 /dev/dvd
# ln -sf /dev/acd0 /dev/rdvd
....

man:devfs[5]-ийн хийгдсэн чанараас хамаараад эдгээр шиг гараар хийгдсэн холбоосууд нь системийг дахин ачаалахад үлддэггүй. Өөрийн системийг ачаалахад автоматаар симболын холбоосууд үүсгэхийн тулд дараах мөрүүдийг [.filename]#/etc/devfs.conf# файлд нэмнэ:

[.programlisting]
....
link acd0 dvd
link acd0 rdvd
....

Мөн тусгай DVD-ROM функцуудыг ажиллуулахыг шаарддаг DVD шифрлэлтийг буцаах үйлдэл нь DVD төхөөрөмж дээр бичих зөвшөөрлийг шаарддаг.

Хуваалцсан санах ойн X11 интерфэйсийг өргөтгөж сайжруулахын тулд зарим man:sysctl[8] хувьсагчдын утгуудыг ихэсгэх шаардлагатай байдаг:

[.programlisting]
....
kern.ipc.shmmax=67108864
kern.ipc.shmall=32768
....

[[video-interface]]
=== Видео боломжуудыг тодорхойлох нь

X11 дээр видеог үзүүлэх хэд хэдэн боломжит аргууд байдаг. Яг юу ажиллах нь голчлон тоног төхөөрөмжөөс хамаарна. Доор тайлбарласан арга бүр тоног төхөөрөмжөөс хамаараад чанарын хувьд янз бүр байна. Хоёрдугаарт X11 дээр видеог амь оруулах нь сүүлийн үед маш их анхаарал татаж байгаа сэдэв бөгөөд Xorg-ийн хувилбар бүрт чухал сайжруулалт хийгдсэн байж болох юм.

Нийтлэг видео интерфэйсүүдийг дурдвал:

. X11: хуваалцсан санах ойг ашиглах ердийн X11 гаралт.
. XVideo: Дурын X11-ийн дүрслэгдэх боломжтой зүйл дээр видеог дэмждэг X11 интерфэйсийн өргөтгөл.
. SDL: Simple Directmedia Layer буюу энгийн Directmedia давхарга.
. DGA: Direct Graphics Access буюу шууд графикийн хандалт.
. SVGAlib: доод түвшний консолын график давхарга.

[[video-interface-xvideo]]
==== XVideo

Xorg нь видеог тусгай хурдасгуураар дүрслэгдэхүйц обьектууд дээр шууд үзүүлэхийг зөвшөөрдөг _XVideo_ (бас Xvideo, Xv, xv гэгддэг) гэгддэг өргөтгөлтэй байдаг. Энэ өргөтгөл нь доод түвшний чанар муутай машин дээр ч гэсэн видеог сайн чанартай тоглуулах боломжийг олгодог.

Өргөтгөл ажиллаж байгаа эсэхийг шалгахын тулд `xvinfo` тушаалыг ашиглана:

[source,shell]
....
% xvinfo
....

Хэрэв үр дүн иймэрхүү харагдвал XVideo нь таны картны хувьд дэмжигдсэн байна:

[source,shell]
....
X-Video Extension version 2.2
screen #0
  Adaptor #0: "Savage Streams Engine"
    number of ports: 1
    port base: 43
    operations supported: PutImage
    supported visuals:
      depth 16, visualID 0x22
      depth 16, visualID 0x23
    number of attributes: 5
      "XV_COLORKEY" (range 0 to 16777215)
              client settable attribute
              client gettable attribute (current value is 2110)
      "XV_BRIGHTNESS" (range -128 to 127)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_CONTRAST" (range 0 to 255)
              client settable attribute
              client gettable attribute (current value is 128)
      "XV_SATURATION" (range 0 to 255)
              client settable attribute
              client gettable attribute (current value is 128)
      "XV_HUE" (range -180 to 180)
              client settable attribute
              client gettable attribute (current value is 0)
    maximum XvImage size: 1024 x 1024
    Number of image formats: 7
      id: 0x32595559 (YUY2)
        guid: 59555932-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: YUV (packed)
      id: 0x32315659 (YV12)
        guid: 59563132-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
      id: 0x30323449 (I420)
        guid: 49343230-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
      id: 0x36315652 (RV16)
        guid: 52563135-0000-0000-0000-000000000000
        bits per pixel: 16
        number of planes: 1
        type: RGB (packed)
        depth: 0
        red, green, blue masks: 0x1f, 0x3e0, 0x7c00
      id: 0x35315652 (RV15)
        guid: 52563136-0000-0000-0000-000000000000
        bits per pixel: 16
        number of planes: 1
        type: RGB (packed)
        depth: 0
        red, green, blue masks: 0x1f, 0x7e0, 0xf800
      id: 0x31313259 (Y211)
        guid: 59323131-0000-0010-8000-00aa00389b71
        bits per pixel: 6
        number of planes: 3
        type: YUV (packed)
      id: 0x0
        guid: 00000000-0000-0000-0000-000000000000
        bits per pixel: 0
        number of planes: 0
        type: RGB (packed)
        depth: 1
        red, green, blue masks: 0x0, 0x0, 0x0
....

Жагсаагдсан хэлбэршилтүүд (YUV2, YUV12, гэх мэт) нь XVideo-ийн шийдэл бүрт байдаггүй бөгөөд тэдгээрийн энэ байхгүй явдал нь зарим нэг тоглуулагчдад саад болж болохыг санаарай.

Хэрэв үр дүн иймэрхүү харагдаж байвал:

[source,shell]
....
X-Video Extension version 2.2
screen #0
no adaptors present
....

XVideo таны картын хувьд дэмжигдээгүй байх магадлалтай.

Хэрэв XVideo нь таны картын хувьд дэмжигдээгүй байвал амилуулж байгаа видео тооцоололтын шаардлагуудыг таны дэлгэц хангах нь улам илүү хэцүү болно гэсэн үг юм. Таны видео карт болон процессороос хамаараад магадгүй та сэтгэл ханахуйц үр дүнд хүрч болох юм. Ажиллагааг сайжруулах аргуудын талаар та <<video-further-reading>> хэсгээс нэмэлт уншлага хийх шаардлагатай болж болох юм.

[[video-interface-SDL]]
==== Simple Directmedia Layer буюу Энгийн Directmedia давхарга

Simple Directmedia Layer буюу SDL нь Microsoft(R) Windows(R), BeOS, болон UNIX(R)-ийн хооронд хөрвүүлэх давхарга байхаар зориулагдсан бөгөөд ингэснээр дуу болон графикийн үр ашигтай хэрэглээг бий болгож тавцан хооронд ажиллах програмуудыг хөгжүүлэх боломжтой болсон юм. SDL давхарга нь тоног төхөөрөмжийг доод түвшинд хийсвэрлэх боломжийг олгодог бөгөөд энэ нь заримдаа X11 интерфэйсээс илүү үр дүнтэй байдаг.

SDL нь package:devel/sdl12[]-с олдож болно.

[[video-interface-DGA]]
==== Direct Graphics Access буюу Шууд Графикийн Хандалт

Direct Graphics Access буюу Шууд Графикийн Хандалт нь X11 өргөтгөл бөгөөд програмд X серверийг орхин өнгөрч framebuffer-ийг шууд өөрчлөх боломжийг олгодог. Энэ нь энэ хуваалцалд нөлөөлөх доод түвшний санах ойн тааруулалт дээр тулгуурладаг болохоор үүнийг ашиглаж байгаа програмууд `root`-ээр ажиллах ёстой байдаг.

DGA өргөтгөл нь man:dga[1]-аар тест хийгдэж хурд, ажиллагааны хувьд шалгагдаж болно. `dga` ажиллаж байхад товчлуур дарах болгонд дэлгэцийн өнгөнүүдийг өөрчилдөг. Гарахын тулд kbd:[q]-г дарна.

[[video-ports]]
=== Видеотой холбоотой портууд болон багцууд

Энэ хэсэг нь FreeBSD-ийн портын цуглуулга дахь видео тоглуулахад ашиглаж болох програм хангамжуудыг хэлэлцэх болно. Видео тоглуулах нь програм хангамжийн хөгжүүлэлтийн маш идэвхтэй талбар бөгөөд төрөл бүрийн програмуудын боломжууд нь энд өгсөн тайлбараас зарим талаараа зөрж болох юм.

Эцэст нь FreeBSD дээр ажилладаг олон видео програмууд нь Линуксийн програмууд маягаар хөгжүүлэгдсэн байдгийг мэдэх нь чухал юм. Эдгээр програмуудын олонхи нь бета чанарых хэвээр байгаа билээ. FreeBSD дээр видео багцуудад учирч болох асуудлуудын заримыг дурдвал:

. Ямар нэг програмын үүсгэсэн файлыг өөр нэг нь тоглуулж чадахгүй байх.
. Өөрийн үүсгэсэн файлыг тоглуулж чадахгүй байх.
. Тухайн машин бүр дээр бүтээгдсэн, хоёр өөр машин дээрх нэг програм ижил файлыг өөрөөр тоглуулах.
. Дүрсний хэмжээг өөрчлөх зэрэг маш хялбар шүүлт нь алдаатай хэмжээ өөрчлөх дэг журмаас болж маш муу үзэгдлүүдэд хүргэдэг.
. Програм байнга core үүсгэдэг.
. Баримт порттой цуг суугддаггүй бөгөөд түүнийг нэг бол вэб дээрээс юм уу эсвэл портын [.filename]#work# сангаас олж болдог.

Эдгээр програмуудын олонхи нь "Линукс-изм"ийг харуулдаг. Линукс тархацууд дахь зарим стандарт сангуудын хийгдсэн арга эсвэл програм зохиогчдын тооцсон Линуксийн цөмийн зарим боломжуудаас болоод асуудлууд гарч болно гэсэн үг юм. Эдгээр асуудлууд нь заримдаа анзаарагддаггүй бөгөөд порт арчлагчид эдгээрийг тойрон гарсан шийдлүүдийг хийсэн байдаг. Гэхдээ энэ нь доорх асуудлуудад хүргэж болзошгүй юм:

. Процессорын шинж чанаруудыг илрүүлэх [.filename]#/proc/cpuinfo#-ийн хэрэглээ.
. Дуусахдаа програмыг бүрмөсөн төгсгөхийн оронд гацаадаг урсгалуудын (threads) буруу хэрэглээ.
. Програмтай цуг ихэвчлэн ашиглагддаг програм хангамж FreeBSD-ийн портын цуглуулгад байхгүй байх.

Одоогоор эдгээр програмуудын хөгжүүлэгчид нь порт хийхэд шаардагдах тойрон гарах арга замуудыг багасгахын тулд порт арчлагчидтай хамтран ажиллаж байгаа билээ.

[[video-mplayer]]
==== MPlayer

MPlayer нь саяхан хөгжүүлэгдсэн бөгөөд хурдацтай хөгжүүлэгдэж байгаа видео тоглуулагч юм. MPlayer багийн зорилго нь хурд болон Линукс ба бусад Юниксууд дээрх уян хатан чанар юм. Энэ төсөл нь багийг үндэслэгч тэр үед байсан тоглуулагчуудын муу тоглуулах ажиллагаанаас залхсан үед үүссэн байна. Зарим нь дизайныг сайжруулж график интерфэйс хийгдсэн гэж хэлж болох юм. Гэхдээ та тушаалын мөрийн тохируулгууд болон товчлууруудын хяналтад дасаад ирэхэд энэ нь харин маш сайн ажилладаг.

[[video-mplayer-building]]
===== MPlayer-ийг бүтээх

MPlayer нь package:multimedia/mplayer[] санд байрладаг. MPlayer нь бүтээх явцад төрөл бүрийн тоног төхөөрөмжийн шалгалтуудыг гүйцэтгэж нэг системээс нөгөөд хөрвүүлэгдэхгүй хоёртьн файлыг гаргадаг. Тиймээс хоёртын багцыг ашиглалгүйгээр портоос бүтээх нь чухал юм. Мөн [.filename]#Makefile#-д тайлбарласнаар бүтээлтийн эхэнд `make` тушаалд хэд хэдэн тохируулгуудыг зааж өгч болдог:

[source,shell]
....
# cd /usr/ports/multimedia/mplayer
# make
N - O - T - E

Take a careful look into the Makefile in order
to learn how to tune mplayer towards you personal preferences!
For example,
make WITH_GTK1
builds MPlayer with GTK1-GUI support.
If you want to use the GUI, you can either install
/usr/ports/multimedia/mplayer-skins
or download official skin collections from
http://www.mplayerhq.hu/homepage/dload.html
....

Ихэнх хэрэглэгчдэд анхдагч портын тохируулгууд хангалттай байх ёстой. Гэхдээ хэрэв танд XvID кодек хэрэгтэй бол тушаалын мөрөнд `WITH_XVID` тохируулгыг зааж өгөх хэрэгтэй. Анхдагч DVD төхөөрөмжийг бас `WITH_DVD_DEVICE` тохируулгаар тодорхойлж болох бөгөөд анхдагчаар [.filename]#/dev/acd0# ашиглагдах болно.

Үүнийг бичиж байх үед MPlayer порт нь өөрийн HTML баримт болон хоёр ажиллах файл `mplayer`, болон `mencoder` тушаалуудаа бүтээдэг байсан бөгөөд сүүлийн тушаал нь видеог дахин кодчилох хэрэгсэл юм.

MPlayer-ийн HTML баримт нь маш мэдээлэл сайтай байдаг. Хэрэв уншигч энэ бүлэгт дурдсан видео тоног төхөөрөмж болон интерфэйсүүдийн тухай мэдээлэл дутуу байгааг мэдвэл MPlayer-ийн баримт нь харин маш бүрэн гүйцэд нэмэгдэл болох юм. Хэрэв та UNIX(R) дээрх видео дэмжлэгийн талаар мэдээлэл хайж байгаа бол MPlayer-ийн баримтыг цаг зав гарган заавал ч үгүй унших хэрэгтэй.

[[video-mplayer-using]]
===== MPlayer ашиглах

MPlayer-ийн ямар ч хэрэглэгч өөрийн гэрийн сандаа [.filename]#.mplayer# дэд санг үүсгэх ёстой. Энэ шаардлагатай дэд санг үүсгэхийн тулд та дараах тушаалыг бичиж болно:

[source,shell]
....
% cd /usr/ports/multimedia/mplayer
% make install-user
....

`mplayer`-ийн тушаалын тохируулгууд гарын авлагын хуудсанд дурдсан байдаг. Бүр илүү дэлгэрэнгүйг HTML баримтаас үзэж болно. Энэ хэсэгт бид цөөн хэдэн нийтлэг хэрэглээг тайлбарлах болно.

[.filename]#testfile.avi# зэрэг файлыг тоглуулахын тулд `-vo` тохируулгаар төрөл бүрийн видео интерфэйсүүдийн аль нэгийг оруулж өгнө:

[source,shell]
....
% mplayer -vo xv testfile.avi
....

[source,shell]
....
% mplayer -vo sdl testfile.avi
....

[source,shell]
....
% mplayer -vo x11 testfile.avi
....

[source,shell]
....
# mplayer -vo dga testfile.avi
....

[source,shell]
....
# mplayer -vo 'sdl:dga' testfile.avi
....

Эдгээр бүх тохируулгуудыг бүгдийг туршиж үзэх нь зүйтэй. Эдгээрийн харьцангуй ажиллагаа нь олон хүчин зүйлүүдээс шалтгаалдаг бөгөөд тоног төхөөрөмжөөс ихээхэн хамаарч өөр өөр байна.

DVD-ээс тоглуулахын тулд [.filename]#testfile.avi#-г `dvd://_N_ -dvd-device _DEVICE_` мөрөөр солих хэрэгтэй. Энд байгаа _N_ нь тоглуулах гарчгийн дугаар бөгөөд [.filename]#DEVICE# нь DVD-ROM-д зориулсан төхөөрөмжийн цэг юм. Жишээ нь [.filename]#/dev/dvd#-ийн 3-р гарчгийг тоглуулахын тулд доор дурдсаныг ажиллуулна:

[source,shell]
....
# mplayer -vo xv dvd://3 -dvd-device /dev/dvd
....

[NOTE]
====
Анхдагч DVD төхөөрөмжийг MPlayer портыг `WITH_DVD_DEVICE` тохируулгаар бүтээж байх үед тодорхойлж болдог. Анхдагчаар энэ төхөөрөмж нь [.filename]#/dev/acd0# юм. Илүү дэлгэрэнгүй мэдээллийг портын [.filename]#Makefile# файлаас олж болно.
====

Зогсоох, пауз авах, урагшлуулах гэх мэтийг хийхийн тулд товчлууруудын талаар үзэх хэрэгтэй бөгөөд ингэхийн тулд `mplayer -h` тушаалыг ажиллуулах юм уу эсвэл гарын авлагын хуудсыг унших нь зүйтэй юм.

Тоглуулахад хэрэгтэй чухал нэмэлт тохируулгууд нь: бүрэн дэлгэцийн горимд шилжүүлдэг `-fs -zoom` болон ажиллагаанд тусалдаг `-framedrop` тохируулгууд юм.

mplayer-ийн тушаалын мөрийг их урт болгохгүйн тулд [.filename]#.mplayer/config# файл үүсгээд анхдагч тохируулгуудыг тэнд тохируулах хэрэгтэй:

[.programlisting]
....
vo=xv
fs=yes
zoom=yes
....

Төгсгөлд нь `mplayer` нь DVD гарчгийг [.filename]#.vob# файл уруу гаргахад хэрэглэгдэж болдог. DVD-ээс хоёр дахь гарчгийг гаргаж авахын тулд үүнийг бичнэ:

[source,shell]
....
# mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd
....

Гаралтын файл [.filename]#out.vob# нь MPEG байх бөгөөд энэ хэсэгт тайлбарлагдсан бусад багцуудаар удирдагдаж болох юм.

[[video-mencoder]]
===== mencoder

`mencoder`-ийг ашиглахаасаа өмнө HTML баримтаас тохируулгуудтай танилцах нь зүйтэй юм. Гарын авлагын хуудас байдаг боловч HTML баримтгүйгээр энэ нь тийм ч тустай биш юм. Чанар, битийн бага хурдыг сайжруулах болон хэлбэршилтүүдийг өөрчлөх тоолж баршгүй аргууд байдаг бөгөөд эдгээр аргуудын зарим нь сайн, муу ажиллагааны хооронд ялгаа гаргаж болох юм. Танд туслах хэд хэдэн жишээ энд байна. Эхлээд энгийн хуулбар:

[source,shell]
....
% mencoder input.avi -oac copy -ovc copy -o output.avi
....

Тушаалын мөрийн буруу хослолууд нь `mplayer`-ээр ч тоглуулах боломжгүй файл гаргахад хүргэж болох юм. Тиймээс хэрэв та файл уруу гаргаж авахыг хүсвэл `mplayer`-ийн `-dumpfile`-ийг ашиглаарай.

[.filename]#input.avi#-г MPEG4 кодек уруу MPEG3 аудио кодчилолтойгоор хөрвүүлэхийн тулд (package:audio/lame[] шаардлагатай):

[source,shell]
....
% mencoder input.avi -oac mp3lame -lameopts br=192 \
	 -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi
....

Энэ нь `mplayer` болон `xine` тоглуулах боломжтой гаралтыг үүсгэнэ.

DVD гарчгийг шууд дахин кодчилохын тулд [.filename]#input.avi# файлын оронд `dvd://1 -dvd-device /dev/dvd` мөрийг тавьж `root` эрхээр ажиллуулах хэрэгтэй. Эхний удаадаа та өөрийн хийсэн зүйлдээ сэтгэл ханамжгүй байх магадлалтай болохоор гарчгийг файл уруу гаргаж файл дээрээ ажиллахыг зөвлөдөг.

[[video-xine]]
==== xine видео тоглуулагч

xine видео тоглуулагч нь аль ч талаасаа зөвхөн бүгдийг багтаасан видео шийдэл байх зорилготой төсөл биш бөгөөд энэ нь бас дахин ашиглагдах боломжтой үндсэн сан болон залгаасуудаар өргөтгөх боломжтой модульчлагдсан ажиллах файлуудыг үүсгэх зорилготой төсөл юм. Энэ нь багц болон package:multimedia/xine[] гэсэн порт хэлбэрээр байдаг.

xine тоглуулагч нь бас л бүрэн гүйцэд боловсроогүй байгаа билээ. Хэдий тийм ч гэсэн сайнаар эхэлж байгаа юм. Практикт xine нь хурдан видео карттай CPU юм уу аль эсвэл XVideo өргөтгөлийн дэмжлэгийг шаарддаг. GUI нь ашиглагдаж болохоор боловч болхи юм.

Үүнийг бичиж байх үед CSS кодчилол хийгдсэн DVD-үүдийг тоглуулах xine-тай цуг ирдэг оролтын модуль байгаагүй. Үүнд зориулан бүтээгдсэн модулиудтай гуравдагч талын бүтээлтүүд байдаг боловч эдгээрийн аль нь ч FreeBSD-ийн портын цуглуулгад байдаггүй.

MPlayer-тэй харьцуулах юм бол xine нь хэрэглэгчийн хувьд илүүг хийдэг боловч нөгөө талаараа хэрэглэгчид зарим нэг илүү нарийн тааруулах хяналтын боломжийг өгдөггүй юм. xine видео тоглуулагч нь XVideo интерфэйсүүд дээр хамгийн сайн ажилладаг.

Анхдагчаар xine тоглуулагч нь график хэрэглэгчийн интерфэйс эхлүүлэх болно. Дараа нь тухайн файлыг онгойлгохдоо цэсүүдийг ашиглаж болно:

[source,shell]
....
% xine
....

Өөрөөр, GUI-гүйгээр дараах тушаал ашиглан файлыг нэн даруй тоглуулахаар ажиллуулж болно:

[source,shell]
....
% xine -g -p mymovie.avi
....

[[video-ports-transcode]]
==== transcode буюу код хооронд хөрвүүлэгч хэрэгслүүд

transcode програм хангамж нь тоглуулагч биш, харин видео болон аудио файлуудыг дахин кодчилоход зориулагдсан хэрэгслүүдийн цуглуулга юм. [.filename]#stdin/stdout# урсгалын интерфэйсүүдийн хамтаар тушаалын мөрийн хэрэгслүүдийг ашиглан transcode-оор видео файлуудыг нийлүүлэх, эвдэрсэн файлуудыг засах боломжтой болдог.

package:multimedia/transcode[] портыг бүтээж байх явцад олон тооны тохируулгуудыг зааж өгч болдог бөгөөд бид дараах тушаалын мөрийг transcode-ийг бүтээхэд ашиглахыг зөвлөдөг:

[source,shell]
....
# make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \
WITH_MJPEG=yes -DWITH_XVID=yes
....

Санал болгогдсон тохируулгууд ихэнх хэрэглэгчдийн хувьд хангалттай байх ёстой.

`transcode`-ийн багтаамжуудыг харуулахын тулд DivX файлыг PAL MPEG-1 файл (PAL VCD) уруу хэрхэн хөрвүүлэхийг харуулах нэг жишээг үзүүлье:

[source,shell]
....
% transcode -i input.avi -V --export_prof vcd-pal -o output_vcd
% mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa
....

Гарах MPEG файл [.filename]#output_vcd.mpg#-г MPlayer-ээр тоглуулах боломжтой байна. Та файлыг бүр Видео CD хийхийн тулд CD-R зөөвөрлөгч уруу шарж болох бөгөөд энэ тохиолдолд та package:multimedia/vcdimager[] болон package:sysutils/cdrdao[] програмуудыг суулгаж ашиглах хэрэгтэй болно.

`transcode`-д зориулсан гарын авлагын хуудас байдаг боловч та илүү мэдээлэл болон жишээнүүдийн талаар http://www.transcoding.org/cgi-bin/transcode[transcode wiki]-с бас лавлах хэрэгтэй.

[[video-further-reading]]
=== Нэмэлт унших зүйлс

FreeBSD-д зориулсан төрөл бүрийн видео програм хангамжийн багцууд хурдацтай хөгжиж байна. Ойрын ирээдүйд энд дурдсан асуудлуудын олонхи нь шийдэгдэх магадлал тун өндөр юм. Тэр болтол FreeBSD-ийн A/V боломжуудыг аль болох ихээр авахыг хүсэж байгаа хүмүүс цугтаа хэд хэдэн FAQ болон заавруудаас уншсан зүйлсээрээ мэдлэгээ хуваалцаж өөр өөр цөөн хэдэн програмууд ашиглах хэрэгтэй юм. Энэхүү хэсэг нь тийм нэмэлт мэдээллүүдийг уншигчдад өгөх зорилгоор бичигдсэн юм.

http://www.mplayerhq.hu/DOCS/[MPlayer-ийн баримт] нь техникийн хувьд маш сайн мэдээлэлтэй юм. UNIX(R)-ийн видеоны талаар өндөр түвшний туршлагатай болохыг хүссэн хэн бүхэн эдгээр баримтуудаас зөвлөгөө авах нь зүйтэй юм. MPlayer-ийн захидлын жагсаалт нь баримтыг уншаагүй хүмүүст тийм ч нөхөрсөг бус байдаг учраас тэдэнд алдааны мэдэгдлүүдийг илгээхээр төлөвлөж байгаа бол түр азнаад RTFM (read the fine manual эсвэл read the fucking manual).

http://dvd.sourceforge.net/xine-howto/en_GB/html/howto.html[ xine HOWTO] нь бүх тоглуулагчийн хувьд ерөнхий байдаг ажиллагааны сайжруулалтын тухай бүлгийг агуулдаг.

Төгсгөлд нь уншигчдын туршиж болох зарим ирээдүйтэй програмууд байдаг:

* package:multimedia/avifile[] порт хэлбэрээр бас байдаг http://avifile.sourceforge.net/[Avifile].
* package:multimedia/ogle[] порт хэлбэрээр бас байдаг http://www.dtek.chalmers.se/groups/dvd/[Ogle].
* http://xtheater.sourceforge.net/[Xtheater]
* DVD агуулгыг зохиоход зориулагдсан нээлттэй эх багц package:multimedia/dvdauthor[].

[[tvcard]]
== ТВ картуудыг тохируулах

=== Танилцуулга

ТВ картууд нь өөрийн компьютер дээр цацаж байгаа юм уу эсвэл кабелийн ТВ үзэх боломжийг танд олгодог. Тэдгээрийн ихэнх нь нийлмэл видеог RCA юм уу эсвэл S-видео оролтоор хүлээн авдаг бөгөөд эдгээр картуудын зарим нь ФМ радио тааруулагчтай (tuner) ирдэг.

FreeBSD нь Brooktree Bt848/849/878/879 эсвэл Conexant CN-878/Fusion 878a Видео Барих (capture) бичил схемийг man:bktr[4] драйвертай цуг ашиглан PCI дээр суурилсан ТВ картуудын дэмжлэгийг хангадаг. Та дэмжигдсэн тааруулагчтай цуг ирсэн хавтанг бас шалгах хэрэгтэй. Дэмжигдсэн тааруулагчдын жагсаалтын талаар man:bktr[4] гарын авлагын хуудаснаас лавлана уу.

=== Драйвер нэмэх

Өөрийн картыг ашиглахын тулд man:bktr[4] драйверийг дуудах хэрэгтэй болох бөгөөд дараах мөрийг [.filename]#/boot/loader.conf# файлд ингэж нэмэн үүнийг хийж болно:

[.programlisting]
....
bktr_load="YES"
....

Өөрөөр, ТВ картын дэмжлэгийг өөрийн цөмд статикаар эмхэтгэж болох бөгөөд энэ тохиолдолд өөрийн цөмийн тохиргоондоо дараах мөрүүдийг нэмнэ:

[.programlisting]
....
device	 bktr
device	iicbus
device	iicbb
device	smbus
....

Картын бүрэлдэхүүнүүд I2C шугамаар хоорондоо холбогддог болохоор эдгээр нэмэлт төхөөрөмжийн драйверууд нь шаардлагатай байдаг. Дараа нь шинэ цөмөө бүтээж суулгах хэрэгтэй.

Дэмжлэг таны системд нэмэгдсэний дараа та өөрийн машиныг дахин ачаалах хэрэгтэй. Ачаалах процессийн үеэр таны ТВ карт доор дурдсантай төстэйгөөр гарч ирэн харагдах ёстой:

[.programlisting]
....
bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
iicbb0: <I2C bit-banging driver> on bti2c0
iicbus0: <Philips I2C bus> on iicbb0 master-only
iicbus1: <Philips I2C bus> on iicbb0 master-only
smbus0: <System Management Bus> on bti2c0
bktr0: Pinnacle/Miro TV, Philips SECAM tuner.
....

Мэдээж эдгээр мэдэгдлүүд нь таны тоног төхөөрөмжөөс хамаарч өөр байж болно. Гэхдээ та тааруулагч зөв олдсон эсэхийг шалгах ёстой; зарим нэг олдсон параметрүүдийг man:sysctl[8] MIB-үүд болон цөмийн тохиргооны файлын тохируулгуудаар дарж өөрчлөх боломжтой хэвээр байдаг. Жишээ нь хэрэв та тааруулагчийг Philips SECAM тааруулагч уруу болгохыг хүсвэл өөрийн цөмийн тохиргооны файлдаа дараах мөрийг нэмэх хэрэгтэй:

[.programlisting]
....
options OVERRIDE_TUNER=6
....

эсвэл та man:sysctl[8]-ийг шууд ашиглаж болно:

[source,shell]
....
# sysctl hw.bt848.tuner=6
....

Байдаг тохируулгуудын талаар дэлгэрэнгүйг man:bktr[4] гарын авлагын хуудас болон [.filename]#/usr/src/sys/conf/NOTES# файлаас үзнэ үү.

=== Ашигтай програмууд

Өөрийн ТВ картыг ашиглахын тулд та дараах програмуудын аль нэгийг суулгах хэрэгтэй:

* package:multimedia/fxtv[] нь цонхон-дээрх-ТВ болон дүрс/аудио/видео барих (capture) боломжуудыг олгодог.
* package:multimedia/xawtv[] нь бас ТВ програм бөгөөд fxtv-тэй адил боломжуудтай байдаг.
* package:misc/alevt[] нь Видеотекст/Телетекстийг декод хийн үзүүлдэг.
* package:audio/xmradio[] нь зарим нэг ТВ карттай цуг ирдэг ФМ радио тааруулагчийг ашиглах програм юм.
* package:audio/wmtune[] нь радио тааруулагчуудад зориулсан ширээний эвтэйхэн програм юм.

Илүү олон програмууд FreeBSD-ийн портын цуглуулгад байдаг.

=== Алдааг олж засварлах

Та өөрийн ТВ картандаа ямар нэг асуудал олох юм бол та эхлээд видео барих бичил схем ба тааруулагч нь man:bktr[4] драйвераар яг дэмжигдсэн эсэх болон та зөв тохиргооны сонголтуудыг дамжуулсан эсэхээ шалгах хэрэгтэй. Өөрийн ТВ картын тухай төрөл бүрийн асуултууд болон илүү дэмжлэгийн талаар та {freebsd-multimedia} захидлын жагсаалтад хандаж түүний архивыг нь ашиглаж болох юм.

[[mythtv]]
== MythTV

MythTV нь нээлттэй эхийн PVR програм хангамжийн төсөл юм.

Энэ нь Linux(R)-н ертөнцөд олон хамаарлуудтай бөгөөд суулгахад хэцүү төвөгтэй програм гэдгээрээ алдартай. FreeBSD-н портын систем ихэнх процессуудыг хялбаршуулдаг боловч зарим нэг бүрэлдэхүүнүүдийг гараар тохируулах шаардлагатай байдаг. Энэ хэсэг MythTV-г суулгаж тохируулахад туслах зорилготой.

=== Тоног төхөөрөмж

MythTV нь енкодер болон тюнер зэрэг видео оролтын төхөөрөмжүүд рүү хандахын тулд V4L-г ашиглахаар хийгдсэн. Одоогийн байдлаар MythTV нь package:multimedia/webcamd[]-н дэмждэг USB DVB-S/C/T картуудтай илүү сайн ажилладаг. Яагаад гэвэл webcamd нь V4L хэрэглэгчийн талбарын програмтай байдаг. webcamd-н дэмждэг дурын DVB карт MythTV-тэй ажиллах боловч ажилладаг гэж бүртгэгдсэн картуудын жагсаалтыг http://wiki.freebsd.org/WebcamCompat[эндээс] олж болно. Дараах package:multimedia/pvr250[] ба package:multimedia/pvrxxx[] багцуудад Hauppauge картуудын хувьд бас драйверууд байдаг боловч тэдгээр нь MythTV-н 0.23 хувилбараас дээшхи хувилбаруудтай ажилладаггүй стандарт бус драйверын интерфэйстэй байдаг.

http://wiki.freebsd.org/HTPC[HTPC] дээр байгаа бүх DVB драйверуудын жагсаалт бий.

=== Хамаарлууд

Уян хатан, модулчлагдсан учир MythTV нь хэрэглэгчид өөр өөр машинууд дээр нүүр болон арын програмуудыг ажиллуулах боломжийг олгодог.

Нүүр талын програмын хувьд package:multimedia/mythtv-frontend[] болон X сервер шаардлагатай бөгөөд үүнийг package:x11/xorg[]-с олж болно. Ер нь бол нүүрэнд ажиллах компьютер бас XvMC болон хэрэв боломжтой бол LIRC-тэй нийцтэй алсын удирдлагыг дэмждэг видео карттай байвал маш сайн.

Ар талын програмын хувьд package:multimedia/mythtv[] болон MySQL(TM) өгөгдлийн сан шаардлагатай бөгөөд нэмэлтээр тюнер ба бичлэг хадгалах хадгалалтын төхөөрөмж байж болох юм. MySQL(TM) багц нь package:multimedia/mythtv[]-г суулгаж байх явцад хамаарал хэлбэрээр автоматаар суух ёстой.

=== MythTV-г суулгах

MythTV-г суулгахын тулд дараах алхмуудыг ашиглана. Эхлээд FreeBSD-н портын цуглуулгаас MythTV-г суулгана:

[source,shell]
....
# cd /usr/ports/multimedia/mythtv
# make install
....

MythTV өгөгдлийн санг суулгана:

[source,shell]
....
# mysql -uroot -p < /usr/local/shared/mythtv/database/mc.sql
....

Арын тохиргоог хийнэ:

[source,shell]
....
# mythtv-setup
....

Арын програмыг ажиллуулна:

[source,shell]
....
# echo 'mythbackend_enable="YES"' >> /etc/rc.conf
# service mythbackend start
....

[[scanners]]
== Дүрс скан хийгчид

=== Танилцуулга

FreeBSD дээр дүрс скан хийгчдэд хандах боломжийг FreeBSD-ийн портын цуглуулгад байдаг SANE (Scanner Access Now Easy буюу Скан хийгчид хандах Хандалт Одоо Амархан гэгдэх) API олгодог. SANE нь FreeBSD-ийн зарим төхөөрөмжийн драйверууд ашиглан скан хийгчийн техник хангамжид ханддаг.

FreeBSD нь SCSI болон USB скан хийгчдийг дэмждэг. Ямар нэг тохиргоо хийхээсээ өмнө таны скан хийгч SANE-ээр дэмжигдсэн эсэхийг шалгаарай. SANE нь скан хийгчийн дэмжлэг болон түүний төлвийн тухай мэдээллээр таныг хангах http://www.sane-project.org/sane-supported-devices.html[дэмжигдсэн төхөөрөмжүүд]ийн жагсаалттай байдаг.

=== Цөмийн тохиргоо

Дээр дурдсанаар SCSI болон USB интерфэйсүүд нь дэмжигдсэн байдаг. Таны скан хийгчийн интерфэйсээс болоод өөр өөр төхөөрөмжийн драйверууд шаардагддаг.

[[scanners-kernel-usb]]
==== USB интерфэйс

[.filename]#GENERIC# цөм нь анхдагчаар USB скан хийгчдийг дэмжихэд шаардлагатай төхөөрөмжийн драйверуудыг агуулдаг. Цөмийг өөрөө тохируулан ашиглах бол дараах мөрүүд өөрийн цөмийн тохиргооны файлд байгаа эсэхийг шалгах хэрэгтэй:

[.programlisting]
....
device usb
device uhci
device ohci
device ehci
....

Зөв цөмөөр дахин ачаалсны дараа өөрийн USB скан хийгчийг залгана. Таны скан хийгчийг таньж байгааг үзүүлэх мөр системийн мэдэгдлийн буферт (man:dmesg[8]) гарч ирэх ёстой:

[source,shell]
....
ugen0.2: <EPSON> at usbus0
....

Бидний ажиллуулж байгаа скан хийгч нь [.filename]#/dev/ugen0.2# гэсэн төхөөрөмжийн цэгийг ашиглаж байгааг эдгээр мэдэгдлүүд харуулж байна. Энэ жишээний хувьд EPSON Perfection(R) 1650 USB скан хийгчийг ашигласан.

==== SCSI интерфэйс

Хэрэв таны скан хийгч SCSI интерфэйстэй ирсэн бол ямар SCSI хянагч хавтанг ашиглахаа мэдэх нь чухал юм. Ашиглагдах SCSI бичил схемээс хамаараад та өөрийн цөмийн тохиргооны файлаа тааруулах хэрэгтэй болно. [.filename]#GENERIC# цөм нь хамгийн түгээмэл SCSI хянагчуудыг дэмждэг. [.filename]#NOTES# файлыг уншиж өөрийн цөмийн тохиргооны файлд зөв мөрийг нэмсэн эсэхээ шалгаарай. SCSI хувиргагч драйвераас гадна та өөрийн цөмийн тохиргооны файлдаа дараах мөрүүдтэй байх хэрэгтэй:

[.programlisting]
....
device scbus
device pass
....

Таны цөм зөв эмхэтгэгдэж суулгагдсаны дараа ачаалах үед та системийн мэдэгдлийн буферт төхөөрөмжийг харж чадаж байх ёстой:

[source,shell]
....
pass2 at aic0 bus 0 target 2 lun 0
pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device
pass2: 3.300MB/s transfers
....

Таны скан хийгч системийг ачаалах үед асаагүй байсан ч гэсэн гараар man:camcontrol[8] тушаалын тусламжтай SCSI шугамын хайлтыг хийж илрүүлэх боломжтой байдаг:

[source,shell]
....
# camcontrol rescan all
Re-scan of bus 0 was successful
Re-scan of bus 1 was successful
Re-scan of bus 2 was successful
Re-scan of bus 3 was successful
....

Дараа нь скан хийгч SCSI төхөөрөмжүүдийн жагсаалтад гарч ирэх болно:

[source,shell]
....
# camcontrol devlist
<IBM DDRS-34560 S97B>              at scbus0 target 5 lun 0 (pass0,da0)
<IBM DDRS-34560 S97B>              at scbus0 target 6 lun 0 (pass1,da1)
<AGFA SNAPSCAN 600 1.10>           at scbus1 target 2 lun 0 (pass3)
<PHILIPS CDD3610 CD-R/RW 1.00>     at scbus2 target 0 lun 0 (pass2,cd0)
....

SCSI төхөөрөмжүүдийн тухай дэлгэрэнгүй мэдээлэл man:scsi[4] болон man:camcontrol[8] гарын авлагын хуудаснуудад байдаг.

=== SANE тохиргоо

SANE систем нь хоёр хэсэгт хуваагддаг: эдгээр нь арын хэсэг (package:graphics/sane-backends[]) болон урд хэсэг (package:graphics/sane-frontends[]) юм. Арын хэсэг нь скан хийгчид өөрт нь хандах хандалтыг олгодог. SANE-ий http://www.sane-project.org/sane-supported-devices.html[дэмжигдсэн төхөөрөмжүүд]ийн жагсаалт таны дүрс скан хийгчийг ямар арын хэсэг дэмжихийг заадаг. Та өөрийн төхөөрөмжийг ашиглаж чаддаг байхын тулд өөрийн скан хийгчийн хувьд зөв арын хэсгийг тодорхойлох нь зайлшгүй шаардлагатай юм. Урд хэсэг нь график хайлт хийх интерфэйсийн боломжийг олгодог (xscanimage).

Эхний алхам нь package:graphics/sane-backends[] порт юм уу эсвэл багцыг суулгах явдал юм. Дараа нь `sane-find-scanner` тушаал ашиглан SANE системээр скан хийгчийн илрүүлэлтийг шалгана:

[source,shell]
....
# sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3
....

Гаралт нь скан хийгчийн интерфэйсийн төрөл болон системд скан хийгчийг залгахад хэрэглэгдсэн төхөөрөмжийн цэгийг үзүүлэх болно. Үйлдвэрлэгч болон бүтээгдэхүүний загвар гарч ирэхгүй байж болох бөгөөд энэ нь тийм чухал биш юм.

[NOTE]
====
Зарим USB скан хийгчид нь танаас firmware дуудаж ачаалахыг шаарддаг бөгөөд энэ нь арын хэсгийн гарын авлагын хуудсанд тайлбарлагдсан байгаа. Та man:sane-find-scanner[1] болон man:linprocfs[7] гарын авлагын хуудаснуудыг бас унших хэрэгтэй юм.
====

Одоо бид скан хийгчийг скан хийх урд хэсгээр танигдах эсэхийг нь шалгах хэрэгтэй. Анхдагчаар SANE арын хэсгүүд нь man:sane[1] гэгддэг тушаалын мөрийн хэрэгсэлтэй ирдэг. Энэ тушаал нь танд төхөөрөмжүүдийг жагсааж тушаалын мөрөөс дүрс эзэмшилтийг хийхийг зөвшөөрдөг. `-L` тохируулга нь скан хийгчийн төхөөрөмжүүдийг жагсаахад хэрэглэгддэг:

[source,shell]
....
# scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner
....

Эсвэл жишээ нь <<scanners-kernel-usb>>-д ашиглагдсан USB скан хийгчтэй бол:

[source,shell]
....
# scanimage -L
device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner
....

Энэ гаралт нь FreeBSD 8.X системийн хувьд бөгөөд `'epson2:libusb:/dev/usb:/dev/ugen0.2'` нь бидэнд скан хийгчийн ашиглаж байгаа арын нэр (`epson2`) ба төхөөрөмжийн цэгийг (`/dev/ugen0.2`) олгож байна.

[NOTE]
====
Гаралт байхгүй юм уу эсвэл скан хийгч танигдсангүй гэсэн мэдэгдэл нь man:sane[1] нь скан хийгчийг таньж чадаагүйг харуулна. Хэрэв ингэсэн бол та арын хэсгийн тохиргооны файлыг засварлаж ашиглагдах скан хийгч төхөөрөмжийг тодорхойлох хэрэгтэй. [.filename]#/usr/local/etc/sane.d/# сан бүх арын хэсгийн тохиргооны файлуудыг агуулдаг. Энэ танилтын асуудал зарим нэг USB скан хийгчдийн хувьд тохиолддог.

Жишээ нь <<scanners-kernel-usb>>-д хэрэглэгдсэн USB скан хийгчтэй байхад FreeBSD 8.X дээр скан хийгч нь ямар ч асуудалгүйгээр олдож ажиллаж байгаа боловч FreeBSD-ийн өмнөх (man:uscanner[4] драйвер хэрэглэгдэж байгаа) хувилбарууд дээр `sane-find-scanner` тушаалыг ажиллуулахад дараах мэдээллийг бидэнд өгөх болно:

[source,shell]
....
# sane-find-scanner -q
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0
....

Скан хийгч нь зөв олдсон бөгөөд USB интерфэйсийг ашиглан [.filename]#/dev/uscanner0# төхөөрөмжийн цэгт залгагдсан байна. Одоо бид скан хийгч зөв танигдсан эсэхийг шалгаж болно:

[source,shell]
....
# scanimage -L

No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
....

Скан хийгч нь танигдаагүй болохоор бид [.filename]#/usr/local/etc/sane.d/epson2.conf# файлыг засварлах хэрэгтэй болно. Ашиглагдсан скан хийгчийн загвар нь EPSON Perfection(R) 1650 байсан, тэгэхээр бид `epson2` арын хэсгийг скан хийгчийг ашиглахыг мэдлээ. Арын хэсгүүдийн тохиргооны файлууд дахь туслах тайлбаруудыг уншихаа мартуузай. Мөрийн өөрчлөлтүүд нь их энгийн: таны скан хийгчийн хувьд буруу интерфэйстэй бүх мөрүүдийг тайлбар болгоно (бидний хувьд, бидний скан хийгч USB интерфэйсийг ашигладаг болохоор `scsi` гэсэн үгээс эхэлсэн бүх мөрүүдийг тайлбар болгоно), дараа нь файлын төгсгөлд ашиглагдах интерфэйс болон төхөөрөмжийн цэгийг заасан мөрийг нэмнэ. Энэ тохиолдолд бид дараах мөрийг нэмнэ:

[.programlisting]
....
usb /dev/uscanner0
....

Илүү дэлгэрэнгүй мэдээлэл болон хэрэглээний зөв синтаксын талаар арын хэсгийн тохиргооны файлд байгаа тайлбарууд болон арын хэсгийн гарын авлагын хуудаснаас уншихаа мартуузай. Бид одоо скан хийгч танигдсан эсэхийг шалгаж болно:

[source,shell]
....
# scanimage -L
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner
....

Бидний USB скан хийгч танигдлаа. Үйлдвэрлэгч болон загвар нь скан хийгчийнхтэй таарахгүй байвал энэ нь тийм чухал биш юм. Бодолцож үзэх гол түлхүүр зүйл нь бидэнд зөв арын хэсгийн нэр болон зөв төхөөрөмжийн цэгийг өгдөг `epson:/dev/uscanner0` талбар юм.
====

`scanimage -L` тушаал скан хийгчийг харж чаддаг болсны дараа тохиргоо дуусна. Төхөөрөмж нь одоо скан хийхэд бэлэн болсон байна.

man:sane[1] нь дүрс эзэмшилтийг тушаалын мөрөөс хийхийг бидэнд зөвшөөрдөг боловч дүрс скан хийхдээ график хэрэглэгчийн интерфэйс ашиглахыг эрхэмлэх нь зүйтэй юм. SANE нь хялбар боловч үр ашигтай график интерфэйсийг санал болгодог: энэ нь xscanimage (package:graphics/sane-frontends[]) юм.

Xsane (package:graphics/xsane[]) нь өөр нэг алдартай график скан хийгч урд хэсэг юм. Энэ урд хэсэг нь төрөл бүрийн скан хийгч горим (фото хуулбар хийх, факс, гэх мэт), өнгөний засвар, бөөнөөр скан хийх гэх мэт дэвшилтэт боломжуудыг санал болгодог. Эдгээр програмууд нь GIMP залгаас болж ашиглагдах боломжтой байдаг.

=== Бусад хэрэглэгчдэд скан хийгчид хандах боломжийг өгөх

Өмнөх бүх үйлдлүүдийг `root` зөвшөөрлүүдээр хийсэн билээ. Гэхдээ өөр хэрэглэгчдэд скан хийгчид хандах боломжийг өгөх хэрэг танд байж болох юм. Скан хийгчийн ашигладаг төхөөрөмжийн цэгт хандахад унших болон бичих зөвшөөрлүүд хэрэглэгчид хэрэгтэй болно. Жишээ нь бидний USB скан хийгч `operator` бүлгийн эзэмшдэг [.filename]#/dev/usb/0.2.0# гэсэн төхөөрөмжийн жинхэнэ цэг рүү симболын холбоос хийгдсэн [.filename]#/dev/ugen0.2# төхөөрөмжийн цэгийг ашиглаж байна ([.filename]#/dev# сангийн агуулгыг харахад үүнийг батлах болно). Симболын холбоос болон төхөөрөмжийн цэгийг `wheel` ба `operator` бүлэг тус тус эзэмшдэг. `_joe_` хэрэглэгчийг эдгээр бүлэгт нэмснээр түүнд скан хийгчийг ашиглах боломжийг бүрдүүлэх боловч аюулгүй байдлын шалтгаанаас болоод та хэрэглэгчийг аль ч бүлэгт ялангуяа `wheel` бүлэгт нэмэхээсээ өмнө дахин бодох хэрэгтэй. USB төхөөрөмжүүдийг ашиглахад зориулж тусгай бүлэг үүсгэж энэ бүлгийн гишүүдийг скан хийгчид хандах боломжтой болгох нь илүү сайн шийдэл болдог.

Тиймээс бид жишээ нь `_usb_` бүлгийг ашиглах болно. Эхний алхам нь энэ бүлгийг man:pw[8] тушаалын тусламжтай үүсгэх явдал юм:

[source,shell]
....
# pw groupadd usb
....

Дараа нь [.filename]#/dev/ugen0.2# симболын холбоос хийж [.filename]#/dev/usb/0.2.0# төхөөрөмжийн цэгийг `usb` бүлгийн хувьд зөв, бичих зөвшөөрлүүдийн (`0660` эсвэл `0664`) тусламжтай хандах боломжтой болгох ёстой. Учир нь эдгээр файлын эзэмшигч нь (`root`) тэдгээрт зөвхөн бичиж чаддаг. [.filename]#/etc/devfs.rules# файлд дараах мөрүүдийг нэмж энэ бүгдийг хийж болно:

[.programlisting]
....
[system=5]
add path ugen0.2 mode 0660 group usb
add path usb/0.2.0 mode 0666 group usb
....

Одоо скан хийгчид хандах хандалтыг зөвшөөрөхийн тулд хэрэглэгчдийг `_usb_` бүлэгт нэмэх л үлдлээ:

[source,shell]
....
# pw groupmod usb -m joe
....

Дэлгэрэнгүйг man:pw[8] гарын авлагын хуудаснаас үзнэ үү.