[G Tablet Q&A, Help & Troubleshooting] rajeevvp:
Experience and intuition.

The `placeholder' file is not a standard. On Linux, kernel modules are placed in /lib/modules/KERNEL-VERSION/, and the standard utility (or, program) which we use to load modules, modprobe, looks there for kernel modules. In fact, it's normally unnecessary to manually load modules like we have done. Usually on Linux, because of the standardized module locations, the appropriate modules are automatically loaded when needed.

Things are irritatingly (and unnecessarily) different on Android. There is no modprobe supplied with the system and the busybox modprobe still attempts to use the /lib/modules/... path as on Linux. Which is why you have to resort to insmod and the long-winded path to the kernel module.

I am new to Android myself, and the steps I outlined above are what I used to determine where things should go on the gTablet.

You didn't notice the 'cd /system' command before the tar command extracting the kernel modules.

You move to the directory where things should be placed before untar'ing; and when you untar, tar will re-create the directory structure you see in the tar file in the directory you're currently in. Some versions of tar have a `-C' flag which you can use to change the current directory; sort-of like the 'Extract to directory' option you have in GUIs. If you had one of those tar commands you'd do this:

# /system/xbin/tar -C /system -xzvf /mnt/sdcard/kernel/lib-2632.39_gb.tar.gz

instead of this:

# cd /system
# /system/xbin/tar -xzvf /mnt/sdcard/kernel/lib-2632.39_gb.tar.gz

The error messages are helpful clues.

The "Exec format error" probably means that you've downloaded the wrong version of the kernel and/or modules. Pershoot supplies 4 versions: for Froyo-ROMs, for Gingerbread-ROMs, for tablets with the new Bootloader and Froyo-ROMs, and tablets with the new Bootloader and Gingerbread-ROMs. Use the correct version for your hardware and ROM.

The "no such device" error message is also a clue. The output of 'cat /proc/filesystems', above, after the cifs module was loaded has a line like:

nodev cifs

which means that the cifs filesystem is not associated with an actual device file. The "no such device" means that you're (or the program you use is) incorrectly supplying a /dev/... parameter to the mount command, or have screwed up or incorrect options somewhere.

Here's how I mounted a Win 7 share on the gTablet just now. In a Terminal Emulator window:

$ su
# insmod /system/lib/modules/2.6.32.39-cyanogenmod/kernel/fs/cifs/cifs.ko
# mkdir /mnt/cifs
# mount -t cifs //SERVER-IP-ADDRESS/SHARE-NAME /mnt/cifs -o domain=DOMAIN,username=USERNAME,password=PASSWORD

This method is slightly insecure, though. It's better to create a file with

domain=DOMAIN
username=USERNAME
password=PASSWORD

and then pass the `credentials=filename' option instead of the `domain=...' above:

mount -t cifs //SERVER-IP-ADDRESS/SHARE-NAME /mnt/cifs -o credentials=/SOME/PATH/cifs-cred.txt

I know typing all this is a chore, but my goal is to help you troubleshoot things on your own in the future. Linux, and by extension, Android, is good in this regard. It's transparent and very inspectable--if something goes wrong, you can look around, and usually fix things up.

Cheers!