프로그램 사용/ros2026. 8. 18. 15:50

일단 오랫만에 하려니 까먹었..

2760p에서 SSD 뽑아서 옮기고 하는데 먼가 잘 안되네..

source /opt/ros/humble/setup.bash
cd ros2_ws/
~/ros2_ws$ source install/setup.bash 
~/ros2_ws$ ros2 launch kinect2_bridge kinect2_bridge_launch.yaml
[INFO] [launch]: All log files can be found below /home/minimonk/.ros/log/2026-08-18-14-47-28-206839-minimonk-HP-EliteBook-2760p-2683
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [kinect2_bridge_node-1]: process started with pid [2684]
[INFO] [point_cloud_xyzrgb_node-2]: process started with pid [2686]
[kinect2_bridge_node-1] [INFO] [1787032048.561620321] [kinect2_bridge_node]: parameter:
[kinect2_bridge_node-1]         base_name: kinect2
[kinect2_bridge_node-1]            sensor: default
[kinect2_bridge_node-1]         fps_limit: 30
[kinect2_bridge_node-1]        calib_path: /home/minimonk/ros2_ws/src/kinect2_ros2/kinect2_bridge/data/
[kinect2_bridge_node-1]           use_png: false
[kinect2_bridge_node-1]      jpeg_quality: 90
[kinect2_bridge_node-1]         png_level: 1
[kinect2_bridge_node-1]      depth_method: cpu
[kinect2_bridge_node-1]      depth_device: -1
[kinect2_bridge_node-1]        reg_method: default
[kinect2_bridge_node-1]        reg_device: -1
[kinect2_bridge_node-1]         max_depth: 12
[kinect2_bridge_node-1]         min_depth: 0.1
[kinect2_bridge_node-1]        queue_size: 5
[kinect2_bridge_node-1]  bilateral_filter: true
[kinect2_bridge_node-1] edge_aware_filter: true
[kinect2_bridge_node-1]        publish_tf: true
[kinect2_bridge_node-1]      base_name_tf: kinect2
[kinect2_bridge_node-1]    worker_threads: 4
[kinect2_bridge_node-1] libva info: VA-API version 1.14.0
[kinect2_bridge_node-1] libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
[kinect2_bridge_node-1] libva info: Found init function __vaDriverInit_1_14
[kinect2_bridge_node-1] libva info: va_openDriver() returns 0
[kinect2_bridge_node-1] [INFO] [1787032048.795488827] [kinect2_bridge_node]: Kinect2 devices found: 
[kinect2_bridge_node-1] [INFO] [1787032048.795526124] [kinect2_bridge_node]:   0: 501441643042 (selected)
[kinect2_bridge_node-1] [INFO] [1787032048.883343429] [kinect2_bridge_node]: starting kinect2
[kinect2_bridge_node-1] [INFO] [1787032049.528036575] [kinect2_bridge_node]: device serial: 501441643042
[kinect2_bridge_node-1] [INFO] [1787032049.528089258] [kinect2_bridge_node]: device firmware: 4.0.3911.0
[kinect2_bridge_node-1] [WARN] [1787032049.775072554] [kinect2_bridge_node]: using sensor defaults for color intrinsic parameters.
[kinect2_bridge_node-1] [WARN] [1787032049.775198004] [kinect2_bridge_node]: using sensor defaults for ir intrinsic parameters.
[kinect2_bridge_node-1] [WARN] [1787032049.775233483] [kinect2_bridge_node]: using defaults for rotation and translation.
[kinect2_bridge_node-1] [WARN] [1787032049.775264689] [kinect2_bridge_node]: using defaults for depth shift.
[kinect2_bridge_node-1] [INFO] [1787032049.797677152] [kinect2_bridge_node]: Using CPU registration method!
[kinect2_bridge_node-1] [INFO] [1787032049.797721040] [kinect2_bridge_node]: Using CPU registration method!
[kinect2_bridge_node-1] [INFO] [1787032049.814391118] [kinect2_bridge_node]: waiting for clients to connect
[kinect2_bridge_node-1] [INFO] [1787032050.806967850] [kinect2_bridge_node]: client connected. starting device...
[kinect2_bridge_node-1] [INFO] [1787032054.197297612] [kinect2_bridge_node]: depth processing: ~570.346ms (~1.75332Hz) publishing rate: ~4.98921Hz
[kinect2_bridge_node-1] [INFO] [1787032054.197366612] [kinect2_bridge_node]: color processing: ~4.93251ms (~202.736Hz) publishing rate: ~4.98921Hz
[kinect2_bridge_node-1] [INFO] [1787032057.202601972] [kinect2_bridge_node]: depth processing: ~1013.64ms (~0.986545Hz) publishing rate: ~3.99293Hz
[kinect2_bridge_node-1] [INFO] [1787032057.202648584] [kinect2_bridge_node]: color processing: ~3.8534ms (~259.511Hz) publishing rate: ~3.99293Hz

 

