1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
wmaloader
Version 0.1a
Copyright 2004 Andrew Wild <acw43@cam.ac.uk>
What is it?
-----------
wmaloader is a simple program that allows the Linksys Wireless Media
adapter to be booted from a linux system. It does *not* supply media
files to the device (yet!) but even so it might prove useful to those who
wish to experiment hacking the device.
How does it work?
-----------------
The WMA uses the Simple Service Discovery Protocol (SSDP) to advertise
its presence on the network. When wmaloader discovers the WMA it makes
contact and tells the WMA where to find the image (brain!) needed for
it to boot. Communication takes place within the Universal Plug and
Play Framework (uPnP).
Building
--------
This software requires the Intel uPnP SDK (libupnp). The only version tested
is 1.2.1 but others should work. You can find this
at http://upnp.sourceforge.net. To avoid mysterious uPnP problems ensure
you add a route for multicasting:
route add -net 239.0.0.0 netmask 255.0.0.0 eth0
This must be performed each time your system boot so you probably
want to add it to your system startup scripts.
Before trying to compile wmaloader you should edit the supplied
Makefile to ensure the UPNP_INC and UPNP_LIBS variables are correct:
UPNP_INC should be a path to the uPnP header files (upnp.h etc.)
UPNP_LIBS should be a path to the uPnP shared libraries (libupnp.so etc.)
Then:
$ make
Running
-------
wmaloader does not come with an image to boot your device. You should
be able to find the original image supplied on the installation CD
somewhere like:
/mnt/win/Program Files/Linksys Wireless-B Media Adapter/bootimg/squishguava
Then start wmaloader (root privileges not needed):
$ ./wmaloader --image /path/to/squishguava
Other options include:
--interface Bind to a specific interface.
--daemon Detach and run in background. Log to syslog.
Sample output from my system:
acw43@io:~/wma11b/WMALoader$ ./wmaloader --image wmamp.img
Listening for image transfer on port 32864
UPnP Library initialised. Using 10.0.0.12:49153
Querying uuid:0006250ECF2E-AppLoaderClient
Device reports state: NOT_STARTED
Device reports firmware version: Ver. 11 R06
Booting uuid:0006250ECF2E-AppLoaderClient
Querying uuid:0006250ECF2E-AppLoaderClient
Device reports state: STARTED
Installing
----------
$ make install
This will install the binary in /usr/local/bin. If you would like to
install it elsewhere edit the DEST variable in the makefile.
Uninstalling
------------
$ make uninstall
Thanks
------
I'd like to express my gratitude to Intel for making the UPnP library
freely available.
|