cryinkfly / Autodesk-Fusion-360-for-Linux

This is a project, where I give you a way to use Autodesk Fusion 360 on Linux!
https://github.com/cryinkfly/Fusion-360---Linux-Wine-Version-/wiki
MIT License
1.95k stars 121 forks source link

welcome screen browser login not opening? #319

Closed fabianmuehlberger closed 1 year ago

fabianmuehlberger commented 1 year ago

Describe the bug After starting Fusion360 using Bottles on EndevourOS KDE, the welcome screen opens and prompts me to sign in: Browser does not open or show a link to sign in.

To Reproduce Steps to reproduce the behavior:

  1. Open Bottles
  2. Start Fusion 360 executable
  3. Message "We will take you to your web browser to sign in, then bring you back here. "
  4. Click on "Sign in"
  5. Message: "Check your web browser"

Expected behavior Web browser (firefox) opens to let me log in

Screenshots fusion_login image

Desktop (please complete the following information):

alextrical commented 1 year ago

Wine.txt Diff in the registry from installing Fusion 360 in Wine

Tony763 commented 1 year ago

@alextrical Either of them contain reference "AdskIdentityManager.exe". Could you do same but instead of installation try to run Fusion and try to log in?

alextrical commented 1 year ago

yeah i can do. sorry its taking a while, my holiday laptop is rather low power, and Windows in a VM is updating like there is no tomorrow

alextrical commented 1 year ago

So windows continued to install stuff in the background even after telling it to stop updates.... so its made a mess of the differential comparisons while running Fusion 360

To give a better map of the Updates,Additions or Deletions I used InstallWatchPro 2.5

