← Documents Documentation/ABI/obsolete/sysfs-driver-hid-roccat-kovaplus GitHub 원문 ↗

Linux 6.18.37 · ABI / obsolete

Roccat Kova+ mouse obsolete ABI

Roccat Kova+의 active CPI·sensitivity bookkeeping, persistent profile, firmware info와 profile button·settings sysfs ABI를 설명합니다.

Source pathDocumentation/ABI/obsolete/sysfs-driver-hid-roccat-kovaplus
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

Active state와 firmware

sysfs-driver-hid-roccat-kovaplus:1-60

active CPI와 X/Y sensitivity 조회용 legacy attribute, 0-4 profile 전환, raw firmware version과 이를 대체한 binary info를 다룹니다.

Profile button과 settings

sysfs-driver-hid-roccat-kovaplus:62-116

5개 profile의 23-byte button layout과 16-byte resolution·sensitivity·light settings를 selector 기반 또는 profile별 read-only file로 제공합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/actual_cpi
2 Date: January 2011
3 Contact: Stefan Achatz <[email protected]>
4 Description: The integer value of this attribute ranges from 1-4.
5 When read, this attribute returns the number of the active
6 cpi level.
7 This file is readonly.
8 Has never been used. If bookkeeping is done, it's done in userland tools.
9 Users: http://roccat.sourceforge.net
10
11 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/actual_profile
12 Date: January 2011
13 Contact: Stefan Achatz <[email protected]>
14 Description: The integer value of this attribute ranges from 0-4.
15 When read, this attribute returns the number of the active
16 profile.
17 When written, the mouse activates this profile immediately.
18 The profile that's active when powered down is the same that's
19 active when the mouse is powered on.
20 Users: http://roccat.sourceforge.net
21
22 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/actual_sensitivity_x
23 Date: January 2011
24 Contact: Stefan Achatz <[email protected]>
25 Description: The integer value of this attribute ranges from 1-10.
26 When read, this attribute returns the number of the actual
27 sensitivity in x direction.
28 This file is readonly.
29 Has never been used. If bookkeeping is done, it's done in userland tools.
30 Users: http://roccat.sourceforge.net
31
32 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/actual_sensitivity_y
33 Date: January 2011
34 Contact: Stefan Achatz <[email protected]>
35 Description: The integer value of this attribute ranges from 1-10.
36 When read, this attribute returns the number of the actual
37 sensitivity in y direction.
38 This file is readonly.
39 Has never been used. If bookkeeping is done, it's done in userland tools.
40 Users: http://roccat.sourceforge.net
41
42 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/firmware_version
43 Date: January 2011
44 Contact: Stefan Achatz <[email protected]>
45 Description: When read, this file returns the raw integer version number of the
46 firmware reported by the mouse. Using the integer value eases
47 further usage in other programs. To receive the real version
48 number the decimal point has to be shifted 2 positions to the
49 left. E.g. a returned value of 121 means 1.21
50 This file is readonly.
51 Obsoleted by binary sysfs attribute "info".
52 Users: http://roccat.sourceforge.net
53
54 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/info
55 Date: November 2012
56 Contact: Stefan Achatz <[email protected]>
57 Description: When read, this file returns general data like firmware version.
58 When written, the device can be reset.
59 The data is 6 bytes long.
60 Users: http://roccat.sourceforge.net
61
62 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/profile_buttons
63 Date: January 2011
64 Contact: Stefan Achatz <[email protected]>
65 Description: The mouse can store 5 profiles which can be switched by the
66 press of a button. A profile is split in settings and buttons.
67 profile_buttons holds information about button layout.
68 When written, this file lets one write the respective profile
69 buttons back to the mouse. The data has to be 23 bytes long.
70 The mouse will reject invalid data.
71 Which profile to write is determined by the profile number
72 contained in the data.
73 Before reading this file, control has to be written to select
74 which profile to read.
75 Users: http://roccat.sourceforge.net
76
77 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/profile[1-5]_buttons
78 Date: January 2011
79 Contact: Stefan Achatz <[email protected]>
80 Description: The mouse can store 5 profiles which can be switched by the
81 press of a button. A profile is split in settings and buttons.
82 profile_buttons holds information about button layout.
83 When read, these files return the respective profile buttons.
84 The returned data is 23 bytes in size.
85 This file is readonly.
86 Write control to select profile and read profile_buttons instead.
87 Users: http://roccat.sourceforge.net
88
89 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/profile_settings
90 Date: January 2011
91 Contact: Stefan Achatz <[email protected]>
92 Description: The mouse can store 5 profiles which can be switched by the
93 press of a button. A profile is split in settings and buttons.
94 profile_settings holds information like resolution, sensitivity
95 and light effects.
96 When written, this file lets one write the respective profile
97 settings back to the mouse. The data has to be 16 bytes long.
98 The mouse will reject invalid data.
99 Which profile to write is determined by the profile number
100 contained in the data.
101 Before reading this file, control has to be written to select
102 which profile to read.
103 Users: http://roccat.sourceforge.net
104
105 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/profile[1-5]_settings
106 Date: January 2011
107 Contact: Stefan Achatz <[email protected]>
108 Description: The mouse can store 5 profiles which can be switched by the
109 press of a button. A profile is split in settings and buttons.
110 profile_settings holds information like resolution, sensitivity
111 and light effects.
112 When read, these files return the respective profile settings.
113 The returned data is 16 bytes in size.
114 This file is readonly.
115 Write control to select profile and read profile_settings instead.
116 Users: http://roccat.sourceforge.net
117

