'프로그램 사용'에 해당되는 글 2397건

  1. 2026.01.20 evemu-describe, udevadm
  2. 2026.01.16 gdb 사용법
  3. 2026.01.09 /dev/dri/card1 drm
  4. 2026.01.09 kicad mcp, flux.ai
  5. 2026.01.05 smb.conf 멀티채널 지원
  6. 2025.12.27 zigbee CC2531 on ubuntu 실패
  7. 2025.12.27 zigbee 2 MQTT(Z2M) / zigbee home automation(ZHA)
  8. 2025.12.11 git revert
  9. 2025.12.09 .gitconfig insteadof
  10. 2025.11.11 gdb attach
프로그램 사용/uinput2026. 1. 20. 17:42

hid 장치의 종류라고 하긴 애매한데..

아무튼 포인팅 디바이스 인지, 터치 디바이스인지 확인하기 위한 툴

$ sudo evemu-describe
Available devices:
/dev/input/event0: Lid Switch
/dev/input/event1: Power Button
/dev/input/event2: Power Button
/dev/input/event3: AT Translated Set 2 keyboard
/dev/input/event4: ELAN0B00:00 04F3:3136 Mouse
/dev/input/event5: ELAN0B00:00 04F3:3136 Touchpad
/dev/input/event6: ELAN902C:00 04F3:2AC2
/dev/input/event7: ELAN902C:00 04F3:2AC2 UNKNOWN
/dev/input/event8: ELAN902C:00 04F3:2AC2 UNKNOWN
/dev/input/event9: WCOM0111:00 2D1F:010D Stylus
/dev/input/event10: WCOM0111:00 2D1F:010D
/dev/input/event11: Logitech USB Optical Mouse
/dev/input/event12: CHERRY Mechanical Keyboard
/dev/input/event13: CHERRY Mechanical Keyboard
/dev/input/event14: CHERRY Mechanical Keyboard
/dev/input/event15: CHERRY Mechanical Keyboard Mouse
/dev/input/event16: Intel HID events
/dev/input/event17: Intel HID 5 button array
/dev/input/event18: Video Bus
/dev/input/event19: sof-hda-dsp Mic
/dev/input/event20: sof-hda-dsp Headphone
/dev/input/event21: sof-hda-dsp HDMI/DP,pcm=3
/dev/input/event22: sof-hda-dsp HDMI/DP,pcm=4
/dev/input/event23: sof-hda-dsp HDMI/DP,pcm=5
/dev/input/event24: eGalax Inc. eGalaxTouch EXC3188-3374-08.00.00.00 
/dev/input/event25: eGalax Inc. eGalaxTouch EXC3188-3374-08.00.00.00
Select the device event number [0-25]: 24
# EVEMU 1.3
# Kernel: 6.8.0-90-generic
# DMI: dmi:bvnAmericanMegatrendsInc.:bvrP07RFG.042.201224.FL:bd12/24/2020:br5.16:svnSAMSUNGELECTRONICSCO.,LTD.:pn730QCJ/730QCR:pvrP07RFG:rvnSAMSUNGELECTRONICSCO.,LTD.:rnNT730QCR-A716A:rvrSGLFREEDOS-C00-R000-S0000+1.0.0000:cvnSAMSUNGELECTRONICSCO.,LTD.:ct10:cvrN/A:skuSCAI-A5A5-A5A5-A5A5-PRFG:
# Input device name: "eGalax Inc. eGalaxTouch EXC3188-3374-08.00.00.00 "
# Input device ID: bus 0x03 vendor 0xeef product 0xc000 version 0x111
# Size in mm: 292x227
# Supported events:
#   Event type 0 (EV_SYN)
#     Event code 0 (SYN_REPORT)
#     Event code 1 (SYN_CONFIG)
#     Event code 2 (SYN_MT_REPORT)
#     Event code 3 (SYN_DROPPED)
#     Event code 4 ((null))
#     Event code 5 ((null))
#     Event code 6 ((null))
#     Event code 7 ((null))
#     Event code 8 ((null))
#     Event code 9 ((null))
#     Event code 10 ((null))
#     Event code 11 ((null))
#     Event code 12 ((null))
#     Event code 13 ((null))
#     Event code 14 ((null))
#     Event code 15 (SYN_MAX)
#   Event type 1 (EV_KEY)
#     Event code 330 (BTN_TOUCH)
#   Event type 3 (EV_ABS)
#     Event code 0 (ABS_X)
#       Value        0
#       Min          0
#       Max       4095
#       Fuzz         0
#       Flat         0
#       Resolution  14
#     Event code 1 (ABS_Y)
#       Value        0
#       Min          0
#       Max       4095
#       Fuzz         0
#       Flat         0
#       Resolution  18
#     Event code 47 (ABS_MT_SLOT)
#       Value        0
#       Min          0
#       Max          9
#       Fuzz         0
#       Flat         0
#       Resolution   0
#     Event code 53 (ABS_MT_POSITION_X)
#       Value        0
#       Min          0
#       Max       4095
#       Fuzz         0
#       Flat         0
#       Resolution  14
#     Event code 54 (ABS_MT_POSITION_Y)
#       Value        0
#       Min          0
#       Max       4095
#       Fuzz         0
#       Flat         0
#       Resolution  18
#     Event code 57 (ABS_MT_TRACKING_ID)
#       Value        0
#       Min          0
#       Max      65535
#       Fuzz         0
#       Flat         0
#       Resolution   0
#   Event type 4 (EV_MSC)
#     Event code 5 (MSC_TIMESTAMP)
# Properties:
#   Property  type 1 (INPUT_PROP_DIRECT)
N: eGalax Inc. eGalaxTouch EXC3188-3374-08.00.00.00 
I: 0003 0eef c000 0111
P: 02 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 04 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 03 00 00 00 00 80 60 02
B: 04 20 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 00 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 14 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
A: 00 0 4095 0 0 14
A: 01 0 4095 0 0 18
A: 2f 0 9 0 0 0
A: 35 0 4095 0 0 14
A: 36 0 4095 0 0 18
A: 39 0 65535 0 0 0
$ sudo  evemu-describe
Available devices:
/dev/input/event0: Lid Switch
/dev/input/event1: Power Button
/dev/input/event2: Power Button
/dev/input/event3: AT Translated Set 2 keyboard
/dev/input/event4: ELAN0B00:00 04F3:3136 Mouse
/dev/input/event5: ELAN0B00:00 04F3:3136 Touchpad
/dev/input/event6: ELAN902C:00 04F3:2AC2
/dev/input/event7: ELAN902C:00 04F3:2AC2 UNKNOWN
/dev/input/event8: ELAN902C:00 04F3:2AC2 UNKNOWN
/dev/input/event9: WCOM0111:00 2D1F:010D Stylus
/dev/input/event10: WCOM0111:00 2D1F:010D
/dev/input/event11: Logitech USB Optical Mouse
/dev/input/event12: CHERRY Mechanical Keyboard
/dev/input/event13: CHERRY Mechanical Keyboard
/dev/input/event14: CHERRY Mechanical Keyboard
/dev/input/event15: CHERRY Mechanical Keyboard Mouse
/dev/input/event16: Intel HID events
/dev/input/event17: Intel HID 5 button array
/dev/input/event18: Video Bus
/dev/input/event19: sof-hda-dsp Mic
/dev/input/event20: sof-hda-dsp Headphone
/dev/input/event21: sof-hda-dsp HDMI/DP,pcm=3
/dev/input/event22: sof-hda-dsp HDMI/DP,pcm=4
/dev/input/event23: sof-hda-dsp HDMI/DP,pcm=5
/dev/input/event24: eGalax Inc. eGalaxTouch EXC3188-3374-08.00.00.00 
/dev/input/event25: eGalax Inc. eGalaxTouch EXC3188-3374-08.00.00.00
Select the device event number [0-25]: 25
# EVEMU 1.3
# Kernel: 6.8.0-90-generic
# DMI: dmi:bvnAmericanMegatrendsInc.:bvrP07RFG.042.201224.FL:bd12/24/2020:br5.16:svnSAMSUNGELECTRONICSCO.,LTD.:pn730QCJ/730QCR:pvrP07RFG:rvnSAMSUNGELECTRONICSCO.,LTD.:rnNT730QCR-A716A:rvrSGLFREEDOS-C00-R000-S0000+1.0.0000:cvnSAMSUNGELECTRONICSCO.,LTD.:ct10:cvrN/A:skuSCAI-A5A5-A5A5-A5A5-PRFG:
# Input device name: "eGalax Inc. eGalaxTouch EXC3188-3374-08.00.00.00"
# Input device ID: bus 0x03 vendor 0xeef product 0xc000 version 0x111
# Supported events:
#   Event type 0 (EV_SYN)
#     Event code 0 (SYN_REPORT)
#     Event code 1 (SYN_CONFIG)
#     Event code 2 (SYN_MT_REPORT)
#     Event code 3 (SYN_DROPPED)
#     Event code 4 ((null))
#     Event code 5 ((null))
#     Event code 6 ((null))
#     Event code 7 ((null))
#     Event code 8 ((null))
#     Event code 9 ((null))
#     Event code 10 ((null))
#     Event code 11 ((null))
#     Event code 12 ((null))
#     Event code 13 ((null))
#     Event code 14 ((null))
#     Event code 15 (SYN_MAX)
#   Event type 1 (EV_KEY)
#     Event code 272 (BTN_LEFT)
#     Event code 273 (BTN_RIGHT)
#   Event type 3 (EV_ABS)
#     Event code 0 (ABS_X)
#       Value        0
#       Min          0
#       Max       4095
#       Fuzz         0
#       Flat         0
#       Resolution   0
#     Event code 1 (ABS_Y)
#       Value        0
#       Min          0
#       Max       4095
#       Fuzz         0
#       Flat         0
#       Resolution   0




























