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

Windows 10 ARM support: No Bluetooth Adapter Found [BUG] #78

Closed
bsides230 opened this issue Dec 23, 2020 · 25 comments
Closed

Windows 10 ARM support: No Bluetooth Adapter Found [BUG] #78

bsides230 opened this issue Dec 23, 2020 · 25 comments
Labels
enhancement New feature or request

Comments

@bsides230
Copy link

Ok so I have an issue with Windows on ARM64. You may be able to see in the screenshot that I am using a preview build.
So the issue I am having it that the app does not recognize my Bluetooth adapter on a Galaxy Book2. I know I have it working because I get sound through my buds+ using the Bluetooth so I am just not sure what is going on.

Let me know what other information you need cause this would be cool to get it working on this tablet PC.
image

@bsides230 bsides230 added the bug Something isn't working label Dec 23, 2020
@timschneeb
Copy link
Owner

I think Windows 10 ARM is lacking some required interfaces from the Win32 API.
That isn't easily fixable, I would need to write another Bluetooth library using Windows UWP Bluetooth API (only supports Windows 10 devices with build 1703 and later) rather than the legacy Win32 API, as an alternative.

Actually, I was already thinking about doing exactly that in order to make the Bluetooth backend on Windows 10 devices a bit stabler.
But I don't know yet when I'll add this. I'm already rewriting large chunks of this software for Linux support atm, so this could take a long time until a can start working on it.

@bsides230
Copy link
Author

I am not in any hurry and don't use this computer for most of my work but will be happy to help you test it when it comes time.

@timschneeb timschneeb changed the title No Bluetooth Adapter Found?!? [BUG] Windows 10 ARM support: No Bluetooth Adapter Found [BUG] Dec 31, 2020
@timschneeb timschneeb added the enhancement New feature or request label Jan 9, 2021
@timschneeb
Copy link
Owner

I still haven't really looked at Windows ARM support, but anyone using Linux on an ARM (AArch32/64) machine can run this application now.

I tested this on an ARMv8 Linux machine (Raspberry Pi 4) and it worked perfectly, if anyone wants to try it out you can get binaries here:
https://github.com/ThePBone/GalaxyBudsClient/actions?query=workflow%3A%22Compile+Linux+binaries%22

  1. Select the latest job that finished successfully
  2. On the next page, scroll all the way down to the artifacts section
  3. Select your architecture and download the binary

These binaries are all self-contained and don't need any dependencies. They should run on virtually all Linux distributions.

@bsides230
Copy link
Author

Take your time. Windows on ARM will only get better in the interim.

@timschneeb
Copy link
Owner

I took some time to write another Bluetooth backend using the WindowsRT API (rather than legacy Win32 APIs).
This new backend is now enabled on any Windows 10 machine running on build 1803 and later by default and is much more reliable than the old one.

I can only test this on x86_64 hardware because I don't own any ARM-based devices (except a Raspberry Pi), so no guarantees here.

I've set up automated cloud CI deployment for this, so you can just download the latest pre-compiled beta builds here: https://github.com/ThePBone/GalaxyBudsClient/actions?query=workflow%3A%22Compile+Windows+binaries%22

  1. Select the latest job at the top that finished successfully
  2. On the next page, scroll all the way down to the artifacts section
  3. Select your architecture (arm/arm64) and choose whether you want an installer or standalone executable.

Also, for some reason, these artifact downloads redirect you to a 404 page if you are not logged in with a GitHub account. If you can't download them, I'll reupload them somewhere else.

@timschneeb timschneeb added this to the Milestone v4.0 milestone Jan 15, 2021
@timschneeb timschneeb removed the bug Something isn't working label Jan 25, 2021
@bestevan01
Copy link

I am using the Samsung Galaxy Book S (Qualcomm) in South Korea.
I am using version 1909 because I can't install version 20H2 on my laptop yet.
The screenshot above shows that he has joined the Windows Insider Program and is using a beta version of the developer that has not been released to general users.
The full version I am using does not include 64-bit emulation, so I cannot use it even if I install the program.
I know there is a native ARM64 version of the Linux version, but Windows also needs native support, not emulation support!

