kernel module for rooted Tablet S ( 2.6.36.3 ) - CIFS, NTFS, TUN, bash 4.2 n MORE - Sony Tablet S

Hi all,
This thread is to share the kernel module for rooted Sony Tablet S. I think it would be much useful to post all the zips in 1st post..
Requirement:
Condi's rooted solution on ur Tablet S. Instructions here
So now we have the below:
2.6.36.3 Kernel Modules :
- CIFS (and u can mount any LAN Network shared drives to your Tablet S and watch movies or listen musics.) Updated version has /proc/fs/cifs/Stats
- NTFS (mount a USB external drive using OTG cable; pretty obvious filesystem by the name )
- TUN (/dev/tun device for OpenVPN usage.)
- USB Serial ( cp210x, ftdi_sio and oti6858 ) --- NEW
Shell binaries :
- bash 4.1 (with bash configuration files. bash binary is changed to auto read from /data/local/bash for bashrc file ) [ Updated to version 4.2 ]
MD5SUM is as below:
5cd998c7d5f3d7b3e86fb1a46abec6e5 Sony_tablet_S-CIFS_module.zip
6e4b692028461d39fe9c2b291f6a9943 bash-4.1.zip
(OLD builds )
2ad1a2335b8cbd1f7d67b8686af67e48 Sony_tablet_S-CIFS_module_new.zip
fd461c462ca55982d60a274eb04565b5 Sony_tablet_S-NTFS-rw_module.zip
84b11ec49d21d62e1c90155f6b264cb0 bash-4.2.zip
d9859110c52e0a0e923f11564edf35b7 bash_cfg.zip
9b4e4e4505bc5916923b940a46b2e38a Sony_tablet_S-TUN_module.zip
3b97d4291cf7c213b5806b7c574a4475 Sony_tablet_S-USB_Serial_modules.zip
The steps are only manual way to insert the kernel module; automation is up to you. To automate this upon boot, i guess u can put it into init.d or somewhere im not sure.
If you need some kernel modules particular to 2.6.36.3 rooted, let me know.
have fun!
----------------------------------------------------------------
Kernel Module deploy instructions:
1) adb push <module_name>.ko /data/local/tmp
2) adb shell
$ su
# mount -o rw,remount -t ext4 /dev/block/mmcblk0p2 /system
# cp /data/local/tmp/<module_name>.ko /system/lib/modules/<module_name>.ko
# insmod /system/lib/modules/<module_name>.ko
To verify:
# lsmod
(You will see the module_name listed. )
-------------------------------------------------------------------------
bash shell deploy instructions:
1) adb push bash /data/local/tmp
2) adb push bash_cfg.zip /data/local/tmp
3) adb shell
$ su
# mkdir /data/local/bash
# chmod 775 /data/local/bash
# chgrp 2000 /data/local/bash
# cd /data/local/bash
# unzip /data/local/tmp/bash_cfg.zip
# chmod 755 /data/local/tmp/bash
# cp /data/local/tmp/bash /system/xbin/bash
Now, u can type bash at your prompt and you will see the below:
[localhost /data/local/tmp/new_bin]#

Overclock module possible?

zerod78 said:
attached is the kernel module cifs.ko for Sony Tablet S.
Click to expand...
Click to collapse
Thank you! Will check kernel modules things..
norberto_ said:
Overclock module possible?
Click to expand...
Click to collapse
The same I thought
I will check it, if everything will gonna work ok,
then it will be added to AiO as one-click solution.
br
condi

norberto_ said:
Overclock module possible?
Click to expand...
Click to collapse
Not in this current kernel as its compiled as built-in. However custom kernels in future should allow OC. Need time to look into.

NTFS Support for external drives?
---------- Post added at 06:00 PM ---------- Previous post was at 05:59 PM ----------
zerod78 said:
Not in this current kernel as its compiled as built-in. However custom kernels in future should allow OC. Need time to look into.
Click to expand...
Click to collapse
damn
I thought it is possible, because ia have seen this kind of modules for other devices.

norberto_ said:
NTFS Support for external drives?
---------- Post added at 06:00 PM ---------- Previous post was at 05:59 PM ----------
damn
I thought it is possible, because ia have seen this kind of modules for other devices.
Click to expand...
Click to collapse
Those are already having bootloader cracked. would need more info from Condi abt that on our tablet and the possibilities.
Btw, heres the NTFS rw kernel module.
<6>[96479.498359] NTFS driver 2.1.29 [Flags: R/W MODULE].
# lsmod
ntfs 194248 0 - Live 0xbf03e000
<refer to 1st post for files and deploy instructions>

zerod78 said:
Those are already having bootloader cracked. would need more info from Condi abt that on our tablet and the possibilities.
Btw, heres the NTFS rw kernel module.
<6>[96479.498359] NTFS driver 2.1.29 [Flags: R/W MODULE].
# lsmod
ntfs 194248 0 - Live 0xbf03e000
MD5SUM :
fd461c462ca55982d60a274eb04565b5 Sony_tablet_S-NTFS-rw_module.zip
Click to expand...
Click to collapse
NTFS module is live for me too but when i connect my NTFS formatted pendrive the tablet tells me blank USB device.
Is there any other commands to mount the ntfs drive?

norberto_ said:
NTFS module is live for me too but when i connect my NTFS formatted pendrive the tablet tells me blank USB device.
Is there any other commands to mount the ntfs drive?
Click to expand...
Click to collapse
Does it appear in the mount cmd output? Mounting it manually with '-t ntfs' would be required i feel...
adb shell
$su
# busybox mount
what does your screen show?

zerod78 said:
Does it appear in the mount cmd output? Mounting it manually with '-t ntfs' would be required i feel...
adb shell
$su
# busybox mount
what does your screen show?
Click to expand...
Click to collapse
Maybe you could achieve automount when inserted by changing vold/svold.fstab?

condi said:
Maybe you could achieve automount when inserted by changing vold/svold.fstab?
Click to expand...
Click to collapse
Yeah i was looking at that earlier and on further search it seems possible with patched vold here
Not 100% sure if its the same software but i guess it should be... I do not have a spare sdcard to format into ntfs and still awaiting for my OTG cable to arrived before i can test that.

new compiled versions available...
bash 4.2
cifs.ko
newly added:
tun.ko

10 chars....

zerod78 said:
new compiled versions available...
bash 4.2
cifs.ko
newly added:
tun.ko
Click to expand...
Click to collapse
Thanks for the Tun module. It worked perfectly!

New kernel modules update
Added USB Serial kernel modules :
- cp210x
- ftdi_sio
- oti6858
Requested by feith

Unfortunately, the modules don't work with the ICS kernel - 2.6.39.4
Code:
# insmod /system/lib/modules/tun.ko
insmod: init_module '/system/lib/modules/tun.ko' failed (Exec format error)
I assume updated versions of the modules are required? I only need TUN and NTFS, but I guess folks will need the other modules, too?
Also, this may be a silly question, but... would it be possible to also install more I/O schedulers in this way?

I need USB-Serial for rooted ICS Kernel 2.6.39.4
I hope someone can bring them to our Tablet. Thank you!

Are there no updated modules for ICS-Kernel? @all developers: it would be very helpful if you could release these updated ones

djlars said:
Are there no updated modules for ICS-Kernel? @all developers: it would be very helpful if you could release these updated ones
Click to expand...
Click to collapse
I would like to see that also.
I can't connect my ntfs hard drive. Only fat32 partition is recognized
Sent from my Sony Tablet S using xda app-developers app

Can anyone tell me how to get these kernel modules? I need them to get 3G Modem working..

djlars said:
Can anyone tell me how to get these kernel modules? I need them to get 3G Modem working..
Click to expand...
Click to collapse
Hey there,
I've compiled and posted kernel modules for kernel version 2.6.39.4
http://forum.xda-developers.com/showthread.php?t=1870077
Let me know if there are others that people could make use of.
A

Related

[Q] How to mount a USB NTFS Harddrive?