#   Event type 4 (EV_MSC)
#     Event code 4 (MSC_SCAN)
# Properties:
N: eGalax Inc. eGalaxTouch EXC3188-3374-08.00.00.00
I: 0003 0eef c000 0111
P: 00 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 03 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 03 00 00 00 00 00 00 00
B: 04 10 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 00 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 14 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
A: 00 0 4095 0 0 0
A: 01 0 4095 0 0 0





[링크 : https://man.archlinux.org/man/evemu-describe.1]

https://wiki.ubuntu.com/Multitouch/Testing/Evemu

 

얘는 udev management tool 이라고 하니

이걸 uinput이 아니라 udev라고 하나 따로 파야하나..?

udevadm info -a -n /dev/input/event24

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:0EEF:C000.000A/input/input37/event24':
    KERNEL=="event24"
    SUBSYSTEM=="input"
    DRIVER==""
    ATTR{power/async}=="disabled"
    ATTR{power/control}=="auto"
    ATTR{power/runtime_active_kids}=="0"
    ATTR{power/runtime_active_time}=="0"
    ATTR{power/runtime_enabled}=="disabled"
    ATTR{power/runtime_status}=="unsupported"
    ATTR{power/runtime_suspended_time}=="0"
    ATTR{power/runtime_usage}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:0EEF:C000.000A/input/input37':
    KERNELS=="input37"
    SUBSYSTEMS=="input"
    DRIVERS==""
    ATTRS{capabilities/abs}=="260800000000003"
    ATTRS{capabilities/ev}=="1b"
    ATTRS{capabilities/ff}=="0"
    ATTRS{capabilities/key}=="400 0 0 0 0 0"
    ATTRS{capabilities/led}=="0"
    ATTRS{capabilities/msc}=="20"
    ATTRS{capabilities/rel}=="0"
    ATTRS{capabilities/snd}=="0"
    ATTRS{capabilities/sw}=="0"
    ATTRS{id/bustype}=="0003"
    ATTRS{id/product}=="c000"
    ATTRS{id/vendor}=="0eef"
    ATTRS{id/version}=="0111"
    ATTRS{inhibited}=="0"
    ATTRS{name}=="eGalax Inc. eGalaxTouch EXC3188-3374-08.00.00.00"
    ATTRS{phys}=="usb-0000:00:14.0-2/input0"
    ATTRS{power/async}=="disabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{properties}=="2"
    ATTRS{uniq}==""

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:0EEF:C000.000A':
    KERNELS=="0003:0EEF:C000.000A"
    SUBSYSTEMS=="hid"
    DRIVERS=="hid-multitouch"
    ATTRS{country}=="00"
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{quirks}=="334864"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0':
    KERNELS=="1-2:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usbhid"
    ATTRS{authorized}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceClass}=="03"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceProtocol}=="02"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{physical_location/dock}=="no"
    ATTRS{physical_location/horizontal_position}=="center"
    ATTRS{physical_location/lid}=="no"
    ATTRS{physical_location/panel}=="unknown"
    ATTRS{physical_location/vertical_position}=="center"
    ATTRS{power/async}=="enabled"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="suspended"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2':
    KERNELS=="1-2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="150mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0000"
    ATTRS{bmAttributes}=="a0"
    ATTRS{busnum}=="1"
    ATTRS{configuration}=="eGalax Inc."
    ATTRS{devnum}=="15"
    ATTRS{devpath}=="2"
    ATTRS{idProduct}=="c000"
    ATTRS{idVendor}=="0eef"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="eGalax Inc."
    ATTRS{maxchild}=="0"
    ATTRS{physical_location/dock}=="no"
    ATTRS{physical_location/horizontal_position}=="center"
    ATTRS{physical_location/lid}=="no"
    ATTRS{physical_location/panel}=="unknown"
    ATTRS{physical_location/vertical_position}=="center"
    ATTRS{power/active_duration}=="56314"
    ATTRS{power/async}=="enabled"
    ATTRS{power/autosuspend}=="2"
    ATTRS{power/autosuspend_delay_ms}=="2000"
    ATTRS{power/connected_duration}=="56315"
    ATTRS{power/control}=="on"
    ATTRS{power/level}=="on"
    ATTRS{power/persist}=="1"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="56074"
    ATTRS{power/runtime_enabled}=="forbidden"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="1"
    ATTRS{power/wakeup}=="disabled"
    ATTRS{power/wakeup_abort_count}==""
    ATTRS{power/wakeup_active}==""
    ATTRS{power/wakeup_active_count}==""
    ATTRS{power/wakeup_count}==""
    ATTRS{power/wakeup_expire_count}==""
    ATTRS{power/wakeup_last_time_ms}==""
    ATTRS{power/wakeup_max_time_ms}==""
    ATTRS{power/wakeup_total_time_ms}==""
    ATTRS{product}=="eGalaxTouch EXC3188-3374-08.00.00.00 LSE 19""
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="removable"
    ATTRS{rx_lanes}=="1"
    ATTRS{speed}=="12"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="16"
    ATTRS{version}==" 1.10"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1':
    KERNELS=="usb1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0608"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="1"
    ATTRS{configuration}==""
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{idProduct}=="0002"
    ATTRS{idVendor}=="1d6b"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 6.8.0-90-generic xhci-hcd"
    ATTRS{maxchild}=="12"
    ATTRS{power/active_duration}=="24429762"
    ATTRS{power/async}=="enabled"
    ATTRS{power/autosuspend}=="0"
    ATTRS{power/autosuspend_delay_ms}=="0"
    ATTRS{power/connected_duration}=="24430129"
    ATTRS{power/control}=="auto"
    ATTRS{power/level}=="auto"
    ATTRS{power/runtime_active_kids}=="3"
    ATTRS{power/runtime_active_time}=="24430039"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{power/wakeup}=="disabled"
    ATTRS{power/wakeup_abort_count}==""
    ATTRS{power/wakeup_active}==""
    ATTRS{power/wakeup_active_count}==""
    ATTRS{power/wakeup_count}==""
    ATTRS{power/wakeup_expire_count}==""
    ATTRS{power/wakeup_last_time_ms}==""
    ATTRS{power/wakeup_max_time_ms}==""
    ATTRS{power/wakeup_total_time_ms}==""
    ATTRS{product}=="xHCI Host Controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="0000:00:14.0"
    ATTRS{speed}=="480"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="515"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0':
    KERNELS=="0000:00:14.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="xhci_hcd"
    ATTRS{ari_enabled}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0330"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{dbc}=="disabled"
    ATTRS{dbc_bInterfaceProtocol}=="01"
    ATTRS{dbc_bcdDevice}=="0010"
    ATTRS{dbc_idProduct}=="0010"
    ATTRS{dbc_idVendor}=="1d6b"
    ATTRS{device}=="0x02ed"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{index}=="5"
    ATTRS{irq}=="123"
    ATTRS{label}=="Onboard - Other"
    ATTRS{local_cpulist}=="0-7"
    ATTRS{local_cpus}=="ff"
    ATTRS{msi_bus}=="1"
    ATTRS{msi_irqs/123}=="msi"
    ATTRS{msi_irqs/124}=="msi"
    ATTRS{msi_irqs/125}=="msi"
    ATTRS{msi_irqs/126}=="msi"
    ATTRS{msi_irqs/127}=="msi"
    ATTRS{msi_irqs/128}=="msi"
    ATTRS{msi_irqs/129}=="msi"
    ATTRS{msi_irqs/130}=="msi"
    ATTRS{numa_node}=="-1"
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="2"
    ATTRS{power/runtime_active_time}=="24430715"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{power/wakeup}=="enabled"
    ATTRS{power/wakeup_abort_count}=="0"
    ATTRS{power/wakeup_active}=="0"
    ATTRS{power/wakeup_active_count}=="1"
    ATTRS{power/wakeup_count}=="0"
    ATTRS{power/wakeup_expire_count}=="1"
    ATTRS{power/wakeup_last_time_ms}=="10084055"
    ATTRS{power/wakeup_max_time_ms}=="108"
    ATTRS{power/wakeup_total_time_ms}=="108"
    ATTRS{power_state}=="D0"
    ATTRS{revision}=="0x00"
    ATTRS{subsystem_device}=="0xc832"
    ATTRS{subsystem_vendor}=="0x144d"
    ATTRS{vendor}=="0x8086"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="10"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{waiting_for_supplier}=="0"