기존 i5-2520m 대비 오르긴 했는데.. 일단 CPU 로 해서 그런가 획기적으로 오르진 않았다.

[kinect2_bridge_node-1] [INFO] [1783770781.952362253] [kinect2_bridge_node]: depth processing: ~454.726ms (~2.19912Hz) publishing rate: ~2.99997Hz
[kinect2_bridge_node-1] [INFO] [1783770781.952462142] [kinect2_bridge_node]: color processing: ~13.8091ms (~72.4159Hz) publishing rate: ~11.9999Hz
[kinect2_bridge_node-1] [INFO] [1783770784.961367722] [kinect2_bridge_node]: depth processing: ~1429.33ms (~0.69963Hz) publishing rate: ~2.65869Hz
[kinect2_bridge_node-1] [INFO] [1783770784.961457981] [kinect2_bridge_node]: color processing: ~18.3239ms (~54.5735Hz) publishing rate: ~2.65869Hz

 

+

 다시 빌드 하고 시도

$ sudo apt install gcc-10 g++-10
$ git clone --depth 1 https://github.com/NVIDIA/cuda-samples.git
$ cd cuda-samples/Common
$ sudo cp helper_math.h /usr/include

$ cd ~/src/libfreenect
$ mkdir build_cuda
$ cd build_cuda
$ cmake .. -DENABLE_CUDA=ON -DCUDA_HOST_COMPILER=/usr/bin/gcc-10
$ sudo make install

~/ros2_ws$ colcon build --symlink-install
~/ros2_ws$ vi ./src/kinect2_ros2/kinect2_bridge/launch/kinect2_bridge_launch.yaml
 30         - name: "depth_method"
 31           value: "default"

 

kinect2를 인식해서 좋긴한데

dpeth_method / reg_mothod가 cpu로 돌아가는건지 cuda를 쓰는건지 모르겠다.

2% 지만 소비전류가 늘은거 보면 쓰는건 맞는거 같은데.. 성능 왜이러냐

 