I still can not get an external usb ntfs drive to mount... I have tried Robeet's suggestion of:
NTFS mounting requires these commands, in terminal:
su
mount -t ntfs /dev/block/sda1 /mnt/usbdisk
Problem is that you are mounting as root, so you can't see the mounted files in the Android GUI. You could also do a chmod, but that's a bit of an extra burden. Anyone know how to mount this as a UID that it viewable in the GUI?
EDIT: This should work:
su
mount -o umask=000 -t ntfs /dev/block/sda1 /mnt/usbdisk
and this does not work... keeps saying no such device. I am running the ZPAD Clean 3.0 Rom and the latest kernel from Pershoot...
Anyone else having success getting a WD external usb hard drive to mount?
do a search this was solved required smaller partitions and reformat .
I make the NTFS USB external HDD with its own power supply work finnaly with the help of rajeevvp's article:
Thread: Mounting 2 storage usb devices View Single Post #8 20th May 2011, 05:01 PM
rajeevvp Senior Member Join Date: Aug 2010 Location: Bangalore Posts: 563
(I lost his link.)
The main rajeevvp's idea is to download the right version of ntfs.ko
"For this, you have to know which kernel you're running. There are 2 kernels that are commonly used on the gTablet: clemsyn's and pershoot's. I use pershoot's kernel so my instructions will be for that. The pershoot kernel supports NTFS filesystems, but, this support is not built into the kernel. Support is instead provided using kernel modules which you'll have to download first from the author's website and then load manually.
Download the correct kernel modules file for the running kernel. Find the kernel version first:
Code:
$ uname -a
Linux localhost 2.6.32.40-cyanogenmod #1 SMP PREEMPT Fri May 13 17:37:53 EDT 2011 armv7l GNU/LinuxThe kernel version is 2.6.32.40."
Go to http://droidbasement.com/db-blog/ and download the kernel modules file for that kernel version
Then
Load the kernel modules (I'm assuming now that they're on /mnt/sdcard), then mount the HDD:
Code:
$ su
# insmod /mnt/sdcard/nls_utf8.ko
# insmod /mnt/sdcard/ntfs.ko
# mount -o umask=000 -t ntfs /dev/block/sda1/mnt/usbdisk (from Roebeet)
To unmount it
Code:
$ su
# umount /mnt/usbdisk
I use GScript lite to do the work. I can play large video file from /mnt/usbdisk (NTFS USB HDD)
Thank you very much Rajeevvp for your guide.
Hope that help.
My GTab is running Brilliant Corners 1.3.1
GTablet said:
I still can not get an external usb ntfs drive to mount... I have tried Robeet's suggestion of:
NTFS mounting requires these commands, in terminal:
su
mount -t ntfs /dev/block/sda1 /mnt/usbdisk
Problem is that you are mounting as root, so you can't see the mounted files in the Android GUI. You could also do a chmod, but that's a bit of an extra burden. Anyone know how to mount this as a UID that it viewable in the GUI?
EDIT: This should work:
su
mount -o umask=000 -t ntfs /dev/block/sda1 /mnt/usbdisk
and this does not work... keeps saying no such device. I am running the ZPAD Clean 3.0 Rom and the latest kernel from Pershoot...
Anyone else having success getting a WD external usb hard drive to mount?
Click to expand...
Click to collapse
I'm having this issue also. I have run the following:
$ su
# insmod /mnt/sdcard/nls_utf8.ko
# insmod /mnt/sdcard/ntfs.ko
# mount -o umask=000 -t ntfs /dev/block/sda1/mnt/usbdisk
and I get
mount: can't read /etc/fstab: No such file or directory
Spazmodo said:
I'm having this issue also. I have run the following:
$ su
# insmod /mnt/sdcard/nls_utf8.ko
# insmod /mnt/sdcard/ntfs.ko
# mount -o umask=000 -t ntfs /dev/block/sda1/mnt/usbdisk
and I get
mount: can't read /etc/fstab: No such file or directory
Click to expand...
Click to collapse
Which ROM are you running?
Spazmodo said:
I'm having this issue also. I have run the following:
$ su
# insmod /mnt/sdcard/nls_utf8.ko
# insmod /mnt/sdcard/ntfs.ko
# mount -o umask=000 -t ntfs /dev/block/sda1/mnt/usbdisk
and I get
mount: can't read /etc/fstab: No such file or directory
Click to expand...
Click to collapse
There is a space missing between "/dev/block/sda1" and "/mnt/usbdisk".
See this post of mine for the original instructions.

[Q] loading cifs module

