[Dmitry] read about hacking the Transcend WiFi cards, and decided to give it a try himself. We already covered [Pablo’s] work with the Transcend card. [Dmitry] took a different enough approach to warrant a second look.
Rather than work from the web interface and user scripts down, [Dmitry] decided to start from Transcend’s GPL package and work his way up. Unfortunately, he found that the package was woefully incomplete – putting the card firmly into the “violates GPL” category. Undaunted, [Dmitry] fired off some emails to the support staff and soldiered on.
It turns out the card uses u-boot to expand the kernel and basic file system into a ramdisk. Unfortunately the size is limited to 3MB. The limit is hard-coded into u-boot, the sources of which transcend didn’t include in the GPL package.
[Dmitry] was able to create his own binary image within the 3MB limit and load it on the card. He discovered a few very interesting (and scary) things. The flash file system must be formatted FAT32, or the controller will become very upset. The 16 (or 32)GB of flash is also mounted read/write to TWO operating systems. Linux on the SD card, and whatever host system the card happens to be plugged in to. This is dangerous to say the least. Any write to the flash could cause a collision leading to lost data – or even a completely corrupt file system.
[Dmitry] spent even more time fighting with kernel builds. In the end he did emerge victorious. He was able to bring up his own kernel on the WiFi SD card’s ARMv5 controller and run anything he wanted. He tested the system by booting up with X windows forwarding through an SSH tunnel over WiFi. He was even able to get Firefox running in X, albeit very slowly. The card doesn’t even need to be in a host system – only power and ground are needed to boot and access it via WiFi.
After all this was done, [Dmitry] finally got a response back from one of Transcend’s support engineers. They are “Uninterested” in complying with GPL, and he is “free to report this to any Linux organization” Ouch! That’s one of the most cavalier GPL violations we’ve seen in a long time.
Update: It looks like Transcend has added u-boot sources to their GPL package. However, [Dmitry] states in the comments that they are still missing kernel config and some of the module sources.