Mounting CIFS (Windows) shares on Froyo - Galaxy 3 Android Development

Now that we have kernel sources for Froyo we can mount CIFS shares, e.g., shares from a computer running Windows or a Linux server. Unfortunately, it is not as simple as loading a cifs.ko module since the stock kernel lacks some prerequisites to run this module. We need to flash a new kernel which I've built. Flashing sounds more complicated as it is, as you will see.
This kernel should work for all Froyo ROMs. Apart from CIFS, this kernel has built-in support for ext4, so it should be suitable for coming developments, e.g., a more robust lagfix. It also features pre-rooted adb. The initramfs is the one from XXJPF. Modules for tun, fuse, and ext3 are also provided (see below).
Flashing a new kernel zImage will not change your settings, not remove installed apps, nor the like.
What you need:
==========
* Odin - http://www.multiupload.com/LFJRACWNQ2
* the .ops file - http://www.multiupload.com/SOMN2EWF0J. This is the usual one, so if you already have it, you don't need to re-download it.
* the zImage.tar from below.
Flashing:
======
Shut down your phone, then put your Galaxy 3 into download mode by pressing the Home key, Volume down, and Power, all at the same time. It will come up with a download screen. Connect it to your Windows PC. Start Odin. In Odin, select "One Package". Leave the other switches as they are. Select .ops file from above by clicking on "OPS". Select zImage.tar from below by clicking "One Package". Now press "Start".
A progress indicator in Odin and on your phone should show what's going on. After downloading, the phone will restart and run as usual. You should notice no difference.
Using CIFS Shares:
============
I recommend CIFSManager, available in the Android market and in this forum. Refer to the link in the sentence before this one for further reference.
Also available from xda is Mount Manager, which has also is merits as an alternative application. I didn't check it out but it sure looks promising.
Files:
====
You only need to download zImage.tar to mount CIFS shares. The modules.zip file below is provided for further needs (e.g., tun.ko if you want to run a VPN). There's (besides less important ones which were automatically built) ext3.ko, fuse.ko, jbd.ko, and tun.ko in modules.zip.

With a hack from galaxy S forum, you can compile the cifs module (slow-work as module) and keep the samsung kernel.
Code:
su
insmod /path to your file/slow-work.ko
insmod /path to your file/cifs.ko
(the hack is about round_jiffies function to remove)
You can try ...

psyckotic said:
With a hack from galaxy S forum, you can compile the cifs module (slow-work as module) and keep the samsung kernel.
Code:
su
insmod /path to your file/slow-work.ko
insmod /path to your file/cifs.ko
(the hack is about round_jiffies function to remove)
You can try ...
Click to expand...
Click to collapse
we do not need to insmod the slow-work.ko @ 2.1 but for froyo we need both?

Related

Modules (jbd,ext2,3,4) for 2.1 Eclair Kernel

Hi guys..
There was some interest in different filesystem modules for Eclair.
I built these from the source from Samsung. I'm running Froyo, so I have no way to exactly test these. In theory they should work, but I can't guarantee it. I couldn't find any of these modules anywhere on xda-developers, so I'm hoping I'm not redoing other peoples' work.
The crc16.ko and mbcache modules may be required in order to insmod the ext and/or jbd modules. ext4 does need jbd in order to properly be imported I believe.
To use:
Simply copy to your sdcard in a "modules" folder.
* AS ROOT * from adb or a shell on your phone, run:
Code:
insmod /sdcard/modules/ext2.ko
Change ext2.ko to whatever module you'd like to load.
I'd like to hear feedback.
DOWNLOAD LINK: http://www.multiupload.com/K356AARKOG
zip password: "eclair"
-P
Wow nice job, and what are the exact benefits then? Ext4 is faster then Ext2?
So one could finally insmod the ext2 module and then install the lagfix...
so do we need to apply the insmod in every boot or just do it one time and DONE?
Thanks so much for your contributions.
Ext4 is better than 2 in various ways, however it arguably uses more cpu than ext2... But now we have the chance to debunk that if it's actually untrue.
It's just as easy to compile both of them in as it is one, so I figured I'd just do all of them.
You'll need to do an insmod every boot, since modules don't stay in the kernel between reboots. Things like filesystems can be compiled right into the kernel (except for proprietary ones like rfs - since then Samsung would need to release the source code for it).. so I may be able to compile you guys a new zImage that includes ext2 (or 4), with tun support and cifs if needed..
If this works, you should be able to add it to the init scripts in /system.
Hello friend, does this module work on the tablet Coby MID7015, which has the Android 2.1 (Eclair)? If so how would he incorporates into the kernel to not have to keep typing the command on each boot. Thanks
I thought it would be easy, but it's not!
I can insmod all modules except ext4 but nothing seems to happen. Still cannot mount an ext2 partition. I can leave with FAT!

