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 NCM to networking configuration for OSX Catalina (10.15) compatibility #94

Merged
merged 7 commits into from
Jul 25, 2020

Conversation

vanvoljg
Copy link
Member

@vanvoljg vanvoljg commented Jul 24, 2020

This addresses the issue of getting the Xebow to connect to a Mac running Catalina, OSX 10.15. The fix adds an NCM function to the ConfigFS-based USB gadget that we set up to make everything work over one USB port.

This is dependent on PR #3 of nerves_system_keybow getting merged in, along with generation of a new release tag and Nerves artifact.

I went and left ECM in to increase compatibility, in case some hosts are unable to use the other modes.

@doughsay could you give it a whirl on your Mac again to make sure that my adding ECM back in didn't mess anything up?

It can always get taken out again, if it causes issues.

  • Fix nerves_system_keybow dependency version

Fixes #90
Fixes #91

Jesse Van Volkinburg added 3 commits July 23, 2020 16:58
@vanvoljg vanvoljg requested review from doughsay and amclain July 24, 2020 06:51
Just until it gets merged in upstream

Fork available at https://github.com/vanvoljg/nerves_system_keybow
@vanvoljg vanvoljg force-pushed the refactor/hid-device-setup branch from 187e435 to b2ea4f1 Compare July 24, 2020 07:10
@vanvoljg vanvoljg self-assigned this Jul 24, 2020
@vanvoljg vanvoljg added bug Something isn't working dependencies Pull requests that update a dependency file refactor Refactoring code or tech debt repayment labels Jul 24, 2020
Copy link
Member

@amclain amclain left a comment

Choose a reason for hiding this comment

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

Exposing 3 ethernet endpoints to the host simultaneously feels excessive and brittle to me, but I'm ok moving forward with this as the next step considering it fixes incompatibility with a platform. Something to think about for the next iteration of the USB ethernet endpoints: What if rather than bonding the adapters in the device, check which adapters can communicate with the host and disable all of the ones that are not the preferred adapter. If we can listen for USB hotplug events we could also know when to enable all of the adapters when the device is plugged in, although we may be able to detect this in other ways as well.

mix.exs Outdated Show resolved Hide resolved
mix.exs Outdated Show resolved Hide resolved
@amclain amclain removed the refactor Refactoring code or tech debt repayment label Jul 24, 2020
@doughsay
Copy link
Member

Exposing 3 ethernet endpoints to the host simultaneously feels excessive and brittle to me

I agree, it already annoys me that I have two interfaces that show up on linux, and one doesn't work. It always tries to re-connect, causing notification spam. And what happens if two work? If both connect successfully what happens?

What if rather than bonding the adapters in the device, check which adapters can communicate with the host and disable all of the ones that are not the preferred adapter

This would be amazing and nullify the concern above. But I'm not sure how to pull it off...

@vanvoljg vanvoljg force-pushed the refactor/hid-device-setup branch from cd82a6f to 95d7130 Compare July 24, 2020 20:49
@vanvoljg vanvoljg marked this pull request as ready for review July 24, 2020 20:54
Copy link
Member

@doughsay doughsay left a comment

Choose a reason for hiding this comment

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

run mix deps.get and check in the mix.lock changes

@doughsay
Copy link
Member

@vanvoljg there are still some changes left in here that reverence usb2, but looks like you opted to remove ecm in the end?

@vanvoljg
Copy link
Member Author

run mix deps.get and check in the mix.lock changes

I knew there was something I'd forgotten. Cheers.

@vanvoljg there are still some changes left in here that reverence usb2, but looks like you opted to remove ecm in the end?

Comment documentation? Fixed! Thanks for the reminder. Any other references to usb2 are for the HID device.

@vanvoljg vanvoljg requested a review from doughsay July 25, 2020 04:15
Copy link
Member

@doughsay doughsay left a comment

Choose a reason for hiding this comment

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

🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working dependencies Pull requests that update a dependency file
Projects
None yet
3 participants