본문으로 바로가기

[VSCode][Ubuntu][ESP32] ERR : ibusb_open() failed with LIBUSB_ERROR_ACCESS

category ESP32 2023. 11. 14. 19:44

 

: ubuntu22.04 에  Visual Studio Code 사용해  ESP32-C6 칩 JTAG 쓰기시

  다음과 같은 에러가 발생해 디버깅 해 봤습니다.

 

 Visual Studio Code OUTPUT 창 발췌

home/xxx/.espressif/tools/openocd-esp32/v0.12.0-esp32-20230419/openocd-esp32/bin/openocd

Open On-Chip Debugger v0.12.0-esp32-20230419 (2023-04-18-22:02)
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.org/doc/doxygen/bugs.html

/home/xxx/.espressif/tools/openocd-esp32/v0.12.0-esp32-20230419/openocd-esp32/bin/openocd

[OpenOCD]
Open On-Chip Debugger v0.12.0-esp32-20230419 (2023-04-18-22:02)
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.org/doc/doxygen/bugs.html
debug_level: 2

[OpenOCD]
Info : only one transport option; autoselecting 'jtag'
Info : esp_usb_jtag: VID set to 0x303a and PID to 0x1001
Info : esp_usb_jtag: capabilities descriptor set to 0x2000
Warn : Transport "jtag" was already selected

[OpenOCD]
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections

[OpenOCD]
❌ Error: libusb_open() failed with LIBUSB_ERROR_ACCESS

[OpenOCD]
❌ Error: esp_usb_jtag: could not find or open device!
/home/xxx/.espressif/tools/openocd-esp32/v0.12.0-esp32-20230419/openocd-esp32/share/openocd/scripts/target/esp_common.cfg:4: Error: 
at file "/home/xxx/.espressif/tools/openocd-esp32/v0.12.0-esp32-20230419/openocd-esp32/share/openocd/scripts/target/esp_common.cfg", line 4

[OpenOCD]
[Stopped] : OpenOCD Server
[Flash]
Can't perform JTag flash, because OpenOCD server is not running!

 

 

 ESP32-C6 보드연결시 생성되는 USB 장치 확인하기

$ lsusb
~~ 중략 ~~
Bus 001 Device 004: ID 303a:1001 Espressif USB JTAG/serial debug unit

   : idVendor (303a) , idProduct(1001)

    

    /dev/ttyACM0  속성 확인하기

   : ttyACM0 가 생성이 됩니다.

$ ls -l /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 Nov 15 17:16 /dev/ttyACM0

 

 

  dialout 그룹 현재 유저에 추가하기

~$ sudo usermod -aG dialout $USER

xxx@ubuntu22:~$ groups xxx
xxx : xxx adm dialout cdrom sudo dip plugdev lpadmin lxd sambashare

 

 

  장치 제거후 아래 명령 실행

sudo udevadm control --reload-rules
sudo udevadm trigger

 

 Visual Studio Code 실행후  > ESP-IDF Flash Device 실행

 

→ ESP-IDF Flash device

→ 또는 ESP-IDF: Flash your project 선택

※ 위에 동일한 에러 발생하네요.

 

 

 chmod로 퍼미션 변경 테스트  (666) 해 봤습니다.

   : lsusb 명령 참조해 004 장치의 퍼미션 변경

 

 ESP-IDF Flash Device 실행

:  에러 발생 안함.   other 설정과 관련이 있어보이네요.

 

 

 위내용 적용한 내용 /etc/udev/rules.d/ 에 추가하기

    :  /etc/udev/rules.d/99-esp32c6.ruls 파일 작성

 /etc/udev/rules.d/99-esp32c6.rules

SUBSYSTEM=="usb", ATTR{idVendor}=="303a", ATTR{idProduct}=="1001", MODE="0666"

 

 

▶  USB 케이블 탈부착후   ls 명령으로 퍼미션 확인하기 

$ sudo udevadm control --reload-rules
$ sudo udevadm trigger

$ lsusb
~~ 중략 ~~
Bus 001 Device 012: ID 303a:1001 Espressif USB JTAG/serial debug unit

xxx@ubuntu22:/etc/udev/rules.d$ ls -l /dev/bus/usb/001/
total 0
crw-rw-r-- 1 root root 189,  0 Nov 15 17:16 001
crw-rw-r-- 1 root root 189,  1 Nov 15 17:16 002
crw-rw-r-- 1 root root 189,  2 Nov 15 17:16 003
crw-rw-r-- 1 root root 189,  4 Nov 15 17:16 005
crw-rw-r-- 1 root root 189,  5 Nov 15 17:16 006
crw-rw-r-- 1 root root 189,  6 Nov 15 17:16 007
crw-rw-r-- 1 root root 189,  7 Nov 15 17:16 008
crw-rw-rw- 1 root root 189, 11 Nov 15 17:53 012    <--- 퍼미션 변경 완료
xxx@ubuntu22:/etc/udev/rules.d$

 

  :  udevadm 명령은 없어서도 동작 합니다.

 

퍼미션 문제로 하루고생했네요.  (Windows에서는 그냥 작동했는데...)

오늘도 수고하세요.

반응형