[Q] OpenVPN on the Charge?

Dear All,
Does anyone have OpenVPN working on the Charge? I have PeanutButta Jelly Time which is suppose to have the tun.ko module in the kernel and lsmod gives me tun. however installing openvpn using the installer and settings does not work. I followed all the instruction including the push of openvpn2.1.1, sym linking of ifconfig and route, as well as various tun.ko files, but it fails to start. any thoughts?
Elviso
I am also interested in this
bump .. +1 .. anyone?
Please use the Q&A Forum for questions Thanks
Moving to Q&A
I finally got it working on mine. GummyCharged FE 2.0.
1) Install GummyCharge FE 2.0 ROM.
2) Install latest Imoseyon kernel. I don't think you need this since GC comes with the Imoseyon kernel #130 which should already have TUN support, but I upgraded mine anyway. After kernel upgrade mine was at #141. Link: http://rootzwiki.com/showthread.php...leanKernel-minimalistic-kernel-(v1.2.2-9-8-11)
3) Install Busybox.
4) Download bnred777's tun.ko from here: http://forum.xda-developers.com/showthread.php?t=1235410
5) Create a direcotyr called /system/lib/modules/ and /system/xbin/bb/
6) Copy tun.ko to /system/lib/modules/
7) Create a directory on your sdcard called /openvpn and copy all of your ovpn config and certificates there.
8) Install OpenVPN Installer from the market.
9) Run OpenVPN Installer and choose target directory of /system/xbin and /system/xbin/bb for ifconfig.
10) Create symlinks in the /system/xbin/bb/ directory:
ln -s /system/xbin/ifconfig /system/xbin/bb/ifconfig
ln -s /system/xbin/route /system/xbin/bb/route
11) Reboot your phone.
12) Run the following command from shell. You will have to run this every time you want to connect to your vpn. I would suggest making a shortcut shell script or there is probably a way to put it in start up.
insmod /system/lib/modules/tun.ko
13) Install OpenVPN Settings from the market. It should pick up your configuration settings from your sdcard/openvpn directory automatically.
14) Put in your password and you should be connected to your VPN.
The instructions are pretty much the same as other droid devices except for the Charge you need a Charge compiled tun.ko and getting the less finicky directories and symlinks took me a while to figure out. Here is a thread that helped me out with the directories and symlinks:
http://code.google.com/p/android-openvpn-installer/issues/detail?id=2

[DEV] [GT-S5570L] Galaxy mini Latin America Hacks, Mods, Tweaks, Roms, etc

