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

Linux 6.18.37 · ABI / obsolete

Roccat Isku keyboard obsolete ABI

Roccat Isku와 IskuFX의 profile, key assignment, macro, backlight, reset, EasyShift와 TalkFX sysfs ABI를 설명합니다.

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

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

1. 요약·해설

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

Persistent profile과 profile별 key map

sysfs-driver-hid-roccat-isku:1-89

0-4 profile을 device에 영구 저장하고 key mask, Caps Lock, EasyZone, function, macro, media, thumbster key assignment를 고정 길이 binary payload로 읽고 씁니다.

Macro, light와 host command

sysfs-driver-hid-roccat-isku:91-153

configuration timestamp, profile별 backlight, 최대 500 keystroke macro, device reset, read selector, EasyShift와 temporary color scheme command의 payload contract를 정의합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/actual_profile
2 Date: June 2011
3 Contact: Stefan Achatz <[email protected]>
4 Description: The integer value of this attribute ranges from 0-4.
5 When read, this attribute returns the number of the actual
6 profile. This value is persistent, so its equivalent to the
7 profile that's active when the device is powered on next time.
8 When written, this file sets the number of the startup profile
9 and the device activates this profile immediately.
10 Users: http://roccat.sourceforge.net
11
12 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/info
13 Date: June 2011
14 Contact: Stefan Achatz <[email protected]>
15 Description: When read, this file returns general data like firmware version.
16 The data is 6 bytes long.
17 This file is readonly.
18 Users: http://roccat.sourceforge.net
19
20 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/key_mask
21 Date: June 2011
22 Contact: Stefan Achatz <[email protected]>
23 Description: When written, this file lets one deactivate certain keys like
24 windows and application keys, to prevent accidental presses.
25 Profile number for which this settings occur is included in
26 written data. The data has to be 6 bytes long.
27 Before reading this file, control has to be written to select
28 which profile to read.
29 Users: http://roccat.sourceforge.net
30
31 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_capslock
32 Date: June 2011
33 Contact: Stefan Achatz <[email protected]>
34 Description: When written, this file lets one set the function of the
35 capslock key for a specific profile. Profile number is included
36 in written data. The data has to be 6 bytes long.
37 Before reading this file, control has to be written to select
38 which profile to read.
39 Users: http://roccat.sourceforge.net
40
41 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_easyzone
42 Date: June 2011
43 Contact: Stefan Achatz <[email protected]>
44 Description: When written, this file lets one set the function of the
45 easyzone keys for a specific profile. Profile number is included
46 in written data. The data has to be 65 bytes long.
47 Before reading this file, control has to be written to select
48 which profile to read.
49 Users: http://roccat.sourceforge.net
50
51 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_function
52 Date: June 2011
53 Contact: Stefan Achatz <[email protected]>
54 Description: When written, this file lets one set the function of the
55 function keys for a specific profile. Profile number is included
56 in written data. The data has to be 41 bytes long.
57 Before reading this file, control has to be written to select
58 which profile to read.
59 Users: http://roccat.sourceforge.net
60
61 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_macro
62 Date: June 2011
63 Contact: Stefan Achatz <[email protected]>
64 Description: When written, this file lets one set the function of the macro
65 keys for a specific profile. Profile number is included in
66 written data. The data has to be 35 bytes long.
67 Before reading this file, control has to be written to select
68 which profile to read.
69 Users: http://roccat.sourceforge.net
70
71 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_media
72 Date: June 2011
73 Contact: Stefan Achatz <[email protected]>
74 Description: When written, this file lets one set the function of the media
75 keys for a specific profile. Profile number is included in
76 written data. The data has to be 29 bytes long.
77 Before reading this file, control has to be written to select
78 which profile to read.
79 Users: http://roccat.sourceforge.net
80
81 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_thumbster
82 Date: June 2011
83 Contact: Stefan Achatz <[email protected]>
84 Description: When written, this file lets one set the function of the
85 thumbster keys for a specific profile. Profile number is included
86 in written data. The data has to be 23 bytes long.
87 Before reading this file, control has to be written to select
88 which profile to read.
89 Users: http://roccat.sourceforge.net
90
91 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/last_set
92 Date: June 2011
93 Contact: Stefan Achatz <[email protected]>
94 Description: When written, this file lets one set the time in secs since
95 epoch in which the last configuration took place.
96 The data has to be 20 bytes long.
97 Users: http://roccat.sourceforge.net
98
99 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/light
100 Date: June 2011
101 Contact: Stefan Achatz <[email protected]>
102 Description: When written, this file lets one set the backlight intensity for
103 a specific profile. Profile number is included in written data.
104 The data has to be 10 bytes long for Isku, IskuFX needs 16 bytes
105 of data.
106 Before reading this file, control has to be written to select
107 which profile to read.
108 Users: http://roccat.sourceforge.net
109
110 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/macro
111 Date: June 2011
112 Contact: Stefan Achatz <[email protected]>
113 Description: When written, this file lets one store macros with max 500
114 keystrokes for a specific button for a specific profile.
115 Button and profile numbers are included in written data.
116 The data has to be 2083 bytes long.
117 Before reading this file, control has to be written to select
118 which profile and key to read.
119 Users: http://roccat.sourceforge.net
120
121 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/reset
122 Date: November 2012
123 Contact: Stefan Achatz <[email protected]>
124 Description: When written, this file lets one reset the device.
125 The data has to be 3 bytes long.
126 This file is writeonly.
127 Users: http://roccat.sourceforge.net
128
129 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/control
130 Date: June 2011
131 Contact: Stefan Achatz <[email protected]>
132 Description: When written, this file lets one select which data from which
133 profile will be read next. The data has to be 3 bytes long.
134 This file is writeonly.
135 Users: http://roccat.sourceforge.net
136
137 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/talk
138 Date: June 2011
139 Contact: Stefan Achatz <[email protected]>
140 Description: When written, this file lets one trigger easyshift functionality
141 from the host.
142 The data has to be 16 bytes long.
143 This file is writeonly.
144 Users: http://roccat.sourceforge.net
145
146 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/talkfx
147 Date: February 2013
148 Contact: Stefan Achatz <[email protected]>
149 Description: When written, this file lets one trigger temporary color schemes
150 from the host.
151 The data has to be 16 bytes long.
152 This file is writeonly.
153 Users: http://roccat.sourceforge.net
154

