Polaroid 704

The AllWinner A10 and A13 SOC series have flooded the market with sub $100 tablets.  The Polaroid 704 is on of those tablets.  It is a A13 based system
 .  The tablet is slow and unresponsive in Android and even after using root access to add Google Play many apps are not available with out significant work.  I was never able to get a BlueTooth USB unit to work.  This led me to trying to get a full Linux distro installed   After many trials and fails, I finally have a full Linux install running on the tablet.  The big problem was getting the touch screen to work.  This tablet, like many others, uses a FocalTech touch controller.   This controller uses the ft5x_ts.ko module, which is included in most of the Linux Arm installs.  After trying a handful of pre-built SD card images I found a good collection over at Olimex.  I tried a few of theirs and found Debian R18 worked best. Just download the image and dd the file onto a SD card.  Which is actually Ubuntu. They have instructions on their site for this.  
Now it is time to get things to work.  The first problem is getting the script.bin file set up for the platform.  I pulled the original script from the Polaroid by mounting the NAND while I was booted to Linux on a SD card.  A few tweaks and I have a working script that will initialize the WiFi and the touchscreen correctly.  I would go into more details, but I just attached the script.fex below instead. The big changes in the script were changing the screen size and configuring capacitive touch pad.  I read a few posts that recommended editing the ft5x_ts.h file to remove the multitouch section for improved performance.  I have not managed to get a recompiled module to work, so I am using the stock file.  The camera and gsensor are not working yet, but that is a minor detail.  
This is a big success for me because I have a full Linux system on a SD card.  I can run the tablet on Android for just general use, or pop in the SD card and use blue tooth to attach to an external GPS.  I will continue to tweak the system and try to get the touch screen refined, camera and gsensor working, and play with the battery meter. The next project is to cut up a powered external USB hub to work as USB-OTG while charging the tablet.

After playing with the install, I found it would not charge the battery. So, time to compile a new kernel.  Compiling a 3.0.76 kernel worked with little effort.  The 3.4.x kernels changed something.  Buried deep in the USB settings is the "SUN5I USB2.0 Dual Role Controller support"  You have to set USB0 to "otg support" to get the thing to charge.  I also bumped the current up in the "USG Gadget Support" section. 

I also switched to Gnome desktop, it is a bit slower but works better with the touch screen.  As of now the camera does not work, but the gyro does.  The g-sensor is mma7660 hidden in the "Hardware Monitor" area.  So on top of grabbing the image, you need to grab the source to compile.

git clone https://github.com/linux-sunxi/linux-sunxi.git kernel
cd kernel
git checkout sunxi-3.4

Refer back to Olimex's guide to compile the kernel, then just copy the files to your SD card.  Put the uImage in the boot partition and the modules (in the folder you named 'out')  into /lib/modules/.  Unless you are compiling on a OLD computer, use the multi-threaded option to speed up your compiler.  So for a eight core CPU use "make -j 8 ...."
Tim Marks,
Jul 5, 2013, 4:45 PM