프로그램 사용/udev2026. 8. 14. 14:47

udev는 user space device 라고 해야하나.. 아무튼 좋은거(!)

아래 경로에 설정 파일들이 있고

 /etc/udev/rules.d/

 

이전에 추가되었던것들 열어보면 아래와 같은 내용들이 있어서

해당되는 VID나 PID가 존재하면 옵션에 따라 장치를 생성해준다.

$ cat 90-kinect2.rules 
# this file belongs in /etc/udev/rules.d/
# ATTR{product}=="Kinect2"
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02c4", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02d8", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02d9", MODE="0666"

 

아래는 digilient analog discovery 꺼. 이건.. RUN 이라는게 보이네

$ cat 52-digilent-usb.rules
ATTR{idVendor}=="1443", MODE:="666"
ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Digilent", MODE:="666", RUN+="/usr/sbin/dftdrvdtch %s{busnum} %s{devnum}"

 

요건 stlink. 어떤 장치명으로 붙게 하려고 이렇게 하나본데..

$ cat 49-stlinkv1.rules
# stm32 discovery boards, with onboard st/linkv1
# ie, STM32VL.

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3744", \
    MODE="660", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1", \
    SYMLINK+="stlinkv1_%n"

$ cat 49-stlinkv2.rules 
# stm32 discovery boards, with onboard st/linkv2
# ie, STM32L, STM32F4.

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", \
    MODE:="0666", \
    SYMLINK+="stlinkv2_%n"

$ cat 49-stlinkv2-1.rules 
# stm32 nucleo boards, with onboard st/linkv2-1
# ie, STM32F0, STM32F4.

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", \
    MODE:="0666", \
    SYMLINK+="stlinkv2-1_%n"

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3752", \
    MODE:="0666", \
    SYMLINK+="stlinkv2-1_%n"

 

stlinkv2 규칙에 의해서 붙었나 보다.

$ ls -al /dev/stlinkv2_2 
lrwxrwxrwx 1 root root 15  8월 14 14:55 /dev/stlinkv2_2 -> bus/usb/001/021

 

 

udev 관리용 유틸리티 옵션

$ udevadm --help
udevadm [--help] [--version] [--debug] COMMAND [COMMAND OPTIONS]

Send control commands or test the device manager.

Commands:
  info          Query sysfs or the udev database
  trigger       Request events from the kernel
  settle        Wait for pending udev events
  control       Control the udev daemon
  monitor       Listen to kernel and udev events
  test          Test an event run
  test-builtin  Test a built-in command

See the udevadm(8) man page for details.

 

$ udevadm info  --help
udevadm info [OPTIONS] [DEVPATH|FILE]

Query sysfs or the udev database.

  -h --help                   Print this message
  -V --version                Print version of the program
  -q --query=TYPE             Query device information:
       name                     Name of device node
       symlink                  Pointing to node
       path                     sysfs device path
       property                 The device properties
       all                      All values
  -p --path=SYSPATH           sysfs device path used for query or attribute walk
  -n --name=NAME              Node or symlink name used for query or attribute walk
  -r --root                   Prepend dev directory to path names
  -a --attribute-walk         Print all key matches walking along the chain of parent devices
  -d --device-id-of-file=FILE Print major:minor of device containing this file
  -x --export                 Export key/value pairs
  -P --export-prefix          Export the key name with a prefix
  -e --export-db              Export the content of the udev database
  -c --cleanup-db             Clean up the udev database
  -w --wait-for-initialization[=SECONDS]
                              Wait for device to be initialized

 

$ udevadm trigger --help
udevadm trigger [OPTIONS] DEVPATH

Request events from the kernel.

  -h --help                         Show this help
  -V --version                      Show package version
  -v --verbose                      Print the list of devices while running
  -n --dry-run                      Do not actually trigger the events
  -q --quiet                        Suppress error logging in triggering events
  -t --type=                        Type of events to trigger
          devices                     sysfs devices (default)
          subsystems                  sysfs subsystems and drivers
  -c --action=ACTION|help           Event action value, default is "change"
  -s --subsystem-match=SUBSYSTEM    Trigger devices from a matching subsystem
  -S --subsystem-nomatch=SUBSYSTEM  Exclude devices from a matching subsystem
  -a --attr-match=FILE[=VALUE]      Trigger devices with a matching attribute
  -A --attr-nomatch=FILE[=VALUE]    Exclude devices with a matching attribute
  -p --property-match=KEY=VALUE     Trigger devices with a matching property
  -g --tag-match=TAG                Trigger devices with a matching tag
  -y --sysname-match=NAME           Trigger devices with this /sys path
     --name-match=NAME              Trigger devices with this /dev name
  -b --parent-match=NAME            Trigger devices with that parent device
  -w --settle                       Wait for the triggered events to complete
     --wait-daemon[=SECONDS]        Wait for udevd daemon to be initialized before triggering uevents
     --uuid                         Print synthetic uevent UUID

 

