Mesa 7I80DB-16 troubles with hm2_eth

More
21 Feb 2019 08:47 #126851 by Gluca
Hi all!

I've been trying to configure my Mesa ethernet card
7I80DB-16 on linuxcnc (based on debian).

I've dedcated an ethernet interface to the card and configured
as 192.168.1.1/24. I can ping my card and configure with mesa flash,
however when i try to start the linuxcnc driver, after loading with
success hostmot2, i always get the following errors:

halcmd: loadrt hm2_eth board_ip=192.168.1.121
hm2_eth: loading Mesa AnyIO HostMot2 ethernet driver version 0.2
hm2_eth: 192.168.1.121: Hardware address: 00:60:1b:10:00:68
hm2_eth: ERROR: receiving packet: Resource temporarily unavailable
hm2_eth: rtapi_app_main: Resource temporarily unavailable (-11)
<stdin>:5: waitpid failed /usr/bin/rtapi_app hm2_eth
<stdin>:5: /usr/bin/rtapi_app exited without becoming ready
<stdin>:5: insmod for hm2_eth failed, returned -1


This is the configuration of NICs:

user@debian:~$ ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever

2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
group default qlen 1000
link/ether e0:cb:4e:2c:9b:d0 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global enp1s0
valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether f4:f2:6d:12:15:70 brd ff:ff:ff:ff:ff:ff


user@debian:~$ ip link show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
mode DEFAULT group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
mode DEFAULT group default qlen 1000
link/ether e0:cb:4e:2c:9b:d0 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN mode
DEFAULT group default qlen 1000
link/ether f4:f2:6d:12:15:70 brd ff:ff:ff:ff:ff:ff

I've disabled IPV6 with:

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

I'can ping my Mesa card, as visible below:

PING 192.168.1.121 (192.168.1.121): 56 data bytes
64 bytes from 192.168.1.121: icmp_seq=0 ttl=64 time=0.255 ms
64 bytes from 192.168.1.121: icmp_seq=1 ttl=64 time=0.320 ms
64 bytes from 192.168.1.121: icmp_seq=2 ttl=64 time=0.414 ms
64 bytes from 192.168.1.121: icmp_seq=3 ttl=64 time=0.327 ms
64 bytes from 192.168.1.121: icmp_seq=4 ttl=64 time=0.283 ms
--- 192.168.1.121 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.255/0.320/0.414/0.054 ms

Any suggestions?


Voster,
G.

Please Log in or Create an account to join the conversation.

More
21 Feb 2019 14:31 - 21 Feb 2019 14:38 #126859 by PCW
I've seen the "Resource temporarily unavailable" message occasionally
when I have changed network settings but then never see it again

What OS and kernel are you running?
What Ethernet chip does the host have?

(the ping times look iffy)

Have you tried using 10.10.10.10 on the 7I80? (and resetting the host IP to 10.10.10.1)

Just for reference here are ping times on a old Core-Duo HP 7800:

peter@dc7800:~/linuxcnc/configs$ ping 10.10.10.10
PING 10.10.10.10 (10.10.10.10) 56(84) bytes of data.
64 bytes from 10.10.10.10: icmp_seq=1 ttl=64 time=0.139 ms
64 bytes from 10.10.10.10: icmp_seq=2 ttl=64 time=0.086 ms
64 bytes from 10.10.10.10: icmp_seq=3 ttl=64 time=0.089 ms
64 bytes from 10.10.10.10: icmp_seq=4 ttl=64 time=0.082 ms
64 bytes from 10.10.10.10: icmp_seq=5 ttl=64 time=0.086 ms
64 bytes from 10.10.10.10: icmp_seq=6 ttl=64 time=0.082 ms

First is slower because of the hidden ARP request/reply
Last edit: 21 Feb 2019 14:38 by PCW.

Please Log in or Create an account to join the conversation.

More
21 Feb 2019 15:08 #126862 by tommylight
Are you using a Hub or Switch between the PC and the card ? If yes, do not use it. Wire it directly.
PC should have any address except 192.168.1.1 ( reserved for gateways ) and in your case 192.168.1.121.
So change the address on the PC to 192.168.1.2 up to 254 skipping 121, and set the gateway to 192.168.1.1 on the PC and the DNS also to 192.168.1.1.
That is all you need.

