Ubuntu 콘솔모드 부팅시 /dev/ttyUSB0가 저절로 끊기는 현상

Ubuntu를 콘솔모드로 부팅할 경우, USB Serial 장비 중 /dev/ttyUSB0를 사용하는 장치가 저절로 끊기는 현상이 발생함.

부팅 이후 USB 장치를 다시 연결하면 정상적으로 사용할 수 있지만, 부팅시 항상 연결 후 끊기는 현상이 발생하여 커널 메시지를 확인한 결과….

[    3.840033] usbcore: registered new interface driver cp210x
[    3.840041] usbserial: USB Serial support registered for cp210x
[    3.840063] cp210x 3-3.4:1.0: cp210x converter detected
[    3.840244] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_component_ops [i915])
[    3.841142] usb 3-3.4: cp210x converter now attached to ttyUSB0

...

[    4.542479] usb 3-3.4: usbfs: interface 0 claimed by cp210x while 'brltty' sets config #1
[    4.543277] cp210x ttyUSB0: cp210x converter now disconnected from ttyUSB0
[    4.543298] cp210x 3-3.4:1.0: device disconnected

대략 살펴보면, brltty라는 녀석이 실행되면서 USB 인터페이스 0번을 선점하려고 함. 이로 인해 연결이 끊기는 결과를 보임.

간단히 해결 방법은 brltty라는 녀석을 지우면 됨.

brltty가 하는 역할을 살펴보니, Ubuntu 콘솔모드로 부팅시 시각 장애인을 위해 화면 내용을 읽어주는 braille display라는 장비를 운용하기 위한 프로그램임.

$ sudo apt purge brltty

끝.!

RPi SD 카드 백업

RPi 보드에 SD카드를 삽입하고 작업을 진행한 이후, 특정 상태에서 백업을 해놓으면 추후에 반복되는 작업 시간을 줄일 수 있음.

방법은 사용하는 운영체제에 따라 다름.

Windows

Windows에서는 Win32 Disk Imager 사용을 권장함. 해당 링크에서 프로그램을 다운 받아 원본 SD 카드를 넣고 이미지 파일로 백업. 추후 새로운 SD 카드를 넣고 백업해 놓은 이미지 파일을 이용해 쓰기를 하면 끝.

Ubuntu

ubuntu에서는 터미널에서 dd 명령어를 이용하는게 편함. SD카드를 삽입하고, 마운트 된 파티션을 umount 해준 다음,

$ sudo umount /dev/mmcblk0
$ sudo dd if=/dev/mmcblk0 of=~/backup_sdcard_lrcharger1500w.img bs=1M status=progress

이렇게 하면 파일로 백업, 다시 새로운 카드에 쓰려면,

$ sudo umount /dev/mmcblk0
$ sudo dd if=~/backup_sdcard_lrcharger1500w.img of=/dev/mmcblk0 bs=1M status=progress

끝!

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에 대한 지식이 별로 없어도 마우스로 클릭클릭해가면서 디자인하는 것을 보면, 참 세상이 좋아졌구나~ 라는 생각도.

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