$ udevadm settle --help
udevadm settle [OPTIONS]

Wait for pending udev events.

  -h --help                 Show this help
  -V --version              Show package version
  -t --timeout=SEC          Maximum time to wait for events
  -E --exit-if-exists=FILE  Stop waiting if file exists

 

$ udevadm settle --help
udevadm settle [OPTIONS]

Wait for pending udev events.

  -h --help                 Show this help
  -V --version              Show package version
  -t --timeout=SEC          Maximum time to wait for events
  -E --exit-if-exists=FILE  Stop waiting if file exists

 

$ udevadm control --help
udevadm control OPTION

Control the udev daemon.

  -h --help                Show this help
  -V --version             Show package version
  -e --exit                Instruct the daemon to cleanup and exit
  -l --log-level=LEVEL     Set the udev log level for the daemon
  -s --stop-exec-queue     Do not execute events, queue only
  -S --start-exec-queue    Execute events, flush queue
  -R --reload              Reload rules and databases
  -p --property=KEY=VALUE  Set a global property for all events
  -m --children-max=N      Maximum number of children
     --ping                Wait for udev to respond to a ping message
  -t --timeout=SECONDS     Maximum time to block for a reply

 

$ udevadm monitor --help
udevadm monitor [OPTIONS]

Listen to kernel and udev events.

  -h --help                                Show this help
  -V --version                             Show package version
  -p --property                            Print the event properties
  -k --kernel                              Print kernel uevents
  -u --udev                                Print udev events
  -s --subsystem-match=SUBSYSTEM[/DEVTYPE] Filter events by subsystem
  -t --tag-match=TAG                       Filter events by tag

 

$ udevadm test --help
udevadm test [OPTIONS] DEVPATH

Test an event run.

  -h --help                            Show this help
  -V --version                         Show package version
  -a --action=ACTION|help              Set action string
  -N --resolve-names=early|late|never  When to resolve names

 

$ udevadm test-builtin --help
udevadm test-builtin [OPTIONS] COMMAND DEVPATH

Test a built-in command.

  -h --help     Print this message
  -V --version  Print version of the program

Commands:
  blkid           Filesystem and partition probing
  btrfs           btrfs volume management
  hwdb            Hardware database
  input_id        Input device properties
  keyboard        Keyboard scan code to key mapping
  kmod            Kernel module loader
  net_id          Network device properties
  net_setup_link  Configure network link
  path_id         Compose persistent device path
  usb_id          USB device properties
  uaccess         Manage device node user ACL

 

/etc/rules.d/에 넣고 룰 갱신후 꽂혀있는 애들 중에 안된애들을 트리거 강제로 붙이기(뽑았다 꼽기 귀찮을때)

sudo udevadm control --reload-rules
sudo udevadm trigger