Please Log in or Create an account to join the conversation.

More
22 Feb 2019 20:07 #126945 by Gluca
My test computer is a small Asus EeePC Atom 1.6Ghz, 1GB ram.
I connect it directly to my Mesa card.

Below the details of kernel and distro:

$uname -a
Linux linuxcnc 3.2.0-6-rt-686-pae #1 SMP PREEMPT RT Debian 3.2.102-1 i686 GNU/Linux

$lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 7.11 (wheezy)
Release: 7.11
Codename: wheezy


If a run halrun as it follows, i get:

$ halrun
halcmd: loadrt hostmot2
Note: Using POSIX realtime
hm2: loading Mesa HostMot2 driver version 0.15
halcmd: loadrt hm2_eth
hm2_eth: loading Mesa AnyIO HostMot2 ethernet driver version 0.2

And no errors.

I have performed the new test with host address 192.168.1.2 and nameserver 192.168.1.1,
but nothing's changed:

$ halrun
halcmd: loadrt hostmot2
Note: Using POSIX realtime
hm2: loading Mesa HostMot2 driver version 0.15
halcmd: loadrt hm2_eth board_ip="192.168.1.121"
hm2_eth: 192.168.1.121: Hardware address: 00:60:1b:10:00:68
hm2_eth: ERROR: receiving packet: Resource temporarily unavailable
hm2_eth: rtapi_app_main: Resource temporarily unavailable (-11)
<stdin>:3: waitpid failed /home/tito/Documents/linuxcnc-dev/bin/rtapi_app hm2_eth
<stdin>:3: /home/tito/Documents/linuxcnc-dev/bin/rtapi_app exited without becoming ready
<stdin>:3: insmod for hm2_eth failed, returned -1

I can still ping my Mesa card:

tito@linuxcnc:~$ ping 192.168.1.121
PING 192.168.1.121 (192.168.1.121) 56(84) bytes of data.
64 bytes from 192.168.1.121: icmp_req=1 ttl=64 time=0.497 ms
64 bytes from 192.168.1.121: icmp_req=2 ttl=64 time=0.183 ms
64 bytes from 192.168.1.121: icmp_req=3 ttl=64 time=0.184 ms
64 bytes from 192.168.1.121: icmp_req=4 ttl=64 time=0.198 ms
64 bytes from 192.168.1.121: icmp_req=5 ttl=64 time=0.195 ms
64 bytes from 192.168.1.121: icmp_req=6 ttl=64 time=0.199 ms
64 bytes from 192.168.1.121: icmp_req=7 ttl=64 time=0.202 ms
64 bytes from 192.168.1.121: icmp_req=8 ttl=64 time=0.205 ms
64 bytes from 192.168.1.121: icmp_req=9 ttl=64 time=0.199 ms
64 bytes from 192.168.1.121: icmp_req=10 ttl=64 time=0.197 ms
64 bytes from 192.168.1.121: icmp_req=11 ttl=64 time=0.213 ms
^C
--- 192.168.1.121 ping statistics ---
11 packets transmitted, 11 received, 0% packet loss, time 9997ms
rtt min/avg/max/mdev = 0.183/0.224/0.497/0.088 ms

G.

Please Log in or Create an account to join the conversation.

More
22 Feb 2019 20:24 - 22 Feb 2019 20:49 #126951 by PCW
I would first try moving the 7I80 to 10.10.10.10 (just move one jumper)
and configure the host to 10.10.10.1

If that does not help it may be that your EE PC is just too
slow/too high latency to run hm2_eth (at least at 1 KHz)

(you might try 500 Hz = 2000000 ns servo thread period)
Last edit: 22 Feb 2019 20:49 by PCW.

Please Log in or Create an account to join the conversation.

More
27 Feb 2019 00:59 #127217 by bixter1
I just installed one and its working great. A few thoughts.
1. Does mesaflash show the card? Sounds like it if you flashed it
mesaflash --device 7i80 --addr 192.168.1.121 --readhmid

Can you share your hal and ini?

Please Log in or Create an account to join the conversation.

More
27 Feb 2019 19:16 #127283 by Gluca

I just installed one and its working great. A few thoughts.
1. Does mesaflash show the card? Sounds like it if you flashed it
mesaflash --device 7i80 --addr 192.168.1.121 --readhmid