$ ros2 launch kinect2_bridge kinect2_bridge_launch.yaml 
[INFO] [launch]: All log files can be found below /home/minimonk/.ros/log/2026-08-18-15-32-14-328668-minimonk-HP-EliteBook-2760p-7007
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [kinect2_bridge_node-1]: process started with pid [7008]
[INFO] [point_cloud_xyzrgb_node-2]: process started with pid [7010]
[kinect2_bridge_node-1] [INFO] [1787034734.508992751] [kinect2_bridge_node]: parameter:
[kinect2_bridge_node-1]         base_name: kinect2
[kinect2_bridge_node-1]            sensor: default
[kinect2_bridge_node-1]         fps_limit: 30
[kinect2_bridge_node-1]        calib_path: /home/minimonk/ros2_ws/src/kinect2_ros2/kinect2_bridge/data/
[kinect2_bridge_node-1]           use_png: false
[kinect2_bridge_node-1]      jpeg_quality: 90
[kinect2_bridge_node-1]         png_level: 1
[kinect2_bridge_node-1]      depth_method: default
[kinect2_bridge_node-1]      depth_device: -1
[kinect2_bridge_node-1]        reg_method: default
[kinect2_bridge_node-1]        reg_device: -1
[kinect2_bridge_node-1]         max_depth: 12
[kinect2_bridge_node-1]         min_depth: 0.1
[kinect2_bridge_node-1]        queue_size: 5
[kinect2_bridge_node-1]  bilateral_filter: true
[kinect2_bridge_node-1] edge_aware_filter: true
[kinect2_bridge_node-1]        publish_tf: true
[kinect2_bridge_node-1]      base_name_tf: kinect2
[kinect2_bridge_node-1]    worker_threads: 4
[kinect2_bridge_node-1] libva info: VA-API version 1.14.0
[kinect2_bridge_node-1] libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
[kinect2_bridge_node-1] libva info: Found init function __vaDriverInit_1_14
[kinect2_bridge_node-1] libva info: va_openDriver() returns 0
[kinect2_bridge_node-1] [INFO] [1787034735.139375282] [kinect2_bridge_node]: Kinect2 devices found
[kinect2_bridge_node-1] [INFO] [1787034735.139436224] [kinect2_bridge_node]:   0: 501441643042 (selected)
[kinect2_bridge_node-1] [INFO] [1787034735.225374525] [kinect2_bridge_node]: starting kinect2
[kinect2_bridge_node-1] [INFO] [1787034735.540712973] [kinect2_bridge_node]: device serial: 501441643042
[kinect2_bridge_node-1] [INFO] [1787034735.540771176] [kinect2_bridge_node]: device firmware: 4.0.3911.0
[kinect2_bridge_node-1] [INFO] [1787034735.772433213] [kinect2_bridge_node]: Using CPU registration method!
[kinect2_bridge_node-1] [INFO] [1787034735.772485273] [kinect2_bridge_node]: Using CPU registration method!
[kinect2_bridge_node-1] [INFO] [1787034735.787628318] [kinect2_bridge_node]: waiting for clients to connect
[kinect2_bridge_node-1] [INFO] [1787034736.781245426] [kinect2_bridge_node]: client connected. starting device...
[kinect2_bridge_node-1] [INFO] [1787034740.153039579] [kinect2_bridge_node]: depth processing: ~614.366ms (~1.6277Hz) publishing rate: ~5.31568Hz
[kinect2_bridge_node-1] [INFO] [1787034740.153092716] [kinect2_bridge_node]: color processing: ~4.92322ms (~203.119Hz) publishing rate: ~3.98676Hz
[kinect2_bridge_node-1] [INFO] [1787034743.162903904] [kinect2_bridge_node]: depth processing: ~970.624ms (~1.03026Hz) publishing rate: ~3.98689Hz
[kinect2_bridge_node-1] [INFO] [1787034743.162966773] [kinect2_bridge_node]: color processing: ~4.06577ms (~245.956Hz) publishing rate: ~3.98689Hz

 

흐음.. 되는게 없네. 비율이 왜이러냐..

 

 

cd ~/src/libfreenect2/build_cuda
cmake .. -DENABLE_CUDA=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda -DCUDA_HOST_COMPILER=/usr/bin/gcc-10 -DENABLE_VAAPI=OFF
make -j$(nproc)
sudo make install

 

빌드 없이 임시로

$ LIBVA_DRIVER_NAME=dummy ros2 launch kinect2_bridge kinect2_bridge_launch.yaml

 

depthcloud 추가

 

경고가 뜨는데 아마도.. 원래 상정된거랑 다른 topic이라 그런듯

그러니 Depth Map Topic과 Color Image Topic을 지정해주면

 

