← Documents Documentation/input/devices/bcm5974.rst GitHub 원문 ↗

Linux 6.18.37 · Input

BCM5974 Driver (bcm5974)

Apple MacBook 멀티터치 트랙패드의 BCM5974 드라이버, HID 점유 경쟁과 패킷 디버깅을 설명합니다.

Source pathDocumentation/input/devices/bcm5974.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약·해설

bcm5974.rst:1-70

`bcm5974`는 신형 MacBook Air와 MacBook Pro의 멀티터치 트랙패드를 지원하며 기존 `appletouch`를 대체합니다. 하나의 USB 장치에서 HID와 트랙패드 드라이버가 경쟁할 수 있으므로 product ID의 `mouse_ignore` 등록이 핵심입니다.

문서 개요
항목내용
SourceDocumentation/input/devices/bcm5974.rst
분량70 source lines
입력`/dev/input/event*`, `/dev/input/mice`
경쟁 방지HID `mouse_ignore` product ID
디버그`/sys/module/bcm5974/parameters/debug`, 값 0~9

지원 장치, 입력 경로와 진단 수단을 요약합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 .. include:: <isonum.txt>
2
3 ------------------------
4 BCM5974 Driver (bcm5974)
5 ------------------------
6
7 :Copyright: |copy| 2008-2009 Henrik Rydberg <rydberg@euromail.se>
8
9 The USB initialization and package decoding was made by Scott Shawcroft as
10 part of the touchd user-space driver project:
11
12 :Copyright: |copy| 2008 Scott Shawcroft (scott.shawcroft@gmail.com)
13
14 The BCM5974 driver is based on the appletouch driver:
15
16 :Copyright: |copy| 2001-2004 Greg Kroah-Hartman (greg@kroah.com)
17 :Copyright: |copy| 2005 Johannes Berg (johannes@sipsolutions.net)
18 :Copyright: |copy| 2005 Stelian Pop (stelian@popies.net)
19 :Copyright: |copy| 2005 Frank Arnold (frank@scirocco-5v-turbo.de)
20 :Copyright: |copy| 2005 Peter Osterlund (petero2@telia.com)
21 :Copyright: |copy| 2005 Michael Hanselmann (linux-kernel@hansmi.ch)
22 :Copyright: |copy| 2006 Nicolas Boichat (nicolas@boichat.ch)
23
24 This driver adds support for the multi-touch trackpad on the new Apple
25 Macbook Air and Macbook Pro laptops. It replaces the appletouch driver on
26 those computers, and integrates well with the synaptics driver of the Xorg
27 system.
28
29 Known to work on Macbook Air, Macbook Pro Penryn and the new unibody
30 Macbook 5 and Macbook Pro 5.
31
32 Usage
33 -----
34
35 The driver loads automatically for the supported usb device ids, and
36 becomes available both as an event device (/dev/input/event*) and as a
37 mouse via the mousedev driver (/dev/input/mice).
38
39 USB Race
40 --------
41
42 The Apple multi-touch trackpads report both mouse and keyboard events via
43 different interfaces of the same usb device. This creates a race condition
44 with the HID driver, which, if not told otherwise, will find the standard
45 HID mouse and keyboard, and claim the whole device. To remedy, the usb
46 product id must be listed in the mouse_ignore list of the hid driver.
47
48 Debug output
49 ------------
50
51 To ease the development for new hardware version, verbose packet output can
52 be switched on with the debug kernel module parameter. The range [1-9]
53 yields different levels of verbosity. Example (as root)::
54
55 echo -n 9 > /sys/module/bcm5974/parameters/debug
56
57 tail -f /var/log/debug
58
59 echo -n 0 > /sys/module/bcm5974/parameters/debug
60
61 Trivia
62 ------
63
64 The driver was developed at the ubuntu forums in June 2008 [#f1]_, and now has
65 a more permanent home at bitmath.org [#f2]_.
66
67 .. Links
68
69 .. [#f1] http://ubuntuforums.org/showthread.php?t=840040
70 .. [#f2] http://bitmath.org/code/
71

3. 한국어 전문 번역

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

드라이버 계보와 지원 Apple 노트북

1-31

BCM5974 드라이버 문서의 저작권은 2008~2009년 Henrik Rydberg에게 있습니다. USB 초기화와 패킷 해독은 Scott Shawcroft가 `touchd` 사용자 공간 드라이버 프로젝트의 일부로 작성했습니다.

드라이버는 Greg Kroah-Hartman, Johannes Berg, Stelian Pop, Frank Arnold, Peter Osterlund, Michael Hanselmann, Nicolas Boichat가 기여한 `appletouch` 드라이버를 기반으로 합니다. 각 저작권 연도와 연락처는 아래 접을 수 있는 영어 원문에 그대로 보존됩니다.

BCM5974는 새 Apple MacBook Air와 MacBook Pro의 멀티터치 트랙패드를 지원합니다. 해당 컴퓨터에서 `appletouch`를 대체하며 Xorg의 Synaptics 드라이버와 잘 통합됩니다. 동작이 확인된 장치는 MacBook Air, MacBook Pro Penryn, 신형 unibody MacBook 5와 MacBook Pro 5입니다.

BCM5974 지원 범위
항목내용
커널 드라이버`bcm5974`
선행 사용자 공간 작업Scott Shawcroft의 `touchd` USB 초기화·패킷 해독
기반 코드`appletouch`
지원 기능Apple 멀티터치 트랙패드
확인 장치MacBook Air, MacBook Pro Penryn, MacBook 5, MacBook Pro 5
Xorg 연동Synaptics driver

드라이버의 기반, 사용자 공간 선행 작업과 확인된 시스템을 정리합니다.

BCM5974 계보
`appletouch` 커널 드라이버 기반`touchd`에서 USB 초기화와 패킷 형식 분석`bcm5974` 커널 드라이버로 통합새 MacBook Air/Pro에서 `appletouch` 대체Linux input과 Xorg Synaptics로 멀티터치 전달

기존 드라이버와 패킷 분석이 BCM5974 지원으로 이어진 관계입니다.

.. include:: <isonum.txt>

------------------------
BCM5974 Driver (bcm5974)
------------------------

:Copyright: |copy| 2008-2009        Henrik Rydberg <rydberg@euromail.se>

The USB initialization and package decoding was made by Scott Shawcroft as
part of the touchd user-space driver project:

:Copyright: |copy| 2008        Scott Shawcroft (scott.shawcroft@gmail.com)

The BCM5974 driver is based on the appletouch driver:

:Copyright: |copy| 2001-2004        Greg Kroah-Hartman (greg@kroah.com)
:Copyright: |copy| 2005                Johannes Berg (johannes@sipsolutions.net)
:Copyright: |copy| 2005                Stelian Pop (stelian@popies.net)
:Copyright: |copy| 2005                Frank Arnold (frank@scirocco-5v-turbo.de)
:Copyright: |copy| 2005                Peter Osterlund (petero2@telia.com)
:Copyright: |copy| 2005                Michael Hanselmann (linux-kernel@hansmi.ch)
:Copyright: |copy| 2006                Nicolas Boichat (nicolas@boichat.ch)

This driver adds support for the multi-touch trackpad on the new Apple
Macbook Air and Macbook Pro laptops. It replaces the appletouch driver on
those computers, and integrates well with the synaptics driver of the Xorg
system.

Known to work on Macbook Air, Macbook Pro Penryn and the new unibody
Macbook 5 and Macbook Pro 5.

자동 적재와 USB HID 점유 경쟁

32-47

지원되는 USB device ID가 감지되면 드라이버는 자동으로 적재됩니다. 입력은 event 장치 `/dev/input/event*`와 `mousedev`를 통한 마우스 장치 `/dev/input/mice` 양쪽으로 제공됩니다.

BCM5974 사용자 공간 입력 경로
경로제공 계층용도
`/dev/input/event*`Linux event device멀티터치와 세부 이벤트 소비
`/dev/input/mice``mousedev`일반 마우스 호환 입력

같은 트랙패드가 노출되는 두 인터페이스입니다.

Apple 멀티터치 트랙패드는 하나의 USB 장치에 있는 서로 다른 인터페이스로 마우스와 키보드 이벤트를 보고합니다. 별도 지시가 없으면 HID 드라이버가 표준 HID 마우스와 키보드를 먼저 발견하고 장치 전체를 점유할 수 있어 `bcm5974`와 경쟁 조건이 생깁니다.

이 문제를 피하려면 해당 USB product ID를 HID 드라이버의 `mouse_ignore` 목록에 넣어야 합니다. 그러면 HID가 전체 장치를 선점하지 않고 BCM5974가 트랙패드 인터페이스를 처리할 수 있습니다.

USB 점유 경쟁 해결
하나의 USB 장치가 마우스·키보드 인터페이스를 함께 노출표준 HID가 먼저 발견하면 장치 전체를 점유product ID를 HID `mouse_ignore` 목록에 등록HID의 전체 장치 선점을 방지`bcm5974`가 트랙패드에 바인딩되어 event·mousedev 입력 생성

HID 선점과 BCM5974 바인딩 사이의 순서를 보여 줍니다.

Usage
-----

The driver loads automatically for the supported usb device ids, and
becomes available both as an event device (/dev/input/event*) and as a
mouse via the mousedev driver (/dev/input/mice).

USB Race
--------

The Apple multi-touch trackpads report both mouse and keyboard events via
different interfaces of the same usb device. This creates a race condition
with the HID driver, which, if not told otherwise, will find the standard
HID mouse and keyboard, and claim the whole device. To remedy, the usb
product id must be listed in the mouse_ignore list of the hid driver.

패킷 디버깅과 개발 이력

48-70

새 하드웨어 버전 개발을 돕기 위해 `debug` 커널 모듈 매개변수로 상세 패킷 출력을 켤 수 있습니다. 값 1~9는 서로 다른 상세 수준이며 9가 예제의 최대 상세 출력입니다. 루트 권한으로 값을 설정한 뒤 `/var/log/debug`를 추적하고, 작업 후 0으로 되돌립니다.

echo -n 9 > /sys/module/bcm5974/parameters/debug
tail -f /var/log/debug
echo -n 0 > /sys/module/bcm5974/parameters/debug
BCM5974 디버그 값
동작
0상세 패킷 출력 비활성화
1~8단계별 상세 출력
9예제에서 사용하는 가장 상세한 패킷 출력

모듈 매개변수 범위와 예제 동작입니다.

새 하드웨어 패킷 조사
`debug` 값을 1~9 중 필요한 수준으로 설정`/var/log/debug`를 실시간 추적USB 패킷과 새 하드웨어 동작 비교조사가 끝나면 `debug=0`으로 복귀

일시적으로 상세 로그를 활성화하고 종료하는 절차입니다.

드라이버는 2008년 6월 Ubuntu 포럼에서 개발되었고 이후 `bitmath.org`에 더 영구적인 거처를 마련했습니다.

BCM5974 개발 참고 링크
참조주소
Ubuntu forums 개발 스레드`http://ubuntuforums.org/showthread.php?t=840040`
bitmath.org 코드 페이지`http://bitmath.org/code/`

원문 각주 두 개의 주소를 보존합니다.

Debug output
------------

To ease the development for new hardware version, verbose packet output can
be switched on with the debug kernel module parameter. The range [1-9]
yields different levels of verbosity. Example (as root)::

    echo -n 9 > /sys/module/bcm5974/parameters/debug

    tail -f /var/log/debug

    echo -n 0 > /sys/module/bcm5974/parameters/debug

Trivia
------

The driver was developed at the ubuntu forums in June 2008 [#f1]_, and now has
a more permanent home at bitmath.org [#f2]_.

.. Links

.. [#f1] http://ubuntuforums.org/showthread.php?t=840040
.. [#f2] http://bitmath.org/code/