Can you share your hal and ini?


I've been using only Halrun with the outcame you can see above.
Mesaflash with "mesaflash --device 7i80 --addr 192.168.1.121 --readhmid"
gives me a long text, that i've not logged at the moment.

Now, i'm going to use a brand new Asus J1800I-C to indepth
my investigation.

G.

Please Log in or Create an account to join the conversation.

More
27 Feb 2019 19:50 #127285 by bixter1
Any firewall?
iptables -L
latency-test results look ok?

What firmware file did you flash?
I assume this is the list of commands you are running?
halrun
loadrt hostmot2
loadrt hm2_eth board_ip="192.168.1.121"
show pin

if you can share mesaflash --device 7i80 --addr 192.168.1.121 --readhmid that would be great.I did change mine to 10.10.10.10 since my box had 2 nics and a 192.168.1.x/24 network already.

Please Log in or Create an account to join the conversation.

More
01 Mar 2019 12:35 #127401 by andypugh

I've been using only Halrun with the outcame you can see above.
Mesaflash with "mesaflash --device 7i80 --addr 192.168.1.121 --readhmid"
gives me a long text, that i've not logged at the moment.


That would seem to suggest that it is working.

Please Log in or Create an account to join the conversation.

More
03 Mar 2019 17:37 #127610 by Gluca
This time the miracle!

Simply moving the W2 switch to configure address "10.10.10.10"
on my Mesa and then my Host accordingly.

tito@AsusJ1800IC:~$ halrun
halcmd: loadrt hostmot2
Note: Using POSIX realtime
hm2: loading Mesa HostMot2 driver version 0.15
halcmd: loadrt hm2_eth board_ip="10.10.10.10"
hm2_eth: loading Mesa AnyIO HostMot2 ethernet driver version 0.2
iptables: No chain/target/match by that name.
hm2_eth: 10.10.10.10: Hardware address: 00:60:1b:10:00:68
hm2_eth: discovered 7I80DB-16
hm2/hm2_7i80.0: 68 I/O Pins used:
hm2/hm2_7i80.0: IO Pin 000 (J2-01): IOPort
hm2/hm2_7i80.0: IO Pin 001 (J2-14): IOPort
hm2/hm2_7i80.0: IO Pin 002 (J2-02): StepGen #0, pin Step (Output)
hm2/hm2_7i80.0: IO Pin 003 (J2-15): IOPort
hm2/hm2_7i80.0: IO Pin 004 (J2-03): StepGen #0, pin Direction (Output)
hm2/hm2_7i80.0: IO Pin 005 (J2-16): StepGen #4, pin Step (Output)
hm2/hm2_7i80.0: IO Pin 006 (J2-04): StepGen #1, pin Step (Output)
hm2/hm2_7i80.0: IO Pin 007 (J2-17): IOPort
.........[CUT]

However the RTT latency remains high even on my new Asus J1800I-C:

$ping 10.10.10.10
PING 10.10.10.10 (10.10.10.10): 56 data bytes
64 bytes from 10.10.10.10: icmp_seq=0 ttl=64 time=0,265 ms
64 bytes from 10.10.10.10: icmp_seq=1 ttl=64 time=0,344 ms
64 bytes from 10.10.10.10: icmp_seq=2 ttl=64 time=0,257 ms
--- 10.10.10.10 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0,257/0,289/0,344/0,039 msi

I've been trying plugging a pci-E gigabit ethernet card (TP-LINK TG-3468)
but nothing changed.
Obviously, i'm using a direct link by an ethernet cross-cable.

Below other details:
$Lsb-release:
modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 9.5 (stretch)
Release: 9.5
Codename: stretch

$uname -a
Linux AsusJ1800IC 4.9.0-8-rt-amd64 #1 SMP PREEMPT RT Debian 4.9.110-3+deb9u6 (2018-10-08) x86_64 GNU/Linux

Mesa flash READHMID reports:

Configuration Name: HOSTMOT2
General configuration information:

BoardName : MESA7I80
FPGA Size: 16 KGates
FPGA Pins: 256
Number of IO Ports: 4
Width of one I/O port: 17
Clock Low frequency: 100.0000 MHz
Clock High frequency: 200.0000 MHz
IDROM Type: 3
Instance Stride 0: 4
Instance Stride 1: 64
Register Stride 0: 256
Register Stride 1: 256

