Difference between revisions of "Using USB ethernet gadget to communicate"

From IGEP - ISEE Wiki

Jump to: navigation, search
(Connect using WLAN interface)
m (Connect to IGEP device)
 
(17 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Connect using USB Ethernet Gadget/RNDIS driver =
+
<section begin=exclude />
 +
{{Message/Information Message|title=|message= In this guide is used [[ IGEP firmware Yocto ]]}}
 +
<section end=exclude />
 +
== Overview ==
  
The Linux kernel has a class of drivers called USB Gadgets (http://www.linux-usb.org/gadget/) that allow you to use USB as a transport for a number of different protocols like serial, virtual file systems, and Ethernet devices.  
+
The Linux kernel has a class of drivers called USB Gadgets that allow you to use USB as a transport for a number of different protocols like serial, virtual file systems and Ethernet devices.  
  
The USB OTG connector supports using the Ethernet Gadget to create a networking device over USB. From the client's (and host's) perspective this driver simply appears as another Ethernet device, enabling us to have Ethernet access on the board by hooking them up to a desktop, so this USB slave device can communicate with a properly configured USB host.
+
The USB OTG connector supports using the Ethernet Gadget to create a networking device over USB. From the client's (and host's) perspective this driver simply appears as another Ethernet device, enabling us to have Ethernet access on the board by hooking them up to a desktop, so this USB slave device can communicate with a properly configured USB host.  
  
Following article explains how to get the Ethernet over USB connection working in different Operating Systems
+
== Requirements  ==
  
= Linux Host USB Network Configuration  =
+
There are some requisites to follow this guide:
  
You should have the usbnet module available for your Linux kernel. On most distributions, this is the case by default. If this is not the case for your distribution, you will need to enable USB networking support in the kernel. If you build your own kernel then you want 'CDC Ethernet support' in USB Network adaptors.
+
*IGEP Processor Board
 +
*Host PC
  
== Ubuntu 10.04 LTS Lucid Lynx  ==
+
== Connect to IGEP device ==
  
In the file /etc/network/interfaces, you should add a section which looks like this:
+
=== Linux  ===
  
auto usb0
+
'''NOTE:''' You should have the usbnet module available for your Linux kernel. On most distributions, this is the case by default. If this is not the case for your distribution, you will need to enable USB networking support in the kernel. If you build your own kernel then you want 'CDC Ethernet support' in USB Network adaptors. IGEP SDK Virtual Machine has this module enabled.
iface usb0 inet static
+
<section begin=USB_linux />
  address 192.168.7.1
+
*In the file /etc/network/interfaces, you should add:
  network 192.168.7.0
+
<pre>iface usb0 inet dhcp</pre>
  netmask 255.255.255.0
+
*Plug an USB Type-A to USB Type-A mini cable between your host PC and the USB OTG from IGEP device. Use a powered USB Hub if you use IGEP COM MODULE or PROTON Board.
  broadcast 192.168.7.255
