Stlink: [doc]デバイスアクセス用の正しいudev構成を確認します

作成日 2019年01月22日  ·  8コメント  ·  ソース: stlink-org/stlink

Ubuntuおよびdeirvatedディストリビューションでは、st-flashおよびst-utilが正しく機能するためにsudoが必要です。
それらを(visudoを介して)sudoersに追加すると、パスワードは不要になりますが、sudoは不要になります。
ユーザーをダイヤルアウトグループに追加しても、何も変更されません。
GROUP = "myusername"、\行をudevルールに追加しても、何も変更されません。
このsudoの必要性を取り除く方法に関するドキュメントを提供していただければ幸いです。そうすることで、IDE(VSCodeなど)との統合が非常に簡単になります。

generadocumention olinux question staturesolved

全てのコメント8件

どのようにstlinkをインストールしましたか?
以下を実行する場合、コマンドを実行するためにsudoは必要ありません(rootとして実行されない限り)。

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

こんにちは、迅速な回答に感謝します
今日は最後のgitをプルしました(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

あなたは私が何をすべきか、考えがありますか?
宜しくお願いします

それはubuntu18.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および374bのidProductは、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つのファイルのいずれとも一致しない場合は、

こんにちは、ありがとうございます
私はこれをすべてやりました
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構成が機能していることがわかっているので、commitd3c11fbef6d8205742152f646b223323dc4c0913でこれを閉じます。
これは最近のDebianシステムでも確認できます。

この問題は、ローカルインストールで発生する孤立した問題であり、再現できないようです。
最後のアドバイスは、デフォルトのユーザー権限でクリーン(システム)インストールを再試行することです。

このページは役に立ちましたか?
0 / 5 - 0 評価