macOS Catalina + Beaglebone Black

Please cc the BeagleBoard Google Group on support issues if it isn’t a private matter. I didn’t figure you cared if this issue was private, so I’ve added it to the reply and moved you into BCC.

I ran into the same problem last week at a training ELC-E (bbb.io/t). The work-around I found is to disable the RNDIS interface used for Windows. Seems Microsoft and Apple have both added the same bug in their operating systems. If either one sees the other’s compatible network driver, they choose to not work. :frowning:

One alternative might be to go back to using HoRNDIS, but it would mean asking the maintainer to support Catalina.

It looks like he found a maintainer:

https://joshuawise.com/horndis

Thanks Jason, how do you disable the RNDIS interface used for Windows?

I’m thinking we need something like the below, then we could edit /etc/default/bb-boot to add USB_NETWORK_RNDIS_DISABLED=yes or USB_NETWORK_CDC_DISABLED=yes. I’d need someone to try this on Catalina and the latest Windows 10. Ugly, but something to get us over the hump.

You may be able to log in over the virtual serial to make this change. Thoughts?

diff --git a/boot/am335x_evm.sh b/boot/am335x_evm.sh index 16b1b38…7b72d0f 100755 — a/boot/am335x_evm.sh +++ b/boot/am335x_evm.sh @@ -43,7 +43,13 @@ fi if [ -f /etc/default/bb-boot ] ; then unset USB_NETWORK_DISABLED + unset USB_NETWORK_RNDIS_DISABLED + unset USB_NETWORK_CDC_DISABLED . /etc/default/bb-boot + if [ “x${USB_NETWORK_DISABLED}” = “xyes” ] ; then + USB_NETWORK_RNDIS_DISABLED=“yes” + USB_NETWORK_CDC_DISABLED=“yes” + fi fi log=“am335x_evm:” @@ -507,7 +513,7 @@ run_libcomposite () { echo 500 > configs/c.1/MaxPower - if [ ! “x${USB_NETWORK_DISABLED}” = “xyes” ]; then + if [ ! “x${USB_NETWORK_RNDIS_DISABLED}” = “xyes” ]; then mkdir -p functions/rndis.usb0 # first byte of address must be even echo ${cpsw_2_mac} > functions/rndis.usb0/host_addr @@ -556,7 +562,7 @@ run_libcomposite () { ln -s functions/mass_storage.usb0 configs/c.1/ fi - if [ ! “x${USB_NETWORK_DISABLED}” = “xyes” ]; then + if [ ! “x${USB_NETWORK_RNDIS_DISABLED}” = “xyes” ]; then ln -s configs/c.1 os_desc mkdir functions/rndis.usb0/os_desc/interface.rndis/Icons echo 2 > functions/rndis.usb0/os_desc/interface.rndis/Icons/type @@ -566,14 +572,16 @@ run_libcomposite () { echo “BeagleBone USB Ethernet” > functions/rndis.usb0/os_desc/interface.rndis/Label/data ln -s functions/rndis.usb0 configs/c.1/ + usb0=“enable” fi - if [ ! “x${USB_NETWORK_DISABLED}” = “xyes” ]; then + if [ ! “x${USB_NETWORK_CDC_DISABLED}” = “xyes” ]; then mkdir -p functions/ecm.usb0 echo ${cpsw_4_mac} > functions/ecm.usb0/host_addr echo ${cpsw_5_mac} > functions/ecm.usb0/dev_addr ln -s functions/ecm.usb0 configs/c.1/ + usb1=“enable” fi mkdir -p functions/acm.usb0 @@ -590,8 +598,6 @@ run_libcomposite () { fi fi - usb0=“enable” - usb1=“enable” echo “${log} g_multi Created” else echo “${log} FIXME: need to bring down g_multi first, before running a second time.”

This did not work for me on Catalina. I updated /opt/scripts/ and saw your changes in boot/am335x_evm.sh. In /etc/default/bb-boot I tried USB_NETWORK_RNDIS_DISABLED=yes and no network interface was shown when I did an ifconfig except for my ethernet connection (I’m connecting over ssh through ethernet). I also tried USB_NETWORK_CDC_DISABLED=yes and the usb0 network interface shows up when I ssh in over ethernet, but still doesn’t connect from Catalina over usb (but does from High Sierra).

This did not work for me on Catalina. I updated /opt/scripts/ and saw your changes in boot/am335x_evm.sh. In /etc/default/bb-boot I tried USB_NETWORK_RNDIS_DISABLED=yes and no network interface was shown when I did an ifconfig except for my ethernet connection (I’m connecting over ssh through ethernet). I also tried USB_NETWORK_CDC_DISABLED=yes and the usb0 network interface shows up when I ssh in over ethernet, but still doesn’t connect from Catalina over usb (but does from High Sierra).

Can you try disabling CDC, leaving RNDIS enabled and install the HoRNDIS driver?

The HoRNDIS driver won’t install on Catalina, saying “This package is incompatible with this version of macOS”.

Installing the HoRNDIS driver mentioned in this issue seems to work in Catalina without any changes to the to RNDIS or CDC settings. I was able to connect from Catalina with one of our production Beaglebone images without updating the am335x_evm.sh script after installing this driver:
https://github.com/jwise/HoRNDIS/files/3719733/HoRNDIS-9.2-catalina_install.pkg.zip

Can you switch to CDC NCM instead of CDC ECM? The issue[1] s that ECM fails in a composite gadget, but NCM seems to work fine. The same issue affected NVIDIA Jetson. For more details, see:
https://www.reddit.com/r/JetsonNano/comments/dwno63/usb_driver_for_mac_os_catalina/

[1] On Jetson at least, and same here judging by the fact that people suggest disabling RNDIS.