MUSBLAN: USBLAN for MacOS

Introduction

MUSBLAN is an adaptation of Belcarra Technologies USBLAN for Windows to the MacOS (10.11.1 and later) environment.

MUSBLAN focuses on three protocols for networking over USB: Microsoft RNDIS, CDC-EEM and CDC-ECM subset. Kits are protocol-specific.

Parameters of a kit

An MUSBLAN kit has the following parameters:

  • USB Vendor/Product ID/Interface triples (driver personality information). 
  • IP address of a Virtual Network Interface in MacOS which is bridged to the attached USB device(s). 
  • Protocol: CDC-ECM subset, EEM or RNDIS. Other protocols (ECM, NCM) on request.

Automatic system configuration

The MUSBLAN systtem offers a DHCP service to both the MacOS host and one or more attached devices, forming a network segment of those network nodes.  The host IP address is a kit parameter, always ending in 1, e.g. 192.168.200.1.  This address is mapped to a Virtual Network Interface in the System Preferences Network pane on the Mac. Attached devices take sequential positions, e.g. 192.168.200.2, 192.168.200.3.  In this way both ends of the link can be DHCP clients and yet know the IP address of the remote end of the link.

Contents of a Kit

MUSBLAN is provided as a kernel extension package, including preinstall and postinstall scripts which first remove previous instances, unload possible conflicting extensions, install the new kernel extension, and then load it.

MacOS Security Policy

MacOS security policy now requires that kernel extensions from third parties be approved by the user in the Security&Privacy pane of System Preferences or during system boot immediately after installation.

Windows 7 Unpatched

Installing Belcarra USBLAN on a Windows 7 system that is not up to date with security patches may fail.

Running the setup.bat file which uses DPInst.exe to preinstall the driver will work correctly, but after plugging your device in you may see the following or similar dialog boxes.


















In the Device manager you will see an error icon next to the network driver associated with your device. These indicate that the target Windows 7 system does not have the current set of root certificates and security patches.

USBLAN 2.4.11 and later installation kits will have an additional win7up directory containing drivers signed according to the requirements for an unpatched version of Windows 7.

NDIS 6.3 - InstantGo Developer Notes

Network Device Interface Specification (NDIS) 6.3, included with Windows 8 and newer Microsoft Operating Systems implement new power management capabilities especially for devices such as tablets and 2 in 1 systems..

The following engineering notes (Stuart Lynne) addresses a particular feature known 
variously as:
  • InstantGo
  • AOAC (Always On / Always Connected)
  • Connected Standby
InstantGo capable devices (aka Windows on Tablets) are designed to minimize power consumption and extend battery life. If Windows determines that a connected device is not being actively used it will attempt to suspend it.

Simple CDC-ECM network using Belcarra's USBLAN for Windows

The following information outlines how to configure and load the Linux gadget modules to setup a simple USB CDC-ECM portocol network using Belcarra's freely available evaluation version of USBLAN for Windows.

Firstly,take a Linux kernel and reconfigure it as follows:

- Add the following line if not present
  CONFIG_USB_NET=m
- Remove the following lines if present
  CONFIG_USB_ETH_RNDIS=y
  CONFIG_USB_ETH_EEM=y


Belcarra USBLAN for Microchip PIC32 Networking over USB Demonstration

Overview

The Microchip PIC32 allows for implementation of a Full Speed USB device.

Implementing a Networking over USB solution allows a PIC32 based design to connect to a Microsoft Windows system and use TCP/IP network connections using the Belcarra Windows USBLAN Class driver.

Microchip makes available a TCP/IP stack and a demonstration application that implements a Web Server. In their demo the Web Server can be accessed via the Ethernet.

Belcarra has created a Networking over USB driver (USBLAN Function Driver) for Microchip that allows the TCP/IP stack to use USB to connect to a Windows system.  A demonstration kit is available to demonstrate this capability.

This demonstration kit is adapted from Microchips Ethernet implementation of  a web server demo. The Belcarra kit uses the v2.9a version of USB from Microchip and has been implemented with the most recent production version v5.42 of the Microchip TCP/IP stack. Belcarra can also on request make available a version of this demo using the Microchip version v6 Beta TCP/IP stack.

Belcarra’s implementation of Networking over USB for the Microchip PIC32 is a very low cost networking solution for PIC32 projects, eliminating the need to add an Ethernet chip while using less Flash and RAM resources.

Demonstration Kit  [Updated April 4, 2015]

There are three hex project files

Installing USBLAN for Windows Demo on Windows 8

Belcarra’s evaluation version of USBLAN for Windows is not available directly from Windows Update for a Windows 8 user at this time, but it can be installed locally as described here.
First make sure your device is not connected to the PC. This is an optional procedure, but the following instruction screens make that assumption.

Next, run the Desktop

Favourites