
在win10-wsl2(ubuntu)中安装jlink
在 官方下载linux版本的deb包拷贝到ubuntu的/home目录下(其他目录也可以),进行安装然后提示很多依赖缺失的错误,此时执行自动安装需要的依赖包再次重新安装就可以啦查看是否安装成功,输入JLink 再按下两次Table键,是否如下所示这样表示安装成功了。
在win10-wsl2(ubuntu)中安装jlink
1. 下载jlink的linux版本驱动
在 官方下载linux版本的deb包
SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace
拷贝到ubuntu的/home目录下(其他目录也可以),进行安装
sudo dpkg -i JLink_Linux_V788e_x86_64.deb
然后提示很多依赖缺失的错误,此时执行自动安装需要的依赖包
sudo apt install -f
再次重新安装就可以啦
sudo dpkg -i JLink_Linux_V788e_x86_64.deb
查看是否安装成功,输入JLink 再按下两次Table键,是否如下所示
这样表示安装成功了
2. 连接jlink
执行jlink操作
JLinkExe
出现连接失败,如下所示
原因:WSL2和WSL相比是真正的虚拟环境,功能也更加强大。但正是因为如此,所以硬件环境也是完全隔离的,不能像WSL一样直接引用Windows下的COM。如果想在WSL2下使用jlink,必须解决访问宿主机USB的问题
3. 解决WSL2使用USB的问题
下载usbipd-win的msi安装包
dorssel/usbipd-win:用于将本地连接的USB设备共享到其他计算机(包括Hyper-V来宾和WSL 2)的Windows软件。 (github.com)
Release usbipd-win 3.0.0 · dorssel/usbipd-win (github.com)
官方介绍解决方案:
window: 首先下载msi包usbipd,安装,并加入环境变量
管理员模式打开PowerShell,查看usbipd
查看当前所有usb设备
linux: 如下安装
sudo apt install linux-tools-generic hwdata sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20
查看usb 设备
lsusb
当前还是没有jlink设备的
此时需要在window的管理员PowerShell中将jlink这个USB设备关联到WSL2中去
usbipd wsl attach --busid=<busid>
attach完成后再Linux中查看usb设备
lsusb
此时已经有了jlink设备
执行jlink操作
JLinkExe
可以正确识别jlink设备
尝试连接GD32芯片
此时连接芯片也正常
4. window想再次使用jlink处理方式
当attach jlink至wsl后,window不再能使用jlink了,如果再window下需要再次使用,需要先detach
usbipd wsl detach --busid=<busid>
5. 当wsl中usbip异常
-
当window下usbipd wsl list 可以正常显示,但是wsl下的usbip报错如下
# 执行usbip,查看错误信息 yang@DESKTOP-A0TQ4LV:/usr/bin$ ./usbip WARNING: usbip not found for kernel 5.15.90.1-microsoft You may need to install the following packages for this specific kernel: linux-tools-5.15.90.1-microsoft-standard-WSL2 linux-cloud-tools-5.15.90.1-microsoft-standard-WSL2 You may also want to install one of the following packages to keep up to date: linux-tools-standard-WSL2 linux-cloud-tools-standard-WSL2
-
查看是否已经安装linux-tools-generic
# 查看linux-tools的版本 yang@DESKTOP-A0TQ4LV:~$ ls /usr/lib/linux-tools/ 5.15.0-83-generic yang@DESKTOP-A0TQ4LV:~$ # 查看linux-tools/*-generic/中是否有usbip yang@DESKTOP-A0TQ4LV:~$ ls /usr/lib/linux-tools/5.15.0-83-generic/ acpidbg bpftool cpupower libperf-jvmti.so perf turbostat usbip usbipd x86_energy_perf_policy yang@DESKTOP-A0TQ4LV:~$
-
如果没有linux-tools则需要安装
# 安装 sudo apt install linux-tools-generic hwdata # 更新链接(这里为什么是usr/local/bin而不是usr/bin ??) sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20
-
如果已经安装linux-tools并且存在usbip
# 已经安装了还是出错,查看错误信息后发现是内核版本不对 # 内核是5.15.90.1,而linux-tools的是5.15.0-83; # 所以需要重新更新链接 sudo update-alternatives --install /usr/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20
-
此时在执行usbip则正常了,会显示相关操作信息
yang@DESKTOP-A0TQ4LV:~$ usbip usage: usbip [--debug] [--log] [--tcp-port PORT] [version] [help] <command> <args> attach Attach a remote USB device detach Detach a remote USB device list List exportable or local USB devices bind Bind device to usbip-host.ko unbind Unbind device from usbip-host.ko port Show imported USB devices
参考:
更多推荐
所有评论(0)