Here are some workarounds for using ssh and ping with the Dragonboard 410c.
First, some background. A computer and a Dragonboard 410c are on the same network (access point). A computer user attempts to access the Dragonboard using ssh - secure shell, a typical Linux admin program. The user has the IP address of the Dragonboard, however the physical MAC address is needed for the computer to communicate with the Dragonboard. To obtain the MAC address, the computer broadcasts an ARP (address resolution protocol) request. Currently, the Dragonboard 410c does not reply to broadcast requests. A method is needed to provide the Dragonboard’s MAC address to the computer to update its ARP lookup table, which maps IP addresses to MAC addresses.
- Separate the computer and the 410c to different networks. In this case, routers typically respond to the ARP request instead of the 410c. Example – place 410c on a Wi-Fi access point, host computers on a separate Wi-Fi access point, and connect the access points.
- Run a periodic bash script which pushes the ARP data from the 410c to the other computers on the network.
- Manually update the computers ARP table. Painful, but it does work. Messy if the 410c is using DHCP and has a variable IP address.
Here is where this becomes complicated - different networks (routers, firewalls, access points, etc.) handle ARP differently. On some networks, the access point responds to the ARP request so that workarounds are not required. On others, I have tested #2 using PING and NMAP, with negative results. A firewall blocked it so that it did not enable communications.
I am working on code for #2 that sweeps through the local network addresses similar to NMAP. What I found was that if Dragonboard 410c attempts to query ARP rather than push ARP, the destination computer updates its table in process. That is, if the Dragonboard queries a computer for its MAC address, the computer sees the Dragonboard’s IP address and MAC address in the query and updates its table. After this has occurred, the computer is able to PING the Dragonboard 410c or SSH to it. Firewalls, access points, etc do not seem to block this.
Here is the format of the ARP command.
arping -w 10000 -c 1 192.168.1.5
The timeout is in milliseconds -> 10,000 msec. The IP address of the computer is 192.168.1.5.
If you are sweeping ip addresses in a bash script, you can use
arping -w $TIMEOUT -c 1 $network’.’$i
where your network can be determined using
network=$(/sbin/ifconfig wlan | grep inet | grep -v inet6 | awk ‘{print $2}’ | cut -d’:’ -f2 | cut -d’.’ -f1,2,3)
Sean