← Documents Documentation/admin-guide/media/bt8xx.rst GitHub 원문 ↗

Linux 6.18.37 · Administration / Media

How to get the bt8xx cards working

Bt8xx 카드용 커널 설정, module 자동 선택, TwinHan 예외, 다중 카드 ID와 손상된 PCI ID probing 방법을 설명합니다.

Source pathDocumentation/admin-guide/media/bt8xx.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

커널과 frontend 설정

bt8xx.rst:1-64

필수 Kconfig option과 특정 보드용 tuner·frontend 수동 선택 방법을 설명합니다.

Module load와 예외

bt8xx.rst:65-110

자동 load 동작과 EEPROM 없는 TwinHan·clone에 필요한 매개변수를 정리합니다.

다중 카드 구성

bt8xx.rst:111-143

Card ID 순서와 여러 `card=` 값을 지정하는 방법을 설명합니다.

손상된 PCI ID 강제 probing

bt8xx.rst:144-157

`new_id`로 Brooktree vendor·device ID와 subsystem ID를 강제 등록하는 절차입니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0
2
3 ==================================
4 How to get the bt8xx cards working
5 ==================================
6
7 Authors:
8 Richard Walker,
9 Jamie Honan,
10 Michael Hunold,
11 Manu Abraham,
12 Uwe Bugla,
13 Michael Krufky
14
15 General information
16 -------------------
17
18 This class of cards has a bt878a as the PCI interface, and require the bttv
19 driver for accessing the i2c bus and the gpio pins of the bt8xx chipset.
20
21 Please see Documentation/admin-guide/media/bttv-cardlist.rst for a complete
22 list of Cards based on the Conexant Bt8xx PCI bridge supported by the
23 Linux Kernel.
24
25 In order to be able to compile the kernel, some config options should be
26 enabled::
27
28 ./scripts/config -e PCI
29 ./scripts/config -e INPUT
30 ./scripts/config -m I2C
31 ./scripts/config -m MEDIA_SUPPORT
32 ./scripts/config -e MEDIA_PCI_SUPPORT
33 ./scripts/config -e MEDIA_ANALOG_TV_SUPPORT
34 ./scripts/config -e MEDIA_DIGITAL_TV_SUPPORT
35 ./scripts/config -e MEDIA_RADIO_SUPPORT
36 ./scripts/config -e RC_CORE
37 ./scripts/config -m VIDEO_BT848
38 ./scripts/config -m DVB_BT8XX
39
40 If you want to automatically support all possible variants of the Bt8xx
41 cards, you should also do::
42
43 ./scripts/config -e MEDIA_SUBDRV_AUTOSELECT
44
45 .. note::
46
47 Please use the following options with care as deselection of drivers which
48 are in fact necessary may result in DVB devices that cannot be tuned due
49 to lack of driver support.
50
51 If your goal is to just support an specific board, you may, instead,
52 disable MEDIA_SUBDRV_AUTOSELECT and manually select the frontend drivers
53 required by your board. With that, you can save some RAM.
54
55 You can do that by calling make xconfig/qconfig/menuconfig and look at
56 the options on those menu options (only enabled if
57 ``Autoselect ancillary drivers`` is disabled:
58
59 #) ``Device drivers`` => ``Multimedia support`` => ``Customize TV tuners``
60 #) ``Device drivers`` => ``Multimedia support`` => ``Customize DVB frontends``
61
62 Then, on each of the above menu, please select your card-specific
63 frontend and tuner modules.
64
65
66 Loading Modules
67 ---------------
68
69 Regular case: If the bttv driver detects a bt8xx-based DVB card, all
70 frontend and backend modules will be loaded automatically.
71
72 Exceptions are:
73
74 - Old TV cards without EEPROMs, sharing a common PCI subsystem ID;
75 - Old TwinHan DST cards or clones with or without CA slot and not
76 containing an Eeprom.
77
78 In the following cases overriding the PCI type detection for bttv and
79 for dvb-bt8xx drivers by passing modprobe parameters may be necessary.
80
81 Running TwinHan and Clones
82 ~~~~~~~~~~~~~~~~~~~~~~~~~~
83
84 As shown at Documentation/admin-guide/media/bttv-cardlist.rst, TwinHan and
85 clones use ``card=113`` modprobe parameter. So, in order to properly
86 detect it for devices without EEPROM, you should use::
87
88 $ modprobe bttv card=113
89 $ modprobe dst
90
91 Useful parameters for verbosity level and debugging the dst module::
92
93 verbose=0: messages are disabled
94 1: only error messages are displayed
95 2: notifications are displayed
96 3: other useful messages are displayed
97 4: debug setting
98 dst_addons=0: card is a free to air (FTA) card only
99 0x20: card has a conditional access slot for scrambled channels
100 dst_algo=0: (default) Software tuning algorithm
101 1: Hardware tuning algorithm
102
103
104 The autodetected values are determined by the cards' "response string".
105
106 In your logs see f. ex.: dst_get_device_id: Recognize [DSTMCI].
107
108 For bug reports please send in a complete log with verbose=4 activated.
109 Please also see Documentation/admin-guide/media/ci.rst.
110
111 Running multiple cards
112 ~~~~~~~~~~~~~~~~~~~~~~
113
114 See Documentation/admin-guide/media/bttv-cardlist.rst for a complete list of
115 Card ID. Some examples:
116
117 =========================== ===
118 Brand name ID
119 =========================== ===
120 Pinnacle PCTV Sat 94
121 Nebula Electronics Digi TV 104
122 pcHDTV HD-2000 TV 112
123 Twinhan DST and clones 113
124 Avermedia AverTV DVB-T 77: 123
125 Avermedia AverTV DVB-T 761 124
126 DViCO FusionHDTV DVB-T Lite 128
127 DViCO FusionHDTV 5 Lite 135
128 =========================== ===
129
130 .. note::
131
132 When you have multiple cards, the order of the card ID should
133 match the order where they're detected by the system. Please notice
134 that removing/inserting other PCI cards may change the detection
135 order.
136
137 Example::
138
139 $ modprobe bttv card=113 card=135
140
141 In case of further problems please subscribe and send questions to
142 the mailing list: linux-media@vger.kernel.org.
143
144 Probing the cards with broken PCI subsystem ID
145 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
146
147 There are some TwinHan cards whose EEPROM has become corrupted for some
148 reason. The cards do not have a correct PCI subsystem ID.
149 Still, it is possible to force probing the cards with::
150
151 $ echo 109e 0878 $subvendor $subdevice > \
152 /sys/bus/pci/drivers/bt878/new_id
153
154 The two numbers there are::
155
156 109e: PCI_VENDOR_ID_BROOKTREE
157 0878: PCI_DEVICE_ID_BROOKTREE_878
158

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Bt8xx 카드 구동 안내

1-14

이 문서는 Bt8xx 계열 카드를 동작시키는 방법을 설명합니다.

저자는 Richard Walker, Jamie Honan, Michael Hunold, Manu Abraham, Uwe Bugla, Michael Krufky입니다.

일반 정보

15-24

이 계열 카드는 PCI interface로 `bt878a`를 사용하며, Bt8xx chipset의 I2C bus와 GPIO pin에 접근하려면 `bttv` 드라이버가 필요합니다.

Linux 커널이 지원하는 Conexant Bt8xx PCI bridge 기반 카드 전체 목록은 `Documentation/admin-guide/media/bttv-cardlist.rst`를 참조하십시오.

커널 설정

25-44

커널을 compile하려면 다음 설정을 활성화해야 합니다.

./scripts/config -e PCI
./scripts/config -e INPUT
./scripts/config -m I2C
./scripts/config -m MEDIA_SUPPORT
./scripts/config -e MEDIA_PCI_SUPPORT
./scripts/config -e MEDIA_ANALOG_TV_SUPPORT
./scripts/config -e MEDIA_DIGITAL_TV_SUPPORT
./scripts/config -e MEDIA_RADIO_SUPPORT
./scripts/config -e RC_CORE
./scripts/config -m VIDEO_BT848
./scripts/config -m DVB_BT8XX

가능한 모든 Bt8xx 카드 변형을 자동 지원하려면 다음 설정도 활성화합니다.

./scripts/config -e MEDIA_SUBDRV_AUTOSELECT

Frontend 드라이버 수동 선택

45-64

실제로 필요한 드라이버를 해제하면 드라이버 지원 부족으로 DVB 장치를 tuning하지 못할 수 있으므로 관련 option은 주의해서 사용해야 합니다.

특정 보드 하나만 지원하려면 `MEDIA_SUBDRV_AUTOSELECT`를 비활성화하고 보드에 필요한 frontend 드라이버를 직접 골라 RAM을 절약할 수 있습니다.

`make xconfig`, `make qconfig`, `make menuconfig` 가운데 하나를 실행하고 `Autoselect ancillary drivers`를 끈 상태에서 다음 menu를 확인합니다.

Menu경로
TV tuner`Device drivers` → `Multimedia support` → `Customize TV tuners`
DVB frontend`Device drivers` → `Multimedia support` → `Customize DVB frontends`

각 menu에서 카드 전용 frontend와 tuner module을 선택합니다.

Module 자동 load와 예외

65-80

일반적으로 `bttv` 드라이버가 Bt8xx 기반 DVB 카드를 감지하면 frontend와 backend module을 모두 자동으로 load합니다.

예외는 EEPROM이 없고 공통 PCI subsystem ID를 공유하는 오래된 TV 카드와, CA slot 유무와 관계없이 EEPROM이 없는 오래된 TwinHan DST 카드 또는 clone입니다.

이 경우 `modprobe` 매개변수를 전달하여 `bttv`와 `dvb-bt8xx` 드라이버의 PCI type 감지를 덮어써야 할 수 있습니다.

TwinHan과 clone 실행

81-110

`Documentation/admin-guide/media/bttv-cardlist.rst`에 나온 것처럼 TwinHan과 clone은 `card=113` modprobe 매개변수를 사용합니다. EEPROM이 없는 장치를 정확히 감지하려면 다음 명령을 실행합니다.

$ modprobe bttv card=113
$ modprobe dst

`dst` module의 메시지 수준과 debugging에 유용한 매개변수는 다음과 같습니다.

verbose=0:		messages are disabled
	1:		only error messages are displayed
	2:		notifications are displayed
	3:		other useful messages are displayed
	4:		debug setting
dst_addons=0:		card is a free to air (FTA) card only
	0x20:	card has a conditional access slot for scrambled channels
dst_algo=0:		(default) Software tuning algorithm
         1:		Hardware tuning algorithm
매개변수의미
`verbose=0`메시지를 비활성화합니다.
`verbose=1`오류 메시지만 표시합니다.
`verbose=2`통지를 표시합니다.
`verbose=3`그 밖의 유용한 메시지를 표시합니다.
`verbose=4`Debug 설정입니다.
`dst_addons=0`FTA(free-to-air) 전용 카드입니다.
`dst_addons=0x20`Scrambled channel용 conditional access slot이 있습니다.
`dst_algo=0`기본 software tuning algorithm입니다.
`dst_algo=1`Hardware tuning algorithm입니다.

자동 감지 값은 카드의 `response string`으로 정합니다. 예를 들어 log에서 `dst_get_device_id: Recognize [DSTMCI]`를 확인할 수 있습니다.

Bug report에는 `verbose=4`를 활성화한 전체 log를 첨부해야 합니다. `Documentation/admin-guide/media/ci.rst`도 참조하십시오.

여러 카드 실행

111-143

Card ID 전체 목록은 `Documentation/admin-guide/media/bttv-cardlist.rst`를 참조하십시오. 대표적인 예는 다음과 같습니다.

Brand nameID
Pinnacle PCTV Sat94
Nebula Electronics Digi TV104
pcHDTV HD-2000 TV112
Twinhan DST and clones113
Avermedia AverTV DVB-T 77:123
Avermedia AverTV DVB-T 761124
DViCO FusionHDTV DVB-T Lite128
DViCO FusionHDTV 5 Lite135

카드가 여러 개면 Card ID 순서를 system이 감지한 순서와 맞춰야 합니다. 다른 PCI 카드를 제거하거나 삽입하면 감지 순서가 바뀔 수 있습니다.

예를 들어 TwinHan DST 뒤에 DViCO FusionHDTV 5 Lite가 감지되면 다음과 같이 지정합니다.

$ modprobe bttv card=113 card=135

문제가 계속되면 `linux-media@vger.kernel.org` mailing list를 구독하고 질문을 보내십시오.

손상된 PCI subsystem ID probing

144-157

일부 TwinHan 카드는 EEPROM이 손상되어 올바른 PCI subsystem ID가 없습니다. 그래도 다음 sysfs `new_id` 기록으로 카드 probing을 강제할 수 있습니다.

$ echo 109e 0878 $subvendor $subdevice > \
	/sys/bus/pci/drivers/bt878/new_id

명령의 앞 두 번호는 다음 상수를 뜻합니다.

상수
`109e``PCI_VENDOR_ID_BROOKTREE`
`0878``PCI_DEVICE_ID_BROOKTREE_878`
109e: PCI_VENDOR_ID_BROOKTREE
0878: PCI_DEVICE_ID_BROOKTREE_878