es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede iniciar el servidor J-Link GDB en Ubuntu.

Actualmente estoy trabajando en el ARM Cortex-M4 dentro del NXP i.MX8M Mini.
Soy capaz de compilar un proyecto para M4 en el entorno de desarrollo Eclipse en una máquina virtual de Ubuntu.
Ahora me gustaría depurar en el M4 a través de una sonda SEGGER Flasher ARM, aún desde Ubuntu.

Mi sonda es reconocida por Ubuntu y puedo lanzar el servidor J-Link GDB simplemente escribiendo el comando:

$ sudo ./JLinkGDBServerCLExe

Sin embargo, si escribo el mismo comando sin sudo, obtengo:

$ ./JLinkGDBServerCLExe
SEGGER J-Link GDB Server V7.58b Command Line Version

JLinkARM.dll V7.58b (DLL compilada el 16 de noviembre de 2021 a las 15:04:27)

—–Configuración de inicio del servidor GDB—–
Archivo GDBInit: ninguno
Puerto de escucha del servidor GDB: 2331
Puerto de escucha de salida SWO en bruto: 2332
Puerto de E/S de terminal: 2333
Aceptar conexión remota: sí
Generar archivo de registro: desactivado
Verificar la descarga: desactivado
Iniciar registros en el inicio: desactivado
Modo silencioso: desactivado
Modo de ejecución única: desactivado
Tiempo de espera de conexión al objetivo: 0 ms
——Configuración relacionada con J-Link——
Interfaz de host J-Link: USB
Script de J-Link: ninguno
Archivo de configuración de J-Link: ninguno
——Configuración relacionada con el objetivo——
Dispositivo de destino: no especificado
Interfaz de destino: JTAG
Velocidad de la interfaz de destino: 4000 kHz
Éndian del objetivo: poco

Conectando con J-Link…
La conexión con J-Link ha fallado. ¿Está conectado correctamente?
Se cerrará el servidor GDB…
Apagando…
No se pudo conectar con J-Link.
Por favor, compruebe la alimentación, la conexión y la configuración.

Mi problema es que al iniciar Eclipse, obtengo el mismo resultado que cuando inicio el servidor GDB sin sudo.
Parece que se trata de un problema de permisos, ¿cómo puedo solucionarlo?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema parece estar relacionado con los derechos de acceso, ya que iniciar el servidor GDB sin sudo resulta en un error de conexión. Para resolver este problema, podemos intentar otorgar los permisos necesarios al usuario agregando una regla udev para el dispositivo SEGGER.

    A continuación, se detallan los pasos:

    1. Identifique el dispositivo SEGGER ejecutando el siguiente comando en una terminal:

      $ lsusb

      Esto debería listar todos los dispositivos USB conectados al sistema. Busque el dispositivo SEGGER, que debería tener una ID similar a “1366:0105”.

    2. Cree una nueva regla udev ejecutando el siguiente comando:

      $ sudo nano /etc/udev/rules.d/99-segger.rules

      Esto abrirá un nuevo archivo en el editor nano.

    3. Inserte la siguiente línea en el archivo, reemplazando la ID con la encontrada en el paso 1:

      SUBSYSTEM=="usb", ATTR{idVendor}=="1366", ATTR{idProduct}=="0105", MODE="0666"

      Esta regla otorga acceso de lectura y escritura a todos los usuarios.

    4. Guarde y cierre el archivo presionando “Ctrl + X”, luego “Y” y luego “Enter”.

    5. Recargue las reglas udev utilizando el siguiente comando:

      $ sudo udevadm control --reload

    6. Desconecte y vuelva a conectar el dispositivo SEGGER.

    7. Intente iniciar el servidor GDB y Eclipse sin usar sudo. Si el problema persiste, intente reiniciar el sistema.

    Al agregar la regla udev, hemos otorgado los permisos necesarios para acceder al dispositivo SEGGER sin sudo, lo que debería habilitarnos para depurar el M4 a través de la sonda SEGGER Flasher ARM en Ubuntu.

Comments are closed.