3. 한국어 전문 번역

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

공통 경로, actual_profile과 info

1-18
BASE=/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>

이 문서의 모든 attribute는 위 BASE 바로 아래에 있다. Date는 별도 표시가 없는 한 2011년 6월, contact는 Stefan Achatz <[email protected]>, user는 http://roccat.sourceforge.net다.

$BASE/actual_profile
$BASE/info
attribute값·길이access의미
actual_profileinteger 0-4read/write현재 profile과 다음 power-on 때 사용할 startup profile
info6 byteread-onlyfirmware version을 포함한 일반 device data

actual_profile을 읽으면 현재 profile 번호를 반환한다. 값은 persistent하므로 다음에 device power를 켤 때 활성화될 profile과 같다. 값을 쓰면 startup profile 번호를 저장하고 device가 그 profile을 즉시 활성화한다.

info를 읽으면 firmware version 같은 일반 data 6 byte를 반환한다.

Profile별 key 설정

20-89
$BASE/key_mask
$BASE/keys_capslock
$BASE/keys_easyzone
$BASE/keys_function
$BASE/keys_macro
$BASE/keys_media
$BASE/keys_thumbster
attributepayload설정 대상
key_mask6 byteWindows·application key 같은 특정 key 비활성화
keys_capslock6 byteCaps Lock key 기능
keys_easyzone65 byteEasyZone key 기능
keys_function41 bytefunction key 기능
keys_macro35 bytemacro key 기능
keys_media29 bytemedia key 기능
keys_thumbster23 bytethumbster key 기능

key_mask를 쓰면 Windows key와 application key처럼 실수로 눌렀을 때 방해가 되는 특정 key를 비활성화한다. 적용할 profile 번호는 6-byte write data에 포함된다.

keys_capslock, keys_easyzone, keys_function, keys_macro, keys_media, keys_thumbster를 쓰면 각각 특정 profile의 해당 key group 기능을 설정한다. 모든 payload에는 profile 번호가 포함된다.

이 일곱 file을 읽기 전에는 control에 먼저 값을 써서 어느 profile data를 읽을지 선택해야 한다.

last_set, light와 macro

91-119
$BASE/last_set
$BASE/light
$BASE/macro
attributepayloadprofile 선택의미
last_set20 bytepayload contract에 따름마지막 configuration 시각의 epoch seconds
lightIsku 10 byte / IskuFX 16 bytepayload에 profile 번호 포함profile별 backlight intensity
macro2083 bytepayload에 profile·button 번호 포함특정 button에 최대 500 keystroke macro 저장

last_set에 쓰면 마지막 configuration이 수행된 시각을 Unix epoch 이후 seconds 값으로 설정한다. write data 길이는 20 byte여야 한다.

light에 쓰면 특정 profile의 backlight intensity를 설정한다. profile 번호는 payload에 포함된다. Isku payload는 10 byte이고 IskuFX는 16 byte다. 읽기 전에는 control에 써서 profile을 선택해야 한다.

macro에 쓰면 특정 profile의 특정 button에 최대 500 keystroke의 macro를 저장한다. button 번호와 profile 번호가 2083-byte payload에 포함된다. 읽기 전에는 control을 통해 읽을 profile과 key를 모두 선택해야 한다.

reset, control, talk와 talkfx

121-153
$BASE/reset
$BASE/control
$BASE/talk
$BASE/talkfx
attributeDatepayloadaccess동작
reset2012년 11월3 bytewrite-onlydevice reset
control2011년 6월3 bytewrite-only다음 read가 가져올 profile과 data 선택
talk2011년 6월16 bytewrite-onlyhost에서 EasyShift 기능 trigger
talkfx2013년 2월16 bytewrite-onlyhost에서 temporary color scheme trigger

reset에 정확히 3 byte를 쓰면 device를 reset한다.

control에 3 byte를 쓰면 다음 read에서 어느 profile의 어떤 data를 가져올지 선택한다. profile별 file을 읽기 전에 사용하는 selector다.

talk에 16 byte를 쓰면 host가 EasyShift 기능을 trigger한다. talkfx에 16 byte를 쓰면 host가 임시 color scheme을 trigger한다.