- 0x0000007b
- 2차세계대전
- 3.20해킹
- 4대강
- 502 error
- 53빌딩
- 7840hs
- 88체육관 수영장
- ABI
- abortive close
- abortive shutdown
- AHCI
- aic8800d80 chipset
- akmods
- ALC1220
- alma linux
- alternatives
- AM4 메인보드
- AMD
- amd 7840hs
- amd 그래픽 게임용
- amd 내장 그래픽 최적화
- anonymous file
- API
- apple.com
- APT
- apt-get
- Armagnac
- Asrock
- ASTALIFT
- Today / Yesterday
- /
- Total
Linux Programmer
리눅스에서 제우스랩 P16KT 터치 기능 끄기 본문
리눅스에서 Zeuslab의 P16KT 포터블 모니터의 터치 기능을 자동으로 끄는 방법을 설명한다. P16KT는 2560x1600의 WQXGA 해상도를 가지고 있으며, 터치 스크린 기능을 가진 포터블 모니터이다. 썬더볼트나 USB4, DP-ALT 기능을 제공하는 USB-C로 연결하면 손쉽게 모니터 화면을 확장할 수 있다.
본인은 터치 모델인 P16KT와 일반 모델인 P16K를 모두 구입해서 사용해봤는데, 솔직히 P16K가 더 좋은 면이 많다. P16K는 빛반사도 없는 매트한 질감이고, P16KT는 터치때문인지 겉면이 강화 글래스 같은 것으로 덮여 있어서 빛반사가 심각한 수준이다. 터치 감도는 좋은 편이지만, 터치보다는 마우스 쓰는게 훨씬 편하기 때문에 거의 쓸일이 별로 없긴 하다.
따라서 터치 기능을 아예 끄는 방법과 이를 자동으로 하기 위해 systemd unit을 작성하는 것을 설명한다. 참고로 이 작업은 Fedora Linux 41에서 작성했으나, 대부분의 리눅스에서도 동일하게 작동될 것이다.
1. 터치 기능을 끄는 방법
먼저 터치 관련 기능을 제공하는 HID USB 장치명을 알아야만 한다. 아래와 같이 lsusb 명령으로 장치를 확인한다. 참고로 아래의 과정은 하드웨어를 건드리는 것이기 때문에 root의 권한으로 작업해야 한다. 먼저 "su -"로 root 권한으로 변경하고 아래의 명령을 내려야 한다.
# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 2148:7022 USB2.0 HUB
Bus 001 Device 006: ID 8087:0026 Intel Corp. AX201 Bluetooth
Bus 001 Device 009: ID 05ac:024f Apple, Inc. Aluminium Keyboard (ANSI)
Bus 001 Device 039: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 057: ID 3302:3365 TTGK Technology Co.,Ltd CX31993 384Khz HIFI AUDIO
Bus 001 Device 060: ID 258a:1007 SINOWEALTH Game Mouse
Bus 001 Device 065: ID 1a86:8091 QinHeng Electronics USB HUB
Bus 001 Device 066: ID 0457:0819 Silicon Integrated Systems Corp. SiS HID Touch Controller ==> ZEUSLAB multitouch panel이다.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 004: ID 05e3:0626 Genesys Logic, Inc. Hub
Zeuslab의 VendorID(VID)는 0457, ProductID(PID)는 0819이다. 위 lsusb 출력 결과에서 0457:0819 Silicon Integrated Systems Corp. SiS HID Touch Controller 으로 표시되는 장치가 바로 터치 스크린 장치다.
이제 해당 장치명을 토대로 수동으로 끄는 방법을 시행해보자. 먼저 수동으로 잘 꺼지는지 확인한 뒤에 자동화를 위한 systemd unit 설정 파일을 작성할 것이다.
# ls /sys/bus/hid/drivers/hid-multitouch/
0003:0457:0819.0C09 bind module new_id uevent unbind
// 위에서 0003:0457:0819.0C09 이 보이는데, 해당 장치를 unbind하려면 다음과 같이 명령하면 된다.
# echo "0003:0457:0819.0C09" > /sys/bus/hid/drivers/hid-multitouch/unbind
위 /sys/bus/hid/drivers/hid-multitouch/의 0003:0457:0819.0C09의 4개의 필드는 순서대로 "Bus type":"(USB)VendorID":"(USB)ProductID"."uniqueID(auto-incremental)"로 구성된다. Bus type은 시스템의 특정 포트에 붙으면 계속 고정이지만 USB 포트를 옮기면 변경될 수도 있다. 그리고 uniqueID는 연결 후 재접속하면 매번 1씩 증가된다. 즉 위에서 0C09라면 다음번에 재연결시키면 0C0A가 되고, 그 다음에는 0C0B가 된다. 따라서 VendorID, ProductID만 고정값이므로 자동화를 위해서는 와일드카드를 이용해서 "basename /sys/bus/hid/drivers/hid-multitouch/*:0457:0819.*" 으로 읽어야 한다. 이를 echo 명령어로 만들면 아래와 같다.
echo "$(basename /sys/bus/hid/drivers/hid-multitouch/*:0457:0819.*)" > /sys/bus/hid/drivers/hid-multitouch/unbind
2. 터치 기능을 자동으로 끄는 systemd unit 작성
매번 부팅할 때마다 명령어를 타이핑하는 것은 우아하지 못하므로 자동화를 위해 systemd unit을 만들면 다음과 같이 작성할 수 있다. 먼저 vi /etc/systemd/system/disable-zeuslap-hid-multitouch.service 로 새로운 파일을 작성하고 아래와 같은 내용을 넣는다.
[Unit]
Description=Disable ZEUSLAP multitouch service
After=network.target
[Service]
User=root
Group=root
Type=simple
Environment="DEVICE_ID='*:0457:0819.*'"
ExecStart=/bin/bash -c "DEVICE_ID_DETECTED=$(eval basename /sys/bus/hid/drivers/hid-multitouch/${DEVICE_ID}) && echo \"Disabling $DEVICE_ID_DETECTED\" && echo $DEVICE_ID_DETECTED > /sys/bus/hid/drivers/hid-multitouch/unbind"
ExecStop=/bin/bash -c "echo Please reconnect your multi-touch device"
#ExecStop=/bin/bash -c "echo \"Enabling $DEVICE_ID\" && echo $DEVICE_ID > /sys/bus/hid/drivers/hid-multitouch/bind"
RemainAfterExit=yes
Restart=no
[Install]
WantedBy=multi-user.target
위 파일이 생성되면 시스템이 인식할 수 있도록 daemon-reload 후에 enable, start를 해줘야 한다. 이를 실행하는 systemctl 명령은 아래와 같다. 당연히 root 권한으로 실행해야 한다.
# systemctl daemon-reload
// daemon-reload는 시스템이 설정 파일을 다시 읽게 한다.
# systemctl status disable-zeuslap-hid-multitouch.service
// status 명령으로 reload 되었는지 확인할 수 있다.
# systemctl enable --now disable-zeuslap-hid-multitouch.service
// enable --now는 enable과 start를 시켜준다.
이제 재부팅을 해서 제대로 터치가 꺼지는지 확인해보자. 터치 기능을 다시 쓰고 싶다면 그냥 C-type 단자를 뺐다가 다시 끼우면 자동 인식되면서 다시 활성화 된다. 그리고 재부팅시에도 끄고 싶다면 systemctl disable --now disable-zeuslap-hid-multitouch.service 명령을 내리면 된다. 끝.
3. 재연결시 자동 실행을 위한 udev 규칙
USB-C를 재연결하는 경우 터치 스크린 HID 장치가 USB 기기로 재등록되면서 터치 기능이 살아나는 경우가 발생한다. 따라서 재연결시에 자동으로 터치 기능을 끄는 systemd unit을 실행하도록 udev rule 파일을 만들어두도록 해야 한다.
이를 위해 udev에 등록할 터치 스크린 USB 장치명과 SUBSYSTEM 정보를 알아내기 위해 udev monitor -p 명령을 실행한 상태에서 USB-C를 연결해보면 다음과 같은 정보를 찾을 수 있다.
# udevadm monitor -p
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
...생략...
... input장치가 인식되고 NAME부분에 lsusb에서 보았떤 SiS HID Touch Controller가 나오면 이를 기억해두자.
KERNEL[2717.752851] add /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.3/1-3.3:1.0/0003:0457:0819.0009/input/input30 (input)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.3/1-3.3:1.0/0003:0457:0819.0009/input/input30
SUBSYSTEM=input
PRODUCT=3/457/819/111
NAME="Silicon Integrated System Co. SiS HID Touch Controller"
PHYS="usb-0000:00:14.0-3.3/input0"
UNIQ=""
PROP=2
EV=1b
KEY=400 0 0 0 0 0
ABS=260800000000003
MSC=20
MODALIAS=input:b0003v0457p0819e0111-e0,1,3,4,k14A,ra0,1,2F,35,36,39,m5,lsfw
SEQNUM=4950
KERNEL 장치의 DEVPATH의 마지막 부분을 보면 input30으로 출력되므로 udev에서는 "input??"으로 하면 된다. SUBSYSTEM은 위에서 볼 수 있듯이 input이다. 이제 /etc/udev/rules.d 로 이동해서 70-zeuslab_hid.rules 파일을 만들어서 아래 내용을 넣어두자.
# Unbind a HID multitouch usb device
ACTION=="add", KERNEL=="input??", SUBSYSTEMS=="input", RUN{program}+="/usr/sbin/systemctl restart disable-zeuslap-hid-multitouch.service"
udev 규칙은 작성 후 별다른 작업을 하지 않아도 바로 작동한다. 이제 USB-C로 모니터를 재연결 하면 자동으로 systemctl 명령이 내려져서 터치 기능이 비활성화 될 것이다.
참고
제우스랩 P16KT 제품 상세 스펙, aliexpress zeuslab P16KT spec
systemd unit manual, https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html
히스토리
2025.07.09 udev rules 추가
2025.06.23 초고
'컴퓨터 관련 > 리눅스 데스크탑' 카테고리의 다른 글
gnome-tweaks로 리눅스 데스크탑 환경의 미세 조정 (0) | 2025.01.19 |
---|---|
페도라 리눅스의 한글 입력기를 fcitx5로 교체하기 (2) | 2024.12.13 |
리눅스용 멀티미디어 프로그램 - 유튜브 플레이어, 다운로더 (7) | 2024.07.23 |
Audacious 리눅스 & 윈도 MP3 플레이어 (0) | 2024.05.31 |
터치패드 켜기/끄기 토글 기능 - Fedora Linux (4) | 2024.01.08 |
리눅스에서 커스텀 키보드 펑션키 F11, F12등의 이상 작동 문제 (0) | 2023.10.31 |
GNOME 3 터치패드 추가 제스처 설정 (touchegg) - 2편 (0) | 2023.08.09 |
GNOME 3 터치패드 4손가락 설정 방법 - 1편 (0) | 2023.08.07 |