[링크 : https://chatgpt.com/share/6a7ea79e-3c80-83e8-b6f3-37cfcce74b1a]

 

아래는 명령어별 출력 포맷

info는 자기 자신과 부모들이 보는 정보를 출력해준다.

$ udevadm info -a /dev/ttyUSB0

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/ttyUSB0/tty/ttyUSB0':
    KERNEL=="ttyUSB0"
    SUBSYSTEM=="tty"
    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/ttyUSB0':
    KERNELS=="ttyUSB0"
    SUBSYSTEMS=="usb-serial"
    DRIVERS=="cp210x"
    ATTRS{port_number}=="0"
    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"

  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=="cp210x"
    ATTRS{authorized}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceProtocol}=="00"
    ATTRS{bInterfaceSubClass}=="00"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{interface}=="CP2102 USB to UART Bridge Controller"
    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}=="100mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0100"
    ATTRS{bmAttributes}=="80"
    ATTRS{busnum}=="1"
    ATTRS{configuration}==""
    ATTRS{devnum}=="20"
    ATTRS{devpath}=="2"
    ATTRS{idProduct}=="ea60"
    ATTRS{idVendor}=="10c4"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Silicon Labs"
    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}=="833919"
    ATTRS{power/async}=="enabled"
    ATTRS{power/autosuspend}=="2"
    ATTRS{power/autosuspend_delay_ms}=="2000"
    ATTRS{power/connected_duration}=="833919"
    ATTRS{power/control}=="on"
    ATTRS{power/level}=="on"
    ATTRS{power/persist}=="1"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="833679"
    ATTRS{power/runtime_enabled}=="forbidden"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="1"
    ATTRS{product}=="CP2102 USB to UART Bridge Controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="removable"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="0001"
    ATTRS{speed}=="12"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="12"
    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-136-generic xhci-hcd"
    ATTRS{maxchild}=="12"
    ATTRS{power/active_duration}=="703559455"
    ATTRS{power/async}=="enabled"
    ATTRS{power/autosuspend}=="0"
    ATTRS{power/autosuspend_delay_ms}=="0"
    ATTRS{power/connected_duration}=="703559986"
    ATTRS{power/control}=="auto"
    ATTRS{power/level}=="auto"
    ATTRS{power/runtime_active_kids}=="3"
    ATTRS{power/runtime_active_time}=="703559815"
    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}=="1823"
    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{dbc_poll_interval_ms}=="64"
    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}=="703560520"
    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}=="0"
    ATTRS{power/wakeup_count}=="0"
    ATTRS{power/wakeup_expire_count}=="0"
    ATTRS{power/wakeup_last_time_ms}=="0"
    ATTRS{power/wakeup_max_time_ms}=="0"
    ATTRS{power/wakeup_total_time_ms}=="0"
    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"

 

먼가 이거 udev 디버깅 메시지 같은 느낌?

앞에 보면 P N L S E가 나오는데 manpage에는 아래와 같이 정의 되어있다.

P - Path

N : Name

L : ??? (symLink Priority)

S : Symlink

E : propErty ?

$ udevadm info -q all /dev/ttyUSB0
P: /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/ttyUSB0/tty/ttyUSB0
N: ttyUSB0
L: 0
S: serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
S: serial/by-path/pci-0000:00:14.0-usb-0:2:1.0-port0
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/ttyUSB0/tty/ttyUSB0
E: DEVNAME=/dev/ttyUSB0
E: MAJOR=188
E: MINOR=0
E: SUBSYSTEM=tty
E: USEC_INITIALIZED=702727509637
E: ID_BUS=usb
E: ID_VENDOR_ID=10c4
E: ID_MODEL_ID=ea60
E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller
E: ID_PCI_INTERFACE_FROM_DATABASE=XHCI
E: ID_VENDOR_FROM_DATABASE=Silicon Labs
E: ID_AUTOSUSPEND=1
E: ID_MODEL_FROM_DATABASE=CP210x UART Bridge
E: ID_VENDOR=Silicon_Labs
E: ID_VENDOR_ENC=Silicon\x20Labs
E: ID_MODEL=CP2102_USB_to_UART_Bridge_Controller
E: ID_MODEL_ENC=CP2102\x20USB\x20to\x20UART\x20Bridge\x20Controller
E: ID_REVISION=0100
E: ID_SERIAL=Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001
E: ID_SERIAL_SHORT=0001
E: ID_TYPE=generic
E: ID_USB_INTERFACES=:ff0000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=cp210x
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: ID_MM_CANDIDATE=1
E: ID_FOR_SEAT=tty-pci-0000_00_14_0-usb-0_2_1_0
E: DEVLINKS=/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 /dev/serial/by-path/pci-0000:00:14.0-usb-0:2:1.0-port0
E: TAGS=:snap_cups_ippeveprinter:systemd:snap_cups_cupsd:seat:uaccess:
E: CURRENT_TAGS=:snap_cups_ippeveprinter:systemd:snap_cups_cupsd:seat:uaccess:

 

$ udevadm info -q name /dev/ttyUSB0
ttyUSB0

 

$ udevadm info -q symlink /dev/ttyUSB0
serial/by-path/pci-0000:00:14.0-usb-0:2:1.0-port0 serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0

 

$ udevadm info -q path /dev/ttyUSB0
/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/ttyUSB0/tty/ttyUSB0

 