Default.tar.xz.zip (remove the .zip extension, GitHub doesn't allow .tar.xz file extensions for some reason, decompress and extract Database into C:\Program Files (x86)\Epsilon Squared\InstallWatch Pro\Databases)

Hopefully this is of use to someone

edit: You should be able to install InstallWatchPro with the following commands

export env WINEPREFIX=~/.InstallWatchPro25
export env WINEDEBUG=fixme-all
wget -N https://raymond.cc/wp-content/sun/InstallWatchPro25.exe -P ~/Downloads
wine ~/Downloads/InstallWatchPro25.exe
xdg-open ~/.InstallWatchPro25/drive_c/Program\ Files\ \(x86\)/Epsilon\ Squared/InstallWatch\ Pro/Databases
alextrical commented 1 year ago

This may be something of use, found in the registry entries of the First login Reg changes 1.zip image

Tony763 commented 1 year ago

[HKEY_CLASSES_ROOT\adsk.idmgr] @="URL:adsk.idmgr Protocol" "URL Protocol"=""

[HKEY_CLASSES_ROOT\adsk.idmgr\shell]

[HKEY_CLASSES_ROOT\adsk.idmgr\shell\open]

[HKEY_CLASSES_ROOT\adsk.idmgr\shell\open\command] @="\"C:\Program Files\Autodesk\webdeploy\production\df098dc22bdb0532c3884db0a2d6182c8f8678de\Autodesk Identity Manager\AdskIdentityManager.exe\" \"%1\""

[HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache] "C:\Program Files\Autodesk\webdeploy\production\df098dc22bdb0532c3884db0a2d6182c8f8678de\Autodesk Identity Manager\AdskIdentityManager.exe.FriendlyAppName"="Autodesk Identity Manager" "C:\Program Files\Autodesk\webdeploy\production\df098dc22bdb0532c3884db0a2d6182c8f8678de\Autodesk Identity Manager\AdskIdentityManager.exe.ApplicationCompany"="Autodesk, Inc."

[HKEY_CURRENT_USER\SOFTWARE\Classes\adsk.idmgr] @="URL:adsk.idmgr Protocol" "URL Protocol"=""

[HKEY_CURRENT_USER\SOFTWARE\Classes\adsk.idmgr\shell]

[HKEY_CURRENT_USER\SOFTWARE\Classes\adsk.idmgr\shell\open]

[HKEY_CURRENT_USER\SOFTWARE\Classes\adsk.idmgr\shell\open\command] @="\"C:\Program Files\Autodesk\webdeploy\production\df098dc22bdb0532c3884db0a2d6182c8f8678de\Autodesk Identity Manager\AdskIdentityManager.exe\" \"%1\""

Yeah, I also found these, but still, these seems to me as step two - when you are signed in by browser and browser send info back to Identity manager.

Importing them won't make Fusion open browser, but will be needed.

alextrical commented 1 year ago

I suspect its something to do with Microsoft Edge, there are files referencing it, and a decent change to the registry relating to it. Though with Edge uninstalled, fusion can still log in.

image

If we can get this screen to pop up (thanks to fabianmuehlberger for the image), that will be the next step. though that may require us to figure out why the TLSv1.2 isn't getting the handshake. though its hard to tell if that's the cause, or a symptom of the issue.

alextrical commented 1 year ago

This may be of use Later, to direct the SSO Back to Fusion 360, here is some info on another SSO app to work with the native browser in Linux, but it looks more set-up 'mimeapps.list' to handle the redirection Back from the browser to the APP. https://eternaldusk.com/logmein-technician-console-on-linux-via-wine/

Still no luck getting the initial handshake to work yet this end

fabianmuehlberger commented 1 year ago

If we can get this screen to pop up (thanks to fabianmuehlberger for the image), that will be the next step. though that may require us to figure out why the TLSv1.2 isn't getting the handshake. though its hard to tell if that's the cause, or a symptom of the issue.

I had an idea, but don't if it helps. Can we use the "anmeldung neu starten" (restart registration) button to trace how the process works? by clicking it a new window will pop up in the brower, so it must have a similar functionality. Sorry for not being concise in my wording, I'm basically clueless how this works. But I had the Idea if we can force fusion to attempt to open a browser or at least see where the button is pointing to.

Best

dzervas commented 1 year ago

Can you check the HKEY_CLASSES_ROOT\<protocol> registry key? should have a custom handler that executes AdskIdentityManager.exe - for more check this SO question

we should create a linux handler that executes the exe through wine

fabianmuehlberger commented 1 year ago

thats the "PROTOCOLS" folder under windows 11 with fusion installed: grafik

What do you need from it ? @dzervas

dzervas commented 1 year ago

huh, no idea. Seems like fusion does something else instead of a custom protocol handler?

I need to get my ass to set up a proper dev env and I'll come back...

Thanks though!

alextrical commented 1 year ago

File differences between AdskIM as stand alone Vs Built into Fusion 360 image image

Blue dot for newer file (Not really relevant in this case, as this is the install date) Green is for files found in one folder only White is files are Identical Blue is difference between the files

antonioste commented 1 year ago

Hi, but someone was able to start fusion on ubuntu after the last upgrade?

Thanks

Tony763 commented 1 year ago

Nope, we are trying to run it, but still without a success. New SSO login not works under wine. After clicking the Sign in button, new window should be opened (propably a new authentication helper and default browser where you can log in.

antonioste commented 1 year ago

Nope, we are trying to run it, but still without a success. New SSO login not works under wine. After clicking the Sign in button, new window should be opened (propably a new authentication helper and default browser where you can log in.

Thanks a lot! now continue to see some video on freecad, it works under ubuntu XD

Tony763 commented 1 year ago

FreeCAD is fine for small things, works natively but need a some efort to learn. For larger projects its not a best option.

pnelego commented 1 year ago

FreeCAD is an insane learning curve and things tend to be broken and not implemented properly.

antonioste commented 1 year ago

"insane learning curve" πŸ˜‚πŸ˜‚πŸ˜‚πŸ˜‚πŸ˜‚ You're right! But I must make some simply object to print with 3d printer and at the moment freecad is a valid alternative

Il dom 9 apr 2023, 16:26 Wyatt Huckaby @.***> ha scritto:

FreeCAD is an insane learning curve and things tend to be broken and not implemented properly.

β€” Reply to this email directly, view it on GitHub https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/issues/319#issuecomment-1501141528, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKYBGG5UTACMQXA3532MQLDXALBKFANCNFSM6AAAAAAWSSB6TA . You are receiving this because you commented.Message ID: @.***>

alextrical commented 1 year ago

Not sure what else I can do to progress this issue, as this is not something I'm familiar with debugging. Hopefully these observations can help someone more skilled to diagnose the issue though

From what I have seen while digging through the files, it seems the missing popup is part of the AdskIM, and stored as a local HTML page image

Also in the AdskIM 'html' folder, it references using NightWatch as its test platform, and in turn mentions "Autodesk VPN doesn’t allow external registry, so we need to update the registry "

edit: this error on installation may be relevant

025c:err:combase:RoGetActivationFactory Failed to find library for L"Windows.System.Diagnostics.Telemetry.PlatformTelemetryClient"
0264:err:ole:com_get_class_object no class object {cecddd22-2e72-4832-9606-a9b0e5e344b2} could be created for context 0x17
0264:err:ole:CoSetProxyBlanket -- failed with 0x80004002.

Some possible relevant info https://forum.winehq.org/viewtopic.php?t=15776 "SetBlanket is a stub that always returns failure: http://source.winehq.org/source/dlls/ole32/marshal.c#L579"

Edit: Just posted a help request in the WineHQ forum, the post can be found here (once approved by the moderator's)

alextrical commented 1 year ago

Well, the rabbit hole continues. The debugger crashes when using 'WINEDEBUG=+relay' to try to debug the problems

Bug report has been submitted https://bugs.winehq.org/show_bug.cgi?id=54816

Tony763 commented 1 year ago

Yeah, I tried it too. I was only able to attach a debugger and list running processes. Adding relay log when fusion already run crash it too.

alextrical commented 1 year ago

Even stripping down the "+realy" output to remove the top 200 most common lines, still crashes the system. :/

at least this stripped down script can get back the the bug state super quick

rm -r ~/.wfusion360
export env WINEPREFIX=~/.wfusion360
export env WINEDEBUG=fixme-all
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks -O winetricks -P ~/Downloads
chmod +x ~/Downloads/winetricks
~/Downloads/winetricks win10
wget -N https://dl.appstreaming.autodesk.com/production/installers/Fusion%20360%20Admin%20Install.exe -P ~/Downloads
wine ~/Downloads/Fusion\ 360\ Admin\ Install.exe --quiet

wine 'C:\users\Public\Desktop\Autodesk Fusion 360.lnk'

And there was me this week, hoping to look into helping with the install script (and hopefully get some graphics bugs worked out of my system). Seems like Autodesk had other plans 🀣

dzervas commented 1 year ago

I see a lot of problems with bcrypt in wine that has unsupported algorithms and fusion nags in the logs that some kind of handshake is empty

alextrical commented 1 year ago

Thanks for the heads up. not sure why i didn't look there when the handshake was failing. Looking through the specific logs around bcrypt it turns up the following messages of interest, and likely the culprit here

0178:fixme:cryptasn:CryptDecodeObjectEx Unsupported decoder for lpszStructType 1.3.6.1.4.1.311.2.1.4
02b4:fixme:bcrypt:key_import_pair unsupported key type L"CAPIPRIVATEBLOB"
02b4:fixme:bcrypt:get_key_property unsupported algorithm 9
02b4:fixme:msvcrt:_set_abort_behavior _WRITE_CALL_REPORTFAULT unhandled
02b4:fixme:bcrypt:key_import_pair unsupported key type L"CAPIPRIVATEBLOB"
02b4:fixme:bcrypt:get_key_property unsupported algorithm 9
0178:fixme:bcrypt:key_import_pair unsupported key type L"CAPIPRIVATEBLOB"
0178:fixme:bcrypt:get_key_property unsupported algorithm 9
Finished request Handshake. But response is empty.
Finished request Handshake. But response is empty.
Handshake failed
dzervas commented 1 year ago

I'm more and more sure that bcrypt is the problem. I don't see any winebrowser logs or problems - AKA attempts to open a browser. I checked how windows behave and it generates a JWT -> Opens a browser -> You login -> a URL with a custom protocol is handled (adsk.idmgr:/login?code=UPEu21tWiy...)

If we get Fusion to generate the JWT the rest should work (as we can tell native chrome/firefox how to handle adsk.idmgr through wine). We could even use wine's IE8

alextrical commented 1 year ago

Likewise, I believe this is the root cause of the login issue. Though I'm not sure how we could go about getting the required key type added to bcrypt. (who do we ask, how long would it require to do)

I was hoping we could use the native DLL from windows (Server 2022), but that fails to run due to missing dependencies

dzervas commented 1 year ago

@alextrical wanna take that to the matrix room? (instant info exchange as we're not sure at all what's happening rn). Check out https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/issues/316

dzervas commented 1 year ago

also side not in Windows HKEY_CLASSES_ROOT\adsk.idmgr\shell\open\command, Default string value is "C:\Program Files\Autodesk\webdeploy\production\df098dc22bdb0532c3884db0a2d6182c8f8678de\Autodesk Identity Manager\AdskIdentityManager.exe" "%1". The adsk.idmgr handler.

hanschanhs commented 1 year ago

Sorry to ask - Any updates? :')

Tony763 commented 1 year ago

Sadly no, alextrical found which functions in wine are probably missing. So now we have to wait for wine devs if they try to implement those.

PewnyPL commented 1 year ago

Oh man, I wish I saw this issue before wasting ~2 days trying to get this working on Garuda, Manjaro and Ubuntu. Seems I will have to wait a bit more before finally making the full switch to Linux.

kcneato commented 1 year ago

As I wrote in a commit requst, i got it to work again using bottles! Dont understand why it works now as it has beem down foe a few weeks, but after fiddling with the bottles settings the login screen did show up and i could login and now it launches

human664 commented 1 year ago

what did you change? @kcneato

monte-monte commented 1 year ago

Curiously enough there are same problems on windows and mac... https://forums.autodesk.com/t5/fusion-360-support/sign-in-via-browser-on-fusion-360-doesn-t-open-browser/td-p/11884017/

kcneato commented 1 year ago

what did you change? @kcneato

hi, please see my reply here https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/pull/324#issuecomment-1528956261

danielscatigno-ncpc commented 1 year ago

before

@cryinkfly @Tony763 Is there a Issue / Page on Wine Repository where we can track this function to be available? Is there any thing else We (community) can do ? like asking for this functionality in Wine website...

Tony763 commented 1 year ago

Hi @danielscatigno-ncpc Wine bug tracker: 54845 for first missing function found. Huge help would be write test for this function, as described inside bug report. Asking for help will probably not bring anything. :slightly_smiling_face:

dzervas commented 1 year ago

There's a fix everyone! set env var FUSION_IDSDK=false and you'll get the old login (I have reasons to believe that it will NOT get disabled at a later point, but I could always be wrong)

madurani commented 1 year ago

There's a fix everyone! set env var FUSION_IDSDK=false and you'll get the old login (I have reasons to believe that it will NOT get disabled at a later point, but I could always be wrong)

I can confirm, that it work...

Tony763 commented 1 year ago

This really works, old login window is back. Good job @dzervas, can You share, how did You find this env? @cryinkfly Could You add it to installer, please?

cryinkfly commented 1 year ago

The files have been updated and now everything should work as usual with all new features of Fusion 360.

Big thanks to my dear community! <3

You are the best community one could wish for, because a project like this can only be kept alive with your help.

I can't do something like this on my own in the long run without your help.


This issue will be closed for the time being because a workaround was found to be able to use the newer versions of Fusion 360!

dzervas commented 1 year ago

@Tony763 I searched around in the online version as to what they did different and found this env var

cryinkfly commented 1 year ago

@dzervas Sometimes its so we search for a solution and eventually we find a workaround. It just takes time and that's usually the problem for many many many Open Source Projects.

Thank you again for your meticulous search in the files and documentaries! <3

DimitriBolt commented 1 year ago

Does not work :-((. See log-file. backtrace.txt backtrace2.txt

MH-GoL commented 1 year ago

Does not work :-((. See log-file. backtrace.txt backtrace2.txt

on Linux Mint 21.1 it works without any Problem. Did you try a fresh install?

zap117 commented 1 year ago

i feel like i might be missing something, ive set the env varriable in bottles, but with no luck , is this fix only on this version ?

DerDominikNatter commented 1 year ago

Hey guys, I am pretty new to Bottles and Wine, how do i set the env var and is it still working? Thanks guys

Tony763 commented 1 year ago

Hi @DerDominikNatter, if You use installer from this repository (recommended), launcher already contain necessary env. variable set.

For bare wine, start your fusion by WINEPREFIX="your_prefix" FUSION_IDSDK=false WINEDEBUG=-all wine path_to_Fusion360.exe from terminal..

For bottles I cannot say (I do not use them personally).

DerDominikNatter commented 1 year ago

Hi @DerDominikNatter, if You use installer from this repository (recommended), launcher already contain necessary env. variable set.

For bare wine, start your fusion by WINEPREFIX="your_prefix" FUSION_IDSDK=false WINEDEBUG=-all wine path_to_Fusion360.exe from terminal..

For bottles I cannot say (I do not use them personally).

Hello, when i start the installer command the following error occurs: Testing presence of yad ... No yad found in $PATH!

Did i do something wrong?

Thank you very much.

Please excuse my silly questions, still in the learning process :)