Universal Serial Bus
USB(범용 직렬 버스, 汎用直列 - , Universal Serial Bus, 문화어: 범용직렬모선, 일반직렬모선)는 컴퓨터와 주변 기기를 연결하는 데 쓰이는 입출력 표준 가운데 하나이다. 대표적인 버전으로는 USB 1.0, 1.1, 2.0, 3.0, 3.1 등이 있다.
USB는 다양한 기존의 직렬, 병렬 방식의 연결을 대체하기 위하여 만들어졌다. 키보드, 마우스, 게임패드, 조이스틱, 스캐너, 디지털 카메라, 프린터, PDA, 저장장치 와 같은 다양한 기기를 연결하는 데 사용되고 있다. 이러한 기기 연결의 대부분은 표준 연결 방식을 이용하여 이루어지고 있다. USB는 PC를 위하여 개발되었지만 지금은 PDA나 게임콘솔 등에서도 채택되어 사용되고 있고, USB의 전원 공급 기능을 이용하여 충전 용도로도 많이 사용되고 있다. 2008년에는 전 세계적으로 약 20억 개의 USB 장치가 있다.
USB는 USB표준을 결정하는 USB Implementers Forum에서 표준을 결정한다. 2010년 3월 현재 포럼 의장은 인텔사의 제프(Jeff Ravencraft)이다. 컴퓨터 메인보드 시장에서 인텔의 I/O칩 점유율이 압도적(메릴린치의 2004년 3사분기 보고서에 따르면 62.1%)이기 때문에 소비자 시장에서의 가장 큰 수요를 쥐고 포럼 내 영향력도 가장 큰 인텔사의 주도에 의해 만들어지고 있다.
경쟁 규격으로 언급되는 IEEE 1394가 주로 캠코더에 탑재되어 DV규격으로 주로 사용되는 반면 USB는 저가격의 다수의 기기에 채택되어 있다.
Categories
- USB
- USB-C
- USB Power Delivery
- USB/IP - USB 장치를 네트워크로 공유
Types
USB Type A
Usb_type_a.png
USB Type B
Usb_type_b.png
USB Type C
Usb_type_c.jpg
How to mount in the Linux
리눅스에서 대부분 USB장치는 /dev/sda
또는 /dev/sdb
등의 장치명을 사용하는데 현재 리눅스서버에서 사용되고 있지 않은 장치명을 USB장치명으로 사용할수 있다. 어떤 장치명에 할당되었는가를 확인하기 위하여 fdisk -l
명령으로 확인할 수 있다.
USB 장치 확인 방법
lsusb로 USB 장치 목록을 확인할 수 있다:
$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 04f2:b67a Chicony Electronics Co., Ltd LG HD WebCam
Bus 003 Device 004: ID 046d:c539 Logitech, Inc. USB Receiver
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 2109:0817 VIA Labs, Inc. USB3.0 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 8087:0029 Intel Corp.
Bus 001 Device 019: ID 0bda:c811 Realtek Semiconductor Corp.
Bus 001 Device 015: ID 0853:0146 Topre Corporation USB2.0 Hub
Bus 001 Device 011: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 001 Device 009: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 010: ID 2109:8888 VIA Labs, Inc.
Bus 001 Device 008: ID 2109:2817 VIA Labs, Inc. USB2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
9번째 줄의 Realtek Semiconductor Corp
을 확인하자.
중간에 ... ID 0bda:c811 ...
부분이 있는데, 앞 부분이 Vender ID, 뒷 부분이 Product ID 이다.
만약 터미널 환경이 거북하면 sysinfo 또는 hardinfo를 사용하여 확인하자.
Hardinfo_sample_screenshot.png
이 정보를 바탕으로 dmesg 유틸로 커널 메시지를 확인하자:
$ sudo dmesg -H -w
...
[ +2.019060] usb 1-2.4.4: new high-speed USB device number 26 using xhci_hcd
[ +0.122475] usb 1-2.4.4: New USB device found, idVendor=0bda, idProduct=c811, bcdDevice= 2.00
[ +0.000010] usb 1-2.4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ +0.000004] usb 1-2.4.4: Product: 802.11ac NIC
[ +0.000003] usb 1-2.4.4: Manufacturer: Realtek
[ +0.000002] usb 1-2.4.4: SerialNumber: 123456
...
[ +33.686931] usb 1-2.4.4: USB disconnect, device number 26
...
(참고로 -H
옵션은 Human Readable, -w
옵션은 Follow 를 뜻한다)
새로운 USB를 연결하면 usb 1-2.4.4
와 같은 Prefix 와 함께, 위와 같이 출력된다. 4번째 줄의 Vender ID와 Product ID가 동일한지 확인하자.
usb 1-2.4.4
Prefix 부분을 따라가면 동일한 장치의 커널 메시지가 된다.
이 중 6번째 라인의 Product: 802.11ac NIC
를 확인하면 된다. 따라서 이 장치는 "무선 wifi 동글이" 로 확인되었다.
Libraries
Bootable USB
- UNetbootin
- iso2usb
- Win32 Disk Imager
- 루퍼스 (Rufus)
- Etcher (추천)
- WoeUSB - A Microsoft Windows® USB installation media preparer for GNU+Linux
- Ventoy - 새로운 USB 부팅 솔루션
Troubleshooting
Ubuntu 에서 /dev/ttyUSB0 연결이 저절로 끊기는 현상
sudo dmesg -w
으로 로그를 확인하면:
[ 208.805626] usb 1-1.2.3: new full-speed USB device number 8 using xhci_hcd
[ 208.909682] usb 1-1.2.3: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[ 208.909696] usb 1-1.2.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 208.909700] usb 1-1.2.3: Product: USB Serial
[ 208.946567] ch341 1-1.2.3:1.0: ch341-uart converter detected
[ 208.960853] usb 1-1.2.3: ch341-uart converter now attached to ttyUSB0
[ 209.540161] input: BRLTTY 6.4 Linux Screen Driver Keyboard as /devices/virtual/input/input42
[ 209.780667] usb 1-1.2.3: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[ 209.783648] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[ 209.783689] ch341 1-1.2.3:1.0: device disconnected
중요 라인들을 번역하면:
- [208.960853] usb 1-1.2.3: ch341-uart 변환기가 이제 ttyUSB0에 연결됨
- [209.540161] input: BRLTTY 6.4 Linux 화면 드라이버 키보드 /devices/virtual/input/input42
- [209.780667] usb 1-1.2.3: usbfs: 인터페이스 0이 ch341에 의해 요청됨, 'brltty'가 구성 #1을 설정함
- [209.783648] ch341-uart ttyUSB0: ch341-uart 변환기가 이제 ttyUSB0에서 연결 해제됨
- [209.783689] ch341 1-1.2.3:1.0: 장치 연결 해제됨
요약하면 brltty를 삭제하면 된다.
brltty라는 녀석이 실행되면서 USB 인터페이스 0번을 선점하려고 함. 이로 인해 연결이 끊기는 결과를 보임.
See also
- dd#Bootable USB: 부팅 가능한 USB를 만드는 방법.
Favorite site
- Wikipedia (en) USB에 대한 설명
- 윈도우에서 USB 흔적 추적하기 (USB Device Tracking on Windows) 1
- USB Cheat Sheet - 그림에서 Type-B도 Type-A로 잘못 표기가 되어 있다는 말이 있음
References
-
USB-Device-Tracking-Artifacts.pdf ↩