Ubuntu λ° νμ λ°°ν¬νμμ st-flash λ° st-utilμ΄ μ λλ‘ μλνλ €λ©΄ sudoκ° νμν©λλ€.
visudoλ₯Ό ν΅ν΄ sudoersμ μΆκ°νλ©΄ sudoκ° μλ μνΈκ° νμνμ§ μμ΅λλ€.
λ€μ΄μΌμμ κ·Έλ£Ήμ μ¬μ©μλ₯Ό μΆκ°ν΄λ μ무 κ²λ λ³κ²½λμ§ μμ΅λλ€.
udev κ·μΉμ GROUP="myusername",\ μ€μ μΆκ°ν΄λ μ무 κ²λ λ³κ²½λμ§ μμ΅λλ€.
sudoμ λν μ΄λ¬ν νμμ±μ μ κ±°νλ λ°©λ²μ λν λ¬Έμλ₯Ό μ 곡νμ¬ IDE(μ: VSCode λ° κΈ°ν)μμ ν΅ν©μ ν¨μ¬ λ μ½κ² λ§λλ λ°©λ²μ λν λ¬Έμλ₯Ό μ 곡νλ©΄ λ§€μ° κ°μ¬ν κ²μ
λλ€.
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μΌλ‘ μ΄κ²μ λ«μ΅λλ€.
μ΅κ·Ό λ°λΉμ μμ€ν
μμλ νμΈν μ μμ΅λλ€.
λ¬Έμ λ μ¬νν μ μλ λ‘컬 μ€μΉμ 격리λ λ¬Έμ μΈ κ² κ°μ΅λλ€.
κ²°λ‘ μ κΈ°λ³Έ μ¬μ©μ κΆνμΌλ‘ μλ‘(μμ€ν
) μ€μΉλ₯Ό λ€μ μλνλ κ²μ
λλ€.