Ubuntu系统无sudo权限无法启动J-Link GDB Server问题求解
问题解决方法
你遇到的是Linux系统下默认普通用户无USB设备访问权限的问题,J-Link探针默认只有root权限可以读写,因此非sudo状态下无法识别,Eclipse以普通用户启动时自然也会触发相同报错。
可通过配置udev规则永久解决该问题,操作步骤如下:
第一步:创建J-Link专用的udev规则文件
执行如下命令创建规则文件:sudo tee /etc/udev/rules.d/99-jlink.rules <<EOF # SEGGER J-Link probes SUBSYSTEM=="usb", ATTRS{idVendor}=="1366", MODE="0666", GROUP="plugdev" EOF该规则会将所有VID为1366(SEGGER官方厂商ID)的USB设备匹配到规则中,开放读写权限给plugdev用户组。
第二步:将当前用户加入plugdev用户组
sudo usermod -aG plugdev $USER确保你的操作账号属于plugdev组,有权限访问规则匹配的J-Link设备。
第三步:重载udev规则使配置生效
sudo udevadm control --reload-rules sudo udevadm trigger第四步:生效验证
先拔下J-Link探针再重新插入,之后*重启用户会话(或者直接重启系统)*让组权限生效。
此时不需要加sudo直接运行./JLinkGDBServerCLExe即可正常识别J-Link设备,正常启动的Eclipse也可以正常调用调试接口,无需以sudo权限启动Eclipse避免工作区权限混乱。额外排查项(针对虚拟机环境)
确保你虚拟机的USB捕获规则已配置正确,J-Link设备没有被宿主机占用,每次插入时要确认挂载到Ubuntu虚拟机中。
内容的提问来源于stack exchange,提问作者Martin Denion
相关产品推荐
相关产品推荐

