ST-Link/V2不能挂载到VirtualBox的解决办法

VirtualBox从ST-Link/V2读到的序列号是乱码,在虚拟机设置中将ST-Link/V2添加到USB设备筛选器中,并编辑该筛选器将其序列号清空,就可以解决这个问题。



原文:http://blog.csdn.net/zoomdy/article/details/45765577

mingdu.zheng at gmail dot com


问题现象

试图在VirtualBox中挂载STMicroelectronics STM32 STLink设备时,会弹出如下对话框:

对话框显示:

不能分配 USB设备 STMicroelectronics STM32 STLink [0100] 到虚拟电脑

USB device ‘STMicroelectronics STM STLink’ with UUID {e14e050b-6e9c-4ce2-b506-f2e8795e4424} is busy with a previous request. Please try again later.

明细内容:

返回 代码:

E_INVALIDARG (0x80070057)

组件:

HostUSBDevice

界面:

IHostUSBDevice {173b4b44-d268-4334-a00d-b6521c9a740a}

被召者:

IConsole {8ab7c520-2442-4b66-8d74-4ff1e195d2b6}

这种错误出现在Host OS是Windows的情况。

解决办法

打开虚拟机设置,选择 USB设备 分类,点击右边带加号的按钮,在弹出菜单中选择 STMicroelectronics STM32 STLink [0100] (仅在已经插入ST-Link的情况下才会有,如果没有这一项,请先将ST-Link插入您的电脑),这将创建一个新的 USB设备筛选器 ;选中刚创建的筛选器,点击右边带圆圈的按钮,弹出 USB筛选器明细 ,可以看到 序列号(S) 输入框内的字符串为乱码,将该输入框内的所有字符清空,点击 确定 保存筛选器。重新启动虚拟机后,ST-Link已正常挂载到了Guest OS中。

Host OS为Linux的情况

当Host OS为Linux时,如果是通过虚拟机菜单 设备>>分配USB设备 挂载的是没有问题的,如果是在设置对话框中通过 USB设备筛选器 挂载的,那么下次打开虚拟机控制台时会报告 .vbox 文件错误,.vbox是xml文件,但是添加了ST-Link设备筛选器后,它的一些信息(包括序列号)会写入到.vbox文件,ST-Link的序列号是乱码,因此这个.vbox里面就包含了乱码。因此如果通过 USB设备筛选器 挂载,也应当将序列号清空,如果已经出现了报告.vbox文件错误的情况,那么用文本编辑打开.vbox文件,将报错的那一行的乱码字符串删除变成空字符串即可。

的博客保存到服务器草稿箱,即使换浏览器或者清除缓存,内容也不会丢失。

时间: 2024-09-29 23:58:48

ST-Link/V2不能挂载到VirtualBox的解决办法的相关文章

U盘安装Ubuntu14.04 server版 提示无法挂载cd-rom数据的解决办法

今天准备安装Ubuntu14.04跑docker,去官网地址下载好镜像后,用大白菜的IOS模式直接刻录在U盘上. 开机进入BIOS,设置U盘启动,进去后一路顺利,可是选了语言和键盘模式后,老是提示大概说是CD-ROM无法读取,是否retry? 解决此问题的办法是: 把系统镜像ios文件copy到U盘根目录下,然后插入电脑,bios设置U盘启动--进入到刚才提示cd-rom无法读取的步骤,此时可以选择NO,返回上一步,有一个选项大概是进入SHELL之类的,选择进去. 然后查看下/dev/下面的几个

PIC24F08KA101 Link Error: Could not allocate program memory[解决办法]

使用 mplab x 3.5 验证SM4 的时间成本时遇到: build/default/production/_ext/1472/sm4.o: Link Error: Could not allocate section .text, size = 2260 PC units, attributes = code Link Error: Could not allocate program memory 目前有两种方案: 1)删除不相关代码 2)工程配置优化级别为s

st link flash timeout reset the target try it againt

今天在下载代码时出现如下错误, 网上查找了找原因,是因为之前代码设置了读保护功能. 读保护即大家通常说的"加密",是作用于整个Flash存储区域.一旦设置了Flash的读保护,内置的Flash存储区只能通过程序的正常执行才能读出,而不能通过下述任何一种方式读出:通过调试器(JTAG或SWD):从RAM中启动并执行的程序: 如何进行读保护可以自行百度,设置相应代码. 下面进行清除读保护工作, 首先,将boot0,1拉高,再用flymcu进行清除芯片,如下图所示. 成功好就可正常通过ST

虚拟机硬盘vmdk压缩瘦身并挂载到VirtualBox

这个问题其实困扰了挺久的,一直没闲情去解决,网上搜索过很多压缩方法感觉都太麻烦太复杂,因最近在windows上搞docker就一并解决了. 压缩vmdk 首先下载DiskGenius,这工具很牛X,相信很多人都用过其硬盘分区.合并.数据恢复等功能,可谓相当强大,甚至虚拟硬盘文件也不放过... 首先把要压缩的虚拟硬盘vmdk打开(菜单:"硬盘 –> 打开虚拟硬盘文件").打开后就可以在左边的窗口中看到加载上的虚拟磁盘了. 新建一个容量不小于源虚拟硬盘的虚拟硬盘vmdk文件 选择(菜

关于 xshell ssh登录 virtualbox linux虚拟机问题的解决办法

解决办法是: 在virtualbox里做端口转发 具体的请参考: http://www.2cto.com/os/201212/172712.html

【XS128】Link error L1822 symbol _FADD / _FSUB/ _FDIV/ _FMUL.....错误解决办法

这是飞思卡尔 XS128平台比较常见的LINK错误. 但是要解决起来也比较头疼. 很多人也许有这样的经历,整个工程目录是在别人做过的所有文件拷贝过来然后修改代码符合自己项目要求而产生的.这就发生了一个问题, 当初新建工程时的很多配置,比如预处理器配置,就会出现不适用当前项目.比如,本文所要提到的链接错误. 这个错误发生于: 原工程在新建的时候在某一步有与float相关的三个选项,如图: 如果你选择了none,那么不幸的是,如果在代码中加入关于float的四则运算等代码,就会出现该链接错误. 然而

mysql 5.1超过默认8小时空闲时间解决办法(错误:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure)

报错: MySQL第二天早上第一次连接超时报错, com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 原因: 上述问题是由mysql5数据库的配置引起的.mysql5将其连接的等待时间(wait_timeout .interactive_timeout)缺省为8小时.在其客户程序中可以这样来查看其值: mysql> show global variables like 'wait

[转]genymotion Unable to load VirtualBox engine 某种解决办法

genymotion Unable to load VirtualBox engine 某种解决办法 耳闻genymotion这款模拟器很强力.于是下下来试试看.我的机器上是有virtualbox的了,所以我就没选择带virtualbox的版本. 万万没想到..genymotion起不来了.网上找了一堆的解决办法,大多数是在说网卡的事情,但那已经是到模拟器那一步了,我这还没进去呢,完全没到创建设备的那一步.大家还说要不就重装了virtualBox吧.查了一下版本,发现我的virtualbox版本

docker 容器挂载主机目录,访问出现 cannot open directory /mnt/home/webroot/: Permission denied 的解决办法

问题原因及解决办法 原因是CentOS7中的安全模块selinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题: 1.在运行容器的时候,给容器加特权,及加上 --privileged=true 参数: docker run -i -t -v /soft:/soft --privileged=true 686672a1d0cc /bin/bash 2.临时关闭selinux: setenforce 0 3.添加selinux规则,改变要挂载的目录的安全性文本