tag:blogger.com,1999:blog-4013087960320354392024-02-20T03:31:47.396-08:00BELCARRA TECHNOLOGIESSpecializing in the design, implementation and support of high performance USB networking solutions for today's intelligent devices.
Belcarra's many years of expertise in Windows driver development, USB and networking can ensure successful integration with networking your USB Device to Microsoft Windows systems.jackhttp://www.blogger.com/profile/07754050276288850739noreply@blogger.comBlogger26125tag:blogger.com,1999:blog-401308796032035439.post-60232156132973472782020-08-31T12:24:00.000-07:002020-09-06T14:49:54.975-07:00MUSBLAN Customer Kit ConfigurationSeptember
1, 2020<br />
<br />
<div class="MsoNormal">
<b><span lang="EN-US" style="mso-ansi-language: EN-US;">Belcarra’s
MUSBLAN for MacOS is a Driverkit Extension that implements Networking over USB.<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></b></div>
<div class="MsoNormal">
<span lang="EN-US">Installation
of the MUSBLAN Driverkit Extension is done from the <b>MUSBLAN Installation </b>program.
The Application bundle for the installation program contains the Driver
Extensions required to implement the driver.</span></div>
<div class="MsoNormal">
<br />
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;">The
configuration of the installation program requires:<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">1.<span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span lang="EN-US">Customer
Name for the installation program<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">2.<span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span lang="EN-US">The
customer USB Vendor ID and list of Product ID’s to match<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">
</span></div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">3.<span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span lang="EN-US">Two provisioning profiles.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 72.0pt; mso-list: l0 level2 lfo1; tab-stops: 54.0pt 72.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">a.<span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span lang="EN-US">Installation
application<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 72.0pt; mso-list: l0 level2 lfo1; tab-stops: 54.0pt 72.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">b.<span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span></span><span lang="EN-US"> DriverKit extension</span></div>
<div class="MsoNormal" style="margin-left: 72.0pt; mso-list: l0 level2 lfo1; tab-stops: 54.0pt 72.0pt; text-indent: -18.0pt;">
<span lang="EN-US"><br /></span></div>
Provisioning profiles are generated by using an Apple Developer Account. They contain the Team Identifier for the Developer Account, the public keys for the codesigning certificate that will be used to codesign bundles that use the provisioning profile, and the specific entitlements that the bundle is requesting.</div>
<div class="MsoNormal">
<br /></div>
Belcarra can provide the profiles and codesign the resulting Application Bundle.<br />
<br />
Optionally if the customer needs to codesign the Application Bundle, they must provide the provisioning profiles because the certificate that will be used for codesigning is specified in the provisioning profile.<br />
<div>
<br /></div>
<h3>
Entitlements</h3>
The creation of the required provisioning profiles requires specific entitlements and certificates.<br />
<div>
<br /></div>
<div>
<div class="MsoNormal">
<span lang="EN-US">Customers
that need to generate their own provisioning profiles will need to request
these entitlements from Apple, and approved by Apple for the specific Developer
account they will be using:<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">●<span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span lang="EN-US">System
Extension - used by the Installation application<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">●<span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span lang="EN-US">DriverKit
USB Transport - VendorID - used by the DriverKit extensions<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<span lang="EN-US"></span></div>
<div class="MsoNormal">
<span style="white-space: pre-wrap;"><span style="font-family: inherit;">N.B. The USB Transport entitlement will be granted for a specific USB Vendor ID. The DriverKit extension cannot be used for any Vendor ID not specifically called out in the provisioning file.</span></span><br />
<span lang="EN-US"><br /></span>
<span lang="EN-US">N.B. It is
not clear at this time if Application Bundles containing DriverKit Extensions
can be distributed in the Mac App Store.</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US"> <o:p></o:p></span>Entitlements
can be requested from Apple at this page: <a href="https://developer.apple.com/contact/request/system-extension/"><span style="color: #1155cc;">https</span></a><a href="https://developer.apple.com/contact/request/system-extension/"><span style="color: #1155cc;">://</span></a><a href="https://developer.apple.com/contact/request/system-extension/"><span style="color: #1155cc;">developer</span></a><a href="https://developer.apple.com/contact/request/system-extension/"><span style="color: #1155cc;">.</span></a><a href="https://developer.apple.com/contact/request/system-extension/"><span style="color: #1155cc;">apple</span></a><a href="https://developer.apple.com/contact/request/system-extension/"><span style="color: #1155cc;">.</span></a><a href="https://developer.apple.com/contact/request/system-extension/"><span style="color: #1155cc;">com</span></a><a href="https://developer.apple.com/contact/request/system-extension/"><span style="color: #1155cc;">/</span></a><a href="https://developer.apple.com/contact/request/system-extension/"><span style="color: #1155cc;">contact</span></a><a href="https://developer.apple.com/contact/request/system-extension/"><span style="color: #1155cc;">/</span></a><a href="https://developer.apple.com/contact/request/system-extension/"><span style="color: #1155cc;">request</span></a><a href="https://developer.apple.com/contact/request/system-extension/"><span style="color: #1155cc;">/</span></a><a href="https://developer.apple.com/contact/request/system-extension/"><span style="color: #1155cc;">system</span></a><a href="https://developer.apple.com/contact/request/system-extension/"><span style="color: #1155cc;">-</span></a><a href="https://developer.apple.com/contact/request/system-extension/"><span style="color: #1155cc;">extension</span></a><span style="color: #1155cc;"><a href="https://developer.apple.com/contact/request/system-extension/">/</a></span></div>
<div class="MsoNormal">
<br />
<a name='more'></a><br /></div>
<h3>
Kit Building</h3>
<div>
<div class="MsoNormal">
<span lang="EN-US">Building a
customer kit has four steps:<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">1.<span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span lang="EN-US">Using
the provisioning profiles to construct a Customer configuration file for the
compilation of the code.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">2.<span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span lang="EN-US">Using
Xcode to compile the code using the Customer configuration.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">3.<span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span lang="EN-US">The
building, codesigning, and notarization of the Application bundle.</span></div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: 14.6667px;">4. </span></span>The building, codesigning, and notarization of the distribution kit.</div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<br /></div>
Normally Belcarra will do all of the above to produce either a .pkg or .dmg package that can be distributed to end-users.<br />
<div class="MsoNormal">
<br /></div>
Optionally Belcarra can provide the interim build files so that the customer can perform steps #3 and #4.</div>
<div>
<br />
<h3>
Certificates</h3>
</div>
</div>
For <b><span style="font-family: inherit;">distribution outside of the Mac App Store</span></b> the following certificate is required and must be available before creation of the provisioning profile: <br />
<div>
<span lang="EN-US" style="line-height: 115%;"></span><br />
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="line-height: 115%;"><span lang="EN-US">●<span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><b><span lang="EN-US">Developer ID Application</span></b><span lang="EN-US"> <o:p></o:p></span></span></div>
<span lang="EN-US" style="line-height: 115%;">
</span>
<br />
<div class="MsoNormal" style="font-size: 11pt; margin-left: 36pt; text-indent: -18pt;">
<span lang="EN-US" style="line-height: 115%;"><b><span style="font-family: inherit;"><br /></span></b></span></div>
<span lang="EN-US" style="line-height: 115%;">
Some packing formats, e.g. .pkg produced by the <b>productbuild</b> program, require a different type of </span>certificate when codesigning:</div>
<div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">●<span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><b><span lang="EN-US">Developer ID Installer</span></b><span lang="EN-US"> <o:p></o:p></span></div>
</div>
<div>
<br /></div>
Certificate creation and management is done here:<br />
<div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="mso-ansi-language: EN-US; mso-fareast-font-family: Arial;"><span style="mso-list: Ignore;">●<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-US" style="mso-ansi-language: EN-US;"><a href="https://developer.apple.com/account/resources/certificates/list"><span style="color: #1155cc;">https</span></a><a href="https://developer.apple.com/account/resources/certificates/list"><span style="color: #1155cc;">://</span></a><a href="https://developer.apple.com/account/resources/certificates/list"><span style="color: #1155cc;">developer</span></a><a href="https://developer.apple.com/account/resources/certificates/list"><span style="color: #1155cc;">.</span></a><a href="https://developer.apple.com/account/resources/certificates/list"><span style="color: #1155cc;">apple</span></a><a href="https://developer.apple.com/account/resources/certificates/list"><span style="color: #1155cc;">.</span></a><a href="https://developer.apple.com/account/resources/certificates/list"><span style="color: #1155cc;">com</span></a><a href="https://developer.apple.com/account/resources/certificates/list"><span style="color: #1155cc;">/</span></a><a href="https://developer.apple.com/account/resources/certificates/list"><span style="color: #1155cc;">account</span></a><a href="https://developer.apple.com/account/resources/certificates/list"><span style="color: #1155cc;">/</span></a><a href="https://developer.apple.com/account/resources/certificates/list"><span style="color: #1155cc;">resources</span></a><a href="https://developer.apple.com/account/resources/certificates/list"><span style="color: #1155cc;">/</span></a><a href="https://developer.apple.com/account/resources/certificates/list"><span style="color: #1155cc;">certificates</span></a><a href="https://developer.apple.com/account/resources/certificates/list"><span style="color: #1155cc;">/</span></a><a href="https://developer.apple.com/account/resources/certificates/list"><span style="color: #1155cc;">list</span></a><o:p></o:p></span></div>
</div>
<div>
<br />
<h3>
Identifiers</h3>
Two Identifiers are required and must be available before the creation of the provisioning profile:<br />
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; width: 100%px;">
<tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="border: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<b><span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">App ID Prefix
(Team ID)<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid black 1.0pt; mso-border-left-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<b><span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">Description<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid black 1.0pt; mso-border-left-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<b><span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">Bundle ID<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid black 1.0pt; mso-border-left-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<b><span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">Capabilities<o:p></o:p></span></b></div>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td style="border-top: none; border: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<span lang="EN-US" style="background: white; color: #333333; font-size: 8.0pt;">F7XQY5N68B</span><span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">MyCorp MUSBLAN Installer<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">com.mycorp.musblan-installer<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">System Extension<o:p></o:p></span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="border-top: none; border: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<span lang="EN-US" style="background: white; color: #333333; font-size: 8.0pt;">F7XQY5N68B</span><span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">MyCorp MUSBLAN
DriverKit<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">com.mycorp.musblan-driverkit<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">DriverKit USB
Transport - VendorID<o:p></o:p></span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 3; mso-yfti-lastrow: yes;">
<td style="border-top: none; border: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<br /></div>
</td><td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"></td><td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"></td><td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"></td>
</tr>
</tbody></table>
<br />
Identifier creation and management is done here:</div>
<div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">●<span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span lang="EN-US"><a href="https://developer.apple.com/account/resources/identifiers/list"><span style="color: #1155cc;">https</span></a><a href="https://developer.apple.com/account/resources/identifiers/list"><span style="color: #1155cc;">://</span></a><a href="https://developer.apple.com/account/resources/identifiers/list"><span style="color: #1155cc;">developer</span></a><a href="https://developer.apple.com/account/resources/identifiers/list"><span style="color: #1155cc;">.</span></a><a href="https://developer.apple.com/account/resources/identifiers/list"><span style="color: #1155cc;">apple</span></a><a href="https://developer.apple.com/account/resources/identifiers/list"><span style="color: #1155cc;">.</span></a><a href="https://developer.apple.com/account/resources/identifiers/list"><span style="color: #1155cc;">com</span></a><a href="https://developer.apple.com/account/resources/identifiers/list"><span style="color: #1155cc;">/</span></a><a href="https://developer.apple.com/account/resources/identifiers/list"><span style="color: #1155cc;">account</span></a><a href="https://developer.apple.com/account/resources/identifiers/list"><span style="color: #1155cc;">/</span></a><a href="https://developer.apple.com/account/resources/identifiers/list"><span style="color: #1155cc;">resources</span></a><a href="https://developer.apple.com/account/resources/identifiers/list"><span style="color: #1155cc;">/</span></a><a href="https://developer.apple.com/account/resources/identifiers/list"><span style="color: #1155cc;">identifiers</span></a><a href="https://developer.apple.com/account/resources/identifiers/list"><span style="color: #1155cc;">/</span></a><span style="color: #1155cc;"><a href="https://developer.apple.com/account/resources/identifiers/list">list</a></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<span lang="EN-US"></span></div>
N.B. The format of the Bundle ID is optional. As long as there are three unique ID’s that conform to Apple’s guidelines.</div>
<div>
<br /></div>
<h3>
Provisioning Profiles</h3>
Two <b>Developer ID</b> Provisioning Profiles are required. The Data Dext profile is only required if the Customer USB Device using CDC-ECM or CDC-NCM (specifically any configuration with two USB Interfaces).<br />
<div>
<br /></div>
<div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; width: 100%px;">
<tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="border: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<b><span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">Identifier<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid black 1.0pt; mso-border-left-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<b><span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">Entitlements<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid black 1.0pt; mso-border-left-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<b><span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">Provisioning
Profile Name<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid black 1.0pt; mso-border-left-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<b><span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">Download to file<o:p></o:p></span></b></div>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td style="border-top: none; border: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">MyCorp MUSBLAN Installer<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">DriverKit and
System Extension Template for<span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="background: white; color: #333333; font-size: 8.0pt;">F7XQY5N68B Developer
ID</span><span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">MyCorp MUSBLAN App
Installer<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal">
<span lang="EN-US" style="font-size: 9.0pt; line-height: 115%; mso-ansi-language: EN-US;">MyCorp_musblan_app.provisionprofile<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<br /></div>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="border-top: none; border: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">MyCorp MUSBLAN
DriverKit<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">DriverKit Template
for F7XQY5N68B - Mac Developer ID<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<span lang="EN-US" style="font-size: 8.0pt; mso-ansi-language: EN-US;">MyCorp MUSBLAN
DriverKit<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal">
<span lang="EN-US" style="font-size: 9.0pt; line-height: 115%; mso-ansi-language: EN-US;">MyCorp_musblan_dext.provisionprofile<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
</td>
</tr>
<tr style="mso-yfti-irow: 3; mso-yfti-lastrow: yes;">
<td style="border-top: none; border: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
</div>
</td><td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"></td><td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"></td><td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5.0pt 5.0pt 5.0pt 5.0pt;" valign="top"><div class="MsoNormal" style="line-height: normal; mso-pagination: none;">
<br /></div>
</td>
</tr>
</tbody></table>
</div>
N.B. Ensure that the correct Developer ID Application certificate is selected.<br />
<div>
<br /></div>
<div>
<div class="MsoNormal">
<span lang="EN-US">Profile
creation and management is done here: <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; tab-stops: 18.0pt 36.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">●<span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span lang="EN-US"><a href="https://developer.apple.com/account/resources/profiles/list"><span style="color: #1155cc;">https</span></a><a href="https://developer.apple.com/account/resources/profiles/list"><span style="color: #1155cc;">://</span></a><a href="https://developer.apple.com/account/resources/profiles/list"><span style="color: #1155cc;">developer</span></a><a href="https://developer.apple.com/account/resources/profiles/list"><span style="color: #1155cc;">.</span></a><a href="https://developer.apple.com/account/resources/profiles/list"><span style="color: #1155cc;">apple</span></a><a href="https://developer.apple.com/account/resources/profiles/list"><span style="color: #1155cc;">.</span></a><a href="https://developer.apple.com/account/resources/profiles/list"><span style="color: #1155cc;">com</span></a><a href="https://developer.apple.com/account/resources/profiles/list"><span style="color: #1155cc;">/</span></a><a href="https://developer.apple.com/account/resources/profiles/list"><span style="color: #1155cc;">account</span></a><a href="https://developer.apple.com/account/resources/profiles/list"><span style="color: #1155cc;">/</span></a><a href="https://developer.apple.com/account/resources/profiles/list"><span style="color: #1155cc;">resources</span></a><a href="https://developer.apple.com/account/resources/profiles/list"><span style="color: #1155cc;">/</span></a><a href="https://developer.apple.com/account/resources/profiles/list"><span style="color: #1155cc;">profiles</span></a><a href="https://developer.apple.com/account/resources/profiles/list"><span style="color: #1155cc;">/</span></a><a href="https://developer.apple.com/account/resources/profiles/list"><span style="color: #1155cc;">list</span></a><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<h3>
<span lang="EN-US">More Information</span></h3>
<div class="MsoNormal">
<span lang="EN-US"></span></div>
<div class="MsoNormal">
<span lang="EN-US">For more
information contact: info@belcarra.com<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<br /></div>
</div>
jv@belcarra.comhttp://www.blogger.com/profile/00089781526611128997noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-51237622875079054492020-04-13T16:05:00.000-07:002020-04-13T16:05:20.762-07:00Tools for configuring and working with Linux Gadget available on GitHub<br />
<br />
<a href="https://github.com/Belcarra/gadgetconfig">https://github.com/Belcarra/gadgetconfig</a><br />
<br />
<div style="background-color: white; box-sizing: border-box; margin-bottom: 16px;">
<span style="color: #24292e; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;">We have made the above available as part of our ongoing efforts to assist developers who want to implement USB devices. This package contains tools for configuring Gadget USB Devices and integrating with </span><em style="box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";">systemd</em><span style="color: #24292e; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;">.</span></div>
<div style="background-color: white; box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; margin-bottom: 16px;">
It relies on the Gadget ConfigFS module libcomposite to create and manage Gadget USB Devices.</div>
jv@belcarra.comhttp://www.blogger.com/profile/00089781526611128997noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-54635877313875814502019-11-04T16:16:00.000-08:002020-08-31T12:27:56.859-07:00Microchip PIC32MZ Network over USB Demo Kit available on GitHub<h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><b style="text-decoration: none;"><a href="https://github.com/Belcarra/pic32mz_usblan_harmony3_demo" style="text-decoration: none;">https://github.com/Belcarra/pic32mz_usblan_harmony3_demo</a></b></span></h3>
<h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><br /></span></h3>
<div>
<span style="background-color: transparent; color: #1155cc; font-family: inherit; font-style: normal; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="background-color: white; color: #24292e; white-space: normal;">This is a demonstration kit for the </span><span style="background-color: white; box-sizing: border-box; color: #24292e; font-weight: 600; white-space: normal;">Belcarra PIC32MZ USBLAN Driver</span><span style="background-color: white; color: #24292e; white-space: normal;"> using either of </span><span style="background-color: white; box-sizing: border-box; color: #24292e; font-weight: 600; white-space: normal;">Microchip's</span><span style="background-color: white; color: #24292e; white-space: normal;"> </span><span style="background-color: white; box-sizing: border-box; color: #24292e; font-weight: 600; white-space: normal;">PIC32MZ EF Starter Kit</span><span style="background-color: white; color: #24292e; white-space: normal;"> or </span><span style="background-color: white; box-sizing: border-box; color: #24292e; font-weight: 600; white-space: normal;">PIC32MZ EF Curiosity Board</span><span style="background-color: white; color: #24292e; white-space: normal;">.</span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: inherit;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-17d8f413-7fff-15ce-ab8c-cae9f38f2ef6"><span style="background-color: white; color: #24292e; font-family: inherit; vertical-align: baseline; white-space: pre-wrap;">The kit demonstrates how Networking over USB can be used as an alternative to Ethernet or WiFi and provide lower cost networking to a Microchip PIC32MZ based board with <u>performance that is close to Ethernet at over 80Mbps per second.</u></span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #24292e; font-family: inherit; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-a6f094fc-7fff-62d6-e28c-beb294fa8093"><span style="background-color: white; color: #24292e; font-family: inherit; vertical-align: baseline; white-space: pre-wrap;">Networking over USB allows a point to point network connection to be used between the PIC32MZ board and a Windows, Mac or Linux host.</span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #24292e; font-family: inherit; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: inherit;"><span id="docs-internal-guid-34f1fa81-7fff-99fa-37fa-3f19baa9a295"><span style="background-color: white; color: #24292e; vertical-align: baseline; white-space: pre-wrap;">This kit is based on the </span><span style="background-color: white; color: #0366d6; vertical-align: baseline; white-space: pre-wrap;"><a href="https://github.com/Microchip-MPLAB-Harmony" style="text-decoration-line: none;">Microchip Harmony 3 Framework demonstration project</a></span></span><span style="background-color: white; color: #24292e;"> however it is not necessary to have the </span><em style="background-color: white; box-sizing: border-box; color: #24292e;">Harmony 3 Framework</em><span style="background-color: white; color: #24292e;"> or the </span><span style="background-color: white; box-sizing: border-box; color: #24292e; font-weight: 600;">MPLAB Code Configurator</span><span style="background-color: white; color: #24292e;"> installed.</span></span></div>
<span id="docs-internal-guid-108fe626-7fff-c62e-9b5d-5ef0c87d7bd7"><br /></span>jv@belcarra.comhttp://www.blogger.com/profile/00089781526611128997noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-78156758964236892112018-11-06T16:42:00.000-08:002019-10-04T10:45:18.616-07:00MUSBLAN: USBLAN for MacOS<h3>
Introduction</h3>
MUSBLAN is an adaptation of Belcarra Technologies USBLAN for Windows to the MacOS (10.11.1 and later) environment.<br />
<br />
MUSBLAN focuses on three protocols for networking over USB: Microsoft RNDIS, CDC-EEM and CDC-ECM subset. Kits are protocol-specific.<br />
<br />
<h3>
Parameters of a kit</h3>
An MUSBLAN kit has the following parameters:<br />
<br />
<ul>
<li>USB Vendor/Product ID/Interface triples (driver personality information). </li>
<li>IP address of a Virtual Network Interface in MacOS which is bridged to the attached USB device(s). </li>
<li>Protocol: CDC-ECM subset, EEM or RNDIS. Other protocols (ECM, NCM) on request.</li>
</ul>
<br />
<h3>
Automatic system configuration</h3>
The MUSBLAN system 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.<br />
<br />
<h3>
Contents of a Kit</h3>
MUSBLAN is provided as a "Kext", 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.<br />
<br />
<h3>
MacOS Security Policy</h3>
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.<br />
<br />
<h3>
DemoDriver</h3>
<div>
An evaluation version of MUSBLAN is available to OEM's upon request</div>
jv@belcarra.comhttp://www.blogger.com/profile/00089781526611128997noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-25993845715772708312015-08-11T16:16:00.000-07:002015-08-11T16:16:45.521-07:00NDIS 6.3 - InstantGo Developer Notes<span style="font-family: inherit;">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..<br /><br />The following engineering notes (Stuart Lynne) addresses a particular feature known </span>variously <span style="font-family: inherit;">as:<br /><ul>
<li>InstantGo</li>
<li>AOAC (Always On / Always Connected)</li>
<li>Connected Standby</li>
</ul>
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.<br /><a name='more'></a><br />Once suspended if there is network traffic that needs the network link then the USB connection needs to be resumed. This can be done by the host OS and (to be confirmed) by the device using Remote Wakeup.<br /><br />To properly interact with InstantGo a new device should support Remote Wakeup with the following properties:</span><ul>
<li><span style="font-family: inherit;">set the Remote Wakeup bit in the bmAttributes field in the configuration descriptor</span></li>
<li><span style="font-family: inherit;">if suspended and network frames are available to send to the host the device should first use the Remote Wakeup indication to get the host to resume the bus</span></li>
</ul>
<span style="font-family: inherit;"><br />For legacy devices and to transition support there will be three levels of support. The first two being available in USBLAN for Windows v2.4.8.</span><ol>
<li><span style="font-family: inherit;">Legacy Device - no Remote Wakeup</span></li>
<li><span style="font-family: inherit;">Legacy Device - Remote Wakeup set but cannot resume for traffic</span></li>
<li><span style="font-family: inherit;">Remote Wakeup compliant Device - can use Remote Wakeup when traffic available</span></li>
</ol>
<h4>
<span style="font-family: inherit;">Legacy Device - no Remote Wakeup</span></h4>
<span style="font-family: inherit;">Devices that do not implement remote wakeup (not set in bmAttributes) will work correctly while the tablet is active. If the tablet goes into low power mode the device should not be suspended and may require to be replugged to regain network connectivity. <br /><br />Network connectivity will remain. Power consumption will be higher because the USB Device and Bus remain powered.<br /><br />What I am currently seeing is that Windows treats the device correctly while it is active. I.e. the screen is on and the system is available for use.<br /><br />Once the system goes into InstantOn mode (screen blank, low power mode) the system starts using the SET_POWER OID to change to D3 power state (suspend) and then immediately to D0 (resume). This is repeated every five seconds.</span><br /><h4>
<br /></h4>
<h4>
Legacy Device - Remote Wakeup set but cannot resume for traffic</h4>
Devices that can set Remote Wakeup in bmAttributes can use a setting to prevent being suspended. N.B. this means that even when the tablet is in low power mode the USB bus will be active and consuming power. <br /><br />Network connectivity will remain. Power consumption will be higher because the USB Device and Bus remain powered.<br /><br />What I am seeing is that the IdleNotificationHandler is being called during normal operation (screen on etc) with ForceIdle set to false when there is no traffic. That is being returned with a BUSY status and works well.<br /><br />Once the system goes into InstantOn mode (screen blank) the IdleNotificationHandler is being called with ForceIdle set to true. The driver is not supposed to return BUSY status to that but doing so appears to work (no apparent bad effects.)<br /><h4>
<br /></h4>
<h4>
Remote Wakeup compliant Device - can use Remote Wakeup when traffic available</h4>
This will be available in USBLAN for Windows v2.4.9.<br />In this mode devices can (and will be) suspended for if the connection is idle (> 10 seconds?). The host should resume the bus if the host has traffic for the device. The device can use the Remote Wakeup facility to request that the host resume the bus when it has network traffic.<br /><br />Network connectivity will remain (possibly with some latency to resume the USB Bus connection for the device). Power consumption will be lower because the USB Device has been suspended.<div>
<br /></div>
<div>
<i><a href="mailto:info@belcarra.com" target="_blank">Contact us</a> for more information</i></div>
<div>
<br /></div>
<div>
<br /></div>
jv@belcarra.comhttp://www.blogger.com/profile/00089781526611128997noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-79218595010624650072015-06-25T09:00:00.000-07:002017-01-23T10:43:15.146-08:00Simple CDC-ECM network using Belcarra's USBLAN for WindowsThe 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.<br />
<br />
Firstly,take a Linux kernel and reconfigure it as follows:<br />
<br />
- Add the following line if not present<br />
<span style="font-family: "courier new" , "courier" , monospace;"> CONFIG_USB_NET=m</span><br />
- Remove the following lines if present<br />
<span style="font-family: "courier new" , "courier" , monospace;"> CONFIG_USB_ETH_RNDIS=y</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> CONFIG_USB_ETH_EEM=y</span><br />
<br />
<br />
<a name='more'></a>Then run the configuration tool again to get a consistent set of configuration values. The lines that were removed above will re-appear, but preceded by # so that they have no effect..<br />
<br />
This has the effect of building the module g_ether so that it offers the ECM protocol. To use it<br />
<span style="font-family: "courier new" , "courier" , monospace;"> modprobe g_ether idVendor=0x15ec idProduct=0xd041</span><br />
<br />
The preceding is for a module installed into the root filesystem.<br />
<br />
If you have not done but that want to use a local module binary then the procedure<br />
<span style="font-family: "courier new" , "courier" , monospace;"> insmod g_ether.ko idVendor=0x15ec idProduct=0xd041</span><br />
where the module binary needs to be in the current working directory.<br />
<br />
To determine if a module is running type:<br />
<span style="font-family: "courier new" , "courier" , monospace;"> lsmod</span><br />
<br />
To remove module g_ether from the running kernel:<br />
<span style="font-family: "courier new" , "courier" , monospace;"> rmmod g_ether</span><br />
<br />
This operation is blocked if the module is built into the kernel:<br />
<span style="font-family: "courier new" , "courier" , monospace;"> CONFIG_USB_NET=y</span><br />
<br />
If you see the above in the configuration, change <span style="font-family: "courier new" , "courier" , monospace;">y</span> to <span style="font-family: "courier new" , "courier" , monospace;">m</span><br />
<br />
For more information please refer to the <a href="http://link.belcarra.com/USBLAN_2.4" target="_blank">Belcarra USBLAN OEM Manual</a>jv@belcarra.comhttp://www.blogger.com/profile/00089781526611128997noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-2937863543775143782013-09-27T17:06:00.000-07:002019-11-05T09:26:14.329-08:00Belcarra USBLAN for Microchip PIC32 Networking over USB Demonstration<h3>
<span style="font-family: "verdana" , sans-serif; font-size: small;"><div style="font-family: "Times New Roman";">
<span style="color: #cc0000; font-family: verdana, sans-serif;"><i>November 2019 Update</i></span></div>
<div style="font-family: "Times New Roman"; font-weight: 400;">
<span style="color: #cc0000; font-family: verdana, sans-serif;"><i><br /></i></span></div>
<div>
<span style="color: #cc0000; font-family: Times, Times New Roman, serif;"><i>NOW AVAILABLE - High Speed USBLAN PIC32MZ Implementation</i></span></div>
<div style="font-family: "Times New Roman"; font-weight: 400;">
<br /></div>
<div style="font-family: "Times New Roman";">
<a href="https://github.com/Belcarra/pic32mz_usblan_harmony3_demo">https://github.com/Belcarra/pic32mz_usblan_harmony3_demo</a></div>
</span></h3>
<h3>
<span style="font-family: "verdana" , sans-serif; font-size: small;"><i><br /></i></span></h3>
<h3>
<span style="font-family: "verdana" , sans-serif; font-size: small;"><i>Overview</i></span></h3>
<div>
The <b>Microchip PIC32</b> allows for implementation of a Full Speed USB device.</div>
<br />
Implementing a <b>Networking over USB</b> solution allows a PIC32 based design to connect to a Microsoft Windows system and use TCP/IP network connections using the <b>Belcarra Windows USBLAN</b> <b>Class</b> driver.<br />
<br />
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. <br />
<br />
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 <a href="http://link.belcarra.com/USBLAN-Demo-for-MicrochipPIC32" target="_blank">demonstration kit is available to demonstrate </a>this capability.<br />
<div>
<br /></div>
<div>
This demonstration kit is adapted from Microchips Ethernet implementation of a web server demo. The Belcarra kit uses the <i>v</i>2.9a version of USB from Microchip and has been implemented with the most recent production version <i>v</i>5.42 of the Microchip TCP/IP stack. Belcarra can also on request make available a version of this demo using the Microchip version <i>v</i>6 Beta TCP/IP stack.</div>
<div>
<br /></div>
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.<br />
<br />
<h3>
<i>
Demonstration Kit </i><i><b><span style="color: #cc0000;">[<u>Updated April 4, 2015</u>]</span></b></i></h3>
There are<u> <b><i>three</i></b></u> hex project files <br />
<a name='more'></a> (<a href="http://link.belcarra.com/belcarra-microchip-demo-2015-04-06-download" target="_blank">download zip files</a>):<br />
NOTE: updated version 2015-04-06<br />
<ul>
<li>belcarra-microchip-ethernet-v5-2014-01-23.hex - the Microchip demo accessed via Ethernet only </li>
<li>belcarra-microchip-usblan-v5-2014-01-23.hex- the Microchip demo accessed via USBLAN (USB PHY) </li>
<li>belcarra-microchip-bridge-v5-2014-01-23.hex- the Microchip demo access via USBLAN or Ethernet</li>
</ul>
Any of these can be loaded into the PIC32 Starter Kit board using the instructions below.<br />
<div>
<br />
<h4>
Requirements</h4>
<ul>
<li>Windows Development System (Windows 7 recommended)</li>
<li>Windows Test System (Windows 7 recommended)</li>
<li>MPLAB-X from Microchip installed on the Windows Development system</li>
<li> PIC32 Ethernet Starter Kit (DM320004</li>
<li>HEX files containing the Belcarra Demonstration (usblan and ethernet)</li>
<li>Internet access for Windows Update or a downloaded copy of the Belcarra Windows USBLAN Demonstration Driver</li>
</ul>
<h4>
Setup</h4>
<ul>
<li>Install MPLAB-X on the Windows Development System</li>
<li>The Windows Test System must have Internet access</li>
<li>The Windows Test System should have a <a href="http://windows.microsoft.com/en-ca/windows7/create-a-restore-point" target="_blank">System Restore Point</a> created to simplify removal of test drivers.</li>
</ul>
</div>
<div>
<h4>
Read the <b>full document (.pdf) with download link</b>: <a href="http://link.belcarra.com/USBLAN-Demo-for-MicrochipPIC32">http://link.belcarra.com/USBLAN-Demo-for-MicrochipPIC32</a></h4>
</div>
jv@belcarra.comhttp://www.blogger.com/profile/00089781526611128997noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-30925329022414186952013-05-30T15:54:00.000-07:002017-01-23T12:56:21.559-08:00Installing USBLAN for Windows Demo on Windows 8Belcarra’s evaluation version of <i><b>USBLAN for Windows</b></i> is not available directly from Windows Update for a Windows 8 user at this time, but it can be installed locally as described here.<br />
<ul>
<li>Download a <a href="http://link.belcarra.com/Install%20USBLAN%20Demo%20PPT">PowerPoint Presentation</a>, </li>
<li>Download a copy of the <a href="http://link.belcarra.com/USBLAN-for-Windows_belcarrademo_2.4.11" target="_blank">Microsoft-signed Belcarra <b><i>USBLAN for Windows</i> Evaluation driver kit</b>.</a></li>
</ul>
First make sure your device is not connected to the PC. This is an optional procedure, but the following instruction screens make that assumption.<br />
<br />
Next, run the Desktop<br />
<br />
<a name='more'></a><br />
<br />
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="300" src="https://lh6.googleusercontent.com/NfUc-4-AAVLfvyczuIMjjprljSUAv3n-PGsJxQ9wWy3PuFUCaW8gWwsqBHosutjwE_NvtrO010_Y7CFKALINELfNoqBOVft2oZ_y8gr8RRjXMVstYz5n1LlkbA" width="400" /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<br />
Once the Desktop is running, create a new directory. For this guide, the directory is called usblan but any name can be used.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://lh5.googleusercontent.com/5VOKvqWF6NTBfNfoiTacMb0sOpimyOAyfmJK4oZ71-d_wwoI2XE9QQUhtdrD-1JXrC9R_DW5baIeuNTpqyY8jn7IDWoMnIIn73J9NpmJ-Sf570xv3dUOi8pQ" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://lh5.googleusercontent.com/5VOKvqWF6NTBfNfoiTacMb0sOpimyOAyfmJK4oZ71-d_wwoI2XE9QQUhtdrD-1JXrC9R_DW5baIeuNTpqyY8jn7IDWoMnIIn73J9NpmJ-Sf570xv3dUOi8pQ" width="400" /></a></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: baseline;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="background-color: transparent; clear: right; color: black; float: right; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; margin-bottom: 1em; margin-left: 1em; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
</div>
<br />
Now copy the Belcarra Demo (downloaded as above) archive into the new directory, and open this new directory with Windows Explorer<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<img height="300" src="https://lh6.googleusercontent.com/0ZARzgc8bqVZqkmVXGCheD_jSYBjniWaZYEaPs9lsItfA40DTRC6nXOZhko9t8m2CgmfDAFQEZEgHWPgZbKjhHIadkRsPku_5QrV0yOOkAJV4249cS4qMlni7w" width="400" /></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
</div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
Next, right click on the archive, and select Extract All. This will bring up a dialog box as follows<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; margin-left: 1em; margin-right: 1em; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="300" src="https://lh3.googleusercontent.com/H_bC8J7aJe_zydIOQPLtiEIPJhIBaoq9IUP8-hF-0d-bz4-EUeFP5UGf1VnyfEQNaIbf8NSJdkuok4EwftWJjKL090Bay83L6Z3Tgx74uRcVzLIDBl5LpBru" style="line-height: normal; text-align: center;" width="400" /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
</div>
<br />
<br />
The highlighted value is the destination folder. For this purpose, the default is suitable. Therefore, simply click on Extract. This will produce the following:<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; margin-left: 1em; margin-right: 1em; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="300" src="https://lh4.googleusercontent.com/OqTsJBWEh03u_mHNoHvV8gufMnCu9I8gqVvb-i3A_W0uD7Ta_cqWqejM56wyowZ9BtD-6DlD4C67e-1g8jwowXXkEhuygUqtTye7DvZsXFMKrC3f1Fe0B02p" width="400" /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
</div>
<br />
<br />
The file <span style="font-family: "courier new" , "courier" , monospace;">setup</span> is the<span style="background-color: white;"> pre-in</span>staller. Double click on it. This will bring up the following dialog box.<br />
<br />
<div class="separator" style="clear: both;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; margin-left: 1em; margin-right: 1em; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="300" src="https://lh5.googleusercontent.com/HNmP7E7zBtBiQ8XsJOJzwp-cnmQJOxhDAJ-1rNXZc-hYeRSm08uBUr4Oa2aClGqfUh72MsmMWdpEf5B7kQ7a9TAo8VySJdoaGGB2mSxrVAMS6-ZDsg3wRCcg" width="400" /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
</div>
<br />
<br />
This dialog box asks your permission to run the driver installation wizard. Click on Yes and the Wizard will start.<br />
<br />
<div class="separator" style="clear: both;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; margin-left: 1em; margin-right: 1em; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="300" src="https://lh6.googleusercontent.com/oHlzj4uetHv7dUv-FZs8x-guYeHtzcaG_wftcl86i-I1BF2QZ0JKBkPkoaMDAyXXGKZ5TRwImdGiWl_VM90_CkQJIOFbSMiFnIncWwUMdM3lWkDFJZxOC_C4" width="400" /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
</div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<br />
Click on Next to start the installation or Cancel to abandon the installation.<br />
<br />
If you click on Next you will see some patience dialog boxes while the Wizard runs, and then this:<br />
<br />
<div class="separator" style="clear: both;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; margin-left: 1em; margin-right: 1em; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="300" src="https://lh4.googleusercontent.com/5BSdKy_xsoMU0oJhEY99oR_XGVhhoLxn0iV81twwsq2ePOz_Gd-SSOTa4RAJjOLyspybakYEv3SM9SWh51xOsU4zyPaSo1Omsyrpf0lIzIPV6MGOfBb639CZ" width="400" /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
</div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<br />
Click on Finish to end the Driver installation process. The windows still open can now be closed.<br />
<br />
Now it is time to connect the device. Before doing this, bring up the Control Panel<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: baseline;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="margin-left: 1em; margin-right: 1em; vertical-align: baseline;"><img height="300" src="https://lh5.googleusercontent.com/gBEp6pm_yDHO6mVU7uehHKGSD84rqwjhuEPSmF-s9BNKX4tWoxDCh5Y6zh3MUZOqwI-CuoJZmnM4iVOcRq8k-CvehNobGKyw21W0_aBVMs0uCjYnLANtyI71" width="400" /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: baseline;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
Double-click on Network and Sharing Center. This will bring up the following screen (or something similar)<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="margin-left: 1em; margin-right: 1em; vertical-align: baseline;"><img height="300" src="https://lh4.googleusercontent.com/t0hv8xbBLEqtJDtZVstsvsY2vVgW1XecY2cQkIgAIj86Jvx0aHqfuiQGChsSobwPQmOx-K0ZiS_-VY2EqLzDPBFug59tIsy8DyehVO0QFS3LBV1B05CLMw38" width="400" /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: baseline;"></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: baseline;"><span style="vertical-align: baseline;"><br /></span></span></span></div>
<br />
Before connecting your device, check to make sure it is using one of the special Vendor ID / Product ID pairs supported by the demo:<br />
<div>
<br /></div>
<div>
<span id="docs-internal-guid-52500054-f7b5-24f0-8edd-9a0175375f13"><br /><span style="font-family: "arial"; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span></span>
<br />
<div dir="ltr">
<table style="border-collapse: collapse; border: none;"><colgroup><col width="208"></col><col width="94"></col><col width="136"></col></colgroup><tbody>
<tr style="height: 0px;"><td style="background-color: #efefef; border: 1px solid #000000; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"><b>Configuration</b></span></div>
</td><td style="background-color: #efefef; border: 1px solid #000000; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"><b>Vendor ID</b></span></div>
</td><td style="background-color: #efefef; border: 1px solid #000000; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"><b>Product ID</b></span></div>
</td></tr>
<tr style="height: 0px;"><td style="border: 1px solid #000000; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">DHCP enabled</span></div>
</td><td style="border: 1px solid #000000; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">15ec</span></div>
</td><td style="border: 1px solid #000000; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">d031</span></div>
</td></tr>
<tr style="height: 0px;"><td style="border: 1px solid #000000; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">DHCP disabled</span></div>
</td><td style="border: 1px solid #000000; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">15ec</span></div>
</td><td style="border: 1px solid #000000; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">d032</span></div>
</td></tr>
</tbody></table>
</div>
<span id="docs-internal-guid-52500054-f7b5-24f0-8edd-9a0175375f13">
</span>
Now connect the device. A new network interface will appear:<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: baseline;"><span style="vertical-align: baseline;"><br /></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="margin-left: 1em; margin-right: 1em; vertical-align: baseline;"><img height="300" src="https://lh3.googleusercontent.com/KtYOPlRIn3-iPunUlystDJDROWw3x4AJnmCZOb-OlUPbJXk84J4zknsX_JTljr_6-QFUSL_7FNu4xhB3wHfM-wAcJAik58kbDYvKxFVslh1xQ53poRmOpJfMYQ" width="400" /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: baseline;"></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: baseline;"><span style="vertical-align: baseline;"><br /></span></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div>
</div>
jv@belcarra.comhttp://www.blogger.com/profile/00089781526611128997noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-39448300577445697382013-05-15T13:30:00.000-07:002013-12-16T15:13:29.931-08:00USB TestDrive - Panda<h4>
Introduction</h4>
For some time now Belcarra has made available a <a href="http://link.belcarra.com/TestDriveOverview" target="_blank">USB test package system</a> for the <a href="http://link.belcarra.com/TestDriveOveroSetup" target="_blank">Gumstix Overo Earth</a> and related boards. This package is ultimately based on the Angstrom system.<br />
<br />
The goal of<a href="http://link.belcarra.com/TestDrivePandaSetup" target="_blank"> <b>Testdrive Panda</b> (<i><u>updated 2013-12-13</u></i>)</a> is to extend the project to newer systems using the TI Pandaboard. The decision was made to use Ubuntu instead of Angstrom because it’s possible to put a complete development system on board the distribution -- so if you want to test with an additional tool -- just load it on the board either with the package manager or in the worst case build it from source, all on the board, no cross-compilation needed.<br />
<br />
However, another goal of the effort was to make this mostly unnecessary. For example, the standard network performance tool <span style="font-family: Courier New, Courier, monospace;">iperf</span> is not part of the Ubuntu distro that we used, but we added a source for <span style="font-family: Courier New, Courier, monospace;">iperf</span> to the package manager’s source list.<br />
<br />
In addition to this, we<b><u> customized the distro</u> (<a href="http://link.belcarra.com/download_pandaboard_TestDrive" target="_blank">download here</a>) t</b>o use a more recent Linux kernel with a customized configuration streamlined for USB testing.<br />
<br />
<h3>
Acquiring and Installing TestDrive-Panda</h3>
<h4>
<b><a name='more'></a>Testdrive Panda Features</b></h4>
Testdrive Panda is built on the Precise 10 Ubuntu distribution with some small customizations.<br />
<br />
<ul>
<li>The language is specified as English and date format is US English</li>
<li>A custom Linux kernel rather that the one supplied in Precise 10, although the the original kernel is available</li>
<li>Text-based operation only -- via the serial port or via ssh</li>
<li>Simple scripts to load ECM NCM EEM modes with specified VID/PID pairs (Gadget)</li>
<li>iperf available (see above)</li>
<li>quick boot</li>
<li>a special user user called <span style="font-family: Courier New, Courier, monospace;">testdrive</span> with no password that is in the <span style="font-family: Courier New, Courier, monospace;">sudo</span> group -- and therefore has <span style="font-family: Courier New, Courier, monospace;">root</span> privilege via the <span style="font-family: Courier New, Courier, monospace;">sud</span><span style="font-family: Courier New, Courier, monospace;">o</span> command.</li>
</ul>
<div>
...<b><a href="http://link.belcarra.com/TestDrivePandaSetup" target="_blank">read the full document</a></b></div>
jv@belcarra.comhttp://www.blogger.com/profile/00089781526611128997noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-74176057935741031202012-08-27T17:00:00.000-07:002013-12-12T16:47:59.414-08:00USBLAN for Windows - RNDIS Protocol SupportBelcarra is pleased to announce the addition of the RNDIS protocol to their <a href="http://usblan.belcarra.com/">USBLAN for Windows</a> Network over USB solution (<a href="http://usblan.belcarra.com/">http://usblan.belcarra.com/</a>),<br />
<br />
Belcarra’s USB Class Driver is a suite of products which enables networking over the USB link. Belcarra’s RNDIS implementation provides several USBLAN features including faster data transfer abilities. The addition of RNDIS gives Belcarra's <i>USBLAN for Windows</i> the most complete set of USB networking protocols available in a single driver product.<br />
<div>
<br />
<a href="http://www.blogger.com/"></a><span id="goog_1829312100"></span><span id="goog_1829312101"></span><a href="http://www.prweb.com/releases/2012/8/prweb9769681.htm">http://www.prweb.com/releases/2012/8/prweb9769681.htm</a>
<br />
<br />
<a href="mailto:info@belcarra.com" rel="nofollow" target="_blank">Contact us</a> to receive your evaluation copy of the <a href="https://docs.google.com/file/d/0BxfiY9AWawDDLXNpRU1qSW9sOVk/edit?usp=sharing" target="_blank">USBLAN 2.4.4</a> release.</div>
jv@belcarra.comhttp://www.blogger.com/profile/00089781526611128997noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-46405277443286032872012-06-04T11:24:00.000-07:002013-05-30T15:57:00.282-07:00Virtual Driver for USB Network Devices<b>USBLAN for Mac OS/X</b><br />
<br />
Belcarra’s new <b>Virtual Driver for Networked USB devices </b>greatly improves the end user experience for interfacing smart devices to the Mac OS/X desktop. <br />
<br />
Traditional solutions create a network interface for each attached device requiring the user to find and then configure a network service for the interface with the correct operating parameters (IP address etc.)<br />
<br />
Belcarra’s solution features a Virtual Network Interface that is created when the system is started. This interface can be configured to a static IP address or simply default to use the normal DHCP configuration. <br />
<br />
<a name='more'></a><br /><br />
The Virtual Network driver contains a bridge that performs two functions. First it connects all compatible devices plugged into the system to the Virtual Network Interface. Second it contains a Virtual DHCP server that can be used to configure both the Host (Mac System) IP address and each of the attached devices<span style="font-family: Arial; font-size: 15px;">.</span><br />
<br />
<b>The Problem</b><br />
Commonly drivers model a collection of USB network devices as a collection of network interfaces, one per device. This model presents a number of issues:<br />
<ul>
<li>The interfaces are <i>transient:</i> they are (indirectly) created by USB cable events. Since the USB cable is not present at install time, the installer cannot create or configure the interface. </li>
<li>multiple devices create multiple interfaces, typically by serial number. So, for instance, if a user upgrades from one device to another, the upgrade will create a new ethernet interface </li>
<li>a predictable MAC address is a key tool for a configuration assistant tool to map Network Services to underlying devices. This is impossible if every device creates a new network interface.</li>
</ul>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
</ul>
<b>The Solution</b><br />
Belcarra’s solution is to create a virtual interface which is independent of the USB subsystem, and therefore can be created and set up before any cable events, and also, has a MAC address which is independent of all the various devices.<br />
<br />
Instead of creating multiple network interfaces, the driver bridges the various devices to the virtual interface.<br />
<br />
If we connect, say 20 devices of the same kind, using a regular ethernet hardware interface for each one, then OS/X will create 20 enX interfaces, and the user will have to set all 20 of them up in the Network pane. Using a virtual network interface, we have a single interface independent of all the devices, and 32 bridge slots, numbered from 0 to 31, using a bit mask. When a device is connected, it is allocated one of those slots, and traffic from that device is bridged to the virtual interface. When the device is disconnected, the pending traffic is purged and the slot is freed. The Network pane sees only 1 network device, which is connected if one or more USB devices are connected, and <i>disconnected</i> otherwise.jv@belcarra.comhttp://www.blogger.com/profile/00089781526611128997noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-66024768898820860712012-04-03T15:57:00.001-07:002013-12-17T17:27:03.367-08:00USBLAN 2.4.1 AvailableUSBLAN 2.4.0 release provided support for CDC-NCM and Microsoft NDIS 6.<br />
<br />
<b>USBLAN 2.4.1 now adds support for the Microsoft RNDIS protocol.</b><br />
<br />
OEM's with with WinCE, embedded Linux or other devices configured to use RNDIS can now simply take advantage of USBLAN's many networking features such as:<br />
<ul>
<li>DHCP Service – DHCP service is not need on target or Windows, USBLAN's built in DHCP server option can be used to co-ordinate and assign address of both the host and device network interfaces </li>
<li>Composite function – the USBLAN driver is fully compatible with the Windows USB composite function support </li>
<li>WHQL – drivers are fully compatible with Microsoft Windows Hardware Quality Labs (WHQL) tests and procedures </li>
<li>Multiple devices can be connected allowing peer to peer networking and to the Windows desktop.</li>
</ul>
<div>
An <a href="mailto:info@belcarra.com">evaluation version</a> and <a href="http://link.belcarra.com/USBLAN-for-Windows_2_4_4" target="_blank">OEM manual</a> are freely available</div>
jv@belcarra.comhttp://www.blogger.com/profile/00089781526611128997noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-21133195528876058282012-01-04T09:30:00.000-08:002013-05-30T15:57:52.251-07:00Belcarra EEM Configuration Extension DescriptorThe CDC-EEM protocol is capable of aggregating multiple network datagrams into a single Bulk Data transfer. <br />
<br />
The standard does not implement a mechanism to allow the host and device to determine an appropriate size for Bulk transfers. While implementing EEM without this information is possible, it complicates the implementation. If the Host and Device know what the capabilities of the other end are (WRT to transfer size especially) then the driver implementations can be significantly simpler and easier to implement.<br />
<br />
<a name='more'></a><br /><br />
This has led to many implementations only allowing for a maximum of 1536 byte transfers (based on Ethernet MTU of 1510 bytes.) and a single datagram per transfer. Other implementations require administrative configuration to configure one or more of the operating parameters.<br />
<br />
The result is that the only safe configuration that can support unknown hosts or devices is:<br />
<ul>
<li> CRC - disabled</li>
<li> bMaxDatagrams - 1</li>
<li> bMaxTransferSize - 1536</li>
</ul>
This extension described herein can be used by an <a href="http://usblan.belcarra.com/">EEM Class driver</a> on the host to send configuration data to the device and receive configuration data from the device. The EEM Configuration Extension Descriptor is sent to the device as Echo Data command data. <br />
<br />
If the device is non-conforming (does not support this extension), it will either ignore or send the command back unchanged (specifically the <b>D0</b> flag of the <b>bmFlags</b> field will remain reset.) In this case the host will continue to use the default configuration.<br />
<br />
Conforming devices will send the command back, but will fill in the configuration fields. If the device receives this command it can assume that the host will use the information to operate with. Otherwise they will operate with the default configuration. Conforming devices <b>MUST SET</b> the <b>D0</b> bit of the <b>bmFlags</b> field to indicate that they have recognized this configuration request and are responding with valid values.<br />
<div>
<br /></div>
<div>
<h5 dir="ltr" id="internal-source-marker_0.6540646076160349" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="font-family: Arial; font-size: 15px; text-decoration: none; vertical-align: baseline;">EEM Configuration Extension Descriptor</span></h5>
<div dir="ltr">
<table style="border-collapse: collapse; border: currentColor;"><colgroup><col width="57"></col><col width="136"></col><col width="47"></col><col width="69"></col><col width="314"></col></colgroup><tbody>
<tr style="height: 0px;"><td style="background-color: #cccccc; border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; font-family: Arial; font-size: 13px; text-decoration: none; vertical-align: baseline;"><b>Offset</b></span></div>
</td><td style="background-color: #cccccc; border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; font-family: Arial; font-size: 13px; text-decoration: none; vertical-align: baseline;"><b>Field</b></span></div>
</td><td style="background-color: #cccccc; border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; font-family: Arial; font-size: 13px; text-decoration: none; vertical-align: baseline;"><b>Size</b></span></div>
</td><td style="background-color: #cccccc; border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; font-family: Arial; font-size: 13px; text-decoration: none; vertical-align: baseline;"><b>Value</b></span></div>
</td><td style="background-color: #cccccc; border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; font-family: Arial; font-size: 13px; text-decoration: none; vertical-align: baseline;"><b>Description</b></span></div>
</td></tr>
<tr style="height: 0px;"><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">0</span></span></div>
</td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">EEM Command</span></span></td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">2</span></span></div>
</td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">8014</span></span></div>
</td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">EEM Command specified ECHO DATA with payload of 20 bytes.</span></span></td></tr>
<tr style="height: 0px;"><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">2</span></span></div>
</td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">bGUID</span></span></td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">16</span></span></div>
</td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">16 byte GUID</span></span></div>
</td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">0x23, 0x57, 0x1b, 0x05, 0xfd, 0x18, 0x45, 0x81,0x93, 0x62, 0xa1, 0x6c, 0xee, 0xfc, 0xcc, 0xdf</span></span></td></tr>
<tr style="height: 0px;"><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">18</span></span></div>
</td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">bmFlags</span></span></td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">2</span></span></div>
</td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">bitmask</span></span></div>
</td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">D2: use CRC, D1: multi-datagrams supported, D0: confirmed</span></span></td></tr>
<tr style="height: 0px;"><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">20</span></span></div>
</td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">bMaxTransferSize</span></span></td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">2</span></span></div>
</td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">integer</span></span></div>
</td><td style="border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;"><span style="text-decoration: none; vertical-align: baseline;"><span style="font-family: inherit; font-size: x-small;">Maximum number of bytes per transfer, must be a multiple of of the endpoint packetsize.</span></span><span style="font-family: Arial; font-size: 15px; text-decoration: none; vertical-align: baseline;"></span></td></tr>
</tbody></table>
</div>
<br />
<span style="font-family: Arial; font-size: 15px; text-decoration: none; vertical-align: baseline;"></span></div>
<b>EEM Command</b> - this is an EEM Echo Data command with a payload length of 20 bytes.<br />
<br />
<b>bmFlags</b> - if the host supports CRC it will set the D2 bit. The device can return the flag set if it wants to support CRC or reset it to tell the host not to use CRC. The D1 bit is set if the host supports receiving transfers with multiple datagrams. The device must set or reset the D1 bit to show its support for multiple datagrams. The host must send the D0 bit reset. The device will always set the D0 bit to indicate that it recognized and is using the configuration data.<br />
<ul>
<li>D0 - Confirmed - set if device recognized this request and is responding with valid data</li>
<li>D1 - Multiple Datagrams Supported - multiple datagrams per EEM Bulk transfer allowed</li>
<li>D2 - CRC is supported</li>
</ul>
<b>bMaxTransferSize</b> - the host will send the maximum number of bytes (must be a multiple of the endpoint packet size) in any IN transfer. The device will send the size it will support for any OUT transfer.jv@belcarra.comhttp://www.blogger.com/profile/00089781526611128997noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-6308513724742629492011-10-19T11:11:00.000-07:002011-10-19T11:12:56.926-07:00Multiple Frame Support<div>
Networking over USB protocols can support network frame aggregation. This allows for multiple network frames to be transferred in a single Bulk Data transfer.</div>
<br />
USB Bulk Data transfers have overheads. Both at the bus level where individual transfers must be terminated with a short data packet. And at the OS level where the USB controller drivers must setup and tear down each transfer. And finally in the communication between the protocol driver (class driver on host systems and matching function driver on devices) and the low level controller drivers. These add latency to the time it takes for each transfer to take place.<br />
<br />
Aggregating multiple network frames into a single Bulk Data transfer allows the overheads and associated latencies to be absorbed across multiple network frames.<br />
<br />
Care must be taken in the use of this feature though. Additional latency is induced as the entire Bulk Transfer must be received before any of the network frames it contains can be forwarded. This places a bound on effective number of frames that should be aggregated. The actual number is best determined by using simple heuristics at runtime to ensure that the use of available bandwidth is optimized with only minimal latency added.<br />
<br />
Effective multi-frame support can provide close to 100% improvement in throughput.<br />
<div>
<br />
See also: <a href="http://usblan.belcarra.com/p/protocols.html">Networking over USB Protocol Comparison</a></div>jv@belcarra.comhttp://www.blogger.com/profile/00089781526611128997noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-50742411482831941232011-08-31T11:07:00.000-07:002017-01-23T13:01:21.560-08:00Evaluation Version 2.4 USBLAN from Windows UpdateThe new version of Belcarra's USB Class Driver for Windows is available through the Microsoft DDC. To use the <a href="http://link.belcarra.com/USBLAN_2.4">USBLAN 2.4</a> evaluation driver your device will need to offer Vendor ID <i>0x15ec</i> (Belcarra) and our Demo Product ID<i> 0xd041</i>. Ensure that your Windows system is connected to the Internet, plug your device in and let Windows search Windows Update. The protocol (CDC-ECM, CDC-EEM, CDC-NCM and RNDIS) is automatically detected.<br />
<br />
The INF file of the USBLAN evaluation driver creates global variables in the registry using Service name BelcarraDemoUSBLAN <a href="http://link.belcarra.com/USBLAN_2.4_Manual">(see Section 5.2</a>). These parameters can be modified later using Regedit. Alternatively, common operations, like enable or disable DHCP, can be performed by installing the appropriately named INF file in a supplementary package of INF files (available on request). For example, to enable the DHCP feature do the following<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>right-click on the file dhcpd-enable.inf in Windows Explorer<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>select the method Install<br />
N.B. the evaluation USBLAN driver is not the debug version of the driver. If you need to debug your USB device contact support@belcarra.com for a debug (CHK) version of the evaluation driver.<br />
<br />
This evaluation version will run for 30 minutes at a time. It must be re-plugged to continue use.jv@belcarra.comhttp://www.blogger.com/profile/00089781526611128997noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-17161777099632916472011-04-07T16:04:00.000-07:002011-09-16T13:15:48.753-07:00USB TestDrive Windows Setup<a href="http://link.belcarra.com/TestDriveWindowsSetup">This document</a> is part of series about <a href="http://link.belcarra.com/TestDriveOverview">Belcarra’s USB Testdrive</a>, a quick and easy system for setting up and testing USB solutions between a Windows host and a Gumstix Overo.<br />
<br />
The TestDrive system can be used to test and evaluate various USB networking solutions. This document describes<br />
<ul>
<li>How to prepare a Windows test machine</li>
<li>How to obtain Belcarra’s USBLAN Windows driver which transparently supports CDC-ECM, CDC-EEM, CDC-NCM.</li>
<li>How to run definitive tests to determine reliability, endurance and speed of network links, using industry standard tools.</li>
</ul>
A USB system consists of a host and one or more peripherals, also known as targets. The TestDrive system uses Windows (all recent versions) as the host environment, and <a href="http://link.belcarra.com/TestDriveOveroSetup">the Gumstix Overo as the target</a>. <br />
<br />
<b><u>Windows Setup and Testing</u></b><br />
<div>
<i><a href="http://link.belcarra.com/TestDriveWindowsSetup">... read on ....</a></i></div>
jackhttp://www.blogger.com/profile/07754050276288850739noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-12430986505016214442011-03-22T14:46:00.003-07:002020-11-25T15:47:47.834-08:00Belcarra USB TestDrive<span class="Apple-style-span" style="font-family: inherit;"></span><br />
Belcarra supports an environment for testing USB Networking protocols. <a href="https://links.belcarra.com/USB_Testdrive_Overview">This paper</a>, is the first in a series and will provide an overview of this environment which includes both USB Host and USB Device side software components.<br />
<br />
Belcarra’s Overo USB TestDrive is a Linux based test system based on the <a href="http://www.gumstix.com/index.html">Gumstix</a> Overo board. The <a href="http://www.gumstix.com/store/catalog/index.php?cPath=27_33"></a>Overo board is a low cost hardware development system using a Texas Instruments OMAP series of System On Chip (SOC) technology. It supports USB 2.0 for both host and client implementations.<br />
<br />
<b><u>Introduction</u></b><br />
<br />
The TestDrive system can be used to test and evaluate various USB Networking protocols and implementations:<br />
<ul>
<li><span class="Apple-style-span" style="font-family: inherit;">Gadget based network and filestorage function drivers</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">Belcarra based network and mass storage function drivers</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">Belcarra Windows USBLAN class driver</span></li>
</ul>
<span class="Apple-style-span" style="font-family: inherit;">The USB TestDrive kit contains:</span><br />
<ul>
<li><span class="Apple-style-span" style="font-family: inherit;">Overo ROOTFS</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">Compiled Linux kernel and modules</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">script to create an SD card to boot an Overo</span></li>
</ul>
<span class="Apple-style-span" style="font-family: inherit;">Network test tools included:</span><br />
<ul>
<li><span class="Apple-style-span" style="font-family: inherit;">wget / wput</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">iperf</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">apache</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">ping and pingall script<a name='more'></a></span></li>
</ul>
<span class="Apple-style-span" style="font-family: inherit;">The following USB networking protocols are supported:</span><br />
<ul>
<li><span class="Apple-style-span" style="font-family: inherit;">CDC-ECM</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">CDC-EEM</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">RNDIS *</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">CDC-NCM (2nd quarter 2011)</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">Mass Storage (Bulk only)</span></li>
</ul>
<span class="Apple-style-span" style="font-family: inherit;">All of the CDC protocols can be easily tested against Windows Operating Systems (10, 8.1, and 7) using an <a href="https://downloads.belcarra.com/usblandemo/">evaluation version of Belcarra’s Windows USBLAN</a> driver available from Windows Update.</span><br />
<br />
The Overo kernel and root filesystem is setup with the following:<br />
<ul>
<li>2.6.34 Linux kernel (this is the first kernel to have proper CDC-EEM support in the Gadget subsystem) </li>
<li>Belcarra USB peripheral modules</li>
<li>Gadget modules</li>
<li>Network test tools installed and ready to use as soon as the system boots.</li>
<li>Gadget or Belcarra modules that can be loaded and unloaded for testing with a simple shell script</li>
</ul>
Setting USB options can be done by passing arguments to the module loading scripts:<br />
<ul>
<li>Networking protocol - CDC-ECM, CDC-EEM, Mass Storage</li>
<li>USB Vendor and Product ID’s</li>
</ul>
Note that both Gadget and Belcarra’s USB stack implement Composite devices. Some variations of these can also be tested:<br />
<ul>
<li>Network / Mass Storage</li>
<li>Network / Serial</li>
<li>Network / Serial / Mass Storage</li>
</ul>
<br />
<b><u>Getting the Kit</u></b><br />
<br />
The kit can be downloaded from the <a href="https://downloads.belcarra.com/">Belcarra USB TestDrive archive.<br /></a>
<br />
<div>
The Belcarra Linux kernel is available from github with the following:<br />
<blockquote>
git clone belcarraovero.github.com/linux-overo-2.6.34.git</blockquote>
<b>NOTE:</b> <a href="http://usbd.belcarra.com/">Belcarra’s Composite USB</a> stack is available separately. Contact <a href="mailto:info@belcarra.com">info@belcarra.com</a><br />
<b><u><br />
</u></b><br />
<u><span class="Apple-style-span" face=""arial" , "tahoma" , "helvetica" , "freesans" , sans-serif" style="color: #222222; font-size: 13px; line-height: 18px;"><u><b><a href="http://usbd.belcarra.com/2011/03/belcarra-overo-usb-testdrive-setup.html">Overo Setup and Testing Overview</a></b></u></span></u><br />
<div>
<u><b><br />
</b></u><a href="https://links.belcarra.com/USB_Testdrive_Overview"><br />
<u><b>Additional Documentation</b></u><br />
</a><ul>
<li><a href="https://links.belcarra.com/Overo_USB_TestDrive_Setup">Overo USB TestDrive Setup</a> - an overview of USB Device testing using Belcarra’s Overo USB Test Environment.</li>
<li><a href="https://links.belcarra.com/Windows_USB_TestDrive_Setup">Windows USB TestDrive Setup</a> - an overview of setting up a Windows system to do testing of USB devices with tools such as Apache and Cygwin.</li>
<li><a href="https://links.belcarra.com/USB_Testdrive_Overview">Belcarra USB TestDrive</a> - an overview of Belcarra’s USB TestDrive Environment,</li>
</ul>
</div>
<div>
<br /></div>
<div>
<ul></ul>
</div>
</div>
jackhttp://www.blogger.com/profile/07754050276288850739noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-35840905457318029632011-02-16T15:36:00.000-08:002011-02-18T15:14:35.833-08:00Updated USB MSC FunctionBelcarra’s <a href="http://usbd.belcarra.com/">USB Device stack</a> includes a Mass Storage (MSC) function. This allows an embedded device using the USB Framework to emulate a Mass Storage device either as a standalone function or as part of a composite configuration.<br />
<br />
The Belcarra MSC solution was updated to increase performance and extend its feature set:<br />
<ul>
<li>More efficient use of the Block IO system for higher throughput</li>
<li>Support for mulitple LUN’s (storage volumes)</li>
<li>Management (API) allowing things like detecting individual LUN changes</li>
<li>Virtual CDROM support (map an ISO image)</li>
<li>Read-only volume support -- (Management API allows dynamic change)</li>
</ul>
<br />
<a name='more'></a>Extensive testing has been done to ensure reliability and improve performance using the industry standard<br />
tools; the USB IF Mass Storage command verifier tool, Microsoft WLK and CrystalDiskMark tool.<br />
<br />
<b>Management API</b><br />
<br />
The MSC system allows 4 LUN’s (storage units). There are management operations for individual storage units and for the system as whole.<br />
<br />
For each LUN, a storage volume is mounted, optionally with the read-only flag set. This associates a LUN with back store. This can happen before or after a USB connection is established with a host.<br />
<br />
The following operations are supported<br />
<ul>
<li>determine (without blocking) whether a USB connection is established</li>
<li>wait (block) until a USB connection is established</li>
<li>wait (block) until a user either ejects a LUN or removes the cable. Afterwards, status queries can determine what has happened. This allows individual LUN’s to be temporarily closed while the others remain active. </li>
<li>enable r/w on a read-only LUN (disabling a r/w LUN is unsafe</li>
</ul>
<b>Virtual CDROM</b><br />
<br />
For auto-installation of software (especially drivers), a virtual CDROM is useful. This differs from a read-only LUN in small details. <br />
<br />
The CDROM device type is detected by a SCSI command after enumeration. The data transport is exactly like a virtual hard disk, but the data should be in ISO9660 format.<br />
<div>
<br />
The CD image is placed in an ordinary file. The losetup command creates a virtual (read-only) device (dev/loop0) from the image, and this device is mounted to MSC<br />
<blockquote>
<u>Note:</u> a virtual CDROM must be the only LUN. This is no problem with Belcarra USB using one instance of MSC with writable back-store and a second instance for a virtual CDROM.</blockquote>
During Enumeration, device returns cdrom type to host to indicate it is a cdrom. then losetup a cd Image file to a loop device /dev/loop0, next mount the loop device to msc. At this point, host can see the content of cd image.</div>
<div>
<div>
<br /></div>
<div>
<b>Summary</b></div>
<div>
<br /></div>
<div>
Used in a standalone or composite configuration the MSC function provides a reliable way to provide a virtual mass storage device as part of your embedded device. It is designed to minimize resource usage while still providing for good throughput.</div>
</div>jackhttp://www.blogger.com/profile/07754050276288850739noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-55639392973003750392011-01-22T11:53:00.000-08:002011-02-03T16:29:59.874-08:00CDC-EEM Streaming ModeSupport for networking over USB using the<a href="http://www.usb.org/developers/devclass_docs/CDC_EEM10.pdf"> </a><a href="http://www2.belcarra.com/pdf/Belcarra_USBLAN-EEM_whitepaper.1.1.pdf">Ethernet Emulation Model</a> was originally implemented in 2006 on both the device (<a href="http://usbd.belcarra.com/">Composite Device Framework</a>) and host (<a href="http://usblan.belcarra.com/">USBLAN</a>) drivers. Current versions of our drivers now include streaming mode providing for significantly faster data transfer, <a href="http://usblan.belcarra.com/2011/02/cdc-eem-vs-cdc-ecm-protocols.html">"<span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;">EEM throughput is about 50% higher than ECM in an optimal configuration"</span>.</a> For more information,<a href="mailto:info@belcarra.com"> contact us</a> today.
<br />jackhttp://www.blogger.com/profile/07754050276288850739noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-37333756083006653412011-01-05T12:04:00.000-08:002011-07-21T11:53:13.995-07:00USBLAN Driver available in Windows UpdateYear end review of the Windows Update program that enabled end users to simply and silently install Belcarra <a href="http://usblan.blogspot.com/">USBLAN </a>deemed it as a success.<br />
New Belcarra USBLAN customer kits are required to pass Windows Hardware Quality Labs testing review as well as the previous regime of stress tests. <br />
Microsoft signed USBLAN driver from Windows Update no longer requires system restart or user input during installation.<br />
For more information a fairly comprehensive <a href="http://usblan.belcarra.com/p/usblan-deployment-guide.html"></a>deployment guide is <a href="http://usblan.belcarra.com/search?updated-min=2009-01-01T00%3A00%3A00-08%3A00&updated-max=2010-01-01T00%3A00%3A00-08%3A00&max-results=1">available here.</a><br />
<br />
<b>[UPDATE - July 20,2011 USBLAN Version 2.4 Released <a href="http://link.belcarra.com/USBLAN_2.4_Manual">Download OEM Manual</a>]</b><br />
<br />
<b>See also</b>: <a href="http://usblan.belcarra.com/2011/07/linux-gadget-vidpid-patch-for-usblan.html">Linux Gadget VID/PID Patch for USBLAN Evaluation</a> <br />
These patches (<a href="http://link.belcarra.com/USBLAN_Demo_VidPid_Patch">download here</a>) modify the Linux Ethernet Gadget default CDC Vendor and Product ID to match the Belcarra USBLAN Evaluation kits available from Windows Update.jackhttp://www.blogger.com/profile/07754050276288850739noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-81139112678223524142010-11-19T14:24:00.000-08:002011-11-14T13:54:28.724-08:00USB Client Support for Gumstix Verdex Pro COM's<div style="text-align: center;">
<div style="text-align: left;">
<b><span class="Apple-style-span" style="font-family: inherit;">Belcarra’s
USB Composite Device Framework </span></b><b><span class="Apple-style-span" style="font-family: inherit;"> for Gumstix Verdex</span></b><b><span class="Apple-style-span" style="font-family: inherit;">.</span></b></div>
</div>
<div class="MsoNormal">
<span style="font-family: inherit;">The USB Device Framework supports Composite configurations using a Composite Function Driver which selects and configures various Interface Function Drivers.</span></div>
<ul>
<li><span class="Apple-style-span" style="font-family: inherit;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>Composite function selects the desired interface functions </span></li>
<li><span class="Apple-style-span" style="font-family: inherit;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>Selected interface functions combine into the configuration</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>External management tools to control software deployment </span></li>
</ul>
<span class="Apple-style-span" style="font-family: inherit;">NOTE: This offering compliments the Overo support that has been available since 2009-06-15</span>jackhttp://www.blogger.com/profile/07754050276288850739noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-74309904518789036582010-05-18T11:05:00.000-07:002011-01-19T15:06:54.223-08:00Windows CEBelcarra, announces the availability of USBLAN-FN, a CDC-ECM client solution, which provides an essential component for WinCE based USB peripherals to network over USB with standard host platforms, such as Mac OS/X.<br />
<br />
<b>VANCOUVER, CANADA,</b> – Belcarra Technologies, a leading developer of USB software and device driver solutions, <a href="http://www.prweb.com/releases/2010/05/prweb4003404.htm">announced today the availability of USBLAN-FN</a><a href="http://www.prweb.com/releases/2010/05/prweb4003404.htm">,</a> an NDIS/CDC ECM USB client function for Windows Mobile and Windows CE platforms.jackhttp://www.blogger.com/profile/07754050276288850739noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-89489420456296299302010-02-04T14:23:00.000-08:002011-02-04T14:32:13.092-08:00USBLAN Evaluation using a Linux Gadget Enabled DeviceThe<a href="http://usblan.belcarra.com/p/linux-gadget-tests.html"> following is a brief overview</a> of the simple procedure that is involved to modify the USB configuration for testing embedded Linux Devices (client) using Belcarra's USBLAN for Windows (host) Class driver. Setup of the Linux Gadget is provided as a guide. Belcarra's USBLAN CDC-ECM/EEM Class driver is available through Windows Update. A time limited version of the driver is available for evaluation and will run for 60 minutes before disconnecting. The Linux Gadget driver g_ether.ko can be easily adapted to work with a demonstration version of USBLAN ...<a href="http://usblan.belcarra.com/p/linux-gadget-tests.html"> (more..).</a>jackhttp://www.blogger.com/profile/07754050276288850739noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-10113647162049413362009-05-19T11:57:00.000-07:002011-01-19T14:47:35.424-08:00USBLAN for WINCE 6Belcarra's USBLA<b>N</b>, a proven and industry standard USB networking solution for Windows XP, Vista and Windows 7 platforms extends functionality with CE-USBLAN, an implementation of the USB Communications Device Class CDC ECM (Ethernet Control Model) protocol that supports Microsoft embedded and mobile platforms. <a href="http://www.prweb.com/releases/2009/05/prweb2430204.htm">(more...)</a>jackhttp://www.blogger.com/profile/07754050276288850739noreply@blogger.comtag:blogger.com,1999:blog-401308796032035439.post-27001148065907620572007-11-14T14:41:00.000-08:002011-01-19T14:55:23.938-08:00Composite USB Solution for TI OMAP 3430 ArchitectureBelcarra's Composite Function Framework allows an OMAP34xx embedded device to utilize multiple different types of USB Functions, composite configuration combinations of Networking, Mass Storage , Serial emulation, and vendor-specific USB Functions. Each of these would appear to a Windows system as a USB Device separate and independent from the others.<br />
<br />
<b>Vancouver, CANADA,</b> - Belcarra Technologies, a leading developer of USB software and device driver solutions, today announced the release of their Windows compatible Hi-Speed USB Composite Function Framework (USB-CFF) for the Texas Instruments OMAP34xx processor. ..<a href="http://www.prweb.com/releases/2007/11/prweb568498.htm">(more .. )</a>jackhttp://www.blogger.com/profile/07754050276288850739noreply@blogger.com