During my browsing around the WMG's shares, I saw plenty of evidence that told me that the WMG was running some form of Linux. The directory tree looked much like a Linux tree (albeit a bit sparse), and there were a few executables around. Running the OS X utility "file" on the lpr executable resulted in the following output :
lpr: ELF 32-bit MSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped
which pretty much confirmed that the WMG is a Linux-based box. Since the WMG was most certainly running Linux and other GPL software, I did a quick browse of Viewsonic's website to check for the source code that Viewsonic is required to make available in order to fullfull their GPL license. I could find no references, but I assume that this was an oversight on Viewsonic's part and that it will be corrected soon.
Looking further into the mounted filesystem, I found an executable in the tree with "ixdp425" as part of its filename. The ixdp425 is a development board for the same (IXP400) Intel processor family used in the Linksys NSLU2 and a quick experiment revealed that the binaries are compatible between the WMG and the NSLU2 - the latter a system I've had some experience playing with. If I had some time, I could have some fun here, and I bet that mounting the hard drive in a Linux box would reveal even more information. But like most people, my time seems to be in short-supply these days. Still, I couldn't resist a quick hack as a proof-of-concept.
While watching the network traffic between the WMA and the WMG, I gained some understanding of how data moved between the two. I don't pretend to be any kind of expert in the protocols involved, but it appears as if the server-side runs some sort of UPnP daemon that tells the WMA what files are available.
Part of that data is a URL reference which the WMA can use to contact an http server to fetch an HTML page listing the available files. I'm sure there's a lot more involved, but for my little hack, that should be enough. In my WMA review, I tried to start up a couple of UPnP servers on my network to see if the WMA would recognize them, but had no luck. But since I now understand the WMG's subnet limitation, I was now able to get the WMA to recogize UPnP servers.
I started up a UPnP-based server on my NSLU2 and it quickly showed up on the WMA (Figure 6). Then I monitored the network traffic and saw that the WMA wanted an http server on port 8000 of the NSLU2. I obliged by starting one up and configured it to point to a directory full of media files in which I created a simple HTML index file listing all of the image files.
Figure 6: The NSLU2 as a server to the WMA100
Now when I then selected my server from the WMA, the HTML index was fetched. All I then had to do was click on a desired image's link and the WMA displayed it. Cool. My NSLU2 was now serving images to my WMA. Nice hack, but I wasn't quite done yet.