아래처럼 먼가 컬러로 나오긴 한다.

 

근데 slam은 어떻게 하지?

위에꺼 실행해두고, 아래꺼 하면 아무것도 안나오는데...

ros2 run tf2_ros tf2_echo kinect2_link kinect2_rgb_optical_frame


ros2 launch rtabmap_launch rtabmap.launch.py \
    rgb_topic:=/kinect2/color/image \
    depth_topic:=/kinect2/depth/image \
    camera_info_topic:=/kinect2/color/camera_info

 

Posted by 구차니
프로그램 사용/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 구차니
프로그램 사용/kicad2026. 8. 14. 14:01

흐음.. 한번 써볼까

[링크 : https://wowon.tistory.com/350]

[링크 : https://wowon.tistory.com/352]

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

kicad mcp, flux.ai  (0) 2026.01.09
Kicad - open source PCB / circuit program  (11) 2010.07.08
Posted by 구차니

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

우클릭 - Follow - TCP Stream

 

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

Posted by 구차니

 price / gpu / hr 라고 되어있어서 이거 뻥튀기 되는거 아냐?

다만 8개 까지 쓸수 있어서 6.4$/1hour 하면 1500원/1달러 환율로 계산하면 9600원/1시간 이니

써볼만 할지도?

[링크 : https://lambda.ai/pricing]

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

elice cloud - gpu / npu 클라우드  (0) 2026.08.11
mediapipe / mmpose  (0) 2026.08.11
runpod.. 재조사  (0) 2026.08.11
llama-swap v247, load test  (0) 2026.08.07
llama.cpp -ts 옵션  (0) 2026.07.30
Posted by 구차니

먼가 달러로 적은 금액을 보다가 만 단위로 보이니 비싸 보이는 마법 -_-

H100 * 4 해보면 2.42만 태우고 1시간 동안 행복해질수 있는건가?!

640GB 라서 내가 돌리던 모델로는 성능 끌어내는것도 힘들어 보이는데...?

 

특이하게도 리벨리온 / 퓨리오사 쪽 NPU 도 임대한다. 오호

[링크 : https://elice.io/ko/cloud/pricing/ai-cloud]

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

lambda.ai gpu 클라우드  (0) 2026.08.11
mediapipe / mmpose  (0) 2026.08.11
runpod.. 재조사  (0) 2026.08.11
llama-swap v247, load test  (0) 2026.08.07
llama.cpp -ts 옵션  (0) 2026.07.30
Posted by 구차니

yolo pose 가 있는지도 몰랐는데

그것보다 더 가볍게 작동한다니 끌리네

[링크 : https://swmakerjun.tistory.com/87]

[링크 : https://learnopencv.com/yolov7-pose-vs-mediapipe-in-human-pose-estimation/]

 

그나저나 눈과 입 관절들은 거의 다 잡는데

손 가락 까지는 못 잡는듯. 이건 또 따로 돌려야 하나?

[링크 : https://developers.google.com/edge/mediapipe/solutions/vision/pose_landmarker]

[링크 : https://github.com/google-ai-edge/mediapipe/blob/master/docs/solutions/pose.md]

 

+

위에도 이것도 gpt가 추천해준건데

얼굴과 손까지 하려면 이걸 추천. 그런데 중국껀가?

[링크 : https://mmpose.readthedocs.io/en/latest]

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

lambda.ai gpu 클라우드  (0) 2026.08.11
elice cloud - gpu / npu 클라우드  (0) 2026.08.11
runpod.. 재조사  (0) 2026.08.11
llama-swap v247, load test  (0) 2026.08.07
llama.cpp -ts 옵션  (0) 2026.07.30
Posted by 구차니

esc 누르면 가입안하고 볼 수 있고

상단에 GPU / CPU로 나누어져 있다.

지금 시점에서는 구버전으로 V100이 미국에만 있는데 SXM2 로 복수를 사요해볼수 있나 한번 찾아보는 중

그런데 저 Low는 머지?

 

일단~~~은 2vCPUs 로 0.08$/hr 로 해서 외부 스토리지 달고 한두시간 해서 다운로드 열심히 받아두고

GPU로 붙여서 바로 테스트 해보면 가격을 좀 더 저렴하게 해볼수 있을 듯?

 

CPU 호스팅에서 보는데 특정 종류에만 네트워크 볼륨을 붙일수 있고

그 와중에 secure cloud만 되고 public cloud에는 못 붙이는 것 같다.

 

이건 public 쪽. 메뉴내에 생성가능하지도 않아 보인다.

 

요건 secure

 

cpu 호스팅에서 network volume 생성시 뜨는 가능한 종류의 GPU 목록

low는 아마도 가용성으로 사용가능한 갯수라던가 여유분을 의미하는 듯?

 

v100 에서 하려면 비싸도 그냥 돈 내면서 받고 해보는 수 밖에 없겠는데

그 와중에 아쉽게도(?) SXM2 라고 해서 2~4개 막 달아볼수 있나 하는게 그건 또 아니고

 

하단에 GPU reservation request 라고  instance pricing 쪽에서 클릭하면 뜨는데

V100은 없고, 8개 이상 선택 / 12개월 이상 선택이라 가격이 후덜덜 할 듯.

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

elice cloud - gpu / npu 클라우드  (0) 2026.08.11
mediapipe / mmpose  (0) 2026.08.11
llama-swap v247, load test  (0) 2026.08.07
llama.cpp -ts 옵션  (0) 2026.07.30
llama.cpp / 1080 ti 11GB * 2 / Qwen3.6-35B Q2, MXFP4  (0) 2026.07.30
Posted by 구차니

228 쓰다가 247로 넘어왔는데 단정하게 변경되었고

 

performance 쪽은 228 과 크게 변경점은 없는 느낌

 

load test가 가장 마음에 드네. 보는 법은 잘 모르겠다. 왜 reasoning으로 뜨지?

 

길게 생성하게 하고 몇버하게 해서 통계내봐야 할듯.

 

아무튼 모델에 토큰 길이 까지 넣어서 하면 테스트 하기는 엄청 편할 것 같다.

[링크 : https://github.com/mostlygeek/llama-swap]

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

mediapipe / mmpose  (0) 2026.08.11
runpod.. 재조사  (0) 2026.08.11
llama.cpp -ts 옵션  (0) 2026.07.30
llama.cpp / 1080 ti 11GB * 2 / Qwen3.6-35B Q2, MXFP4  (0) 2026.07.30
llama.cpp / 1080 ti 11GB * 2/ gemma4-31B  (0) 2026.07.30
Posted by 구차니

gpt가 nvidia jetson thor에서 돌릴만한거 추천

 

어우 47.1기가 ㄷㄷ

[링크 : https://huggingface.co/Lightricks/LTX-2.3]

 

모델에 따라 다르지만 얘도 용량이 ㅎㄷㄷ

[링크 : https://huggingface.co/Lightricks/LTX-Video]

[링크 : https://github.com/Lightricks/LTX-Video]

 

어우 24기가

[링크 : https://huggingface.co/google/gemma-3-12b-it-qat-q4_0-unquantized] << 사용허가 필요

 

 

[링크 : https://github.com/NVIDIA/Stable-Diffusion-WebUI-TensorRT]

     [링크 : https://developer.nvidia.com/blog/new-stable-diffusion-models-accelerated-with-nvidia-tensorrt/]

'프로그램 사용 > 서버 모니터링' 카테고리의 다른 글

prometheus lustre expoter  (0) 2020.11.16
kibana  (0) 2020.10.14
grafana  (0) 2020.10.14
zabbix  (0) 2020.10.14
prometheus  (0) 2020.10.14
Posted by 구차니