Stlink: [doc] Verifique a configuração correta do udev para acesso ao dispositivo

Criado em 22 jan. 2019  ·  8Comentários  ·  Fonte: stlink-org/stlink

No Ubuntu e distros deirvated, st-flash e st-util requerem sudo para funcionar corretamente.
Adicioná-los a sudoers (via visudo) remove a necessidade de senha, mas não de sudo.
Adicionar o usuário ao grupo de discagem não mudará nada.
Adicionar uma linha GROUP = "myusername", \ às regras do udev não mudará nada.
Seria muito apreciado fornecer documentação sobre como remover essa necessidade de sudo, para que ele torne a integração com IDEs (como VSCode e outros) muito mais fácil.

generadocumention olinux question staturesolved

Todos 8 comentários

Como você instalou o stlink?
Se você fizer o seguinte, não precisará do sudo para executar os comandos (contanto que não seja executado como root):

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

Observe que também pode ser necessário atualizar as regras do udev, caso ainda não o tenha feito.
stlink_udev_rule.tar.bz2
sudo tar -xvf stlink_udev_rule.tar.bz2 -C /etc/udev/rules.d

Ola e obrigado pela resposta rapida
hoje puxei o último git (6a9d390a729f381ecec45f212354bfe98e27790f)
então na construção eu fiz
make clean
cmake ..
make && sudo make install

Eu também copiei as regras do udev para /etc/udev/rules.d.
Tornei a regra do udev executável e reinicio todo o computador

Porém quando eu faço
st-flash write main.bin 0x8000000
eu obtive
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
Se por outro lado eu faço
sudo st-flash write main.bin 0x8000000
Funciona bem.

Apenas para informação
lsb_release -a && uname -a
me pega
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

Você tem uma ideia, o que devo fazer?
os meus cumprimentos

Funciona bem para mim no Ubuntu 18.04.

Para investigar, comece conectando seu dispositivo STLINK na porta USB. Em seguida, execute lsusb . Você deve ver uma entrada semelhante a esta:

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

Observe o número do barramento (005) e o dispositivo (017). Você deve então fazer:
ls -l /dev/bus/usb/005/017 (substituindo 005 e 017 apropriadamente).

No meu sistema, vejo o seguinte:

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

que é mundialmente gravável (isto é do MODO: = "0666" abaixo). Tenho vários arquivos em meu diretório /etc/udev/rules.d. Neste caso específico, o arquivo 49-stlinkv2-1.rules contém o seguinte:

# 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.

e o idVendor od 0483 e idProduct de 374b corresponde ao id do fornecedor da saída lsusb.

Certifique-se de ter todos os 3 arquivos aqui: https://github.com/texane/stlink/tree/master/etc/udev/rules.d em seu diretório /etc/udev/rules.d. Após copiar novos arquivos ou editar arquivos existentes em /etc/udev/ruled.d, você deve executar o seguinte:

sudo udevadm control --reload-rules
sudo udevadm trigger

para garantir que as regras realmente entrem em vigor. Usar o comando de gatilho significa que você não deve precisar desconectar e reconectar o dispositivo, mas você pode querer tentar isso também.

Se o VID: PID do seu dispositivo não corresponder aos de nenhum dos 3 arquivos, pode ser necessário criar um arquivo de regra personalizado para corresponder ao seu VID: PID.

Olá e obrigado pela sua resposta
Eu fiz tudo isso
ls -l /dev/bus/usb/001/011 crw-rw-rw-+ 1 root root 189, 10 Jan 25 19:56 /dev/bus/usb/001/011
Ainda é o mesmo.
Ao adicionar o comando no sudo visudo, não preciso mais inserir a senha, mas ainda preciso do sudo.
Isso é estranho

@dhylands você gostaria de atualizar a documentação com a descrição extensa? Em https://github.com/texane/stlink/blob/master/doc/compiling.md#permissions -with-udev.

@dhylands : Posso copiar e colar sua descrição em nossa documentação?

@ Nightwalker-87 Por todos os meios - fique à vontade.

@davehylands : Obrigado por sua contribuição e feedback úteis.

Fechando isso com commit d3c11fbef6d8205742152f646b223323dc4c0913, já que sabemos agora que a configuração do udev está funcional.
Posso confirmar isso com um sistema debian recente também.

O problema parece ser um problema isolado em uma instalação local que não podemos reproduzir.
Um conselho final é tentar novamente com uma instalação limpa (sistema) com permissões de usuário padrão.

Esta página foi útil?
0 / 5 - 0 avaliações