Stlink: [doc] Verifique la configuración de udev correcta para el acceso al dispositivo

Creado en 22 ene. 2019  ·  8Comentarios  ·  Fuente: stlink-org/stlink

En Ubuntu y distribuciones deirvated, st-flash y st-util requieren que sudo funcione correctamente.
Agregarlos a sudoers (a través de visudo) elimina la necesidad de contraseña pero no de sudo.
Agregar el usuario al grupo de marcación no cambiará nada.
Agregar un GROUP = "myusername", \ line a las reglas de udev no cambiará nada.
Sería muy apreciado proporcionar documentación sobre cómo eliminar esta necesidad de sudo, para que la integración con IDE (como VSCode y otros) sea mucho más fácil.

generadocumention olinux question staturesolved

Todos 8 comentarios

¿Cómo instalaste stlink?
Si hace lo siguiente, no debería necesitar sudo para ejecutar los comandos (siempre que no se ejecute como root):

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

Tenga en cuenta que es posible que también deba actualizar sus reglas de udev si aún no lo ha hecho.
stlink_udev_rule.tar.bz2
sudo tar -xvf stlink_udev_rule.tar.bz2 -C /etc/udev/rules.d

Hola y gracias por la rápida respuesta.
hoy saqué el último git (6a9d390a729f381ecec45f212354bfe98e27790f)
luego en construir lo hice
make clean
cmake ..
make && sudo make install

También copié las reglas de udev en /etc/udev/rules.d.
Hice ejecutable la regla udev y luego reinicio toda la computadora

Sin embargo, cuando lo hago
st-flash write main.bin 0x8000000
tengo
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
Si por otro lado lo hago
sudo st-flash write main.bin 0x8000000
Funciona bien.

Solo para información
lsb_release -a && uname -a
consígueme
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

¿Tienes una idea, qué debo hacer?
cordial saludo

Funciona bien para mí bajo ubuntu 18.04.

Para investigar, comience conectando su dispositivo STLINK al puerto USB. Luego ejecute lsusb . Debería ver una entrada similar a la siguiente:

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

Anote el número de bus (005) y el dispositivo (017). Entonces deberías hacer:
ls -l /dev/bus/usb/005/017 (reemplazando apropiadamente 005 y 017).

En mi sistema veo lo siguiente:

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

que se puede escribir en todo el mundo (esto es del MODO: = "0666" a continuación). Tengo varios archivos en mi directorio /etc/udev/rules.d. En este caso particular, el archivo 49-stlinkv2-1.rules contiene lo siguiente:

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

y el idVendor od 0483 y el idProduct de 374b coinciden con el id del proveedor de la salida lsusb.

Asegúrese de tener los 3 archivos desde aquí: https://github.com/texane/stlink/tree/master/etc/udev/rules.d en su directorio /etc/udev/rules.d. Después de copiar archivos nuevos o editar archivos existentes en /etc/udev/ruled.d, debe ejecutar lo siguiente:

sudo udevadm control --reload-rules
sudo udevadm trigger

para asegurar que las reglas realmente entren en vigencia. El uso del comando de activación significa que no debería necesitar desconectar y volver a conectar el dispositivo, pero es posible que también desee intentarlo por si acaso.

Si el VID: PID de su dispositivo no coincide con los de ninguno de los 3 archivos, es posible que deba crear un archivo de reglas personalizado para que coincida con su VID: PID.

Hola y gracias por tu respuesta
Hice todo esto
ls -l /dev/bus/usb/001/011 crw-rw-rw-+ 1 root root 189, 10 Jan 25 19:56 /dev/bus/usb/001/011
Sigue siendo el mismo.
Al agregar el comando en sudo visudo, ya no tengo que ingresar la contraseña, pero aún necesito sudo.
Eso es raro

@dhylands ¿le gustaría actualizar la documentación con la descripción detallada? En https://github.com/texane/stlink/blob/master/doc/compiling.md#permissions -with-udev.

@dhylands : ¿Puedo copiar y pegar su descripción en nuestra documentación?

@ Nightwalker-87 Por supuesto, siéntete libre.

@davehylands : Gracias por su valiosa contribución y comentarios.

Cerrando esto con la confirmación d3c11fbef6d8205742152f646b223323dc4c0913, ya que ahora sabemos que la configuración de udev es funcional.
También puedo confirmar esto con un sistema debian reciente.

El problema parece ser un problema aislado en una instalación local que no podemos reproducir.
Un consejo final es reintentar con una instalación limpia (del sistema) con permisos de usuario predeterminados.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

Hamid-Najafi picture Hamid-Najafi  ·  8Comentarios

tabemann picture tabemann  ·  5Comentarios

ceremcem picture ceremcem  ·  12Comentarios

Vascom picture Vascom  ·  7Comentarios

bolorkhuu picture bolorkhuu  ·  11Comentarios