Stlink: [doc] μž₯치 μ•‘μ„ΈμŠ€μ— λŒ€ν•œ μ˜¬λ°”λ₯Έ udev ꡬ성 확인

에 λ§Œλ“  2019λ…„ 01μ›” 22일  Β·  8μ½”λ©˜νŠΈ  Β·  좜처: stlink-org/stlink

Ubuntu 및 νŒŒμƒ λ°°ν¬νŒμ—μ„œ st-flash 및 st-util이 μ œλŒ€λ‘œ μž‘λ™ν•˜λ €λ©΄ sudoκ°€ ν•„μš”ν•©λ‹ˆλ‹€.
visudoλ₯Ό 톡해 sudoers에 μΆ”κ°€ν•˜λ©΄ sudoκ°€ μ•„λ‹Œ μ•”ν˜Έκ°€ ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
닀이얼아웃 그룹에 μ‚¬μš©μžλ₯Ό 좔가해도 아무 것도 λ³€κ²½λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
udev κ·œμΉ™μ— GROUP="myusername",\ 쀄을 좔가해도 아무 것도 λ³€κ²½λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
sudo에 λŒ€ν•œ μ΄λŸ¬ν•œ ν•„μš”μ„±μ„ μ œκ±°ν•˜λŠ” 방법에 λŒ€ν•œ λ¬Έμ„œλ₯Ό μ œκ³΅ν•˜μ—¬ IDE(예: VSCode 및 기타)μ™€μ˜ 톡합을 훨씬 더 μ‰½κ²Œ λ§Œλ“œλŠ” 방법에 λŒ€ν•œ λ¬Έμ„œλ₯Ό μ œκ³΅ν•˜λ©΄ 맀우 감사할 κ²ƒμž…λ‹ˆλ‹€.

generadocumention olinux question staturesolved

λͺ¨λ“  8 λŒ“κΈ€

stlinkλŠ” μ–΄λ–»κ²Œ μ„€μΉ˜ν•˜μ…¨λ‚˜μš”?
λ‹€μŒμ„ μˆ˜ν–‰ν•˜λ©΄ λͺ…령을 μ‹€ν–‰ν•˜λŠ” 데 sudoκ°€ ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(루트둜 μ‹€ν–‰λ˜μ§€ μ•ŠλŠ” ν•œ).

git clone https://github.com/texane/stlink.git
cd stlink/build
cmake ..
make && sudo make install

아직 μ—…λ°μ΄νŠΈν•˜μ§€ μ•Šμ€ 경우 udev κ·œμΉ™μ„ μ—…λ°μ΄νŠΈν•΄μ•Ό ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
stlink_udev_rule.tar.bz2
sudo tar -xvf stlink_udev_rule.tar.bz2 -C /etc/udev/rules.d

μ•ˆλ…•ν•˜μ„Έμš” λΉ λ₯Έ λ‹΅λ³€ κ°μ‚¬ν•©λ‹ˆλ‹€
였늘 λ‚˜λŠ” λ§ˆμ§€λ§‰ μžμ‹μ„ λ½‘μ•˜λ‹€ (6a9d390a729f381ecec45f212354bfe98e27790f)
그런 λ‹€μŒ λΉŒλ“œμ—μ„œ λ‚΄κ°€ ν•œ
make clean
cmake ..
make && sudo make install

λ˜ν•œ udev κ·œμΉ™μ„ /etc/udev/rules.d. λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€.
udev κ·œμΉ™μ„ μ‹€ν–‰ κ°€λŠ₯ν•˜κ²Œ λ§Œλ“  λ‹€μŒ 전체 컴퓨터λ₯Ό λ‹€μ‹œ μ‹œμž‘ν•©λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ λ‚΄κ°€ ν•  λ•Œ
st-flash write main.bin 0x8000000
λ‚˜λŠ” μ–»μ—ˆλ‹€
st-flash 1.4.0-58-g6a9d390
2019-01-24T22:21:17 INFO usb.c: bus 483 dev 3748
2019-01-24T22:21:17 WARN usb.c: Couldn't find matched ST-Link/V2 devices
λ°˜λ©΄μ— λ‚΄κ°€ ν•œλ‹€λ©΄
sudo st-flash write main.bin 0x8000000
잘 μž‘λ™ν•©λ‹ˆλ‹€.

