Access CIFS share on ASUS EeePad Transformer

    

I have bought an Asus EeePad Transformer to see what Android was (compared to all the iOS I had :). One of the thing I found missing (on 3.0, 3.1 and 3.2) was the ability to access CIFS (AKA SMB ou Windows) share. It’s quite a shame since you know Android and no more than a tweaked Linux kernel…

Anyway, after reading a whole pack of doc, I decided to go “rooting” my tablet. I don’t want to install a fully customized ROM (yet). For now, I will keep the stock Asus firmware but will add CIFS capabilities.

Enabling CIFS on the droid is not that difficult. What you need to do is:

  1. enable root access ;
  2. enable CIFS/SMB via the cifs.ko module ;
  3. install and run a CIFS client.

Rooting the tablet

To root the tablet, you will need some Linux installation. I don’t have one but I installed Ubuntu 11.04 in VMware Fusion, on my MacBook Pro, and did all the stuff from there.

There is a great tutorial available here . Read it (twice), download the binary and follow the white prompt.

# wget http://forum.xda-developers.com/attachment.php?attachmentid=677456&d=1312486060
# tar xf universal-V3.tar
# cd universal
# sudo ./universal.sh
[sudo] password for jdoe:

Asus Transformer TF101 Universal Root
===================================================
Disconnect your tablet from usb (if connected) and turn it off (if it's not).
Press and hold the UP Volume and the power button for ~5sec.
For now the tablet screen should stay off, it's perfectly normal
Now connect to usb
Press any key when you're ready.

Once connected to the virtual machine, the tablet will be automatically reconnect when I unplug/plug the USB cable - since I don’t turn off my Mac.

The script does a bunch of operations and then asks about ClockWordMod. What it does is:

ClockWorkMod (CWM)
=====================================
ClockWorkMod recovery is a recovery image that let's you do some funny things
like make a nandroid backup, installing custom rom and much more
This is not necessary for root

NOTE: if you install CWM you won't be able to update your tablet with the OTA
firmware from ASUS, until you revert back to the stock recovery

Do you wish to install clockworkmod recovery? [y/N]n

As you can see, I didn’t install it because I want to keep my tablet as stock as possible.

The next step is quite easy too:

Now press and hold the power button for ~10sec.

Your tablet should reboot. When android is fully loaded, go to Settings -> Applications -> Development and make sure USB Debugging is enabled.
Press any key when you're ready.
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
remount succeeded
597 KB/s (26324 bytes in 0.043s)
1033 KB/s (196521 bytes in 0.185s)


Done.
Your tablet is now rooted.

Enjoy!.

And that’s all!

Access the tablet shell as root

You can install a Terminal emulator from the Android Market. I did install “Android Terminal Emulator” from “Jack Palevich”.

When installed, start the application and issue the “su -” command. You will be prompted to accept the privilege upgrade.

Now, I can read your email.

Install CIFS support

I think that you can get the full system source and compile the CIFS module yourself. But I don’t know how to do it. So I have download a precompiled module from here .

What I did was browse the URL and download the cifs.ko file on my SDcard, then copy it to the correct location:

# mount -o remount,rw /system
# cat /mnt/sdcard/Download/cifs.txt > /system/lib/modules/cifs.ko
# chmod 644 /system/lib/modules/cifs.ko
# mount -o remount,ro /system
# exit
$ exit

The module is now ready.

Note that the shell manages history. There are special key bindings such as Vol-Up + W to go UP the history and Vol-Up + A to go LEFT in the command prompt.

Manage CIFS support

From the Android Market, I installed “Cifs Manager” from Stefan Plattner. This application allows you to mount Windows shares and the tablet applications will access them as if they were local directories from your SDcard.

Create mountpoints under the /mnt/sdcard location so that every application case access them.

Note that I had to reboot the tablet for the module to load.
In fact, I did load the module manually once then check if CifsManager reloads it after reboot. It does.

That’s All Folks!