+
*If you use IGEP&nbsp;SDK&nbsp;VM you need to attach the [http://labs.isee.biz/index.php/IGEP_SDK_Virtual_Machine#Attach_removable_devices_to_Virtual_Machine removable device] RNDIS driver.
  gateway 192.168.7.1
+
*Type in a terminal:
 +
<pre>sudo ifup usb0</pre>
 +
*Revise that:
 +
<pre>jdoe@ubuntu ~ $ ifconfig
 +
...
 +
usb0      Link encap:Ethernet  HWaddr 66:cc:f2:be:51:b6 
 +
          inet addr:192.168.7.10  Bcast:192.168.7.255  Mask:255.255.255.0
 +
          inet6 addr: fe80::64cc:f2ff:febe:51b6/64 Scope:Link
 +
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 +
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
 +
          TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
 +
          collisions:0 txqueuelen:1000
 +
          RX bytes:2496 (2.4 KB)  TX bytes:8794 (8.7 KB)
 +
...</pre>
 +
*Connect to IGEP device
  
Connect to the board using ssh  
+
jdoe@ubuntu ~ $ ssh root@192.168.7.1
 +
The authenticity of host '192.168.7.1 (192.168.7.1)' can't be established.
 +
ECDSA key fingerprint is 80:be:2d:b6:fe:b1:09:c3:3b:ac:0f:1d:f2:43:f2:20.
 +
Are you sure you want to continue connecting (yes/no)? yes
 +
Warning: Permanently added '192.168.7.1' (ECDSA) to the list of known hosts.
 +
root@igep00x0:~# uname -a
 +
Linux igep00x0 2.6.37 #1 Thu Jul 19 09:07:47 CEST 2012 armv7l GNU/Linux
 +
root@igep00x0:~#
 +
<section end=USB_linux />
 +
==== Troubleshooting  ====
 +
 
 +
===== WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!  =====
 +
 
 +
In the case of the SSH client in Linux, a changed host key results in the client refusing to connect and showing an remote host identification has changed error
 +
 
 +
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 +
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!    @
 +
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 +
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
 +
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
 +
It is also possible that the RSA host key has just been changed.
 +
The fingerprint for the RSA key sent by the remote host is
 +
8d:0b:29:f0:0a:a1:f5:56:0c:12:18:b0:26:02:6d:9d.
 +
Please contact your system administrator.
 +
Add correct host key in /home/eballetbo/.ssh/known_hosts to get rid of this message.
 +
Offending key in /home/eballetbo/.ssh/known_hosts:57
 +
RSA host key for 192.168.7.1 has changed and you have requested strict checking.
  
ssh -l root 192.168.7.2
+
To fix the problem edit your ~/.ssh/known_hosts and remove the line corresponding to this host.&nbsp;
+
 
The authenticity of host '192.168.7.2 (192.168.7.2)' can't be established.
+
===== NFS in root filesystem =====
  RSA key fingerprint is 9d:0e:ba:02:2a:76:e4:5f:d1:c1:9b:2d:85:6c:83:d4.
+
 
Are you sure you want to continue connecting (yes/no)? yes
+
Don't use NFS in root filesystem combined with USB Ethernet Gadget
Warning: Permanently added '192.168.7.2' (RSA) to the list of known hosts.
+
 
root@192.168.7.2's password: [enter] (no password)
+
=== Windows and MAC OSX<br> ===
  root@igep0030:~#
 
  
= Windows Host USB Network Configuration  =
+
You should use [[IGEP SDK Virtual Machine|IGEP&nbsp;SDK&nbsp;Virtual Machine]] to develop under IGEP&nbsp;Technology, but you can use these alternatives too:
  
== Windows 7  ==
+
==== Windows 7  ====
  
 
*http://robosavvy.com/forum/viewtopic.php?p=28788
 
*http://robosavvy.com/forum/viewtopic.php?p=28788
  
== Windows XP  ==
+
==== Windows XP  ====
  
 
1. During the first seconds the module is recognized as OMAP3430. Avoid the installation of this device and wait until ''RNDIS/Ethernet gadget'' is detected by the operating system.  
 
1. During the first seconds the module is recognized as OMAP3430. Avoid the installation of this device and wait until ''RNDIS/Ethernet gadget'' is detected by the operating system.  
Line 54: Line 97:
 
4. Use [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTy] to [[Using SSH to communicate|connect via SSH]] (192.168.7.2)<br>  
 
4. Use [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTy] to [[Using SSH to communicate|connect via SSH]] (192.168.7.2)<br>  
  
'''''Thanks to Iñigo Lazkanotegi from Tecnalia (Donostia - San Sebastián) for this contribution.'''''
+
'''Thanks to Iñigo Lazkanotegi from Tecnalia (Donostia - San Sebastián) for this contribution.'''
 
 
== Mac OS X Host USB Network Configuration  ==
 
 
 
Please contribute ...
 
 
 
= Troubleshooting  =
 
 
 
== WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!  ==
 
 
 
In the case of the SSH client in Linux, a changed host key results in the client refusing to connect and showing an remote host identification has changed error
 
 
 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!    @
 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
 
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
 
It is also possible that the RSA host key has just been changed.
 
The fingerprint for the RSA key sent by the remote host is
 
8d:0b:29:f0:0a:a1:f5:56:0c:12:18:b0:26:02:6d:9d.
 
Please contact your system administrator.
 
Add correct host key in /home/eballetbo/.ssh/known_hosts to get rid of this message.
 
Offending key in /home/eballetbo/.ssh/known_hosts:57
 
RSA host key for 192.168.7.2 has changed and you have requested strict checking.
 
 
 
To fix the problem edit your ~/.ssh/known_hosts and remove the line corresponding to this host.&nbsp;
 
  
 
= See also =
 
= See also =
 +
 
*[[Using SSH to communicate]]
 
*[[Using SSH to communicate]]
 
*[[Using serial debug port to communicate]]
 
*[[Using serial debug port to communicate]]
 
+
*[[Using IGEP WLAN to communicate]]
[[Category:Communications]]
+
*[[IGEP_module_standalone]]

Latest revision as of 12:22, 29 August 2012

Information.jpg In this guide is used IGEP firmware Yocto

Overview

The Linux kernel has a class of drivers called USB Gadgets that allow you to use USB as a transport for a number of different protocols like serial, virtual file systems and Ethernet devices.

The USB OTG connector supports using the Ethernet Gadget to create a networking device over USB. From the client's (and host's) perspective this driver simply appears as another Ethernet device, enabling us to have Ethernet access on the board by hooking them up to a desktop, so this USB slave device can communicate with a properly configured USB host.

