Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add instructions for Windows machine + internal Bluetooth adapter #110

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

blueapple128
Copy link

I was able to get a Windows machine's internal Bluetooth adapter working with the changes in this PR.

- A **USB** Bluetooth Adapter
- Internal Bluetooth adapters are incompatible (generally) with the process that allows a VM to use external resources.
- A **USB** Bluetooth Adapter (for macOS)
- For internal Bluetooth adapters, Windows machines (generally) support disabling Bluetooth for themselves and allowing a VM to capture it, but macOS machines generally don't allow their own Bluetooth to be disabled and captured.
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This stackexchange post combined with this VirtualBox ticket from 10 years ago appears to explain why this wouldn't work on macOS (or would require many more difficult workarounds).


### Windows internal Bluetooth adapter doesn't work inside the VM / disappears from Device Manager even with the VM off / etc.

Try hard restarting your Windows machine (i.e. hold down the power button until it powers off). Note that selecting Shut down from the Start menu doesn't actually perform a full shutdown as Windows attempts to save some resources for faster startup.
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, Windows.

@@ -23,13 +23,13 @@ def get_usb_devices():
product = find_line_items("Product", device)

if (len(productid) < 1 or len(vendorid) < 1 or
len(manufacturer) < 1 or len(product) < 1):
len(manufacturer) < 1):
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VBoxManage list usbhost on my Windows test machine says that the internal Bluetooth adapter doesn't have a Product name.

@@ -119,9 +120,11 @@ def check_cli(name, cli_string, msg=None):

vb_usb_filter = f"""vb.customize ["usbfilter", "add", "0",
"--target", :id,
"--name", "{adapter_info['product']} ({adapter_info['manufacturer']})",
"--product", "{adapter_info['product']}",
"--manufacturer", "{adapter_info['manufacturer']}",
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On my Windows test machine, I had to specifically delete the manufacturer name from the USB filter to get it to match. (Per this VirtualBox forum thread, the product id and vendor id are still there and should be sufficient.) I think the mismatch was something dumb like "Intel Corp." versus "Intel Corporation" versus "Intel" versus "Intel(R)".

@blueapple128 blueapple128 mentioned this pull request Feb 5, 2023
@Ricca665
Copy link

this is cool

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants