kcard-buildroot icon indicating copy to clipboard operation
kcard-buildroot copied to clipboard

Support identification of device over network

Open dankrause opened this issue 10 years ago • 2 comments

Provide support for all known methods of identifying these cards over the network, in order to support mobile apps that communicate with them.

dankrause avatar Oct 16 '13 13:10 dankrause

I was concerned about the size of the Avahi package (~300K compressed) which at the time I write this brings the ramdisk from ~2.4M to ~2.7M. I was really hoping to use the original apple mDns responder which is a much more compact binary with focused functionality but it was removed from buildroot back in 2009 http://git.buildroot.net/buildroot/commit/?id=8a19a7956552715003a5063b3d66be7f831b6e9e and there just aren't many alternatives for service announcement, at least that can be easily/conveniently utilized here.

There are of course the basic dhcp host request elements through udhcpc --hostname which will go into the default udhcpc configuration but ultimately that doesn't get us very far in terms of discovery.

for our own notes, the avahi build requites host perl-ExtUtils-MakeMaker so if we go that route it would need to be added the build dependencies list.

hillct avatar Dec 04 '13 14:12 hillct

I'm most interested in the methods that are already used by these cards for discovery by their respective mobile apps. The idea is that this firmware will allow any of these cards to be used properly by any of the vendors mobile apps.

For example:

  • The PQI AirCard has a pretty horrible discovery method. The mobile app sends an HTTP request that looks like GET /cgi-bin/get_config.pl HTTP/1.1 to every IP in the /24. Anything that responds correctly is assumed to be a PQI AirCard.
  • The Trancend app sends a request via multicast udp:55777 and anything that responds is assumed to be a Trancend Wifi SD card.
  • I'm unsure of what method the FluCard uses

Of course, additional discovery methods are fine as well, such as ssdp. Most of this should be pretty simple to implement with a bash or lua script.

Edit: This also implies that our web app should simultaneously present the APIs that are used by each mobile app.

Edit 2: Of course, if a better existing free app can be found across major mobile platforms, I'd be happy to support it instead of the vendors apps, as the Trancend / PQI apps are pretty terrible. This would mean supporting whatever method of discovery it uses, as well as whatever APIs or protocol it uses for browsing and editing the contents of the SD card.

dankrause avatar Dec 04 '13 14:12 dankrause