Ubuntu에서 udev를 이용한 장치 관리

udev는 Linux 서브시스템으로 장치 관리를 위해 사용한다.

udev는 udev rules를 이용해 설정이 가능한데, 이를 이용하면 사용자의 입맛에 맞게 장치의 이름 및 초기화 기능을 수행할 수 있다.

udev rules 파일은 /etc/udev/rules.d에 위치하면 된다. 파일 이름의 형식은 00-<udev_rule_name>.rules로 구성되는데, 앞의 두 숫자는 우선 순위를 나타내고 숫자가 낮을수록 먼저 실행된다.

룰 파일 내부에서는 라인별로 실행이 되며, 대략 내용을 살펴보면

KERNEL=="ttyUSB[0-9]*", MODE="0666", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", ENV{ID_USB_INTERFACE_NUM}=="01", SYMLINK+="ttyPIO"
KERNEL=="ttyUSB[0-9]*", MODE="0666", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", ENV{ID_USB_INTERFACE_NUM}=="00", SYMLINK+="ttyCHARGER"
KERNEL=="ttyUSB[0-9]*", MODE="0666", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="ttyHMI"
#KERNEL=="ttyUSB[0-9]*", MODE="0666", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="ttyCHARGER%E{ID_USB_INTERFACE_NUM}"

와 같다.

자세한 문법은 https://www.thegeekdiary.com/beginners-guide-to-udev-in-linux/를 참고하면 될듯.

팁.

USB 장치의 경우, idProduct, idVendor 등의 번호가 동일한 제품이 존재할 수 있는데, 이때는 ID_USB_INTERFACE_NUM를 사용하면, USB 허브 및 포트에 꼽힌 순서대로 인덱싱 번호를 얻을 수 있다. 이를 이용하면, 해당되는 장치에 대한 설정 가능

KERNEL=="ttyUSB[0-9]*", MODE="0666", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", ENV{ID_USB_INTERFACE_NUM}=="01", SYMLINK+="ttyPIO"

끝.

SES Pro Screwdriver

예전부터 이상하게 이쁜 공구만 나오면 수집하는 취미가 있는데, 인터넷 서핑 중 이쁜 드라이버 세트를 발견! 게다가 토크 조절도 가능하단다!!?!? 원래는 킥스타터 등 클라우드 펀딩에서 성공적으로 데뷔하고, 현재는 ARRORMAX에서 판매하고 있음. 주문하면 거의 그 즉시 쉬핑되긴하는데, 코로나 시국이라 그런지 DHL 배달이 살짝 느린 기분.

https://www.arrowmax-rc.com/xcart/arrowmax-ses-electric-screwdriver-with-alu-case-34-in-1-space-gray-am-199912-g-.html

가격이 살짝 나가긴 하지만 일단 주문하고, 기다렸다가 얼마전에 받고 개봉 완료.. 외부 포장 케이스는 아래와 같고,

실제로 갖고 다닐 케이스는 회색 계열의 알루미늄 케이스이고, 드라이버가 살짝 보이게끔 되어 있음.

드라이버 비트는 총 34개가 들어 있고, 특성상 큰 크기의 비트는 존재하지 않음. 기계쪽보단 보드나 작은 전자제품 용도로만 사용해야 할 듯. 전원을 키고, 회전 동작에 따라 드라이버 비트가 회전하고 (처음에 살짝 헷갈림), 정해진 토그 이상이 부하 걸리면 멈춤.

끝!

워드프레스 테마 변경

얼마전 워드프레스가 5.9 버전으로 바뀌면서, 전체 싸이트 구조를 기존 테마와는 달리 블록으로 사용자가 직접 디자인 할 수 있도록 변경되었다.

이 블로그도 Twenty Seventeen 테마를 살짝 변형하여 사용하고 있었는데, 지금까지 귀차니즘에 변경하지 않고 버텨왔는데 삽질하는게 나름 취미라…

Twenty Twenty Two 테마로 변경하고 하나씩 살펴보고 있는 중. 귀찮은 면도 있긴한데 하나씩 바꿔가면서 변경되는게 재밌긴하다. HTML, CSS에 대한 지식이 별로 없어도 마우스로 클릭클릭해가면서 디자인하는 것을 보면, 참 세상이 좋아졌구나~ 라는 생각도.

슬슬 또 내용을 채워나가야 할듯.

Ubuntu를 Console/Text 모드로 부팅하기

로봇에 설치된 Ubuntu의 경우, 기존과 같이 Gnome으로 부팅하면 부팅시간도 오래 걸릴뿐 아니라, 기본 상태에서의 램 소모량도 크기 때문에 Console/Text 모드로 부팅하는 것이 유리하다.

이를 변경하기 위해선, 간단히 Terminal을 열고 다음과 같이 입력하고 재부팅한다.

$ sudo systemctl set-default multi-user.target

다시 Graphical Mode로 원상복구 하려면, Terminal에서 다음과 같이 입력하고 재부팅한다.

$ sudo systemctl set-default graphical.target

끝.

Set CPU governor policy always “Performance” on Ubuntu

$ sudo apt-get install cpufrequtils

/etc/default/cpufrequtils 파일 생성. 있으면 수정.

$ sudo nano /etc/default/cpufrequtils

GOVERNOR="performance"
MIN_SPEED="2000MHz"

MIN_SPEED는 각자의 CPU 성능에 따라 설정함.

ondemand 서비스를 비활성화

$ sudo systemctl disable ondemand

파일이 생성되면, cpufrequtils 서비스를 재실행

$ sudo systemctl restart cpufrequtils

이제 cpufreq-info를 통해 확인해보면…

$ cpufreq-info                                                                                                                                                         
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009                                                                                                                                          
Report errors and bugs to cpufreq@vger.kernel.org, please.                                                                                                                                              
analyzing CPU 0:                                                                                                                                                                                        
  driver: intel_pstate                                                                                                                                                                                  
  CPUs which run at the same hardware frequency: 0                                                                                                                                                      
  CPUs which need to have their frequency coordinated by software: 0                                                                                                                                    
  maximum transition latency: 4294.55 ms.                                                                                                                                                               
  hardware limits: 800 MHz - 5.10 GHz                                                                                                                                                                   
  available cpufreq governors: performance, powersave                                                                                                                                                   
  current policy: frequency should be within 3.00 GHz and 5.10 GHz.                                                                                                                                     
                  The governor "performance" may decide which speed to use                                                                                                                              
                  within this range.                                                                                                                                                                    
  current CPU frequency is 4.91 GHz.                                                                                                                                                                    
analyzing CPU 1:                                                                                                                                                                                        
  driver: intel_pstate                                                                                                                                                                                  
  CPUs which run at the same hardware frequency: 1                                                                                                                                                      
  CPUs which need to have their frequency coordinated by software: 1                                                                                                                                    
  maximum transition latency: 4294.55 ms.                                                                                                                                                               
  hardware limits: 800 MHz - 5.10 GHz                                                                                                                                                                   
  available cpufreq governors: performance, powersave                                                                                                                                                   
  current policy: frequency should be within 3.00 GHz and 5.10 GHz.                                                                                                                                     
                  The governor "performance" may decide which speed to use                                                                                                                              
                  within this range.                                                                                                                                                                    
  current CPU frequency is 4.73 GHz.           

위와 같이 performance 모드로 셋팅되어 있고, CPU frequency가 올라가 있음을 확인할 수 있음.