Modules in configuration:

Module: DPLL
There are 1 of DPLL in configuration
Version: 0
Registers: 7
BaseAddress: 7000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes

Module: WatchDog
There are 1 of WatchDog in configuration
Version: 0
Registers: 3
BaseAddress: 0C00
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes

Module: IOPort
There are 4 of IOPort in configuration
Version: 0
Registers: 5
BaseAddress: 1000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes

Module: QCount
There are 2 of QCount in configuration
Version: 2
Registers: 5
BaseAddress: 3000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes

Module: StepGen
There are 10 of StepGen in configuration
Version: 2
Registers: 10
BaseAddress: 2000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes

Module: LED
There are 1 of LED in configuration
Version: 0
Registers: 1
BaseAddress: 0200
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes

Configuration pin-out:

IO Connections for J2
Pin# I/O Pri. func Sec. func Chan Pin func Pin Dir

1 0 IOPort None
14 1 IOPort PWM 0 PWM (Out)
2 2 IOPort StepGen 0 Step/Table1 (Out)
15 3 IOPort None
3 4 IOPort StepGen 0 Dir/Table2 (Out)
16 5 IOPort StepGen 4 Step/Table1 (Out)
4 6 IOPort StepGen 1 Step/Table1 (Out)
17 7 IOPort None
5 8 IOPort StepGen 1 Dir/Table2 (Out)
6 9 IOPort StepGen 2 Step/Table1 (Out)
7 10 IOPort StepGen 2 Dir/Table2 (Out)
8 11 IOPort StepGen 3 Step/Table1 (Out)
9 12 IOPort StepGen 3 Dir/Table2 (Out)
10 13 IOPort QCount 0 Quad-A (In)
11 14 IOPort QCount 0 Quad-B (In)
12 15 IOPort QCount 0 Quad-IDX (In)
13 16 IOPort None

IO Connections for J3
Pin# I/O Pri. func Sec. func Chan Pin func Pin Dir

1 17 IOPort None
14 18 IOPort PWM 1 PWM (Out)
2 19 IOPort StepGen 5 Step/Table1 (Out)
15 20 IOPort None
3 21 IOPort StepGen 5 Dir/Table2 (Out)
16 22 IOPort StepGen 9 Step/Table1 (Out)
4 23 IOPort StepGen 6 Step/Table1 (Out)
17 24 IOPort None
5 25 IOPort StepGen 6 Dir/Table2 (Out)
6 26 IOPort StepGen 7 Step/Table1 (Out)
7 27 IOPort StepGen 7 Dir/Table2 (Out)
8 28 IOPort StepGen 8 Step/Table1 (Out)
9 29 IOPort StepGen 8 Dir/Table2 (Out)
10 30 IOPort QCount 1 Quad-A (In)
11 31 IOPort QCount 1 Quad-B (In)
12 32 IOPort QCount 1 Quad-IDX (In)
13 33 IOPort None

IO Connections for J4
Pin# I/O Pri. func Sec. func Chan Pin func Pin Dir

1 34 IOPort None
14 35 IOPort None
2 36 IOPort None
15 37 IOPort None
3 38 IOPort None
16 39 IOPort None
4 40 IOPort None
17 41 IOPort None
5 42 IOPort None
6 43 IOPort None
7 44 IOPort None
8 45 IOPort None
9 46 IOPort None
10 47 IOPort None
11 48 IOPort None
12 49 IOPort None
13 50 IOPort None

IO Connections for J5
Pin# I/O Pri. func Sec. func Chan Pin func Pin Dir

1 51 IOPort None
14 52 IOPort None
2 53 IOPort None
15 54 IOPort None
3 55 IOPort None
16 56 IOPort None
4 57 IOPort None
17 58 IOPort None
5 59 IOPort None
6 60 IOPort None
7 61 IOPort None
8 62 IOPort None
9 63 IOPort None
10 64 IOPort None
11 65 IOPort None
12 66 IOPort None
13 67 IOPort None


In attachment can you see the latency histogram of my system.

Voster,
G.
Attachments:

Please Log in or Create an account to join the conversation.

Moderators: PCWjmelson
Time to create page: 0.177 seconds
Powered by Kunena Forum