3. 한국어 전문 번역

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

Active CPI, profile과 sensitivity

1-40
BASE=/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>

$BASE/actual_cpi
$BASE/actual_profile
$BASE/actual_sensitivity_x
$BASE/actual_sensitivity_y

별도 표시가 없는 항목의 Date는 2011년 1월, contact는 Stefan Achatz <[email protected]>, user는 http://roccat.sourceforge.net다.

attribute값 범위access의미
actual_cpi1-4read-onlyactive CPI level 번호
actual_profile0-4read/writeactive profile과 power cycle 뒤 유지할 profile
actual_sensitivity_x1-10read-onlyX 방향 sensitivity
actual_sensitivity_y1-10read-onlyY 방향 sensitivity

actual_cpi는 active CPI level 번호를 반환하지만 실제로 사용된 적이 없다. CPI 상태 bookkeeping이 필요하면 userland tool에서 수행한다.

actual_profile을 읽으면 현재 active profile을 반환한다. 값을 쓰면 선택한 profile을 즉시 활성화한다. power-down 때 active였던 profile은 다음 power-on 때도 active 상태로 복원된다.

actual_sensitivity_x와 actual_sensitivity_y는 각 방향의 현재 sensitivity 번호를 반환하지만 두 file도 실제로 사용된 적이 없다. sensitivity bookkeeping은 userland tool이 담당한다.

Firmware version과 binary info

42-60
$BASE/firmware_version
$BASE/info
attributeDatepayloadaccess
firmware_version2011년 1월raw integerread-only
info2012년 11월6 byteread/write

firmware_version은 mouse가 보고한 firmware version의 raw integer를 반환한다. 실제 version은 decimal point를 왼쪽으로 두 자리 옮겨 구한다. 예를 들어 121은 1.21이다. 이 file은 binary sysfs attribute인 info로 대체되었다.

info를 읽으면 firmware version 같은 일반 data 6 byte를 반환한다. 6-byte data를 쓰면 device를 reset할 수 있다.

Profile button과 settings payload

62-116
$BASE/profile_buttons
$BASE/profile[1-5]_buttons
$BASE/profile_settings
$BASE/profile[1-5]_settings
attributepayloadaccess내용
profile_buttons23 byteread/write선택 profile의 button layout
profile[1-5]_buttons23 byteread-only번호별 profile button layout
profile_settings16 byteread/write선택 profile의 resolution·sensitivity·light effect
profile[1-5]_settings16 byteread-only번호별 profile settings

mouse는 button press로 바꿀 수 있는 profile 다섯 개를 저장한다. profile은 settings와 buttons로 나뉜다.

profile_buttons에 23 byte를 쓰면 payload 안의 profile 번호가 지정하는 button layout을 mouse에 기록한다. invalid data는 mouse가 거부한다. 읽기 전에는 control에 써서 읽을 profile을 선택해야 한다.

profile1_buttons부터 profile5_buttons까지는 해당 profile button data 23 byte를 직접 반환하는 기존 read-only file이다. control로 profile을 선택하고 profile_buttons를 읽는 방식으로 대체되었다.

profile_settings에 16 byte를 쓰면 payload 안의 profile 번호가 지정하는 resolution, sensitivity, light effect를 기록한다. invalid data는 거부하며 읽기 전에는 control selector가 필요하다.

profile1_settings부터 profile5_settings까지는 해당 profile settings 16 byte를 직접 반환하는 기존 read-only file이다. control과 profile_settings 조합을 사용해야 한다.