Sorry to use the translator. My English is worse than the translator :(

@timschneeb
Copy link
Owner

timschneeb commented Feb 9, 2021

@bestevan01 Hello, there are native ARM64 builds for Windows 10 available, however, they are completely untested so I am not including them on the release page yet.

I don't have any way to test this though, I don't own any ARM64 Windows devices so no guarantees here.

I've posted instructions on how to obtain these ARM64 builds in my previous message:

I've set up automated cloud CI deployment for this, so you can just download the latest pre-compiled beta builds here: https://github.com/ThePBone/GalaxyBudsClient/actions?query=workflow%3A%22Compile+Windows+binaries%22

  1. Select the latest job at the top that finished successfully
  2. On the next page, scroll all the way down to the artifacts section
  3. Select your architecture (arm/arm64) and choose whether you want an installer or standalone executable.
    (Look for GalaxyBudsClient_win-arm64_portable in your case)

Also, for some reason, these artifact downloads redirect you to a 404 page if you are not logged in with a GitHub account. If you can't download them, I'll reupload them somewhere else.

@bestevan01
Copy link

Sorry. I did not know how to download it, so I spent a while.
Can you send the file in another way?
I would like to send it to the ARM64 version.

@timschneeb
Copy link
Owner

Here's a reupload of the ARM64 Windows installer package: https://drive.google.com/file/d/1vtl-4jZ2JmjnH0JLhEf_U1EYi3l1-eqn/view?usp=sharing

@bestevan01
Copy link

화면 캡처 2021-02-10 045913
I installed the ARM64 version downloaded through Google Drive, but it does not run.
Please check the screenshot.
Please tell me how I can send the logs.

@timschneeb
Copy link
Owner

  1. Press 'Windows+R' on your keyboard
  2. Copy %LOCALAPPDATA%\GalaxyBudsClient\ into the textbox within the run dialog
  3. Hit Enter, and a new folder with a file called application.log should open up
  4. Upload application.log

@bestevan01
Copy link

application.log

@timschneeb
Copy link
Owner

The app doesn't crash, but it looks like the user interface toolkit I'm using to render the app has compatibility issues on ARM.

After ~2 seconds somehow the OnClosing signal of the window gets activated and the application shuts down normally. (this normally only happens when the user closes the window or presses Alt+F4)

I don't know why this happens and unfortunately I don't have a device to test on, so I can't fix it for now. I'll try to setup an ARM virtual machine on my x86 PC to debug this.

@bestevan01
Copy link

If you wish, we can allow you to connect remotely so that you can use my laptop.

@ollimenzel
Copy link

I have the same issue. Running your App on a Surface Pro X
If you need any testing, I will be willing test stuff on my machine

@timschneeb
Copy link
Owner

timschneeb commented Mar 8, 2021

It's hard to debug this issue remotely; I'd need a small development environment with a debugger to fix this properly. I already tried setting up an ARM-processor emulator to start testing on my own, but Windows on ARM freezes on it.

Anyways, you can get new binaries here: https://github.com/ThePBone/GalaxyBudsClient/actions/runs/632418044

They don't include a fix for this issue, but I've added more logging to find out what causes this app to exit prematurely (not a crash, it just exits with a success result code ._.).

If someone runs this on his/her ARM-based Windows device, could you please upload the logs?

  1. Press 'Windows+R' on your keyboard
  2. Copy %LOCALAPPDATA%\GalaxyBudsClient\ into the textbox within the run dialog
  3. Hit Enter, and a new folder with a file called application.log should open up
  4. Upload application.log

@ollimenzel
Copy link

Thanks for looking into it.
application.log
Here is my log.

@dubsflyt
Copy link

Here is my log if it helps too,
App stays on taskbar but nothing displayed either popup or the app itself.
Minor change too but any chance you can change the default install path from program files (x86) to program files (arm) for the arm builds
application.log

@timschneeb
Copy link
Owner

timschneeb commented Apr 7, 2021

I recently bought a cloud VPS, so I moved all my self-hosted services (APIs for GalaxyBudsClient, my website, and so on) from my Raspberry 4 onto this VPS instead.
This way, I can (temporarily) sacrifice this Raspberry to install Windows 10 ARM on and do some testing.

Anyways, I cannot reproduce any issues mentioned here at all. This app runs on Windows 10 ARM64 (Version 2004, Build 19041) just fine:
RaspberryScreenshot

App stays on the taskbar, but nothing is displayed, either a popup or the app itself.

This sounds like a bug with the UI toolkit used. Unfortunately, I have next to no information about this issue and can't even reproduce it, making it hard to submit a useful bug report to their issue tracker.
If you are running an older Windows 10 build, it may help to update, but other than that, I honestly don't know how to fix this.

Edit: By the way, I noticed that running the 32bit ARM executable on an ARM64 processor will cause a crash. Make sure to download the correct binary for your ARM architecture.

@bestevan01
Copy link

That's good news!
Since the release date of the latest better version is still 13 days ago, it is estimated that the version is still incomplete.
Can you predict the date when it will be released?
If you download and install the binary released 13 days ago, it will not work with the same symptoms as before.

@dubsflyt
Copy link

dubsflyt commented Apr 8, 2021

I recently bought a cloud VPS, so I moved all my self-hosted services (APIs for GalaxyBudsClient, my website, and so on) from my Raspberry 4 onto this VPS instead.
This way, I can (temporarily) sacrifice this Raspberry to install Windows 10 ARM on and do some testing.

Anyways, I cannot reproduce any issues mentioned here at all. This app runs on Windows 10 ARM64 (Version 2004, Build 19041) just fine:
RaspberryScreenshot

App stays on the taskbar, but nothing is displayed, either a popup or the app itself.

This sounds like a bug with the UI toolkit used. Unfortunately, I have next to no information about this issue and can't even reproduce it, making it hard to submit a useful bug report to their issue tracker.
If you are running an older Windows 10 build, it may help to update, but other than that, I honestly don't know how to fix this.

Edit: By the way, I noticed that running the 32bit ARM executable on an ARM64 processor will cause a crash. Make sure to download the correct binary for your ARM architecture.

My app log above was from w10 1909 so I updated to same build of w10 as you and unfortunately same, app doesnt display anything, after install icon appears on desktop, open it and it shows on taskbar but no app displays.

@bestevan01
Copy link

I recently bought a cloud VPS, so I moved all my self-hosted services (APIs for GalaxyBudsClient, my website, and so on) from my Raspberry 4 onto this VPS instead.
This way, I can (temporarily) sacrifice this Raspberry to install Windows 10 ARM on and do some testing.
Anyways, I cannot reproduce any issues mentioned here at all. This app runs on Windows 10 ARM64 (Version 2004, Build 19041) just fine:
RaspberryScreenshot

App stays on the taskbar, but nothing is displayed, either a popup or the app itself.

This sounds like a bug with the UI toolkit used. Unfortunately, I have next to no information about this issue and can't even reproduce it, making it hard to submit a useful bug report to their issue tracker.
If you are running an older Windows 10 build, it may help to update, but other than that, I honestly don't know how to fix this.
Edit: By the way, I noticed that running the 32bit ARM executable on an ARM64 processor will cause a crash. Make sure to download the correct binary for your ARM architecture.

My app log above was from w10 1909 so I updated to same build of w10 as you and unfortunately same, app doesnt display anything, after install icon appears on desktop, open it and it shows on taskbar but no app displays.

The success certificate has been uploaded and there are no other binary updates.
The last binary update was released 13 days ago.
It would be nice to wait until a new version is released. (I tried, but the symptoms are the same.)

@timschneeb timschneeb removed this from the Milestone v4.0 milestone Jun 4, 2021
@timschneeb
Copy link
Owner

Closing this as I haven't been providing stable Windows ARM binaries for quite some time since I'm unable to reproduce this (big) issue.
Beta binaries for Windows on ARM are still compiled automatically by a cloud worker and available in the GitHub Action tab: https://github.com/ThePBone/GalaxyBudsClient/actions/workflows/compile-windows.yml

Feel free to comment if you're interested to take Windows on ARM support over.

@bsides230
Copy link
Author

Windows 11 now built in some of the features your app provided. Still can't control the buttons or functions but it can tell you how much battery life is left.

@bsides230
Copy link
Author

Thanks for helping with arm support

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

No branches or pull requests

5 participants