Vegan ginger - loaded the standard with pershoot kernel but it has no cifs support. Replaced with clemsyn and cifs was great but after rebooting my screen hung and eventually I had to revert to my original without cuts. I think there is a way to instruct the pershoot kernel to load cifs support even thought it isn't compiled into the kernel. I'm looking for some step by step instructions to learn how to do that. Anyone know how?
How about reading the instructions posted by pershoots on the very same page from which you downloaded the kernel ?!?
To use one of the kernel modules:
Pull the one you want from lib-2632.39.tar.gz (winrar can open this),
adb remount
adb push MODULE.ko /system/lib/modules/2.6.32.39-cyanogenmod/
adb shell chmod 644 /system/lib/modules/2.6.32.39-cyanogenmod/MODULE.ko
adb shell insmod /system/lib/modules/2.6.32.39-cyanogenmod/MODULE.ko
Click to expand...
Click to collapse
- if you don't use adb then just use "terminal emulator" (from the market or preloaded with the some ROMs).
- replace "MODULE" with "cifs"
- use the lib file appropriate to your ROM and bootloader.
Best of luck,
Yeah - that was helpful !
"How about reading the instructions posted by pershoots on THE VERY SAME PAGE FROM WHICH YOU DOWNLOADED THE KERNEL?!?"
Having a bad day were we???
The kernel came with the rom so I never downloaded a kernel and had no idea where the page was - your link was helpful in that it took me to that page (not on xda forum) so I was able to download the library anyway. Sadly, I am not using cyanogen so the paths listed in the instructions don't apply I don't think. I'm also not using adb yet although I'm working up to it. I can use terminal emulator so that shouldn't be a problem assuming I find where to put the module. Possibly it can go anywhere in the system/lib/modules directory as long as I can point to it? I guess we'll have to try it and see.
The real question that you have raised is "use the lib file appropriate to your ROM and bootloader." How do you determine what is "appropriate"?
So perhaps someone would be willing to share a tad more knowledge and perhaps we will have a thread that other g-tab owners can use to learn from.
Pushing modules in the kernel is the same no matter the rom and vegan ginger is built from cm source anyway
thebadfrog said:
Pushing modules in the kernel is the same no matter the rom and vegan ginger is built from cm source anyway
Click to expand...
Click to collapse
So I downloaded lib-2632.39.tar.gz and unpacked it, searched around and found the cifs.ko file. I'm guessing that I can put that anywhere logical in /system/library and point to it. My app (CIFS Manager) has an option to load via insmod and asks for a path to it. I'm assuming that insmod is available and my app will call it to load the module? I'd also like to know how I would know without someone telling me that the module was in lib-2632.39.tar.gz? Is there some rationale that would tell me how this library and the kernel are related or are these libraries just generic in some way? Thanks for the helping hand.
http://forum.xda-developers.com/showthread.php?t=903505
enigma0456 said:
I would know without someone telling me that the module was in lib-2632.39.tar.gz?
Click to expand...
Click to collapse
The kernel developers who provide the kernels and the extra optional modules provide information on their blogs when they post the availability of the kernel. For example, pershoot's blog has this info, as well as install instructions.
or you ask here.
enigma0456 said:
The kernel came with the rom so I never downloaded a kernel and had no idea where the page was.
Click to expand...
Click to collapse
Sorry I mistakenly assumed since you mentioned pershoot that you have been to his thread (the most active in the development section).
enigma0456 said:
Possibly it can go anywhere in the system/lib/modules directory as long as I can point to it?
Click to expand...
Click to collapse
Yes you certainly can.
enigma0456 said:
How do you determine what is "appropriate"?
Click to expand...
Click to collapse
If you have a gingerbread based ROM download the the lib file with "gb" in its file name.
If you have a the new bootloader on the your gtab use the ones with "newbl" in the file name.
enigma0456 said:
So I downloaded lib-2632.39.tar.gz and unpacked it, searched around and found the cifs.ko file.
Click to expand...
Click to collapse
Thats the wrong file (this is the one for Froyo ROMs).
enigma0456 said:
I'm assuming that insmod is available and my app will call it to load the module?
Click to expand...
Click to collapse
True
enigma0456 said:
I'd also like to know how I would know without someone telling me that the module was in lib-2632.39.tar.gz?
Click to expand...
Click to collapse
You wouldn't.
enigma0456 said:
Is there some rationale that would tell me how this library and the kernel are related or are these libraries just generic in some way?
Click to expand...
Click to collapse
There isn't any, just the developers choice.
^^^^ Good job lol
Thanks - that was really helpful. I like direct answers to questions. So I went and got the right library (looked for gb in name as directed). Moved the module onto my tab into a download directory via usb. Went to /System/Lib via terminal and there was no modules directory. I tried to make one and got an error that the file system is mounted read only. Arghhh I remember fighting with this when I was trying to install another keyboard. I never was able to resolve it. Theoretically "remount" should work but I searched and tried all different examples and I was never able to get it to work for me. I tested my cifs manager and it errors out - providing a base that cifs doesn't work without the module. I'm going to try pointing it at my download folder for now to see if the module would work. That is pretty messy so I would still like to put it in the proper place - if you feel up to it would you instruct me on how to overcome the deadly "mounted read only" file system problem?
________________________________
Update - put the cifs.ko file in /sdcard/download. Went into cifs manager and told it to load via insmod. Made path to cifs.ko = /sdcard/download (also tried /sdcard/download/cifs.ko) In all cases I get the message "... failed no such device". If I turn off the insmod feature I get the same message which leads me to believe that the cifs.ko isn't loading. As a test, I am using the exact same path to share, mount point, etc. on my other tab running Clemsyn/Calkulin that has cifs built into the kernel and it connects almost instantly. It is likely therefor that my problem revolves around this kernel loading cifs. Not sure what I'm doing wrong but suggestions are welcome.
enigma0456 said:
I'm guessing that I can put that anywhere logical in /system/library and point to it.
Click to expand...
Click to collapse
It's better if you put it in the standard place. What's the standard place? The paths in the kernel zip file and the module tar file should give you a clue:
Code:
$ tar -tzvf /mnt/sdcard/kernel/lib-2632.39_gb.tar.gz
drwxr-xr-x root/root 0 2011-04-30 20:14:37 lib/
drwxr-xr-x root/root 0 2011-04-30 20:14:37 lib/modules/
drwxr-xr-x root/root 0 2011-04-30 20:14:37 lib/modules/2.6.32.39-cyanogenmod/
-rw-r--r-- root/root 73 2011-04-30 20:14:37 lib/modules/2.6.32.39-cyanogenmod/modules.ieee1394map
-rw-r--r-- root/root 10709 2011-04-30 20:14:37 lib/modules/2.6.32.39-cyanogenmod/modules.symbols.bin
-rw-r--r-- root/root 271 2011-04-30 20:14:37 lib/modules/2.6.32.39-cyanogenmod/modules.alias
drwxr-xr-x root/root 0 2011-04-30 20:14:37 lib/modules/2.6.32.39-cyanogenmod/kernel/
drwxr-xr-x root/root 0 2011-04-30 20:14:37 lib/modules/2.6.32.39-cyanogenmod/kernel/net/
drwxr-xr-x root/root 0 2011-04-30 20:14:37 lib/modules/2.6.32.39-cyanogenmod/kernel/net/sunrpc/
drwxr-xr-x root/root 0 2011-04-30 20:14:37 lib/modules/2.6.32.39-cyanogenmod/kernel/net/sunrpc/auth_gss/
-rw-r--r-- root/root 408035 2011-04-30 20:14:37 lib/modules/2.6.32.39-cyanogenmod/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
-rw-r--r-- root/root 532157 2011-04-30 20:14:37 lib/modules/2.6.32.39-cyanogenmod/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
-rw-r--r-- root/root 3424305 2011-04-30 20:14:37 lib/modules/2.6.32.39-cyanogenmod/kernel/net/sunrpc/sunrpc.ko
Looks like the kernel modules need to be in a lib/modules/KERNEL-VERSION/ directory. That looks very Linux-ish. Can we just untar it to / as we do in Linux? Better check:
Code:
$ ls -l / | /system/xbin/fgrep lib
$
Yikes! No /lib directory at all on Android. Where the heck do the kernel modules go? Let's look at the kernel zip file to see if there is a clue--the unzip on the gTablet doesn't understand this zip file format, so check on a Linux system:
Code:
$ unzip -l boot-cm_2632.39_gb-oc-uv-xtra-vfp_fp-043011.zip
Archive: boot-cm_2632.39_gb-oc-uv-xtra-vfp_fp-043011.zip
Length Date Time Name
--------- ---------- ----- ----
1123 2008-02-28 21:33 META-INF/MANIFEST.MF
1176 2008-02-28 21:33 META-INF/CERT.SF
1714 2008-02-28 21:33 META-INF/CERT.RSA
252000 2008-02-28 19:33 META-INF/com/google/android/update-binary
1015 2098-06-15 19:23 META-INF/com/google/android/updater-script
88544 2098-01-27 05:41 kernel/dump_image
76132 2098-01-27 05:54 kernel/mkbootimg
303 2098-03-22 09:35 kernel/mkbootimg.sh
70992 2098-01-27 05:53 kernel/unpackbootimg
56 2098-01-27 06:09 kernel/unpackbootimg.sh
2219848 2098-06-22 03:05 kernel/zImage
12234 2098-03-04 12:32 system/lib/hw/wlan/LICENSE.TXT
258778 2011-04-30 16:14 system/lib/hw/wlan/bcm4329.ko
249144 2011-04-11 01:13 system/lib/hw/wlan/fw_bcm4329.bin
249467 2011-04-11 01:13 system/lib/hw/wlan/fw_bcm4329_apsta.bin
0 2011-01-07 02:11 system/lib/modules/2.6.32.39-cyanogenmod/placeholder
--------- -------
3482526 16 files
Hmm, there is a placeholder file in system/lib/modules/KERNEL-VERSION/, so /system's where the modules are supposed to go.
Code:
$ su
# /system/xbin/mount -w -o remount /system
# cd /system
# /system/xbin/tar -xzvf /mnt/sdcard/kernel/lib-2632.39_gb.tar.gz
# /system/xbin/mount -r -o remount /system
My app (CIFS Manager) has an option to load via insmod and asks for a path to it. I'm assuming that insmod is available and my app will call it to load the module?
Click to expand...
Click to collapse
Asks a path to what? Insmod or the kernel module?
I'd also like to know how I would know without someone telling me that the module was in lib-2632.39.tar.gz?
Click to expand...
Click to collapse
Kernel functionality, like filesystems, are either built into the kernel or added using kernel modules. (You can also have filesystems implemented in userspace, but, we'll skip that complexity for now). So, the guy who gave you the kernel would either have compiled the filesystem in or must supply the module file for it. First, check if the filesystem is built-in:
Code:
$ cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev tmpfs
nodev debugfs
nodev sockfs
nodev usbfs
nodev pipefs
nodev anon_inodefs
nodev inotifyfs
nodev configfs
nodev devpts
ext3
ext2
ext4
nodev ramfs
vfat
msdos
yaffs
yaffs2
No CIFS, so it's not compiled in; we'll have to load the module:
Code:
$ su
# insmod /system/lib/modules/2.6.32.39-cyanogenmod/kernel/fs/cifs/cifs.ko
# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev tmpfs
nodev debugfs
nodev sockfs
nodev usbfs
nodev pipefs
nodev anon_inodefs
nodev inotifyfs
nodev configfs
nodev devpts
ext3
ext2
ext4
nodev ramfs
vfat
msdos
yaffs
yaffs2
nodev cifs
Yup, CIFS is there now. But, this sort of thing gets tedious. You can use a shell script to make things easier. Here's what I use to mount my external USB HDD:
Code:
#!/system/bin/sh
PATH=/system/bin:/system/xbin
lsmod | fgrep -q nls_utf8 || insmod /system/lib/modules/`uname -r`/kernel/fs/nls/nls_utf8.ko
lsmod | fgrep -q ntfs || insmod /system/lib/modules/`uname -r`/kernel/fs/ntfs/ntfs.ko
exec mount -r -t ntfs -o fmask=0111,dmask=0022,nls=utf8 /dev/block/sda1 /mnt/usbdisk
Just save the file somewhere and make it executable and run the script as superuser to mount the USB HDD.
Is there some rationale that would tell me how this library and the kernel are related or are these libraries just generic in some way?
Click to expand...
Click to collapse
Since these are kernel modules, they are by definition related, no?
Note that you need a Terminal Emulator and the Superuser app (both from Market) and busybox (also from Market) for the above commands to work. Also, do not type in the prompts (the '$' and '#' characters) at the beginning of the commands. They are there as a reference to show you when you're in superuser mode and when you're a normal user.
enigma0456 said:
I tried to make one and got an error that the file system is mounted read only.
Click to expand...
Click to collapse
remount is specific to "adb", the equivalent in terminal emulator is:
Code:
su root
mount -o remount,rw /system
cp /sdcard/download/cifs.ko /system/lib/modules/cifs.ko
chmod 644 /system/lib/modules/cifs.ko
mount -o remount,ro /system
Then just use "Mount Manager" to load the copied CIFS module, might want to reboot if mount manager failed to do the insmod.
I have been using the above procedure with all pershoot's kernels without a problem.
This should solve your problem,
Best of luck,
I coludn't make it work either. It was in the right folder, suposedly "loaded" but it wasn't working.
I am on the Caulkin/Clemsyn ver 5 (the 1.5GHz) now - exactly because of this inability to load that module. I don't know why pershoot doesn't make it part of the kernel, maybe he doesn't have a PC in the house
Sure, the whole typing thingie in linux/android looks easy if that is what you do 24/7. But for less accustomed with that, all this is likely a turn-off.
SoNic67 said:
I coludn't make it work either. It was in the right folder, suposedly "loaded" but it wasn't working.
I am on the Caulkin/Clemsyn ver 5 (the 1.5GHz) now - exactly because of this inability to load that module. I don't know why pershoot doesn't make it part of the kernel, maybe he doesn't have a PC in the house
Sure, the whole typing thingie in linux/android looks easy if that is what you do 24/7. But for less accustomed with that, all this is likely a turn-off.
Click to expand...
Click to collapse
GScript lite can automate the "whole typing thingie" - just put the insmod command there.
The nice thing about it being a module for the functions you rarely use is, for the 99.999% of the time that you don't need the functionality, it's not taking up memory since its not loaded.
I was just shutting down to get some zzzzs but I fired my PC back up to have a go at this. I worked through part of it - did get the remount working and was able to copy things to the directory and then remount ro. It didn't work yet but I was tired and I may have made a typo. I REALLY appreciate the detailed explanation and examples. This is a page I will refer back to over and over until it becomes second nature. Thanks. Questions:
1. I follow how you arrived at the location (although I don't have a kernel zip file) - is "placeholder" a standard or was that just experience and intuition that informed you?
2. The whole section about un-tarring lib-2632.39_gb.tar.gz - Linux is not my primary language so how did you know that it would un-tar to the proper kernel module directory? Did I miss something?
3. I have to go back and retrace my steps but I tried using both cifs manager and mount manager and they both fail claiming "there is no such device" I tried the manual steps for loading insmod and the cifs.ko as the example described and I get "failed (Exec format error)
Please dispense more wisdom as needed.
enigma0456 said:
Questions:
1. I follow how you arrived at the location (although I don't have a kernel zip file) - is "placeholder" a standard or was that just experience and intuition that informed you?
Click to expand...
Click to collapse
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.
2. The whole section about un-tarring lib-2632.39_gb.tar.gz - Linux is not my primary language so how did you know that it would un-tar to the proper kernel module directory? Did I miss something?
Click to expand...
Click to collapse
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:
Code:
# /system/xbin/tar -C /system -xzvf /mnt/sdcard/kernel/lib-2632.39_gb.tar.gz
instead of this:
Code:
# cd /system
# /system/xbin/tar -xzvf /mnt/sdcard/kernel/lib-2632.39_gb.tar.gz
3. I have to go back and retrace my steps but I tried using both cifs manager and mount manager and they both fail claiming "there is no such device" I tried the manual steps for loading insmod and the cifs.ko as the example described and I get "failed (Exec format error)
Please dispense more wisdom as needed.
Click to expand...
Click to collapse
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:
Code:
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:
Code:
$ 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
Code:
domain=DOMAIN
username=USERNAME
password=PASSWORD
and then pass the `credentials=filename' option instead of the `domain=...' above:
Code:
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!
OK - well I tried the manual insmod as in your example and I get the "failed (Exec format error) so I'm going to assume that I still have the wrong module. I'm trying to avoid getting into the changing my kernel project right now so I'll go back and check again on Pershoots page to try and find the version of the kernel that is currently running in my g-tab and the appropriate library that goes with it. The problem must lie there. I was sure I had the right library to go with my 2.6.32.36-cynaogenmod [email protected] #1 but then again, the labeling on his site doesn't reflect a name like that. The best I can find is boot-cm_2632.36_gb-xtra-vfp_fp-032711.zip and the associated lib-2632.36_gb.tar.gz (kernel modules). Is this really the kernel in my g-pad? Don't know how to tell but sems to be the only gingerbread one with that numbering series.
If you use some kernel version X.Y.Z, you have to use the modules that were compiled with that kernel. It's not just the version numbers that have to match--the compilation options might matter too.
I.e., Make sure, you are running the kernel first, then install the modules. Just pick the latest GB (you mentioned you were running VEGAn-gingerbread) kernel from pershoot's page.
1. Download this kernel zip file: boot-cm_2632.39_gb-oc-uv-xtra-vfp_fp-043011.zip
2. Download the associated kernel module file: lib-2632.39_gb.tar.gz
3. Boot into ClockworkMod recovery to install the kernel. At the main menu, choose, "install zip from sdcard". Then select, "choose zip from sdcard", navigate to where you put the kernel zip file, then choose the zip file and apply it.
4. Reboot back into the normal system.
5. Now, follow the steps outlined above to untar the modules in /system. Do *not* use `chmod -R 644' to change permissions recursively. This command *removes* the execute permission from directories which *must* be present. The module tar file should, generally, have the correct permissions already.
6. Try the manual method first: insmod /SOME/PATH/cifs.ko must work, then try the mount command.
7. Unmount using `umount /MOUNT/POINT'.
You can troubleshoot the CIFS manager later.
Coda
This investigation lead me to the kernel naming investigation and the discovery that the module library must be compiled with the kernel that you are using. Obvious now but ... Anyway, in the process of learning about kernels I stumbled upon cyanogenmod so I loaded that onto my tab. I liked the way it works so I took another run at the cifs - and it did not work. I went back and followed these steps and made sure that I found the lib module that matched the kernel that came with my release of cyanogen. I extracted cifs.ko and copied it to the /system/lib/modules directory (I had to make the modules directory) and then I used cifsmanager to try and mount the share and it worked. Next I deleted the modules directory with the module in it and tried to mount the share and it failed. I put it all back and it worked again. So - the instructions preceding this post are sound and, if followed carefully, will work. The key seems to be making sure the lib module is the one that goes with your kernel. Thanks again to all those that contributed to my education!
swan song
enigma0456 said:
I went back and followed these steps and made sure that I found the lib module that matched the kernel that came with my release of cyanogen...
The key seems to be making sure the lib module is the one that goes with your kernel.
Click to expand...
Click to collapse
That may only have worked because CyanogenMod uses pershoot's kernel as its default kernel. Had it used Clemsyn's kernel instead, you may very well have ended up back at square one.
The golden rule is: Get the kernel and the kernel modules from the same guy, because he can (and probably does) build both at the same time. And because of this you can be sure that:
a) The modules were compiled with the correct kernel sources, header files and configuration options.
b) The same compiler was used to compile both the kernel and the modules.
c) The same compiler flags, like optimizations, were used for the compilations. In rare cases, I've seen mismatches here causing problems.
In most cases however, esp. on an architecture like the x86 which is very forgiving, slightly mismatched kernels and modules won't cause problems, but, this is not the sort of thing you should be futzing around with--unless you're a wizard.
I have 4 different versions of GCC (2 each for x86 and x86-64--stable and latest), the Intel C compiler v11, and 3 different compilers for the ARM (Android NDK, the prebuilt one from the Aboriginal Linux project and the latest GCC cross-compiled for the ARM). I use different version for different things and stick to each consistently.
OK, so kernels and modules have to be compiled together, but, what about userspace? Do normal programs have to be recompiled if you change the kernel?
No, not (generally) required. The Linux kernel developers have gone to great lengths to make sure that the kernel interface to userspace stay the same--in fact, it would only be a mild exaggeration to say that the kernel guys would rather give away their first-borns than break the userspace API.
This is the reason why you can run Clemsyn kernels on TnT-Lite, or pershoot kernels on VEGAn-Gingerbread, or whatever other combo you prefer.

