Difference between revisions of "Xenomai RTNet"

From wiki.emacinc.com
Jump to: navigation, search
Line 60: Line 60:
root@somimx6-xenomai:~# rtifconfig
root@somimx6-xenomai:~# rtifconfig
  rteth0    Medium: Ethernet  Hardware address: 00:00:00:00:00:00
  rteth0    Medium: Ethernet  Hardware address: 00:00:00:00:00:00
           IP address: Broadcast address:
           IP address: Broadcast address:
           UP BROADCAST RUNNING  MTU: 1500
           UP BROADCAST RUNNING  MTU: 1500
           RX packets:14 errors:0 dropped:0 overruns:0 frame:0
           RX packets:14 errors:0 dropped:0 overruns:0 frame:0
Line 71: Line 71:
           UP LOOPBACK RUNNING  MTU: 1500
           UP LOOPBACK RUNNING  MTU: 1500
<syntaxhighlight lang="console">root@somimx6-xenomai:~# rtrouteHost Routing TableHash    Destination    HW Address              Device00        00:00:00:00:00:00      rtlo01      00:00:00:00:00:00      rtlo02      00:00:00:00:00:00      rtlo3F FF:FF:FF:FF:FF:FF      rteth0</syntaxhighlight>
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
Line 88: Line 90:
<syntaxhighlight lang="console">
root@somimx6-xenomai:~# rtroute
Host Routing Table
Hash    Destination    HW Address              Device
00        00:00:00:00:00:00      rtlo
01      00:00:00:00:00:00      rtlo
02      00:00:00:00:00:00      rtlo
3F FF:FF:FF:FF:FF:FF      rteth0

Revision as of 14:26, 7 March 2016

TODO: {{#todo: NotStarted (03.03.2016-13:06->MW+)|Michael Welling|OE 5.0,MW,NotStarted}}

General Information

Xenomai uses the RTNet stack to provide real-time Ethernet. RTNet provides deterministic versions of various protocols (UDP/IP, IMCP, ARP). Xenomai provides several real-time Ethernet drivers, the stack, and various tools. This document explains how to load a real-time Ethernet driver and perform basic tests. The links below will help augment this information as well as discuss programming using the RTnet stack.

Xenomai RTNet

Loading a RTNet driver

As with the other real-time drivers, the Linux driver must be detached the interface before loading that real-time driver.

For example on IMX6 target the fec device must be unbound from the Linux driver and attached to the real-time driver.

root@somimx6-xenomai:~# echo 2188000.ethernet > /sys/bus/platform/drivers/fec/unbind 
root@somimx6-xenomai:~# echo 2188000.ethernet > /sys/bus/platform/drivers/rt_fec/bind
[   86.762295] libphy: fec_enet_mii_bus: probed
[   86.766586] RTnet: registered rteth0

Xenomai provides a script make launching rtnet easier. This will load the appropriate modules and bring up the interface.

root@somimx6-xenomai:~# rtnet -cf /etc/rtnet.conf start
[  645.330848] initializing loopback...
[  645.334487] RTnet: registered rtlo[  645.355662] RTcfg: init real-time configuration distribution protocol
[  645.375986] RTmac: init realtime media access control[  645.400419] RTmac/TDMA: init time division multiple access control mechanism
[  645.499423] rteth0: Freescale FEC PHY driver [Micrel KSZ9031 Gigabit PHY] (mii_bus:phy_addr=2188000.ethernet:01, irq=-1)
[  645.551954] rteth0: tx link down!.
[  652.497075] rt_fec 2188000.ethernet (unnamed net_device) (uninitialized): Link is Up - 1Gbps/Full - flow control rx/tx

The rtnet helper script is configured with /etc/rtnet.conf which determines the IP address of the interface and the slave devices. The real-time driver is also specified in the configuration file so that it does not need to be loaded before starting the script but the Linux driver still must be disassociated with the interface.

Accessing RTNet driver

Xenomai provide real-time versions of the basic networking utilities including rtifconfig, rtping, rtroute and rtiwconfig.

root@somimx6-xenomai:~# rtifconfig
 rteth0    Medium: Ethernet  Hardware address: 00:00:00:00:00:00
          IP address:  Broadcast address:
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:164476 errors:0 dropped:0 overruns:0 carrier:0
          RX bytes:896 (896.0 b)  TX bytes:7031954 (6.7 Mb)

rtlo      Medium: Local Loopback
          IP address:  
          UP LOOPBACK RUNNING  MTU: 1500
root@somimx6-xenomai:~# rtrouteHost Routing TableHash    Destination     HW Address              Device00         00:00:00:00:00:00       rtlo01       00:00:00:00:00:00       rtlo02       00:00:00:00:00:00       rtlo3F FF:FF:FF:FF:FF:FF       rteth0
root@somimx6-xenomai:~# rtping
Real-time PING 56(84) bytes of data.
64 bytes from icmp_seq=1 time=25.7 us
64 bytes from icmp_seq=2 time=20.3 us
64 bytes from icmp_seq=3 time=17.3 us
64 bytes from icmp_seq=4 time=17.0 us
64 bytes from icmp_seq=5 time=17.3 us
64 bytes from icmp_seq=6 time=18.7 us
64 bytes from icmp_seq=7 time=17.0 us
--- rtping statistics ---
7 packets transmitted, 7 received, 0% packet loss
worst case rtt = 25.7 us

External Links