DISCLAIMER: This is a fairly harmless procedure, worst-case scenario the modules won't work and that's it... BUT as usual when messing with system files you should be very careful and if you're not sure about something stop, research, ask. I have tested this in my device and it works ok, but I'm not responsible if you harm your phone.
I've compiled these modules vs. the Froyo kernel from opensource.samsung.com for the GT-S5570L version that's sold in Argentina, Chile, and Latin America in general. I don't know if they should work with the more common GT-S5570 sold worldwide.
What you need:
1. Root
(If you haven't rooted your device already see here http://forum.xda-developers.com/showthread.php?t=803682)
2. Some file manager in your phone which you can use to access your system files and mount as r/w
Useful stuff:
Cifs Manager:
http://forum.xda-developers.com/showthread.php?t=756158
--- Instructions ---
1. Download the attached zip containing: slow-work.ko and cifs.ko modules.
2. Unzip and copy the extracted files to /system/lib/modules (if the folder doesn't exist, create it first).
3. Open your favorite terminal app in your phone and type:
$ su
# insmod /system/lib/modules/slow-work.ko
# insmod /system/lib/modules/cifs.ko
That's it! Congratulations, now you can mount your shared folders!
Important note: you always have to insmod slow-work.ko BEFORE you insmod cifs.ko otherwise you will get errors.
CifsManager is a fantastic tool that lets you manage your shares and also lets you automatically load your modules via insmod. In CifsManager in the "Path to cifs.ko" option you have to type:
/system/lib/modules/slow-work.ko:/system/lib/modules/cifs.ko
so that both modules are loaded and in the right order.
If you find it useful please hit the "Thanks" button and provide feedback. I'm learning and all your comments are greately appreciated. Also if you have any questions please feel free to ask and I'll try to answer.
* Reserved *
* 2nd Reserved *

[FOR CHEFS] xpad/cifs/hfs/squashfs/btrfs modules for stock kernel ICS v9.2.1.11

I took a vanilla 2.6.39.4 linux source tree, copied in the .config from /proc from my running ICS v9 build. And compiled it.
After that, turned on CIFS and XPAD support in the config and compiled them as modules.
These modules load fine if I insmod them, and I can confirm that after loading ff_memless and xpad I now have my xbox360 pad working on the home screen (I can move through screens and icons).
edit: Just played a round of Riptide GP, works fine .
edit: I updated the cifs module and included the md4 crypto module, and they now work! I manually 'insmodded' md4.ko and then cifs.ko, and from the command line and / or from cifsmanger I can now mount a share.
As I said, these modules load fine, but in dmesg there is a notion that the version magic isn't perfect yet. So I might make updated ones with proper versionmagic set. But for now it seems to be working.
Might be handy for ROM chefs who are working with the stock ICS kernel for which we have no sources yet.
TUN module is _builtin_ by default on ICS stock kernel, so no need for it anymore.
EDIT v2 zips: I recompiled them with the correct version info, so they give no more warnings when loaded through insmod. I added them to my stock rom to auto-load during boot (created a simple /system/etc/install-recovery.sh) and all seems fine so far.
For voodoo sound to work, is it a simple module which I can get anywhere? I only see 2.6.36 kernel trees on Project Voodoo website
----------------------------------------------------------
hfs @ http://forum.xda-developers.com/showpost.php?p=23018909&postcount=19
squashfs + btrfs @ http://forum.xda-developers.com/showpost.php?p=23019453&postcount=20
good for those complaining about cifs
dipje said:
I took a vanilla 2.6.39.4 linux source tree, copied in the .config from /proc from my running ICS v9 build. And compiled it.
After that, turned on CIFS and XPAD support in the config and compiled them as modules.
These modules load fine if I insmod them, and I can confirm that after loading ff_memless and xpad I now have my xbox360 pad working on the home screen (I can move through screens and icons).
edit: Just played a round of Riptide GP, works fine .
edit: I updated the cifs module and included the md4 crypto module, and they now work! I manually 'insmodded' md4.ko and then cifs.ko, and from the command line and / or from cifsmanger I can now mount a share.
As I said, these modules load fine, but in dmesg there is a notion that the version magic isn't perfect yet. So I might make updated ones with proper versionmagic set. But for now it seems to be working.
Might be handy for ROM chefs who are working with the stock ICS kernel for which we have no sources yet.
TUN module is _builtin_ by default on ICS stock kernel, so no need for it anymore.
For voodoo sound to work, is it a simple module which I can get anywhere? I only see 2.6.36 kernel trees on Project Voodoo website
Click to expand...
Click to collapse
in case you want to try that too because its faster than cifs
nfs support is in the kernel, no additional modules required
to get it working with cifsmanager mountings nfs shares i did the following
(it also works with commandline)
### as su and /system readwrite mounted
### remove symlink to toolbox
rm /system/bin/mount
### and use busybox instead
ln -s /system/xbin/busybox /system/bin/mount
mount options: rw,intr,soft,nolock
the modules are already working.
NFS support is nice for people with linux boxes but most windows users don't have a use for it , that's why they want cifs .
I don't care much for overclocking, so with cifs support + xbox360 support I'm more than happy with rooted stock now . And rom chefs can include the modules in their optimized ROMs until we have proper kernel source
Care to share how to get this loaded into the current ics roms. I have copied to /system/lib/modules and tried to load using mount manager and cifs manager with no luck.
comfort69 said:
Care to share how to get this loaded into the current ics roms. I have copied to /system/lib/modules and tried to load using mount manager and cifs manager with no luck.
Click to expand...
Click to collapse
you can e.g. create a script (like I believe OP did) in /etc/system/install-recovery.sh with
#!/system/bin/sh
insmod cifs.ko
insmod md4.ko
or you can mount it by hand in terminal (with insmod)
or you can simply create init.d script and call it 91modules:
#!/system/bin/sh
sleep 1
insmod /system/lib/modules/cifs.ko
echo "CIFS support activated";
and place it in system/etc/init.d if custom ROM supports init.d support.
comfort69 said:
Care to share how to get this loaded into the current ics roms. I have copied to /system/lib/modules and tried to load using mount manager and cifs manager with no luck.
Click to expand...
Click to collapse
jerry was close. Module auto-loading won't work, so you have to do it by hand.
Through an 'adb shell' or with a terminal emulator app from the market, type the following:
su -
insmod /system/lib/modules/md4.ko
insmod /system/lib/modules/cifs.ko
cifsmanager should work, until you reboot, you'll have to do the lines again.
Creating a file /system/etc/install-recovery.sh will do it auto on boot:
Code:
#!/system/bin/sh
insmod /system/lib/modules/md4.ko
insmod /system/lib/modules/cifs.ko
Make sure to create the file executable (permissions 777 will do ).
I hope rom chefs will use them and make them auto-load at boot until we have the sources from Asus.
edit: What mike said works, IF you have init.d support. Most custom ROMs have this, stock rom has not I believe.
dipje said:
jerry was close. Module auto-loading won't work, so you have to do it by hand.
Through an 'adb shell' or with a terminal emulator app from the market, type the following:
su -
insmod /system/lib/modules/md4.ko
insmod /system/lib/modules/cifs.ko
cifsmanager should work, until you reboot, you'll have to do the lines again.
Creating a file /system/etc/install-recovery.sh will do it auto on boot:
Code:
#!/system/bin/sh
insmod /system/lib/modules/md4.ko
insmod /system/lib/modules/cifs.ko
Make sure to create the file executable (permissions 777 will do ).
I hope rom chefs will use them and make them auto-load at boot until we have the sources from Asus.
Click to expand...
Click to collapse
Keep in mind that install-recovery.sh is executed from ramdisk (init.ventana.rc or init.rc, don't remember now) and some chefs (including me) removed that execution line. So much easier to add init.d script I think. Just a suggestion
EDIT:
yeah, for those on stock ROMs install-recovery.sh method is good, for those using custom ROMs it's better to use init.d
I tried to get it to run manually using terminal emulator and get
failed file exists
Sent from my Transformer TF101 using Tapatalk
comfort69 said:
I tried to get it to run manually using terminal emulator and get
failed file exists
Sent from my Transformer TF101 using Tapatalk
Click to expand...
Click to collapse
my guess is you're trying to load them double or something.
If you give the command 'lsmod' you get a listed of loaded modules. Check if they're there or not.
Anyone got Junos working with the builtin tun.ko ?
comfort69 said:
Care to share how to get this loaded into the current ics roms. I have copied to /system/lib/modules and tried to load using mount manager and cifs manager with no luck.
Click to expand...
Click to collapse
cifsmanager - preferences:
check "load with insmod"
if its not already, adjust path to cifs.ko and other modules
btw: as rmmod tries to remove /lib/modules/cifs.ko instead of /system/lib/modules/cifs.ko there's no way to unload the module other than rebooting.
just sharing how I did manage cifs to work
I've installed Revolution HD 3.00 (ICS 4.0.3), installed CifsManager, didn't work, tried to copy cifs.ko and md4.ko in /system/lib/modules with File Expert or Root Explorer, couldn't because of a read-only system files, plugged my tablet on a PC, launched an adb session and typed:
$ adb shell
$ su
$ mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
pushed through adb cifs.ko and md4.ko in /system/lib/modules
changed the permission to 777 using File Expert
launched cifs and md4 using terminal emulator:
insmod /system/lib/modules/cifs.ko
insmod /system/lib/modules/md4.ko
in cifsmanager settings, didn't check load modules on boot and load through insmod
tried to connect my shares: succeed
Hope it will help somebody
jeanvdr said:
$ mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
Click to expand...
Click to collapse
hmm strange
my /system is mounted elsewhere
/dev/block/mmcblk0p1 on /system type ext4
anyway
another method without terminal (and.revol hd 3.0.0 only)
adb shell sysrw
adb push cifs.ko /system/lib/modules
adb push md4.ko /system/lib/modules
adb shell chmod 644 /system/lib/modules/*.ko
adb shell insmod /system/lib/modules/cifs.ko
adb shell insmod /system/lib/modules/md4.ko
If the modules don't cause problems, they will likely be in the next ARHD version.
Remounting goes like this: busybox mount -o remount,rw /system
Yaffs2 filesystem isn't used anymore, and 'remount ' ignores these parameters anyway .
Please keep it readable for people on stock ics, custom roms will get these modules somehow anyway.
Adb sysrw will not work without modified bootdisk AFAIK.
Wat is Janos? ? Maybe it needs more than the tun module, like crypto modules?
Btw, my tablet still working fine. Never had a Sleep of Death. Actually, never EVER had a SOD with my tablet, and I can't seem how any cifs module can cause it like some people are saying.
woti23 said:
cifsmanager - preferences:
check "load with insmod"
if its not already, adjust path to cifs.ko and other modules
Click to expand...
Click to collapse
The problem is this cifs.ko module required md4.ko, and AFAIK cifsmanager doesn't try to load it.
dipje said:
The problem is this cifs.ko module required md4.ko, and AFAIK cifsmanager doesn't try to load it.
Click to expand...
Click to collapse
actually it does, if you
check "load cifs module at start"
check "load per insmod"
fill out "path to cifs.ko":
/system/lib/modules/cifs.ko:/system/lib/modules/md4.ko:/system/lib/modules/nls_iso8859_1.ko
[email protected]:/~# >lsmod
nls_iso8859_1 3107 0 - Live 0xbf066000
cifs 218286 0 - Live 0xbf12a000
md4 3007 0 - Live 0xbf003000
it is a little work to type the pathes, and you surely are right that for most people its easier if it is loaded in the rom (init.d or somewhere else) automagically
btw: if you once compile modules again would you mind compiling the hfsplus module en passant? it should compile without any troubles and dependencies and allows manually (command line) mounting a mac os x external harddisk?
woti23 said:
btw: if you once compile modules again would you mind compiling the hfsplus module en passant? it should compile without any troubles and dependencies and allows manually (command line) mounting a mac os x external harddisk?
Click to expand...
Click to collapse
I haven't tested them (as in, didn't even try if they would load OK).
I just noticed I screwed up the vermagic again, so you'll get a warning in dmesg while loading. Should load ok though.
edit: Ok I've redone them. Proper cpu + vermagic now
And if people wanna experiment, mess with stuff:
squashfs
btrfs

[KERNEL] Enabling Netfilter/AFWall+ on Ainol Novo 7 Paladin (MIPS)

I spent entirely too much time on this, so I'll post my boot.img and my findings here in case it's useful to anyone else in the future.
Paladin ROMs:
This page and this thread have working links to CWM and Superuser zips.
This page has a link to an ICS 4.0.3 ROM running Linux 3.0.8. I installed this ROM, but was disappointed with the kernel's feature set. Important options like CONFIG_IP_NF_TARGET_REJECT and CONFIG_IP_NF_TARGET_LOG were disabled.
This page has a custom ROM by "pinkflozd". I wasn't able to find this image in the wild. It may have a newer kernel (3.0.23?) but AFAICT it doesn't have the Netfilter changes I needed either.
Custom kernel build:
I stumbled across this kernel and used it as a baseline. Then I enabled:
Various missing Netfilter features (e.g. LOG and REJECT targets)
CONFIG_TUN
CONFIG_CIFS
The process looks like:
Install CWM
Find the .zip file for the ROM you want to use, e.g. the ICS 4.0.3 link above
Install that ROM and make sure the stock kernel works
Create a new boot.img with the desired options enabled
Flash the new boot.img with CWM
Basic steps to create the new boot.img:
Code:
git clone -b paladin-3.0.8 git://github.com/cernekee/linux
cd linux
git submodule init
git submodule update
cd paladin
cp /path/to/boot.img orig.img
make NDK=/opt/android-ndk-r9b
# if desired, edit kernel code or .config, and rerun "make"
The scripts under linux/paladin/ will extract the ramdisk from orig.img, then create a new boot.img based on your kernel source tree. For more details on the kernel build, see paladin/README .
Kernel installation:
To flash the new image, reboot into CWM, then:
Code:
adb push boot.img /tmp/
adb shell "dd if=/tmp/boot.img bs=1048576 seek=3 count=8 of=/dev/block/mmcblk0 ; sync"
# hit the reset button again
Other random findings:
I did not have any luck with the "z4root" app, although ro.secure=0 on this ROM so "adb shell" always gives you a root shell. It did take some work to find Superuser/su binaries that worked on MIPS.
Enabling Netfilter's conntrack option seemed to cause dhd.ko to become unstable, possibly because it affected binary compatibility with existing kernel modules. So I left it alone.
This ROM is missing native iptables/ip6tables binaries, so AFWall needs to be set to use the builtin copies. The latest AFWall betas do ship with MIPS binaries now (the purpose of this exercise was to test them).
Checking the box to enable IPv6 crashes AFWall instantly. Need to investigate this.
AFWall's inbound connection option probably will not work, due to the lack of conntrack in the kernel.
This ROM appears to be missing some Java libraries needed for ICS+ VpnService apps to work.
NDK r9b is the first NDK release with support for the "MXU" SIMD instructions supported by the Ingenic JZ4770 chip. Prior to this, most people used Ingenic's special toolchain to build the kernel.
To forcibly boot into CWM, hold down VOL+ while pressing the reset button.

Categories

Resources