$ udevadm info -q property /dev/ttyUSB0
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/ttyUSB0/tty/ttyUSB0
DEVNAME=/dev/ttyUSB0
MAJOR=188
MINOR=0
SUBSYSTEM=tty
USEC_INITIALIZED=702727509637
ID_BUS=usb
ID_VENDOR_ID=10c4
ID_MODEL_ID=ea60
ID_PCI_CLASS_FROM_DATABASE=Serial bus controller
ID_PCI_SUBCLASS_FROM_DATABASE=USB controller
ID_PCI_INTERFACE_FROM_DATABASE=XHCI
ID_VENDOR_FROM_DATABASE=Silicon Labs
ID_AUTOSUSPEND=1
ID_MODEL_FROM_DATABASE=CP210x UART Bridge
ID_VENDOR=Silicon_Labs
ID_VENDOR_ENC=Silicon\x20Labs
ID_MODEL=CP2102_USB_to_UART_Bridge_Controller
ID_MODEL_ENC=CP2102\x20USB\x20to\x20UART\x20Bridge\x20Controller
ID_REVISION=0100
ID_SERIAL=Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001
ID_SERIAL_SHORT=0001
ID_TYPE=generic
ID_USB_INTERFACES=:ff0000:
ID_USB_INTERFACE_NUM=00
ID_USB_DRIVER=cp210x
ID_PATH=pci-0000:00:14.0-usb-0:2:1.0
ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_1_0
ID_MM_CANDIDATE=1
ID_FOR_SEAT=tty-pci-0000_00_14_0-usb-0_2_1_0
DEVLINKS=/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 /dev/serial/by-path/pci-0000:00:14.0-usb-0:2:1.0-port0
TAGS=:seat:systemd:uaccess:snap_cups_ippeveprinter:snap_cups_cupsd:
CURRENT_TAGS=:seat:systemd:uaccess:snap_cups_ippeveprinter:snap_cups_cupsd:

 

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

udev  (0) 2021.01.05
udev rule  (0) 2014.12.18
udevinfo -> udevadm  (0) 2010.05.03
Posted by 구차니

클로드님 경배합니다!!!

우클릭 - Follow - TCP Stream

 

아이씨 엑셀로 고생하고 있었는데 이런 좋은 기능이 ㅋㅋㅋ

Posted by 구차니

데스크 탑에 설치된 게임이 없는데

쭈욱 내려보다 보니 어..? 하면서 눌러보니 바로 먼가 게임할수 있는 것 처럼 나온다.

 

저거.. 노트북에 받아는 두었는데 머지 ? 하면서 이 기기 누르면

아래처럼 설치로 바뀐다.

 

아놔 해보려고 하니 EA 앱 설치중.. 대략 빡치네 -_-

그래서 속 편하게(?)

다른 게임으로 시도 ㅋㅋ

 

해보니 정말 그냥 원격에서 하는거 스트리밍으로 한다는 느낌(!)

노트북에서는 게임 그냥 실행되고

그걸 데스크 탑에서 전송받아서 보고 하는데

로컬이긴 하지만 어떻게 된 게(!) USB HDMI 캡쳐 30ms 설정하고 할 떄 보다 딜레이가 적다!

그리고 게임에서 F12 눌러 스팀 캡쳐 누르면 당연히(?) 원격화면을 끌어와서 하는것이기 때문에

로컬(데스크탑)이 아닌 리모트(노트북)에 저장이 된다.

 

그리고 현재 기기를 선택하지 말고 상대 기기를 선택하고(데스크 탑에서 노트북을 선택)

파란색으로 설치를 누르면 내부 로컬 네트워크를 통해 전송 받아서 설치된다.

오.. 네트워크 공유해서 복사해서 해봐야 하나 고민하고 있었는데 이렇게 개꾸르가?

그 와중에 노트북은 nvme인데 데스크 탑은 SATA라서 500MB 리밋에 걸리는 상황 ㅋㅋ

 

1060 6GB 인데도 추천설정으로 4k에 ( 네?) v-sync triple / anti MSAA 걸리고 난리라서 좀 낮추고 하는데

안티 끄니 너무 도트가 두드려져 보이고

프레임 때문에  V-sync 끄면 너무 심하게 찢어지고

1080 ti 끌고 와야하나...

'게임 > 오리진&스팀&유플레이' 카테고리의 다른 글

epic 무료게임  (0) 2026.01.16
에픽 유출은 역시 구라였군  (0) 2025.12.20
오랫만에 지르기  (0) 2025.11.29
에픽 무료게임  (0) 2025.11.14
윈도우 11에서 JASF 실행 실패  (0) 2025.11.02
Posted by 구차니