Requirements

There are some requisites to follow this guide:

  • IGEP Processor Board
  • Host PC

Connect to IGEP device

Linux

NOTE: You should have the usbnet module available for your Linux kernel. On most distributions, this is the case by default. If this is not the case for your distribution, you will need to enable USB networking support in the kernel. If you build your own kernel then you want 'CDC Ethernet support' in USB Network adaptors. IGEP SDK Virtual Machine has this module enabled.

  • In the file /etc/network/interfaces, you should add:
iface usb0 inet dhcp
  • Plug an USB Type-A to USB Type-A mini cable between your host PC and the USB OTG from IGEP device. Use a powered USB Hub if you use IGEP COM MODULE or PROTON Board.
  • If you use IGEP SDK VM you need to attach the removable device RNDIS driver.
  • Type in a terminal:
sudo ifup usb0
  • Revise that:
jdoe@ubuntu ~ $ ifconfig
...
usb0      Link encap:Ethernet  HWaddr 66:cc:f2:be:51:b6  
          inet addr:192.168.7.10  Bcast:192.168.7.255  Mask:255.255.255.0
          inet6 addr: fe80::64cc:f2ff:febe:51b6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2496 (2.4 KB)  TX bytes:8794 (8.7 KB)
...
  • Connect to IGEP device
jdoe@ubuntu ~ $ ssh root@192.168.7.1
The authenticity of host '192.168.7.1 (192.168.7.1)' can't be established.
ECDSA key fingerprint is 80:be:2d:b6:fe:b1:09:c3:3b:ac:0f:1d:f2:43:f2:20.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.7.1' (ECDSA) to the list of known hosts.
root@igep00x0:~# uname -a
Linux igep00x0 2.6.37 #1 Thu Jul 19 09:07:47 CEST 2012 armv7l GNU/Linux
root@igep00x0:~# 

Troubleshooting

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

In the case of the SSH client in Linux, a changed host key results in the client refusing to connect and showing an remote host identification has changed error

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
8d:0b:29:f0:0a:a1:f5:56:0c:12:18:b0:26:02:6d:9d.
Please contact your system administrator.
Add correct host key in /home/eballetbo/.ssh/known_hosts to get rid of this message.
Offending key in /home/eballetbo/.ssh/known_hosts:57
RSA host key for 192.168.7.1 has changed and you have requested strict checking.

To fix the problem edit your ~/.ssh/known_hosts and remove the line corresponding to this host. 

NFS in root filesystem

Don't use NFS in root filesystem combined with USB Ethernet Gadget

Windows and MAC OSX

You should use IGEP SDK Virtual Machine to develop under IGEP Technology, but you can use these alternatives too:

Windows 7

Windows XP

1. During the first seconds the module is recognized as OMAP3430. Avoid the installation of this device and wait until RNDIS/Ethernet gadget is detected by the operating system.

2. The following driver INF file from the Gumstix Project works under Windows XP. http://www.davehylands.com/linux/gumstix/usbnet/linux.inf

3. In Control Panel/Network Connections and after driver installation set up the TCP/IP properties of the Local Network Connection (Linux USB Ethernet/RNDIS Gadget) as follow:

IP address 192.168.7.1

Netmask 255.255.255.0

Gateway 192.168.7.1 

4. Use PuTTy to connect via SSH (192.168.7.2)

Thanks to Iñigo Lazkanotegi from Tecnalia (Donostia - San Sebastián) for this contribution.

See also