정보λ₯Ό μœ„ν•΄
lsb_release -a && uname -a
λ‚  μž‘μ•„λ΄
No LSB modules are available.
Distributor ID: neon
Description: KDE neon User Edition 5.14
Release: 18.04
Codename: bionic
Linux zalman 4.15.0-43-generic #46-Ubuntu SMP Thu Dec 6 14:45:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

당신은 λ‚΄κ°€ λ¬΄μ—‡μ„ν•΄μ•Όν•˜λŠ”μ§€ 생각이 μžˆμŠ΅λ‹ˆκΉŒ?
μ•ˆλΆ€

μš°λΆ„νˆ¬ 18.04μ—μ„œ 잘 μž‘λ™ν•©λ‹ˆλ‹€.

μ‘°μ‚¬ν•˜λ €λ©΄ λ¨Όμ € STLINK μž₯치λ₯Ό USB ν¬νŠΈμ— μ—°κ²°ν•˜μ‹­μ‹œμ˜€. 그런 λ‹€μŒ lsusb ν•©λ‹ˆλ‹€. λ‹€μŒκ³Ό 같은 ν•­λͺ©μ΄ ν‘œμ‹œλ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

Bus 005 Device 017: ID 0483:374b STMicroelectronics ST-LINK/V2.1 (Nucleo-F103RB)

λ²„μŠ€ 번호(005)와 μž₯치(017)λ₯Ό 기둝해 λ‘μ‹­μ‹œμ˜€. λ‹€μŒμ„ μˆ˜ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€.
ls -l /dev/bus/usb/005/017 (005 및 017을 μ μ ˆν•˜κ²Œ λŒ€μ²΄).

λ‚΄ μ‹œμŠ€ν…œμ—λŠ” λ‹€μŒμ΄ ν‘œμ‹œλ©λ‹ˆλ‹€.

crw-rw-rw- 1 root root 189, 528 Jan 24 17:52 /dev/bus/usb/005/017

이것은 μ„Έκ³„μ—μ„œ μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€(μ•„λž˜μ˜ MODE:="0666"μ—μ„œ κ°€μ Έμ˜΄). λ‚΄ /etc/udev/rules.d 디렉토리에 μ—¬λŸ¬ 파일이 μžˆμŠ΅λ‹ˆλ‹€. 이 νŠΉλ³„ν•œ 경우 49-stlinkv2-1.rules νŒŒμΌμ—λŠ” λ‹€μŒμ΄ ν¬ν•¨λ©λ‹ˆλ‹€.

# stm32 nucleo boards, with onboard st/linkv2-1
# ie, STM32F0, STM32F4.
# STM32VL has st/linkv1, which is quite different

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", \
    MODE:="0666", \
    SYMLINK+="stlinkv2-1_%n"

# If you share your linux system with other users, or just don't like the
# idea of write permission for everybody, you can replace MODE:="0666" with
# OWNER:="yourusername" to create the device owned by you, or with
# GROUP:="somegroupname" and mange access using standard unix groups.

idVendor od 0483 및 idProduct 374bλŠ” lsusb 좜λ ₯의 곡급업체 ID와 μΌμΉ˜ν•©λ‹ˆλ‹€.