$ udevadm info -a -n /dev/input/event25

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:0EEF:C000.000A/input/input39/event25':
    KERNEL=="event25"
    SUBSYSTEM=="input"
    DRIVER==""
    ATTR{power/async}=="disabled"
    ATTR{power/control}=="auto"
    ATTR{power/runtime_active_kids}=="0"
    ATTR{power/runtime_active_time}=="0"
    ATTR{power/runtime_enabled}=="disabled"
    ATTR{power/runtime_status}=="unsupported"
    ATTR{power/runtime_suspended_time}=="0"
    ATTR{power/runtime_usage}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:0EEF:C000.000A/input/input39':
    KERNELS=="input39"
    SUBSYSTEMS=="input"
    DRIVERS==""
    ATTRS{capabilities/abs}=="3"
    ATTRS{capabilities/ev}=="1b"
    ATTRS{capabilities/ff}=="0"
    ATTRS{capabilities/key}=="30000 0 0 0 0"
    ATTRS{capabilities/led}=="0"
    ATTRS{capabilities/msc}=="10"
    ATTRS{capabilities/rel}=="0"
    ATTRS{capabilities/snd}=="0"
    ATTRS{capabilities/sw}=="0"
    ATTRS{id/bustype}=="0003"
    ATTRS{id/product}=="c000"
    ATTRS{id/vendor}=="0eef"
    ATTRS{id/version}=="0111"
    ATTRS{inhibited}=="0"
    ATTRS{name}=="eGalax Inc. eGalaxTouch EXC3188-3374-08.00.00.00 UNKNOWN"
    ATTRS{phys}=="usb-0000:00:14.0-2/input0"
    ATTRS{power/async}=="disabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{properties}=="0"
    ATTRS{uniq}==""

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:0EEF:C000.000A':
    KERNELS=="0003:0EEF:C000.000A"
    SUBSYSTEMS=="hid"
    DRIVERS=="hid-multitouch"
    ATTRS{country}=="00"
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{quirks}=="334864"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0':
    KERNELS=="1-2:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usbhid"
    ATTRS{authorized}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceClass}=="03"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceProtocol}=="02"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{physical_location/dock}=="no"
    ATTRS{physical_location/horizontal_position}=="center"
    ATTRS{physical_location/lid}=="no"
    ATTRS{physical_location/panel}=="unknown"
    ATTRS{physical_location/vertical_position}=="center"
    ATTRS{power/async}=="enabled"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="suspended"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2':
    KERNELS=="1-2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="150mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0000"
    ATTRS{bmAttributes}=="a0"
    ATTRS{busnum}=="1"
    ATTRS{configuration}=="eGalax Inc."
    ATTRS{devnum}=="15"
    ATTRS{devpath}=="2"
    ATTRS{idProduct}=="c000"
    ATTRS{idVendor}=="0eef"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="eGalax Inc."
    ATTRS{maxchild}=="0"
    ATTRS{physical_location/dock}=="no"
    ATTRS{physical_location/horizontal_position}=="center"
    ATTRS{physical_location/lid}=="no"
    ATTRS{physical_location/panel}=="unknown"
    ATTRS{physical_location/vertical_position}=="center"
    ATTRS{power/active_duration}=="293260"
    ATTRS{power/async}=="enabled"
    ATTRS{power/autosuspend}=="2"
    ATTRS{power/autosuspend_delay_ms}=="2000"
    ATTRS{power/connected_duration}=="293260"
    ATTRS{power/control}=="on"
    ATTRS{power/level}=="on"
    ATTRS{power/persist}=="1"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="293019"
    ATTRS{power/runtime_enabled}=="forbidden"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="1"
    ATTRS{power/wakeup}=="disabled"
    ATTRS{power/wakeup_abort_count}==""
    ATTRS{power/wakeup_active}==""
    ATTRS{power/wakeup_active_count}==""
    ATTRS{power/wakeup_count}==""
    ATTRS{power/wakeup_expire_count}==""
    ATTRS{power/wakeup_last_time_ms}==""
    ATTRS{power/wakeup_max_time_ms}==""
    ATTRS{power/wakeup_total_time_ms}==""
    ATTRS{product}=="eGalaxTouch EXC3188-3374-08.00.00.00 LSE 19""
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="removable"
    ATTRS{rx_lanes}=="1"
    ATTRS{speed}=="12"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="16"
    ATTRS{version}==" 1.10"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1':
    KERNELS=="usb1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0608"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="1"
    ATTRS{configuration}==""
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{idProduct}=="0002"
    ATTRS{idVendor}=="1d6b"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 6.8.0-90-generic xhci-hcd"
    ATTRS{maxchild}=="12"
    ATTRS{power/active_duration}=="24666705"
    ATTRS{power/async}=="enabled"
    ATTRS{power/autosuspend}=="0"
    ATTRS{power/autosuspend_delay_ms}=="0"
    ATTRS{power/connected_duration}=="24667072"
    ATTRS{power/control}=="auto"
    ATTRS{power/level}=="auto"
    ATTRS{power/runtime_active_kids}=="3"
    ATTRS{power/runtime_active_time}=="24666982"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{power/wakeup}=="disabled"
    ATTRS{power/wakeup_abort_count}==""
    ATTRS{power/wakeup_active}==""
    ATTRS{power/wakeup_active_count}==""
    ATTRS{power/wakeup_count}==""
    ATTRS{power/wakeup_expire_count}==""
    ATTRS{power/wakeup_last_time_ms}==""
    ATTRS{power/wakeup_max_time_ms}==""
    ATTRS{power/wakeup_total_time_ms}==""
    ATTRS{product}=="xHCI Host Controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="0000:00:14.0"
    ATTRS{speed}=="480"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="515"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0':
    KERNELS=="0000:00:14.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="xhci_hcd"
    ATTRS{ari_enabled}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0330"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{dbc}=="disabled"
    ATTRS{dbc_bInterfaceProtocol}=="01"
    ATTRS{dbc_bcdDevice}=="0010"
    ATTRS{dbc_idProduct}=="0010"
    ATTRS{dbc_idVendor}=="1d6b"
    ATTRS{device}=="0x02ed"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{index}=="5"
    ATTRS{irq}=="123"
    ATTRS{label}=="Onboard - Other"
    ATTRS{local_cpulist}=="0-7"
    ATTRS{local_cpus}=="ff"
    ATTRS{msi_bus}=="1"
    ATTRS{msi_irqs/123}=="msi"
    ATTRS{msi_irqs/124}=="msi"
    ATTRS{msi_irqs/125}=="msi"
    ATTRS{msi_irqs/126}=="msi"
    ATTRS{msi_irqs/127}=="msi"
    ATTRS{msi_irqs/128}=="msi"
    ATTRS{msi_irqs/129}=="msi"
    ATTRS{msi_irqs/130}=="msi"
    ATTRS{numa_node}=="-1"
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="2"
    ATTRS{power/runtime_active_time}=="24667656"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{power/wakeup}=="enabled"
    ATTRS{power/wakeup_abort_count}=="0"
    ATTRS{power/wakeup_active}=="0"
    ATTRS{power/wakeup_active_count}=="1"
    ATTRS{power/wakeup_count}=="0"
    ATTRS{power/wakeup_expire_count}=="1"
    ATTRS{power/wakeup_last_time_ms}=="10084055"
    ATTRS{power/wakeup_max_time_ms}=="108"
    ATTRS{power/wakeup_total_time_ms}=="108"
    ATTRS{power_state}=="D0"
    ATTRS{revision}=="0x00"
    ATTRS{subsystem_device}=="0xc832"
    ATTRS{subsystem_vendor}=="0x144d"
    ATTRS{vendor}=="0x8086"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="10"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{waiting_for_supplier}=="0"

[링크 : https://linux.die.net/man/8/udevadm]

 

+

2026.01.21

$ udevadm info /dev/input/event24
P: /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:0EEF:C000.000D/input/input46/event24
N: input/event24
L: 0
S: input/by-id/usb-eGalax_Inc._eGalaxTouch_EXC3188-3374-08.00.00.00_-event-if00
S: input/by-path/pci-0000:00:14.0-usb-0:2:1.0-event
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:0EEF:C000.000D/input/input46/event24
E: DEVNAME=/dev/input/event24
E: MAJOR=13
E: MINOR=88
E: SUBSYSTEM=input
E: USEC_INITIALIZED=83733664720
E: ID_INPUT=1
E: ID_INPUT_TOUCHSCREEN=1
E: ID_INPUT_WIDTH_MM=292
E: ID_INPUT_HEIGHT_MM=227
E: ID_VENDOR=eGalax_Inc.
E: ID_VENDOR_ENC=eGalax\x20Inc.
E: ID_VENDOR_ID=0eef
E: ID_MODEL=eGalaxTouch_EXC3188-3374-08.00.00.00__
E: ID_MODEL_ENC=eGalaxTouch\x20EXC3188-3374-08.00.00.00\x20\x22
E: ID_MODEL_ID=c000
E: ID_REVISION=0000
E: ID_SERIAL=eGalax_Inc._eGalaxTouch_EXC3188-3374-08.00.00.00_
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030102:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:14.0-usb-0:2:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_1_0
E: LIBINPUT_DEVICE_GROUP=3/eef/c000:usb-0000:00:14.0-2
E: DEVLINKS=/dev/input/by-id/usb-eGalax_Inc._eGalaxTouch_EXC3188-3374-08.00.00.00_event-if00 /dev/input/by-path/pci-0000:00:14.0-usb-0:2:1.0-event
$ udevadm info /dev/input/event25
P: /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:0EEF:C000.000D/input/input48/event25
N: input/event25
L: 0
S: input/by-id/usb-eGalax_Inc._eGalaxTouch_EXC3188-3374-08.00.00.00_-event-mouse
S: input/by-path/pci-0000:00:14.0-usb-0:2:1.0-event-mouse
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:0EEF:C000.000D/input/input48/event25
E: DEVNAME=/dev/input/event25
E: MAJOR=13
E: MINOR=89
E: SUBSYSTEM=input
E: USEC_INITIALIZED=83733585165
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_VENDOR=eGalax_Inc.
E: ID_VENDOR_ENC=eGalax\x20Inc.
E: ID_VENDOR_ID=0eef
E: ID_MODEL=eGalaxTouch_EXC3188-3374-08.00.00.00__
E: ID_MODEL_ENC=eGalaxTouch\x20EXC3188-3374-08.00.00.00\x20\x22
E: ID_MODEL_ID=c000
E: ID_REVISION=0000
E: ID_SERIAL=eGalax_Inc._eGalaxTouch_EXC3188-3374-08.00.00.00_
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030102:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:14.0-usb-0:2:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_1_0
E: LIBINPUT_DEVICE_GROUP=3/eef/c000:usb-0000:00:14.0-2
E: DEVLINKS=/dev/input/by-id/usb-eGalax_Inc._eGalaxTouch_EXC3188-3374-08.00.00.00_-event-mouse /dev/input/by-path/pci-0000:00:14.0-usb-0:2:1.0-event-mouse


Posted by 구차니

오랫만에 쓰려니 다 까먹어서 다시 조사

 

빌드

-g 옵션을 통해 디버깅 심볼을 넣어준다.

$ gcc -g tt.c

 

이거 안하면 소스코드가 안나옴

Reading symbols from ./a.out...
(No debugging symbols found in ./a.out)
(gdb) l
No symbol table is loaded.  Use the "file" command.

 

gdb 실행 (인자 없이)

$ gdb ./a.out

$ gdb
(gdb) file ./a.out

 

gdb 실행 (인자 필요시)

$ gdb --args ./a.out arg1 arg2

[링크 : https://stackoverflow.com/questions/6121094/how-do-i-run-a-program-with-commandline-arguments-using-gdb-within-a-bash-script]

 

브레이크 포인트 설정 및 소스 보기

소스는 list (혹은 소문자 l) 과 라인수를 넣고

브레이크 포인트는 b로 추가한다. b 뒤에는 라인수 혹은 함수 명을 넣으면 된다.

브레이크 포인트 목록 확인은 info b를 통해 가능하다.

clear 를 통해 b 명령을 통해 추가하는 것과 정반대로 삭제가 가능하고

delete(소문자 d) 명령은 info b의 num 을 이용하여 삭제한다.

(gdb) l
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 void main()
5 {
6 int *arr = NULL;
7 arr = (int*)malloc(10 * sizeof(int));
8 int idx = 0;
9 for(idx = 0; idx < 10000; idx++)
10 arr[idx] = idx;
(gdb) l 10
5 {
6 int *arr = NULL;
7 arr = (int*)malloc(10 * sizeof(int));
8 int idx = 0;
9 for(idx = 0; idx < 10000; idx++)
10 arr[idx] = idx;
11
12 // iprintf("before\n");
13 // fflush(stdout);
14
(gdb) l 14
9 for(idx = 0; idx < 10000; idx++)
10 arr[idx] = idx;
11
12 // iprintf("before\n");
13 // fflush(stdout);
14
15 free(arr);
16
17 printf("after\n");
18 fflush(stdout);
(gdb) b 15
Breakpoint 1 at 0x1201: file t2.c, line 15.
(gdb) b
No default breakpoint address now.
(gdb) info b
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x0000000000001201 in main at t2.c:15
(gdb) b main
Breakpoint 2 at 0x11b5: file t2.c, line 6.
(gdb) info b
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x0000000000001201 in main at t2.c:15
2       breakpoint     keep y   0x00000000000011b5 in main at t2.c:6
(gdb) d
Delete all breakpoints? (y or n) n
(gdb) clear main
Deleted breakpoint 2 
(gdb) d 1
(gdb) info b
No breakpoints or watchpoints.
(gdb) b main
Breakpoint 3 at 0x11b5: file t2.c, line 6.
(gdb) b 15
Breakpoint 4 at 0x1201: file t2.c, line 15.
(gdb) b 10 if idx = 200
Breakpoint 5 at 0x11db: file t2.c, line 10.
(gdb) info b
Num     Type           Disp Enb Address            What
3       breakpoint     keep y   0x00000000000011b5 in main at t2.c:6
4       breakpoint     keep y   0x0000000000001201 in main at t2.c:15
5       breakpoint     keep y   0x00000000000011db in main at t2.c:10
stop only if idx = 200

[링크 : https://dining-developer.tistory.com/13]

 

디버깅 시작, 디버깅 제어

run을 통해 시작하고 인자가 필요할땐 

(gdb) r 1 2 3 

처럼 인자를 공백으로 띄워서 넣어준다.

c는 break 포인트 까지 실행(continue)

print 를 이용하여 변수 값을 출력할수 있다.

r을 눌러 실행하나 main() 함수에서 한번 브레이크 걸리고

c를 눌러 진행하지만 10 라인에 브레이크가 걸려있어 한번 멈추고

c를 눌러 진행하지만 조건부 브레이크에 의해 idx가 200인 경우에 멈춘다.

(gdb) r
Starting program: /home/minimonk/work/src/malloc/a.out 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Breakpoint 3, main () at t2.c:6
6 int *arr = NULL;
(gdb) c
Continuing.

Breakpoint 5, main () at t2.c:10
10 arr[idx] = idx;
(gdb) c
Continuing.

Breakpoint 5, main () at t2.c:10
10 arr[idx] = idx;
(gdb) print idx
$1 = 200

 

next는 한줄 실행 (함수 진입 x)

step은 한줄 실행 (함수 진입)

finish는 함수 종료까지 실행(함수에서 벗어날때 까지)

 

[링크 : https://lacti.github.io/2008/04/01/gdb-simple-help/]

'프로그램 사용 > gdb & insight' 카테고리의 다른 글

gdb attach  (0) 2025.11.11
gdbserver taget  (0) 2023.07.19
gdb conditional break  (0) 2023.07.19
gdb 디버깅 타겟을 인자와 함께 실행하기  (0) 2022.10.17
gdb break  (0) 2021.04.09
Posted by 구차니

cat /dev/fb0 > dump 하듯 빼는법 없나?

$ ls -al /dev/fb0 
crw-rw---- 1 root video 29, 0  1월  5 09:33 /dev/fb0


$ ls -al /dev/dri/card1
crw-rw----+ 1 root video 226, 1  1월  9 15:32 /dev/dri/card1

[링크 : https://prographics.tistory.com/1]

 

ioctl로 먼가 하면 가능은 한 듯?

[링크 : https://prographics.tistory.com/8]

'프로그램 사용 > wayland' 카테고리의 다른 글

libinput 디버깅 유틸리티  (0) 2025.02.21
weston evdev libinput  (0) 2024.03.11
weston 커서 숨기기  (0) 2024.02.26
wayland hdmi - touch 연결  (0) 2023.09.08
wayland atomic commit 패치?  (0) 2022.08.22
Posted by 구차니
프로그램 사용/kicad2026. 1. 9. 11:54

회로도 한번 시도는 해봐야겠다.

[링크 : https://www.youtube.com/watch?v=do40huur8fE]

[링크 : https://www.flux.ai/p]

 

claude mcp

[링크 : https://github.com/mixelpixx/KiCAD-MCP-Server]

'프로그램 사용 > kicad' 카테고리의 다른 글

Kicad - open source PCB / circuit program  (11) 2010.07.08
Posted by 구차니

문득 생각나서 검색하는데 실험적인 기능.. smb3 멀티채널

에이 설마 저런게 옵션이겠어?goTsmsep

 

 

EXPERIMENTAL FEATURES
=====================

SMB3 Multi-Channel
------------------

Samba 4.4.0 adds *experimental* support for SMB3 Multi-Channel.
Multi-Channel is an SMB3 protocol feature that allows the client
to bind multiple transport connections into one authenticated
SMB session. This allows for increased fault tolerance and
throughput. The client chooses transport connections as reported
by the server and also chooses over which of the bound transport
connections to send traffic. I/O operations for a given file
handle can span multiple network connections this way.
An SMB multi-channel session will be valid as long as at least
one of its channels are up.

In Samba, multi-channel can be enabled by setting the new
smb.conf option "server multi channel support" to "yes".
It is disabled by default.

[링크 : https://www.samba.org/samba/history/samba-4.4.0.html]

 

진짜냐?!

4.4.0 에서 실험 기능으로 도입되고, 4.15 에서부터는 기본값으로 바뀐듯?

server multi channel support (G)
This boolean parameter controls whether smbd(8) will support SMB3 multi-channel.

This parameter was added with version 4.4.

Note that this feature was still considered experimental up to 4.14.

Due to dependencies to kernel APIs of Linux or FreeBSD, it's only possible to use this feature on Linux and FreeBSD for now. For testing this restriction can be overwritten by specifying force:server multi channel support=yes in addition.

This option is enabled by default starting with to 4.15 (on Linux and FreeBSD).

Default: server multi channel support = yes

[링크 : https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html]

'프로그램 사용 > SMB(Samba)' 카테고리의 다른 글

cifs mount 실패시 설치 패키지  (0) 2023.02.10
nas samba warn  (0) 2019.03.17
smb 와 selinux 설정  (0) 2019.02.14
smb 서비스 속도향상하기(SSD-bcache, AIO)  (0) 2019.02.01
samba acpi s3 wake up  (0) 2017.08.11
Posted by 구차니

음.. 그러고 보니 zigbee 단말도 없긴하네?

 

[   40.925908] usb 2-1.2: new full-speed USB device number 5 using ehci-pci
[   41.009340] usb 2-1.2: New USB device found, idVendor=0451, idProduct=16a8, bcdDevice= 0.09
[   41.009366] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   41.009375] usb 2-1.2: Product: TI CC2531 USB CDC
[   41.009381] usb 2-1.2: Manufacturer: Texas Instruments
[   41.009386] usb 2-1.2: SerialNumber: __0X00124B0018E27CF7
[   41.010714] cdc_acm 2-1.2:1.0: ttyACM0: USB ACM device
[   64.137191] warning: `ThreadPoolForeg' uses wireless extensions which will stop working for Wi-Fi 7 hardware; use nl80211

[링크 : https://github.com/zigbee2mqtt/hassio-zigbee2mqtt]

[링크 : https://m.blog.naver.com/ohminy11/222520636013]

[링크 : https://cafe.naver.com/koreassistant/3962]

 

$ ls -al /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018E27CF7-if00 
lrwxrwxrwx 1 root root 13 12월 27 18:33 /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018E27CF7-if00 -> ../../ttyACM0

 

version: 4
mqtt:
    base_topic: zigbee2mqtt
    server: mqtt://localhost:1833
serial:
    port: /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018E27CF7-if00
    adapter: zstack
advanced:
    channel: 11
    network_key: GENERATE
    pan_id: GENERATE
    ext_pan_id: GENERATE
frontend:
    enabled: true
homeassistant:
    enabled: true

[링크 : https://www.zigbee2mqtt.io/guide/configuration/]

 

[링크 : https://github.com/Koenkk/zigbee2mqtt]

[링크 : https://www.zigbee2mqtt.io/guide/installation/01_linux.html] 리눅스 직접설치 비추

 

링크에서 있는거랑은 시리얼이 달라서 일단은 내거랑 맞게 수정

sudo docker run \
   --name zigbee2mqtt \
   --restart=unless-stopped \
   --device=/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018E27CF7-if00:/dev/ttyACM0 \
   -p 8080:8080 \
   -v $(pwd)/data:/app/data \
   -v /run/udev:/run/udev:ro \
   -e TZ=Asia/Seoul \
   ghcr.io/koenkk/zigbee2mqtt

[링크 : https://www.zigbee2mqtt.io/guide/installation/02_docker.html] docker 추천

[링크 : https://github.com/koenkk/zigbee2mqtt/pkgs/container/zigbee2mqtt] 다른 아키텍쳐 일 경우

 

실행시 메시지

Unable to find image 'ghcr.io/koenkk/zigbee2mqtt:latest' locally
latest: Pulling from koenkk/zigbee2mqtt
2d35ebdb57d9: Pull complete 
22359d97d4f5: Pull complete 
04d924b772af: Pull complete 
93836646b368: Pull complete 
33e1af1a4e45: Pull complete 
3fa2c3ee76eb: Pull complete 
7b447ead2b45: Pull complete 
ce83bad0f202: Pull complete 
508a0def7d14: Pull complete 
108de8ed3423: Pull complete 
Digest: sha256:163e7351430a95d550d5b1bb958527edc1eff115eb013ca627f3545a192e853f
Status: Downloaded newer image for ghcr.io/koenkk/zigbee2mqtt:latest
Using '/app/data' as data directory
Starting Zigbee2MQTT without watchdog.
Onboarding page is available at http://0.0.0.0:8080/

 

Onboarding page is available at http://0.0.0.0:8080/
[2025-12-27 20:13:39] info:  z2m: Logging to console, file (filename: log.log)
[2025-12-27 20:13:39] info:  z2m: Starting Zigbee2MQTT version 2.7.1 (commit #6d30fa156cf208189edbbd7db8422a6fc657fb9e
)
[2025-12-27 20:13:39] info:  z2m: Starting zigbee-herdsman (7.0.4)
[2025-12-27 20:13:39] info:  zh:adapter:discovery: Matched adapter: {"path":"/dev/ttyACM0","manufacturer":"Texas Instruments","serialNumber":"__0X00124B0018E27CF7","pnpId":"usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018E27CF7-if00","vendorId":"0451","productId":"16a8"} => zstack: 4
[2025-12-27 20:13:39] info:  zh:zstack:znp: Opening SerialPort with {"path":"/dev/ttyACM0","baudRate":115200,"rtscts":false,"autoOpen":false}
[2025-12-27 20:13:39] info:  zh:zstack:znp: Serialport opened
[2025-12-27 20:13:46] info:  zh:controller: Wrote coordinator backup to '/app/data/coordinator_backup.json'
[2025-12-27 20:13:46] info:  z2m: zigbee-herdsman started (restored)
[2025-12-27 20:13:46] info:  z2m: Coordinator firmware version: '{"meta":{"maintrel":3,"majorrel":2,"minorrel":6,"product":0,"revision":20190608,"transportrev":2},"type":"ZStack12"}'
[2025-12-27 20:13:46] info:  z2m: Currently 0 devices are joined.
[2025-12-27 20:13:46] info:  z2m: Connecting to MQTT server at mqtt://localhost:1883
[2025-12-27 20:13:46] error:  z2m: MQTT failed to connect, exiting... ()
[2025-12-27 20:13:46] info:  z2m: Stopping zigbee-herdsman...
[2025-12-27 20:13:47] info:  zh:controller: Wrote coordinator backup to '/app/data/coordinator_backup.json'
[2025-12-27 20:13:47] info:  zh:zstack:znp: closing
[2025-12-27 20:13:47] info:  zh:zstack:znp: Port closed
[2025-12-27 20:13:47] info:  z2m: Stopped zigbee-herdsman

 

'프로그램 사용 > mosquitto' 카테고리의 다른 글

zigbee 2 MQTT(Z2M) / zigbee home automation(ZHA)  (0) 2025.12.27
mosquitto qos  (0) 2025.04.18
mosquitto for windows 계정추가  (0) 2025.02.18
mosquitto service for windows  (0) 2025.02.18
CC2531 zigbee - mqtt  (0) 2025.01.07
Posted by 구차니

예전에 구매해놨던 CC2531을 어떻게 써먹나 고민하면서 다시 찾다가 이상한 용어 발견

 

현재는 zigbee2MQTT(Z2M) 펌웨어로 구워져 있는 상태일것 같은데, 이걸 구으려면 라즈베리가 필요한가보네?

[링크 : https://psychoria.tistory.com/m/692]

 

mDNS 설정시 115200 bps 라는데.. putty로 115k 해서는 먼가 되는게 없긴하다.

[링크 : https://www.zigbee2mqtt.io/guide/configuration/adapter-settings.html]

 

 

[링크 : https://blog.naver.com/fromzip/222009276457]

[링크 : https://wendysm.tistory.com/98]

[링크 : https://m.blog.naver.com/ohminy11/222520636013]

 

 

'프로그램 사용 > mosquitto' 카테고리의 다른 글

zigbee CC2531 on ubuntu 실패  (0) 2025.12.27
mosquitto qos  (0) 2025.04.18
mosquitto for windows 계정추가  (0) 2025.02.18
mosquitto service for windows  (0) 2025.02.18
CC2531 zigbee - mqtt  (0) 2025.01.07
Posted by 구차니

reset은 아예 없애는거라 내 취향은 아니고

revert 가 딱이긴 한데 의미가 내가 생각하던 것과는 조금 달랐다

 

예를 들어

git log 에서

hash 1111

hash 2222

hash 3333

hash 4444

 

git revert 2222 라고 하면

hash 2222 에서 했던 녀석만을 되돌리게 된다.

 

정리 하자면

revert 는 "hash 의 해당 commit을 돌린다" 이기 때문에

돌아가고 싶은 커밋이 아니라

없애고 싶은 커밋을 명시해야 한다.

 

man page 에도 존재하는 커밋을 되돌린다고 되어있다.

git-revert - Revert an existing commit

Synopsis
git revert [--edit | --no-edit] [-n] [-m parent-number] [-s] <commit>

Description

Given one existing commit, revert the change the patch introduces, and record a new commit that records it. This requires your working tree to be clean (no modifications from the HEAD commit).

Note: git revert is used to record a new commit to reverse the effect of an earlier commit (often a faulty one). If you want to throw away all uncommitted changes in your working directory, you should see git-reset(1), particularly the --hard option. If you want to extract specific files as they were in another commit, you should see git-checkout(1), specifically the git checkout <commit> - <filename> syntax. Take care with these alternatives as both will discard uncommitted changes in your working directory.

[링크 : https://linux.die.net/man/1/git-revert]

 

만약 돌려야 한다면 한번에 될진 모르겠지만 1111, 2222를 revert 해야 할지도? (확인필요)

 

$ git log --oneline
17b787d bug3 fixed
1fefb57 bug2 fixed
8b3560b bug1 fixed
784065c feature1 developed
...
이제 우리는 이러한 버그 수정을 없애고 저장소를 bug1 fixed 상태 이전의 상태로 되돌리기로 결정했습니다.

따라서 --no-commit 옵션과 함께 git revert 명령을 사용할 수 있습니다. 명령 구문은 git revert --no-commit <commit>입니다.

따라서 완료된 버그 수정의 세 커밋을 되돌리려면 다음과 같이 해야 합니다.

$ git revert --no-commit 17b787d784065c
$ git revert --no-commit 1fefb57
$ git revert --no-commit 8b3560b

[링크 : https://www.delftstack.com/ko/howto/git/git-revert-multiple-commits/]

[링크 : https://medium.com/@rnrjsah789/git-revert-4c569366a77b]

[링크 : https://www.inflearn.com/community/questions/172695/%EC%97%AC%EB%9F%AC%EA%B0%9C%EC%9D%98-%EC%BB%A4%EB%B0%8B%EC%9D%84-revert?srsltid=AfmBOoo4CTQkAtobmxI0lo6YlKOM1mC1_XZ7rhbI66F8q7CUayTbRIDG]

 

git revert를 하면 자동으로 커밋메시지를 생성해서 커밋하는데 

여러개 돌릴때 마다 메시지 남기면 번거로우니 쭈르르르륵 되돌려 버릴땐 -n 옵션 주면 된다고 한다.

-n, --no-commit
Usually the command automatically creates a commit with a commit log message stating which commit was reverted. This flag applies the change necessary to revert the named commit to your working tree and the index, but does not make the commit. In addition, when this option is used, your index does not have to match the HEAD commit. The revert is done against the beginning state of your index.
This is useful when reverting more than one commits' effect to your index in a row.

[링크 : https://linux.die.net/man/1/git-revert]

'프로그램 사용 > Version Control' 카테고리의 다른 글

.gitconfig insteadof  (0) 2025.12.09
git master -> main branch  (0) 2025.05.22
git local branch, merge master  (0) 2025.01.16
git switch  (0) 2025.01.16
git stash drop , clear  (0) 2024.09.19
Posted by 구차니

전역설정으로 등록하면 저장소 주소가 달라졌을때 간단하게(!) 연결을 변경해 줄 수 있다.

[링크 : https://gist.github.com/Kovrinic/ea5e7123ab5c97d451804ea222ecd78a]

'프로그램 사용 > Version Control' 카테고리의 다른 글

git revert  (0) 2025.12.11
git master -> main branch  (0) 2025.05.22
git local branch, merge master  (0) 2025.01.16
git switch  (0) 2025.01.16
git stash drop , clear  (0) 2024.09.19
Posted by 구차니

stm32도 붙이는데 리눅스에서도 작동중인 녀석을 디버그 할 수 있나 찾는데

그냥 pid 옵션주면 된다고

 

12년전 글이라서 한번 해봐야겠다.

-p는 gdb 옵션

attach 는 gdb 인터프리터내 명령어

gdb -p 12271
gdb /path/to/exe 12271

gdb /path/to/exe
(gdb) attach 12271

[링크 : https://stackoverflow.com/questions/14370972/how-to-attach-a-process-in-gdb]

   [링크 : https://kukuta.tistory.com/202]

'프로그램 사용 > gdb & insight' 카테고리의 다른 글

gdb 사용법  (0) 2026.01.16
gdbserver taget  (0) 2023.07.19
gdb conditional break  (0) 2023.07.19
gdb 디버깅 타겟을 인자와 함께 실행하기  (0) 2022.10.17
gdb break  (0) 2021.04.09
Posted by 구차니