유튜브에서 처럼 막 쭉쭉 안늘어나서 gpt에서 물어보니 알려준 키워드

 

Dynatopo 왼쪽에 체크박스를 체크해야 하다니 먼가 눈에 잘 안들어 오네

 

땡기기 전 땡기고 나서. 나노 먼지 크기로 늘어났...나?

 

dynatopo 체크!

 

떙기기 전 땡기고 나서. 

클릭한채로 몇 번 문질문질 하니 폴리곤도 확 늘고, 제법 늘어난다!

 

그리고 grab!

기본은 draw인데

 

grab 으로 바꾸고 하니

 

겁나 쉽게 끌려온다. 다만 vertex 하나만 끌려오고, dynatopo 와는 같이 못쓴다고

f 누르면 영역을 조절할수 있는데 그 영역내의 버텍스가 한번에 끌려온다.

 

[링크 : https://sz3728.tistory.com/35]

Posted by 구차니

계약 시간을 잘 못 알아서 오전 날리고

오후에 멍때리다가 혼자서(?) 바쁜 하루

 

아내 : 2시인줄 알았는데 3시다

나 : 2시가 아니라 1시다(13시로 이해)

 

그렇게 병원도 못가고

그냥 안경만 손보러 나가려다가 타이어 펑크나서 떼우고

안경 손보고 오고

아부지 댁에 소비전력 측정기 드리고

돌아오면서 세차하고 기름 넣고 끝

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

연차 2일차  (0) 2026.08.04
연차 1일차 - 남양주 스테이힐  (0) 2026.08.03
영월동강축네  (0) 2026.07.31
철원 팜팜랜드  (0) 2026.07.17
지상용 선풍기?  (2) 2026.07.12
Posted by 구차니

계약 하고

스타필드 가서 먹을거 사고

머 했지? 그냥 하루가 훅 가네

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

연차 3일차  (0) 2026.08.05
연차 1일차 - 남양주 스테이힐  (0) 2026.08.03
영월동강축네  (0) 2026.07.31
철원 팜팜랜드  (0) 2026.07.17
지상용 선풍기?  (2) 2026.07.12
Posted by 구차니

당근으로 뜬 거 보고 가봤는데

[링크 : https://stayhill.co.kr/]

 

1. 우리집에선 가까움 ㅋ

2. 친절하심

3. 쌈!

4. 수영장 크고 깊음(1.5m)

5. 고기도 구워먹을수 있음!

 

몇 번 더 올 듯 ㅎㅎ

 

입구에서 좌측으로 턴하고 안으로 쭉 들어오면 수영장이 있는데 1.5m 까지 되는 풀이다

노란색 튜브 있는 쪽은 얕은 곳.

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

연차 3일차  (0) 2026.08.05
연차 2일차  (0) 2026.08.04
영월동강축네  (0) 2026.07.31
철원 팜팜랜드  (0) 2026.07.17
지상용 선풍기?  (2) 2026.07.12
Posted by 구차니

아침에 개산책

한놈 빨고

아내가 원하는 크림새우에

애들 교회 왕복

아부지 점심

4시간 기절

핸드폰 중고로 산 거 환불 (액정에 점 하나, 추후 얼마나 금세 망가질지 미지수라.. 그리고 USB 한방향만 인식)

매일 놀러갈 거 장보기

'개소리 왈왈 > 모바일 생활' 카테고리의 다른 글

중고폰 지름  (0) 2026.08.01
요금제 변경 - 얼굴 인식 승질나네  (0) 2026.07.28
요금제 변경 완료  (0) 2026.01.30
요금제 변경 시도  (0) 2026.01.28
흑우 음뭬~  (0) 2025.11.09
Posted by 구차니

어우 드럽게 비싸네

일단 s21 21만원에 지름

비싼거 같긴한데 새거보단 싸니..

그 와중에 반도체 대란이니..

'개소리 왈왈 > 모바일 생활' 카테고리의 다른 글

먼가 바쁘네, 중고폰 환불  (0) 2026.08.02
요금제 변경 - 얼굴 인식 승질나네  (0) 2026.07.28
요금제 변경 완료  (0) 2026.01.30
요금제 변경 시도  (0) 2026.01.28
흑우 음뭬~  (0) 2025.11.09
Posted by 구차니