/etc/udev/rules.d 디렉토리에 https://github.com/texane/stlink/tree/master/etc/udev/rules.d μ—μ„œ 3개의 파일이 λͺ¨λ‘ μžˆλŠ”μ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€. /etc/udev/ruled.dμ—μ„œ μƒˆ νŒŒμΌμ„ λ³΅μ‚¬ν•˜κ±°λ‚˜ κΈ°μ‘΄ νŒŒμΌμ„ νŽΈμ§‘ν•œ ν›„ λ‹€μŒμ„ μ‹€ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€.

sudo udevadm control --reload-rules
sudo udevadm trigger

κ·œμΉ™μ΄ μ‹€μ œλ‘œ μ μš©λ˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€. trigger λͺ…령을 μ‚¬μš©ν•˜λ©΄ μž₯치의 ν”ŒλŸ¬κ·Έλ₯Ό λ½‘μ•˜λ‹€κ°€ λ‹€μ‹œ 꽂을 ν•„μš”κ°€ μ—†μ§€λ§Œ μ μ ˆν•œ 쑰치λ₯Ό μœ„ν•΄ μ‹œλ„ν•΄ λ³Ό μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

μž₯치의 VID:PID κ°€ 3개의 파일 쀑 μ–΄λŠ 것과도 μΌμΉ˜ν•˜μ§€ μ•ŠμœΌλ©΄ VID:PID 와 μΌμΉ˜ν•˜λ„λ‘ μ‚¬μš©μž 지정 κ·œμΉ™ νŒŒμΌμ„ 생성해야 ν•  수 μžˆμŠ΅λ‹ˆλ‹€

μ•ˆλ…•ν•˜μ„Έμš” λ‹΅λ³€ν•΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€
λ‚˜λŠ” 이 λͺ¨λ“  것을 ν–ˆλ‹€
ls -l /dev/bus/usb/001/011 crw-rw-rw-+ 1 root root 189, 10 Jan 25 19:56 /dev/bus/usb/001/011
그것은 μ—¬μ „νžˆ β€‹β€‹λ™μΌν•©λ‹ˆλ‹€.
sudo visudo에 λͺ…령을 μΆ”κ°€ν•˜λ©΄ 더 이상 μ•”ν˜Έλ₯Ό μž…λ ₯ν•  ν•„μš”κ°€ μ—†μ§€λ§Œ μ—¬μ „νžˆ sudoκ°€ ν•„μš”ν•©λ‹ˆλ‹€.
μ΄μƒν•˜λ‹€

@dhylands κ΄‘λ²”μœ„ν•œ μ„€λͺ…μœΌλ‘œ λ¬Έμ„œλ₯Ό μ—…λ°μ΄νŠΈν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ? https://github.com/texane/stlink/blob/master/doc/compiling.md#permissions -with-udevμ—μ„œ.

@dhylands : κ·€ν•˜μ˜ μ„€λͺ…을 λ¬Έμ„œμ— λ³΅μ‚¬ν•˜μ—¬ 뢙여넣어도 λ κΉŒμš”?

@Nightwalker-87 κΌ­ - 뢀담없이.

@davehylands : 도움이 λ˜λŠ” 기여와 ν”Όλ“œλ°±μ— κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

이제 udev ꡬ성이 μž‘λ™ν•œλ‹€λŠ” 것을 μ•Œκ³  μžˆλŠ” 컀밋 d3c11fbef6d8205742152f646b223323dc4c0913으둜 이것을 λ‹«μŠ΅λ‹ˆλ‹€.
졜근 λ°λΉ„μ•ˆ μ‹œμŠ€ν…œμ—μ„œλ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ¬Έμ œλŠ” μž¬ν˜„ν•  수 μ—†λŠ” 둜컬 μ„€μΉ˜μ˜ 격리된 문제인 것 κ°™μŠ΅λ‹ˆλ‹€.
결둠은 κΈ°λ³Έ μ‚¬μš©μž κΆŒν•œμœΌλ‘œ μƒˆλ‘œ(μ‹œμŠ€ν…œ) μ„€μΉ˜λ₯Ό λ‹€μ‹œ μ‹œλ„ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