[Q] tun/tap driver on gsb 3.7

since i only have 1 post, can anyone tell me how to get the tuntap driver to load on gsb 3.7? im trying to use the cisco anyconnect for rooted devices, but it appears that cm7 doesn't have the tun/tap driver installed correctly. i was able to download a tun.ko and put it in /system/lib/modules, but it won't execute with insmod (Exec format error).
Can you post the exact steps you followed, adb commands used, and any reference materials you used?
The first question I had after reading your post was I wondered if you changed permissions after loading the new file to /system.
Good Luck,
i was trying to get the cicso anyconnect for rooted devices to work, so i followed the following thread:
http://forum.xda-developers.com/showthread.php?t=1164088
i got it copied by remounting the /system mount to rw, then copied the tun.ko file to /system/lib/modules
after that, i did chmod 644 to match the other module in there (wlan.ko) and they are both owned by root.
drwxr-xr-x 1 root root 2048 Jul 10 16:38 .
drwxr-xr-x 1 root root 2048 Jul 10 16:38 ..
drwxr-xr-x 1 root root 2048 Jul 10 16:38 2.6.29-DecaFuctCFS-dirty-9ff84b92
-rw-r--r-- 1 root root 213388 Jul 14 08:28 tun.ko
-rw-r--r-- 1 root root 620128 Aug 1 2008 wlan.ko
then,
insmod /system/lib/modules/tun.ko
insmod: init_module '/system/lib/modules/tun.ko' failed (Exec format error)
mount -o rw,remount -t yaffs2 /dev/block/mtdblock1 /system
once done
mount -o ro,remount -t yaffs2 /dev/block/mtdblock1 /system
will mount the /system partition back to read only.
Click to expand...
Click to collapse
did this to mount /system as read/write.
What tun.ko module are you trying to use? Try the tun.ko from inside the attached zip which was compiled for Conap's kernel.
Edit: removed attached zip as it doesn't work either
from the app description:
COMPATIBLE DEVICES:
This release supports rooted Android 2.1+ devices. A compatiable tun.ko module is required, which should be placed in /data/local/kernel_modules/ if the tun module is not built into the kernel. The iptables binary is also required.
For those without root access, a fully supported production AnyConnect for a set of Samsung platforms is available as a separate download from the Android Market.
We cannot guarantee compatibility, but look forward to your feedback.
Click to expand...
Click to collapse
i'll try this too. i suppose it would have helped to read the entire app description.
\EDIT: nevermind, that folder doesn't even exist on gsb 3.7
sirblacknite said:
from the app description:
This release supports rooted Android 2.1+ devices. A compatiable tun.ko module is required, which should be placed in /data/local/kernel_modules/ if the tun module is not built into the kernel. The iptables binary is also required.
Click to expand...
Click to collapse
i'll try this too. i suppose it would have helped to read the entire app description.
\EDIT: nevermind, that folder doesn't even exist on gsb 3.7
Click to expand...
Click to collapse
Not sure if it will help but you could create the /data/local/kernel_modules directory and either place tun.ko there or symlink /system/lib/modules that contains tun.ko to the kernel_modules directory. Using adb shell or terminal emulator:
Code:
su
mkdir /data/local/kernel_modules
ln -s /system/lib/modules /data/local/kernel_modules
iptables support is included in the ROM but if you want to try providing the binary in the directory they specify, you can copy it from /system/bin
didnt' seem to make a difference. i copied the tun.ko from the zip you posted (for conaps kernel) to /system/lib/modules and it still gives the error.
# ls -al /system/lib/modules
ls -al /system/lib/modules
drwxr-xr-x 1 root root 2048 Jul 18 09:09 .
drwxr-xr-x 1 root root 2048 Jul 10 16:38 ..
drwxr-xr-x 1 root root 2048 Jul 10 16:38 2.6.29-DecaFuctCFS-dirty-9ff84b92
-rw-r--r-- 1 root root 160908 Jul 18 09:09 tun.ko
-rw-r--r-- 1 root root 620128 Aug 1 2008 wlan.ko
# insmod /system/lib/modules/tun.ko
insmod /system/lib/modules/tun.ko
insmod: init_module '/system/lib/modules/tun.ko' failed (Exec format error)
Click to expand...
Click to collapse
I get the same error when trying to insert it on my Eris running Evervolv Build 4. Or do I need a different tun.ko for that? Thanks.
sirblacknite said:
didnt' seem to make a difference. i copied the tun.ko from the zip you posted (for conaps kernel) to /system/lib/modules and it still gives the error.
Click to expand...
Click to collapse
snortman said:
I get the same error when trying to insert it on my Eris running Evervolv Build 4. Or do I need a different tun.ko for that? Thanks.
Click to expand...
Click to collapse
I've tried three different tun.ko modules but none seem to work. I pulled one from GSB 2.3 when workshed included a version to see if it would work, I also tried the one I posted that was from Conap's DecafuctCFSv9 kernel, and another that is in Evervolv(I assume it's a HeroC version).
Not sure if anyone ever found/compiled a tun.ko that worked for the gingerbread roms. It could be that one hasn't been built for the unreleased version of Conap's kernel that is used on all of these roms. I might try to figure out how to compile conap's kernel from his source with the tun.ko module getting built as well.
MongooseHelix said:
I've tried three different tun.ko modules but none seem to work. I pulled one from GSB 2.3 when workshed included a version to see if it would work, I also tried the one I posted that was from Conap's DecafuctCFSv9 kernel, and another that is in Evervolv(I assume it's a HeroC version).
Not sure if anyone ever found/compiled a tun.ko that worked for the gingerbread roms. It could be that one hasn't been built for the unreleased version of Conap's kernel that is used on all of these roms. I might try to figure out how to compile conap's kernel from his source with the tun.ko module getting built as well.
Click to expand...
Click to collapse
That would be cool. Thank you for your help so far on this.
Mongoose,
That would be awesome if you got the time and were able to do that. I suppose I could give it a stab myself, but I would have to get my dev environment setup first. Or if Cisco would just release a version that didn't require tun.ko, that would be great too (and would be something we could actually use in the company, without suggesting to some of these people who can barely use computers that they need to root their phone).
any update on this?
I've not forgotten about it but haven't had the time to look into it any and learn about kernel stuff. I did ask workshed if anyone found or compiled a working tun.ko module for CM7/GSB and he said no. Like I had suspected, he said someone would need to compile the kernel with it included. I'm not sure how difficult it is to figure out so we'll see if one of us can give it a go at some point.
I compiled and attached a new version of tun.ko that should work for ROMs using kernel version 2.6.29-DecaFuctCFS-dirty-9ff84b92. It's attached below. If the ROM devs would like to include a version of Conap's kernel with built-in tun.ko support, that could probably be done as well.
I haven't actually tested out any VPN stuff so you all will have to report back if it is in fact working. Hope it does!
Instructions:
* Download tun.zip and extract tun.ko
Code:
adb remount
adb push tun.ko /system/lib/modules/
adb shell
cd /system/lib/modules
chmod 644 tun.ko
insmod tun.ko
* check that it was inserted by typing the command "lsmod" which should output something like "tun 11252 0 - Live 0xbf000000"
that totally worked!
too bad i didnt catch it until the day my new phone was out for delivery, but at least i have something to show my employer that anyconnect actually does work on android.

[Q] Creating loop device - permission denied

Hey guys, im studying digital system security at uni and need help getting backtrack to work on my transformer prime tf201.
i rooted the device using motochopper, and installed ota rootkeeper and titanium backup.
i have the backtrack image in sdcard/backtrack/backtrack.img
when i used the complete linux installer to install busybox and run the image, it comes up with this:
[email protected]:/ $
[email protected]:/ $ cd /sdcard/backtrack
[email protected]:/sdcard/backtrack $ su
d/files/bootscript.sh /sdcard/backtrack/backtrack.img <
Checking loop device... MISSING
Creating loop device... /data/data/com.zpwebsites.linuxonandroid/files/bootscript.sh[129]: /data/data/com.zpwebsites.linuxonandroid/files/busybox: can't execute: Permission denied
FAILED
Error: Unable to create loop device!
1|[email protected]:/storage/sdcard0/backtrack #
any help? or is it just not possible on the tf201 because the kernel doesnt support it?
Thank you in advance for your input.
I have the same problem with my galaxy note1 and galaxy tab10.1.
If you've solved it share it plz..
pypi said:
Hey guys, im studying digital system security at uni and need help getting backtrack to work on my transformer prime tf201.
i rooted the device using motochopper, and installed ota rootkeeper and titanium backup.
i have the backtrack image in sdcard/backtrack/backtrack.img
when i used the complete linux installer to install busybox and run the image, it comes up with this:
[email protected]:/ $
[email protected]:/ $ cd /sdcard/backtrack
[email protected]:/sdcard/backtrack $ su
d/files/bootscript.sh /sdcard/backtrack/backtrack.img <
Checking loop device... MISSING
Creating loop device... /data/data/com.zpwebsites.linuxonandroid/files/bootscript.sh[129]: /data/data/com.zpwebsites.linuxonandroid/files/busybox: can't execute: Permission denied
FAILED
Error: Unable to create loop device!
1|[email protected]:/storage/sdcard0/backtrack #
any help? or is it just not possible on the tf201 because the kernel doesnt support it?
Thank you in advance for your input.
Click to expand...
Click to collapse
pypi said:
Hey guys, im studying digital system security at uni and need help getting backtrack to work on my transformer prime tf201.
i rooted the device using motochopper, and installed ota rootkeeper and titanium backup.
i have the backtrack image in sdcard/backtrack/backtrack.img
when i used the complete linux installer to install busybox and run the image, it comes up with this:
[email protected]:/ $
[email protected]:/ $ cd /sdcard/backtrack
[email protected]:/sdcard/backtrack $ su
d/files/bootscript.sh /sdcard/backtrack/backtrack.img <
Checking loop device... MISSING
Creating loop device... /data/data/com.zpwebsites.linuxonandroid/files/bootscript.sh[129]: /data/data/com.zpwebsites.linuxonandroid/files/busybox: can't execute: Permission denied
FAILED
Error: Unable to create loop device!
1|[email protected]:/storage/sdcard0/backtrack #
any help? or is it just not possible on the tf201 because the kernel doesnt support it?
Thank you in advance for your input.
Click to expand...
Click to collapse
Do an lsmod to see if you have the ext2.ko module installed. When I had the same difficulties doing my own
loopback install of a debian system, that was what fixed the process. I believe I got my copy of ext2.ko from
an xda post. I'll see if I can track it down for you.
---------- Post added at 05:30 PM ---------- Previous post was at 05:05 PM ----------
pypi said:
Hey guys, im studying digital system security at uni and need help getting backtrack to work on my transformer prime tf201.
i rooted the device using motochopper, and installed ota rootkeeper and titanium backup.
i have the backtrack image in sdcard/backtrack/backtrack.img
when i used the complete linux installer to install busybox and run the image, it comes up with this:
[email protected]:/ $
[email protected]:/ $ cd /sdcard/backtrack
[email protected]:/sdcard/backtrack $ su
d/files/bootscript.sh /sdcard/backtrack/backtrack.img <
Checking loop device... MISSING
Creating loop device... /data/data/com.zpwebsites.linuxonandroid/files/bootscript.sh[129]: /data/data/com.zpwebsites.linuxonandroid/files/busybox: can't execute: Permission denied
FAILED
Error: Unable to create loop device!
1|[email protected]:/storage/sdcard0/backtrack #
any help? or is it just not possible on the tf201 because the kernel doesnt support it?
Thank you in advance for your input.
Click to expand...
Click to collapse
Here is a link to a post that has a link to a version of ext2.ko. You have to do an insmod as root, but then the
loopback should work.
http://forum.xda-developers.com/showthread.php?t=833725
Didn't work for me
Didn't work for me. Got failed (Exec format error)
chris...
polymath257 said:
Do an lsmod to see if you have the ext2.ko module installed. When I had the same difficulties doing my own
loopback install of a debian system, that was what fixed the process. I believe I got my copy of ext2.ko from
an xda post. I'll see if I can track it down for you.
---------- Post added at 05:30 PM ---------- Previous post was at 05:05 PM ----------
Here is a link to a post that has a link to a version of ext2.ko. You have to do an insmod as root, but then the
loopback should work.
http://forum.xda-developers.com/showthread.php?t=833725
Click to expand...
Click to collapse
Mr_Ada said:
Didn't work for me. Got failed (Exec format error)
chris...
Click to expand...
Click to collapse
Exactly what failed? Did the insmod show ext2 as a module? Did you run 'insmod ext2.ko' from the directory that has ext2.ko (which shoudl be on the device)? Or did the loopback device fail?
Didn't work for me
Yes the insmod ext2.ko from the directory which contains the file. I was superuser too.
It wouldn't create the loopback device.
chris
polymath257 said:
Exactly what failed? Did the insmod show ext2 as a module? Did you run 'insmod ext2.ko' from the directory that has ext2.ko (which shoudl be on the device)? Or did the loopback device fail?
Click to expand...
Click to collapse
solution in bootscript.sh
painchonha said:
I have the same problem with my galaxy note1 and galaxy tab10.1.
If you've solved it share it plz..
Click to expand...
Click to collapse
solution:
the problem is with the busybox bin.
to solve:
1. install busybox free from play store
2. edit /data/data/com.zpwebsites.linuxonandroid/files/bootscript.sh, changing this:
Code:
if [ -f /data/data/com.zpwebsites.linuxonandroid/files/busybox ]; then
export bbox=/data/data/com.zpwebsites.linuxonandroid/files/busybox
elif [ -f /data/data/com.zpwebsites.linuxonandroid.opensource/files/busybox ]; then
export bbox=/data/data/com.zpwebsites.linuxonandroid.opensource/files/busybox
else
export bbox=/system/xbin/busybox
fi
with this:
Code:
export bbox=/system/xbin/busybox
re launch and go

CIFS Module for MOJO Kernel 3.4.35

Alright, finally we have CIFS support on MJO.
Cross compiled on ArchLinux from the sources posted by Rich, config pulled from /proc/config.gz and just compiled the CIFS+md4 module.
Works great here:
Code:
//10.0.0.11/vault 3.6T 2.9T 709.1G 81% /mnt/shell/emulated/0/vault
Make sure you have root, insmod md4.ko, insmod cifs.ko and enjoy! I'm using this to access my MP3s for aMPD so that my Mojo can act as my stereo too.
*edit* also make sure you have busybox installed in order to mount, and pass a username option. ie:
Code:
busybox mount -ousername=guest //1.1.1.1/share /sdcard/share
vostok4 said:
Alright, finally we have CIFS support on MJO.
Cross compiled on ArchLinux from the sources posted by Rich, config pulled from /proc/config.gz and just compiled the CIFS+md4 module.
Works great here:
Code:
//10.0.0.11/vault 3.6T 2.9T 709.1G 81% /mnt/shell/emulated/0/vault
Make sure you have root, insmod md4.ko, insmod cifs.ko and enjoy! I'm using this to access my MP3s for aMPD so that my Mojo can act as my stereo too.
*edit* also make sure you have busybox installed in order to mount, and pass a username option. ie:
Code:
busybox mount -ousername=guest //1.1.1.1/share /sdcard/share
Click to expand...
Click to collapse
That's a good idea.. just updating the modules rather then the actual kernel.
By any chance, would you know how to approach updating the kernel on the mojo?
Thank you! These modules worked for me. However I was getting an "invalid parameter" error message. Finally I had to work around it as:
Code:
busybox mount -o unc=\\\\192.168.0.2\\share name,username=myself,password=password1 -t cifs none /mnt/point
It may depend on the version of busybox..
@gwaldo if you wanted to flash a custom kernel this is what I would do:
Code:
[email protected]:/ # ls -al /dev/block/platform/sdhci-tegra.3/by-name
ls -al /dev/block/platform/sdhci-tegra.3/by-name
lrwxrwxrwx root root 2014-04-13 18:31 APP -> /dev/block/mmcblk0p4
lrwxrwxrwx root root 2014-04-13 18:31 CAC -> /dev/block/mmcblk0p5
lrwxrwxrwx root root 2014-04-13 18:31 DTB -> /dev/block/mmcblk0p2
lrwxrwxrwx root root 2014-04-13 18:31 LNX -> /dev/block/mmcblk0p3
lrwxrwxrwx root root 2014-04-13 18:31 MDA -> /dev/block/mmcblk0p8
lrwxrwxrwx root root 2014-04-13 18:31 MSC -> /dev/block/mmcblk0p6
lrwxrwxrwx root root 2014-04-13 18:31 SOS -> /dev/block/mmcblk0p1
lrwxrwxrwx root root 2014-04-13 18:31 TMP -> /dev/block/mmcblk0p9
lrwxrwxrwx root root 2014-04-13 18:31 UDA -> /dev/block/mmcblk0p10
lrwxrwxrwx root root 2014-04-13 18:31 USP -> /dev/block/mmcblk0p7
[email protected]:/ #
key line:
Code:
lrwxrwxrwx root root 2014-04-13 18:31 LNX -> /dev/block/mmcblk0p3
grab the boot image:
Code:
cat /dev/block/mmcblk0p3 > /sdcard/boot.img
load it in archikitchen: http://forum.xda-developers.com/showthread.php?t=2597220
create a barebones project, put the boot.img in the project folder, unpack. gives us:
Code:
./kernel
./kernel/boot.img-cmdline
./kernel/boot.img-kerneloff
./kernel/boot.img-zImage
./kernel/ramdisk
./kernel/ramdisk/ueventd.goldfish.rc
./kernel/ramdisk/init.nv_dev_board.usb.rc
./kernel/ramdisk/proc
./kernel/ramdisk/data
./kernel/ramdisk/init.rc
./kernel/ramdisk/init.mojo.rc
./kernel/ramdisk/ueventd.mojo.rc
./kernel/ramdisk/system
./kernel/ramdisk/sys
./kernel/ramdisk/init.usb.rc
./kernel/ramdisk/init
./kernel/ramdisk/default.prop
./kernel/ramdisk/sbin
./kernel/ramdisk/sbin/watchdogd
./kernel/ramdisk/sbin/ueventd
./kernel/ramdisk/sbin/adbd
./kernel/ramdisk/init.trace.rc
./kernel/ramdisk/fstab.mojo
./kernel/ramdisk/dev
./kernel/ramdisk/init.qvs.rc
./kernel/ramdisk/init.tf.rc
./kernel/ramdisk/init.goldfish.rc
./kernel/ramdisk/ueventd.rc
./kernel/boot.img-tagsoff
./kernel/boot.img-ramdiskoff
./kernel/boot.img-ramdisk.gz
./kernel/boot.img-base
./kernel/boot.img-pagesize
./META-INF
./META-INF/com
./META-INF/com/google
./META-INF/com/google/android
./META-INF/com/google/android/update-binary
./META-INF/com/google/android/updater-script-85_USER
./META-INF/com/google/android/updater-script-10_SYMLINKS
./META-INF/com/google/android/updater-script-99_TAIL
./META-INF/com/google/android/updater-script-90_KERNEL
./META-INF/com/google/android/updater-script-80_EXEC
./META-INF/com/google/android/updater-script-91_MODEM
./META-INF/com/google/android/updater-script-00_HEAD
./META-INF/com/google/android/updater-script-20_PERMISSIONS
./META-INF/com/google/android/updater-script
./system
./boot.img
Replace
Code:
./kernel/boot.img-zImage
with a new built kernel, repack the boot image, and you can try to boot it with fastboot without killing anything:
Code:
fastboot boot newboot.img
Should work. I will experiment in a few days when I get more time, perhaps.
vostok4 said:
@gwaldo if you wanted to flash a custom kernel this is what I would do:
...
Should work. I will experiment in a few days when I get more time, perhaps.
Click to expand...
Click to collapse
Hi vostok4, thanks for the reply.
I used the zip config from the mojo and use my kernel with the extracted initramfs from the boot.img in mojo-signed-ota-MO0202-WW.zip firmware update.
./fastboot-linux -i 0x0738 boot zImage.gwald initramfs.cpio.gz
Click to expand...
Click to collapse
It boots fine and can confirm it booted the kernel via google's setting.
I add more FS (NTSF/exfat write) support in the kernel but I'm not familiar with androids permissions.
Just cautious with it.
It would be nice if there was a system recovery image so if we made a mistake we can reset it to factory.
I kinda left it there for a while.. not sure what else to add
From a recovery standpoint with the kernel, you already have the boot.img from the update, so you can always boot that... And the device auto goes into fastboot for you, so I think a recovery from every brick should be possible.
Words are cheap though
vostok4 said:
From a recovery standpoint with the kernel, you already have the boot.img from the update, so you can always boot that... And the device auto goes into fastboot for you, so I think a recovery from every brick should be possible.
Words are cheap though
Click to expand...
Click to collapse
Oh I meant doing something wrong on the filesystem, there's no rom/image for it , NAND I think it's called, the Android OS partition.
Like the guy that changed his permissions and made his entire MOJO readonly.. I think the only fix is the reflashing.
I did post about a guy who found the recovery menu on the MOJO
http://www.freaktab.com/showthread.php?12075-FOUND-MAD-CATZ-M-O-J-O-RECOVERY-MENU
So, that could work, haven't tried..
gwaldo said:
Oh I meant doing something wrong on the filesystem, there's no rom/image for it , NAND I think it's called, the Android OS partition.
Like the guy that changed his permissions and made his entire MOJO readonly.. I think the only fix is the reflashing.
I did post about a guy who found the recovery menu on the MOJO
http://www.freaktab.com/showthread.php?12075-FOUND-MAD-CATZ-M-O-J-O-RECOVERY-MENU
So, that could work, haven't tried..
Click to expand...
Click to collapse
I think working with similar key combinations to enable nvidia recovery mode is more important. That way with nvflash we can make a copy of a clean install, and always be able to flash it back. My mojo always goes to this mode when I try the fastboot method, but it might be a special unit
Can I ask you which toolchain you used / which guide you followed? I'm following the guide at http odroid.us/mediawiki/index.php?title=Step-by-step_Cross-compiling_a_Kernel but I'm having some problem (the compiled modules wind up being armv5 instead of armv7) and I'm noob at cross compiling.
paulatz said:
Can I ask you which toolchain you used / which guide you followed? I'm following the guide at http odroid.us/mediawiki/index.php?title=Step-by-step_Cross-compiling_a_Kernel but I'm having some problem (the compiled modules wind up being armv5 instead of armv7) and I'm noob at cross compiling.
Click to expand...
Click to collapse
Looks like how I did it, I use mint linux
i don't have much of a cheap sheet, but I'll post it when I get on my PC.
gwaldo said:
Looks like how I did it, I use mint linux
i don't have much of a cheap sheet, but I'll post it when I get on my PC.
Click to expand...
Click to collapse
Don't worry, I have managed to do it using the official ndk from google (I'll post the details if someone ask for them when I can find the time).
I have compiled uvcvideo.ko, but it still is not working (uvcvideo: Unknown symbol _GLOBAL_OFFSET_TABLE_ (err 0)), but I do not want to hijack you thread. I'll open a specific one if I can find the time to work on the issue for real.
Just for more information here, I compile on ArchLinux and use the following make line:
Code:
$ CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm make
With the following packages from the AUR (kernel headers package was modified to get the correct version):
Code:
arm-linux-gnueabi-binutils 2.24-1
arm-linux-gnueabi-eglibc 2.18-1
arm-linux-gnueabi-gcc 4.8.2-1
arm-linux-gnueabi-linux-api-headers 3.4.35-1
paulatz said:
Don't worry, I have managed to do it using the official ndk from google (I'll post the details if someone ask for them when I can find the time).
I have compiled uvcvideo.ko, but it still is not working (uvcvideo: Unknown symbol _GLOBAL_OFFSET_TABLE_ (err 0)), but I do not want to hijack you thread. I'll open a specific one if I can find the time to work on the issue for real.
Click to expand...
Click to collapse
It's not my thread, but here's what I do:
Mint Linux 14 (i know its old)
I downloaded the build chains:
https://github.com/DooMLoRD/android_prebuilt_toolchains/
Install extra utils:
sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2
Click to expand...
Click to collapse
Export env vars:
export CROSS_COMPILE=/home/-USER-/-DIR-/android_prebuilt_toolchains-master/arm-eabi-linaro-4.6.2/bin/arm-eabi-
export ARCH=arm
Click to expand...
Click to collapse
Prepare the kernel
make clean && make mrproper
Click to expand...
Click to collapse
extract the kernel from your MOJO kernel.zip and place in the kernel folder.
make your changes:
make menuconfig
Click to expand...
Click to collapse
Compile it:
make -j5
Click to expand...
Click to collapse
how to install cifs module
vostok4 said:
Alright, finally we have CIFS support on MJO.
Cross compiled on ArchLinux from the sources posted by Rich, config pulled from /proc/config.gz and just compiled the CIFS+md4 module.
Works great here:
Code:
//10.0.0.11/vault 3.6T 2.9T 709.1G 81% /mnt/shell/emulated/0/vault
Make sure you have root, insmod md4.ko, insmod cifs.ko and enjoy! I'm using this to access my MP3s for aMPD so that my Mojo can act as my stereo too.
*edit* also make sure you have busybox installed in order to mount, and pass a username option. ie:
Code:
busybox mount -ousername=guest //1.1.1.1/share /sdcard/share
Click to expand...
Click to collapse
sorry, bui I don't understand how install the cifs module -cifs-module-kernel-3.4.35.zip-
Could anyone support me, please
darkodarko said:
sorry, bui I don't understand how install the cifs module -cifs-module-kernel-3.4.35.zip-
Could anyone support me, please
Click to expand...
Click to collapse
What are you doing exactly? Which result do you expect? Which result do you get instead?
cheers
paulatz said:
What are you doing exactly? Which result do you expect? Which result do you get instead?
cheers
Click to expand...
Click to collapse
I want connect my mojo with my nas through cifs and mount a specific folder.
I rooted mojo whit MMM MoDaCo Mod.
but I dont have any idea how use the cifs-module-kernel-3.4.35.zip file
Thanks in advance
You need to put the archive somewhere on your MOJO, and run the following as root:
insmod md4.ko
insmod cifs.ko
Then you can mount using either mine or gwaldo's mount line.
I can write up how I got it to automount later, in order for the mount to be accessible to every application it has to be outside of /sdcard, I did mine in /mnt/share, and have it mounting on boot (in an ugly method).
darkodarko said:
I want connect my mojo with my nas through cifs and mount a specific folder.
I rooted mojo whit MMM MoDaCo Mod.
but I dont have any idea how use the cifs-module-kernel-3.4.35.zip file
Thanks in advance
Click to expand...
Click to collapse
You need to extract the content of the zip file onto a usb drive/MICROSD and copy the files to the MOJO.
Then follow vostok4's instructions
in busybox (with root permission)
cd to-where-you-put your .ko files (you need to know linux command line)
then run
insmod md4.ko
insmod insmod cifs.ko
Then you need to mount it as below:
vostok4 said:
Alright, finally we have CIFS support on MJO.
Make sure you have root, insmod md4.ko, insmod cifs.ko and enjoy! I'm using this to access my MP3s for aMPD so that my Mojo can act as my stereo too.
*edit* also make sure you have busybox installed in order to mount, and pass a username option. ie:
Code:
busybox mount -ousername=guest //1.1.1.1/share /sdcard/share
Click to expand...
Click to collapse
PS: you'll need to do this EVERYTIME you reboot/restart MOJO.
PS2: I haven't done this my self but that's my understanding.
OK, in order to not do it everytime manually, I have something like this (note the sleep 30 is ugly but I didn't bother writing a method to trigger on network connectivity). This requires busybox installed (I use this one: https://play.google.com/store/apps/details?id=stericson.busybox)
If you aren't comfortable with manually mucking around, then I'm not sure what to tell you to This is assuming you have root and busybox installed.
In order to create files under /system and /etc you need to mount /system as read-write:
Code:
$ su
# mount -orw,remount /system
# cp /sdcard/install-recovery.sh /etc/
# chmod 777 /etc/install-recovery.sh
# mount -oro,remount /system
That would copy install-recovery.sh from the sdcard (we need to do this because we have a secure boot and can't adb push to /etc). It also sets the file as executable (we want that). SO, these are the files you need:
/etc/install-recovery.sh (needs chmod 777)
Code:
#!/system/bin/sh
# fake init.d support
/system/bin/sysinit
/system/bin/sysinit (needs chmod 777)
Code:
#!/system/bin/sh
# fake init.d support
# the script below is what i use to mount my cifs share
/system/bin/sh '/system/etc/init.d/99vault'
# these are commented out, but run-parts would be the proper way to use the init.d folder
# however I couldn't get it to work on my mojo, so i just call the script directly
#export PATH=/sbin:/system/sbin:/system/bin:/system/xbin
#run-parts /system/etc/init.d
/etc/init.d/99vault (or /system/etc/init.d/99vault if you expand the symlink) (needs chmod 777)
Code:
#!/system/bin/sh
/system/xbin/busybox mount -orw,remount /
# sometimes disappears on reboot, lets just create the mount folder to be safe
/system/xbin/busybox mkdir /mnt/vault
/system/xbin/busybox mount -oro,remount /
# mount our cifs module
/system/xbin/busybox insmod /system/etc/cifs/md4.ko
/system/xbin/busybox insmod /system/etc/cifs/cifs.ko
# wait for network to come online
sleep 30
# mount the actual share
/system/xbin/busybox mount -ousername=guest //10.0.0.11/vault /mnt/vault
That will get you mounted after each reboot without fail, at least in my experience.
did someone managed to make it work on cm 12.1?

Categories

Resources