Endpoint in a virtual Machine on an Apple Mac

I just finished testing developing for Endpoint on a 2019 MacBook Pro(Intel) using a Windows virtual machine. It worked!

I am running the latest Version of Vmware’s Fusion. The virtual machine was the latest version of Windows 11.

I used Visual Studio 2022 with the Endpoint debugger extension.

Aside from telling Fusion to attach the Domino to the virtual machine, when it was plugged in, compile and deploy was an identical experience to a native Window 11 machine.

I do not have a bootcamp windows image on my laptop, so I could not test under a non-virtual machine. I see no reason it would not also work.

Nice…

3 Likes

You should try VSCode Mike. You may not have to deal with Fusion.

On the flip side, I have not attempted to use Visual Studio for Endpoint so may be missing out.

I did try VS Code and could not get it running. To be honest I did not spend a lot of time trying to get it to work.

At home I am using an Intel Nuc with Windows 11 to develop. I access the machine via Remote Desktop from a Mac M1 Mini.

Sometimes I want to develop offsite, and I have the MacBook Pro. This happens at most once a week. So, for solution compatibility I need to run Visual Studio in the VM.

It might have been easier to get VS Code working. :slight_smile:

For the past 14 years I have been posting my experiences with developing for GHI devices under VMs on the Mac. Just being consistent…

Makes sense for your use case.

I use a Win 10 PC for all GHI boards. I will try VScode from my Mac and let you know if I can deploy to the Endpoint.

We haven’t tested Mac. I think there are reasons on why it might not work but I can’t remember. But please share your findings.

Snowy day here and evening plans got canceled :slightly_smiling_face:

Booted up my Intel Mac Mini to try. I used VScode and nothing worked out of the box. After a couple of hours fighting with things I have build, deploy and debug working.

It is a very clunky process. I will research options to make this smooth - no idea how much effort will be required.

For now, enjoy this screen shot :slight_smile:

4 Likes

Please share your findings, as I have no access to a windows machine. The docs did not tell me that I need a windows machine :frowning:
In my opinion modifying the tasks.json file should do the trick, but unfortunately I have no experience in that.

I installed the VSCode extension and everything ‘just worked’ on my M1 MacBook Pro. Of course, you can’t run the Endpoint Config tool but you don’t have to squint too hard at it to figure out what it’s doing and do the same via a shell script and/or ssh (or by adding some functionality to the VSCode extension - hint, hint). I’m 100% on Apple Silicon macOS as well. I’m only using Parallels to run Altium Designer. I’ll write something up if I get time later today.

1 Like

Well, it’s a good-news/bad-news story. Everything ‘just works’ on Linux, but not on Mac (so far).

The issue is that Windows and Linux both include the RNDIS usb drivers that you need in order to attach the Endpoint to your computer. But macOS only supports CDC USB Network interfaces. Now, there is a way to install an open-source RNDIS driver, and you can read about that here, but I can’t recommend following those instructions unless you’re really adventurous. It will leave your Mac with a lot of important security protections turned off (and breaks Apple Pay and maccatalyst).

The other alternative is Parallels (a Windows VM on macOS). That works just fine.

There is a third alternative that should work, but I haven’t been able to try it because my wifi dongle is not working. If we can get a wifi interface up and running at the OS level (with the usual Linux wpa-supplicant config) then everything should work from macOS, but you’d need a Windows or Linux machine at least once in order to set that up on your board using the USB interface. This could all be wishful thinking because I can’t try it until I locate a wifi dongle that will work. The ones that I got from Amazon don’t seem to be genuine RTL8188 or at least not a supported flavor.

Option 4 would be adding CDC Network Adapter support to the USB-C interface, but that might be a heavy lift and there’s probably a lot on GHI’s dance card ahead of that work.

@mcalsyn there was a they about dongles. Please share what didn’t work.

And we have tested deploying/debugging over wifi and it worked fine. But like your said, wifi needs to need configured.

@Joerg we are looking into ways to support everything and everywhere. I wish days were more than 24 hours :blush:

The wifi not working is my fault - bought the wrong cheap dongle. Searched for “rtl8188” and then manage to click on something that wasn’t.

One could ship the OS configured such that a supported wifi adapter comes up in ‘access point’ mode and can then be joined to an infrastructure AP via commands issues on the temporary AP.

OR perhaps even better, publish instructions on mounting the SD card and editing it to enable wifi access on boot. That’s just a matter of documenting how to mount the card in a mac or linux system and use vscode to edit the conf files.

I’ll have a proper wifi card in around two weeks. I may try to document that latter approach. Gotta be there for my Mac and Linux compadres. :wink:

I managed to get a dongle with a rt8818 chip!

Do you have something to share yet ? :))

Unfortunately @Dat, I am still waiting for a usable wifi dongle. It turned out to be a little hard to source here. Once I have that, I’ll test the scripts that I’ve created for enabling wifi directly on the SD card (without the RNDIS driver).

1 Like

I was looking for the file containing the “registered” wifi access points. But, they don’t seem to be in /etc/wpa_supplicant.conf. Do you know where they are?

I think you are talking about “wpa_conf.conf”, it is in /etc/sbin after init_wifi.sh called.

2 Likes

Just FYI, I ordered this one and it seems to behave well:

Netis WF2120 Wireless N150 Nano USB Dongle

3 Likes

Happy Monday -

No show and tell yet, but wanted to provide a quick update. I believe that Martin @mcalsyn is working on a Wi-Fi solution for Mac users. Meanwhile, I have been able to get the CDC Network Adapter up on the Mac (and potentially Linux). This is a native connect and does not need a 3rd party RNDIS driver or opening up security on the Mac - just plug and play.

I will clean this up further in the next few days for anyone who is interested. I am currently attempting to provide Windows, Mac and Linux support using a single OS image.

Stay tuned !!

4 Likes

Excellent! This will be a far better solution that the SD-card pre-config that I was thinking about.

Any progress on this? How does one enable the USB CDC NCM channel on the Endpoint device? The mac already has an active driver, but the Endpoint is not advertising a CDC Ethernet channel that I can see.