CIFS support - Vibrant Android Development

I have not seen this mentioned over here in the Vibrant sections at all, and sort of wonder why...
I found this thread by darkbyt3 while searching for cifs support a while back. I have tried the froyo module originally designed for the I9000 and it does work on the Vibrant. I am using the Stock + Voodoo kernel with Nero 3. You can use these modules (needs cifs.ko and slow-work.ko) along with Cifs Manager to mount your network shares.
Update:
Mount Manager (shameless plug) has been released and supports the loading of multiple modules. See the link for full details.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Astro file manager can sort of do this without the cifs module using its SMB plugin, but I've never been able to open anything directly using the Astro SMB. I have to copy it to the device first. With CIFS, I can open anything just like it is already on the device.
To use these modules you have to load them. I copied them to a folder called modules on my internal sdcard.
Code:
$ su
# insmod /sdcard/modules/slow-work.ko
# insmod /sdcard/modules/cifs.ko
You can check that the cifs module is loaded
Code:
# lsmod | grep cifs
cifs 257211 0 - Live 0xbf29c000
slow_work 12113 1 cifs,[permanent], Live 0cbf0bd000 (P)
Then you create the mount (or you can use cifs manager)
Code:
# busybox mount -t cifs //192.168.222.1/shares /sdcard/network/shares
The only thing I haven't figured out yet (haven't really looked either) is how/where to put the insmod commands so these modules automatically load when the device boots. Since slow-work.ko has to be loaded before cifs.ko, cifs manager cannot be used to load the cifs module since it only supports loading one module.

camalot said:
I have not seen this mentioned over here in the Vibrant sections at all, and sort of wonder why...
I found this thread by darkbyt3 while searching for cifs support a while back. I have tried the froyo module originally designed for the I9000 and it does work on the Vibrant. I am using the Stock + Voodoo kernel with Nero 3. You can use these modules (needs cifs.ko and slow-work.ko) along with Cifs Manager to mount your network shares.
Astro file manager can sort of do this without the cifs module using its SMB plugin, but I've never been able to open anything directly using the Astro SMB. I have to copy it to the device first. With CIFS, I can open anything just like it is already on the device.
To use these modules you have to load them. I copied them to a folder called modules on my internal sdcard.
Code:
$ su
# insmod /sdcard/modules/slow-work.ko
# insmod /sdcard/modules/cifs.ko
You can check that the cifs module is loaded
Code:
# lsmod | grep cifs
cifs 257211 0 - Live 0xbf29c000
slow_work 12113 1 cifs,[permanent], Live 0cbf0bd000 (P)
Then you create the mount (or you can use cifs manager)
Code:
# busybox mount -t cifs //192.168.222.1/shares /sdcard/network/shares
The only thing I haven't figured out yet (haven't really looked either) is how/where to put the insmod commands so these modules automatically load when the device boots. Since slow-work.ko has to be loaded before cifs.ko, cifs manager cannot be used to load the cifs module since it only supports loading one module.
Click to expand...
Click to collapse
Thanks a ton for the write up
As for the insmod commands on startup, I wonder if you can put them into init.rc, but I guess you need to create an update.zip like file to mod it and flash it via recovery.

Nero V3 will run /system/bin/userinit.sh on startup... you could put the commands in there.

Will this also work for NFS? I followed the steps in the OP, and the cifs modules are live, but I still cannot mount. I created the mount target directory as root with permissions set to all (777). It works on my computer. I tried typing these command into better term emulator:
busybox mount -t nfs 192.168.2.1:/my/mount /mnt/network
busybox mount -t nfs 192.168.2.1/my/mount /mnt/network
mount -t nfs 192.168.2.1:/my/mount /mnt/network
mount 192.168.2.1/my/mount /mnt/network
but I got this error for all of them:
mount: mounting 192.168.2.1:/my/mount on /mnt/network failed: No such[the
terminal gets cut off and I can't read the rest!]
CifsManager has this error:
mount:Invalid Argument
I'm running Axura 2.1 which uses JK6. Does the cifs.ko need to be compiled for specific kernels?

kslays said:
Will this also work for NFS? I followed the steps in the OP, and the cifs modules are live, but I still cannot mount. I created the mount target directory as root with permissions set to all (777). It works on my computer. I tried typing these command into better term emulator:
busybox mount -t nfs 192.168.2.1:/my/mount /mnt/network
busybox mount -t nfs 192.168.2.1/my/mount /mnt/network
mount -t nfs 192.168.2.1:/my/mount /mnt/network
mount 192.168.2.1/my/mount /mnt/network
but I got this error for all of them:
mount: mounting 192.168.2.1:/my/mount on /mnt/network failed: No such[the
terminal gets cut off and I can't read the rest!]
CifsManager has this error:
mount:Invalid Argument
I'm running Axura 2.1 which uses JK6. Does the cifs.ko need to be compiled for specific kernels?
Click to expand...
Click to collapse
AFAIK nfs is different then cifs. I don't think cifs will work with nfs shares.

lqaddict said:
Thanks a ton for the write up
As for the insmod commands on startup, I wonder if you can put them into init.rc, but I guess you need to create an update.zip like file to mod it and flash it via recovery.
Click to expand...
Click to collapse
ttabbal said:
Nero V3 will run /system/bin/userinit.sh on startup... you could put the commands in there.
Click to expand...
Click to collapse
Couldn't you also add them to init.d if you are running nero or using voodoo?

one more step in making the Mobile Phone a True Computer
Thanks for posting this CIFS Support, one more step in making the Mobile Phone a True Computer

Whitehawkx said:
Couldn't you also add them to init.d if you are running nero or using voodoo?
Click to expand...
Click to collapse
I got it to work by adding it to init.d but I had to move the two .ko files to a folder I created in /data. I think it is because the sdcard doesn't mount until late in the boot process. Other than that it works perfectly and I can read my NAS.

What is the slow work module for?
Sent from my SGH-T959 using XDA App

in which folder and which file?
grendel905 said:
I got it to work by adding it to init.d but I had to move the two .ko files to a folder I created in /data. I think it is because the sdcard doesn't mount until late in the boot process. Other than that it works perfectly and I can read my NAS.
Click to expand...
Click to collapse

roffee said:
in which folder and which file?
Click to expand...
Click to collapse
Doesn't matter, just point point the insmod cmd to where it is located in /data

roffee said:
in which folder and which file?
Click to expand...
Click to collapse
I just created a folder name CIFs in /data and put the two .ko files in it. Then in init.d I created a file that looked like :
#!/system/bin/sh
insmod /data/CIFs/slow-work.ko
insmod /data/CIFs/cifs.ko
But, just as dasunsrule32 stated, it doesn't matter what folder you use as long as your file points to the one you are using.

Awesomeness. Worked out great. Just as grendel905 stated I threw the .ko modules into a folder in /data and threw a script into init.d. They now load at boot. Just an fyi for ppl this method will not work if you are using a stock 2.2 kernel. You either need to be using voodoo or one of TW's kernels with the modified init.rc.

I've released Mount Manager on the android market that will allow you to load these modules on your device automatically (without having to edit any files). It can load them when the device boots, or when the app starts.
It also can manage your cifs/nfs shares too. Allowing you to mount/unmount them. You can also set them to auto mount when the device boots, when the application starts or when connected to wifi.
For more info you can see the thread for the app where I will maintain the changelog.

You have just become a friend to vibrant users everywhere!

So here's the problem im having. Both modules load fine and I've confirmed they are loaded, but when I try and mount anything, mount says cifs is an invalid argument for type.
Sent from my SGH-T959 using XDA App

What are you using to mount? An app or from the shell?
Sent via my Samsung Galaxy S

First I tried mount manager and when that failed I did it myself from a term.
Double checked that slow-work and cifs modules are loaded...
Here is terminal...
mount -t cifs //192.168.1.12/d /mnt/sdcard/sd
mount: Invalid argument
#
Doesn't matter where I try to mount to...
Chris
Nm, wasn't paying attention to case for my share name.. works. Thanks
Sent from my SGH-T959 using XDA App

hololight said:
First I tried mount manager and when that failed I did it myself from a term.
Double checked that slow-work and cifs modules are loaded...
Here is terminal...
mount -t cifs //192.168.1.12/d /mnt/sdcard/sd
mount: Invalid argument
#
Doesn't matter where I try to mount to...
Chris
Nm, wasn't paying attention to case for my share name.. works. Thanks
Sent from my SGH-T959 using XDA App
Click to expand...
Click to collapse
you should be able to do this and not have to worry about the case of your shares:
Code:
mount -t cifs //192.168.1.12/d /mnt/sdcard/sd -o nocase

nfs.ko
has anyone been able to create a nfs.ko module?
Thanks to the directions here I was able to create a loading cifs.ko for the Firebird SGS / GT-I9010 Kernel, but my nfs.ko built with the same process wouldn't load.

Related

[Q] Network File System support

I have froyo with 2.6.32.9 kernel. I can't mount a remote nfs dir..
i can try this (with root privileges):
mount -t nfs remoteIPAdress:/remotedir /sdcard/mnt
i have got "No such device"
Maybe a kernel is not supported the NFS?
What can i do?
if you just need to read write from network drive use estrong file manager from market.
Solution
TiBiSMART said:
I have froyo with 2.6.32.9 kernel. I can't mount a remote nfs dir..
i can try this (with root privileges):
mount -t nfs remoteIPAdress:/remotedir /sdcard/mnt
i have got "No such device"
Maybe a kernel is not supported the NFS?
What can i do?
Click to expand...
Click to collapse
Look trough this thread: forum.xda-developers.com/showthread.php?t=761414
You need cifs.ko module to mount samba shares. Download it from forum.xda-developers.com/attachment.php?attachmentid=420072&d=1287150453, put files on your /sdcard and run these 3 commands:
su
insmod /sdcard/slow-work.ko
insmod /sdcard/cifs.ko
Of course, you need root. And after this you can mount your shares. I also recommend you forum.xda-developers.com/showthread.php?t=756158 this app to mount with nice GUI)
Alex073 said:
Look trough this thread: forum.xda-developers.com/showthread.php?t=761414
You need cifs.ko module to mount samba shares. Download it from forum.xda-developers.com/attachment.php?attachmentid=420072&d=1287150453, put files on your /sdcard and run these 3 commands:
su
insmod /sdcard/slow-work.ko
insmod /sdcard/cifs.ko
Of course, you need root. And after this you can mount your shares. I also recommend you forum.xda-developers.com/showthread.php?t=756158 this app to mount with nice GUI)
Click to expand...
Click to collapse
thx Alex!
but i haven't samba shares. I have nfs shares on the router (with tomato linux)
I think samba share it's very different with nfs share or i know it wrong?

Making cifs.ko

Hey guys
Need your help here.
Have been desperately searching the forums/net for a cifs.ko for the galaxy tab but i do not think one exists.
Have decided to see if i can build one on my own (this will likely crash & burn)
Anyway, i've installed ubuntu in a VM
and pulled the following down
-GT-P1000 source code (from http://opensource.samsung.com)
-toolchains (wget http://www.codesourcery.com/public/...-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2)
unpacked the source
unpacked toolchains into /opt/toolchains
ran ./build_kernel.sh <--no errors
cd into source directory
-apt-get install ncurses-dev
make oldconfig
make menuconfig
set M for cifs (under fs -> networking)
exited
make prepare
make M=fs/cifs
and the cifs.ko was created!
upon copying into my tab and trying an insmod cifs.ko
I saw the following in my dmesg
cifs: Unknown symbol slow_work_register_use
cifs: Unknown symbol slow_work_enqueue
I'm guessing i need to make a slow-work.ko or hack the source of the cifs and remove all references of slow-work.
Anyone can advice how for either or better yet, make a cifs.ko for us
Thanks!
Hiya,
If you ever get it working, please do share... I know a fair number of people who have the Galaxy Tab including myself who are just waiting for someone bright enough to get samba mounting available so they can play their media files without having to copy directly to the device.
Kinda like the Holy Grail this is... Especially as iPad users are able to stream avi's using Buzz Player HD which is a media player with a built in method of connecting to smb shares from the app. I hate being one-upped by my iPad weilding wife!! Heh.
Cheers.
bullyfrog said:
Anyone can advice how for either or better yet, make a cifs.ko for us
Thanks!
Click to expand...
Click to collapse
There are several reasons why you may have missing symbols. One is that the original kernel was compiled with different driver options, so certain symbols are missing when compared to the new kernel/module you compiled. The easy fix is to install the new kernel too.
It could also be that the kernel versions are different, and the source you have is older or newer than the original.
If I have time later I plan on giving it a go myself, compile and install a complete kernel.
From another discussion thread on this forum:
-------
You'll need to change kernel/slow-work.c to be compiled as a module which is not very hard:
move kernel/slow-work.c in fs/slow-work/slow-work.c
remove "config SLOW_WORK" from init/Kconfig
create fs/slow-work/Kconfig with config SLOW_WORK as tristate and add it to fs/Kconfig (source fs/slow_work/Kconfig)
create fs/slow-work/Makefile with obj-$(CONFIG_SLOW_WORK) += slow-work.o and add it to fs/Makefile: obj-$(CONFIG_SLOW_WORK) += slow-work/
-------
Then, some useful commands:
adb shell
su
insmod slow-work.ko
insmod cifs.ko
lsmod | grep cifs
dmesg
mount -o username=guest -t cifs //IP/SHARE /mnt/cifs
(or CifsManager)
...also add "iocharset=utf8" in CifsManager's options field (non-latin characters support).
I too need to get started with compiling the Tab's sources...when I have time !
Ok, I compiled cifs.ko and slow_work.ko modules using the SCH-I800 kernel source (which is the Verizon Galaxy Tab model) so I'm not sure they'll work on other tabs, but I figured I'd post them here.
I haven't done much testing yet, but I ran:
busybox insmod slow_work.ko
busybox insmod cifs.ko
mkdir /mnt/cifs
busybox mount -o username=guest //myserver/share /mnt/cifs
It mounted successfully, and I was able to watch a video directly off the mount. It was a little choppy though, I'm not sure if the default video player has any buffering options or if there's one in the market that does.
As far as how I got it to compile, it was very much a hack based on info here. The rough method was:
Built cifs.ko from the steps listed in the first post, with the exception of using the SCH-I800 source instead.
After that:
mkdir fs/slow-work
cp kernel/slow-work.* fs/slow-work/.
added fs/slow-work/Kconfig with the config section copied from init/Kconfig, but with bool changed to 'tristate' and default changed to m.
edited fs/Kconfig and added 'source "fs/slow-work/Kconfig"'
Added fs/slow-work/Makefile containing: "obj-m += slow-work.o"
Added the line "obj-m += slow-work/" to the end of fs/Makefile
I also had to edit fs/slow-work/slow-work.c and removed the round_jiffies calls, they were coming up as unresolved symbols and it's a function in timer.c, wasn't sure if there was a way to pull that into a module.
make M=fs/slow-work
I'll post more as I play around with it, just wanted to get the modules up for people to play with. I should also probably look into using my busybox utilities as the default so I don't have to keep calling busybox to use the correct ones.
-Dan
CIFS on Sprint device
I'm using the updated Sprint GTab and your precompiled CIFS modules worked very well. It's just now CIFS Manager seems to keep telling me that the mount string isn't valid. I mounted with the mount command from the terminal (wow, this is tedious without a BT keyboard. Need a terminal with editable strings.) and it worked just great.
JK
Well done ! This works on my JK1-flashed Galaxy Tab.
Note: I use WifiKeyboard as my input method on the tablet, to ease typing in the Terminal Emulator (or ConnectBot). It works marvelously well !
The "insmod" commands worked perfectly (thanks again for compiling...personally I was stuck at the "libc" ELF headers in my toolchain Mac OS X setup...I will soon install a Linux virtual machine so I can use the default toolchain, which contains all the required "libc" stuff...I regularly compile RockBox on my Mac so I wonder what's wrong with this particular toolchain).
I switched on Samba/SMB/CIFS sharing on my Mac OS X laptop, via the "Sharing" panel in System Preferences.
Once in "su" shell mode, I pre-created the mount point: "mkdir /mnt/cifs". I then experimented various commands, including:
- EDIT - DroidWall configured with a whitelist *prevents* the "mount" command from connecting to the Samba share, despite allowing Terminal Emulator and ConnectBot to connect via wifi...as a result I have to disable DroidWall entirely, which sub-optimal Allowing all "root" applications to access wifi in DroidWall doesn't solve the problem: it makes a difference with commands like "ping" but the SMB mount fails to connect over the network...for some reason.
busybox mount -r -t cifs -o "username=MY_USERNAME,password=MY_PASS" //MY_IP/MY_SHARED_FOLDER /mnt/cifs
busybox mount | grep cifs
ls /mnt/cifs
umount /mnt/cifs
busybox mount -r -t cifs -o "username=guest" //MY_IP/MY_SHARED_FOLDER /mnt/cifs
Note that I chose to secure the mounted directory in read-only mode, but of course we could use "-w" instead, providing the file server accepts authenticated or anonymous connections with write credentials.
I still need to test transfer speeds...as this is often the problem with high-quality video. At any rate, I recommend using VLC Player on the server (e.g. laptop containing video/audio assets), and VLC Stream and Connect on the Android device: the live transcoding works really well !
CIFSManager
I'm a bit of a noob, actually. I put a double-slash in cifsmanager in front of the name, like you were doing in mount. It's just machine/share and not //machine/share. Makes all the difference, really.
Now I just wish there were a few more video codecs to be had.
JK
jknisley said:
Now I just wish there were a few more video codecs to be had.
Click to expand...
Click to collapse
RockPlayer ?
Wow. That's a fantastic player. And sorry to be off topic. Glad CIFS is working for us.
Cool, now all we need is a step by step guide for doing this for noob users like me who have no idea what Busybox is or where to save the cifs and slow work files etc... Hmm... Anyone fell nice and would like to help a guy out?
Cheers
overridex said:
Ok, I compiled cifs.ko and slow_work.ko modules using the SCH-I800 kernel source (which is the Verizon Galaxy Tab model) so I'm not sure they'll work on other tabs, but I figured I'd post them here.
I haven't done much testing yet, but I ran:
busybox insmod slow_work.ko
busybox insmod cifs.ko
mkdir /mnt/cifs
busybox mount -o username=guest //myserver/share /mnt/cifs
It mounted successfully, and I was able to watch a video directly off the mount. It was a little choppy though, I'm not sure if the default video player has any buffering options or if there's one in the market that does.
As far as how I got it to compile, it was very much a hack based on info here. The rough method was:
Built cifs.ko from the steps listed in the first post, with the exception of using the SCH-I800 source instead.
After that:
mkdir fs/slow-work
cp kernel/slow-work.* fs/slow-work/.
added fs/slow-work/Kconfig with the config section copied from init/Kconfig, but with bool changed to 'tristate' and default changed to m.
edited fs/Kconfig and added 'source "fs/slow-work/Kconfig"'
Added fs/slow-work/Makefile containing: "obj-m += slow-work.o"
Added the line "obj-m += slow-work/" to the end of fs/Makefile
I also had to edit fs/slow-work/slow-work.c and removed the round_jiffies calls, they were coming up as unresolved symbols and it's a function in timer.c, wasn't sure if there was a way to pull that into a module.
make M=fs/slow-work
I'll post more as I play around with it, just wanted to get the modules up for people to play with. I should also probably look into using my busybox utilities as the default so I don't have to keep calling busybox to use the correct ones.
-Dan
Click to expand...
Click to collapse
How did you manage to remount the filesystem r/w? I can't mkdir /mnt/cifs because fs is read only.
alias_neo said:
How did you manage to remount the filesystem r/w? I can't mkdir /mnt/cifs because fs is read only.
Click to expand...
Click to collapse
Are you in "su" mode ? (type "su" in the shell before typing any other commands)
daniel.weck said:
Are you in "su" mode ? (type "su" in the shell before typing any other commands)
Click to expand...
Click to collapse
Yes I am. I su'd, Superuser popped up and asked to grant permissions, did so, this then allowed me to insmod the modules (only root can do so) but won't let me mkdir.
overridex said:
Ok, I compiled cifs.ko and slow_work.ko modules using the SCH-I800 kernel source (which is the Verizon Galaxy Tab model) so I'm not sure they'll work on other tabs, but I figured I'd post them here.
I haven't done much testing yet, but I ran:
busybox insmod slow_work.ko
busybox insmod cifs.ko
mkdir /mnt/cifs
busybox mount -o username=guest //myserver/share /mnt/cifs
It mounted successfully, and I was able to watch a video directly off the mount. It was a little choppy though, I'm not sure if the default video player has any buffering options or if there's one in the market that does.
As far as how I got it to compile, it was very much a hack based on info here. The rough method was:
Built cifs.ko from the steps listed in the first post, with the exception of using the SCH-I800 source instead.
After that:
mkdir fs/slow-work
cp kernel/slow-work.* fs/slow-work/.
added fs/slow-work/Kconfig with the config section copied from init/Kconfig, but with bool changed to 'tristate' and default changed to m.
edited fs/Kconfig and added 'source "fs/slow-work/Kconfig"'
Added fs/slow-work/Makefile containing: "obj-m += slow-work.o"
Added the line "obj-m += slow-work/" to the end of fs/Makefile
I also had to edit fs/slow-work/slow-work.c and removed the round_jiffies calls, they were coming up as unresolved symbols and it's a function in timer.c, wasn't sure if there was a way to pull that into a module.
make M=fs/slow-work
I'll post more as I play around with it, just wanted to get the modules up for people to play with. I should also probably look into using my busybox utilities as the default so I don't have to keep calling busybox to use the correct ones.
-Dan
Click to expand...
Click to collapse
Mate, you rock! I too ran into problems with the round jiffies and put this side project on hold. Your modules work and thats what matters. Thank you
Sent from my GT-P1000
Hi there,
Where do I save the cifs.ko and slow-work.ko files? Anyone help please?
Cheers.
I’m a really beginner user and have a question to the install of cifs.ko .
I like to mount on my Samsung Galaxy Tab an SMB network share. The Tab is rooted.
1)Copy the cifs.ko on my Tab
2)Install busybox from the market on my Tab
3)Run Busybox
4)Write in Busybox
“busybox insmod cifs.ko
mkdir /mnt/cifs”
5)To mount I like to use the Cifs Manager
These 5 steps are correct or I have some errors in it? Where on the Tab I have to copy the file “cifs.ko”? Can I write in Busybox with the virtual keyboard?
Thanks for your help.
Stefan
For those of you struggling with commands, an easy way is to just copy the two files to your sdcard. You can put them to /sdcard/Android if you like. Issue the following commands in your terminal app
$su -
#cd /sdcard/Android
#insmod slow-work.ko
You should see no errors
Next pull down CifsManager from the market.
Using CifsManager, specify where the cifs.ko is located. The gui is pretty intuitive. If all goes well, you should be able to watch your shared videos off your tab
Sent from my GT-P1000
Well spank me sideways that worked a treat for a noob user like me Thanks a lot to everyone who as made this wonderful "feature" a reality.
bullyfrog said:
For those of you struggling with commands, an easy way is to just copy the two files to your sdcard. You can put them to /sdcard/Android if you like. Issue the following commands in your terminal app
$su -
#cd /sdcard/Android
#insmod slow-work.ko
You should see no errors
Next pull down CifsManager from the market.
Using CifsManager, specify where the cifs.ko is located. The gui is pretty intuitive. If all goes well, you should be able to watch your shared videos off your tab
Sent from my GT-P1000
Click to expand...
Click to collapse
Thanks a lot.That worked perfectly for me.But, for us, noobs would add 2 points that I had problems with
1."the two files" mentioned above could be found here :
http://forum.xda-developers.com/showpost.php?p=9275507&postcount=5
2. For not latin characters in filenames needed to to the following (from http://forum.xda-developers.com/showpost.php?p=9271775&postcount=4): ...also add "iocharset=utf8" in CifsManager's mount options field (non-latin characters support).
After that, everething worked perfect. Do I need to remount it each time after reboot?

[HOWTO] Mount Windows Shares using Cifs

We now have a working cifs.ko and nls_utf.ko. I was able to mount my win7 shares using cifs_manager and stream a few movies using mvideoplayer from the mounted share.
My initial problem seemed to be that I used the android ndk toolchain and the nook kernel is compiled with the codeSourcery toolchain.
After I re-compiled using the codeSourcery toolchain everything works (at least for now)
For those who want to try this.
Download the cifs.ko and nls_utf8.ko modules.
http://dl.dropbox.com/u/16190398/Nook Color 1.0/cifs.ko
http://dl.dropbox.com/u/16190398/Nook Color 1.0/nls_utf8.ko
Mount /system as read write and create a directory under /system/lib called modules. Copy the cifs.ko and nls_utf8.ko modules under this directory.
Type the following from your windows or linux console
adb shell
#mount -o remount,rw /dev/block/mmcblk0p5 /system
#su
#cd /system/lib
#mkdir modules
#exit
#exit
Now you are back in your windows or linux command prompt
adb push cifs.ko /system/lib/modules
adb push nls_utf8.ko /system/lib/modules
adb shell
#su
#insmod /system/lib/modules/cifs.ko
#insmod /system/lib/modules/nls_utf8.ko
if everything went well you should see no errors.
#lsmod
(THis should give you a list of running modules)
You should see something like
nls_utf8 1856 0 - Live 0xbf153000
cifs 240060 0 - Live 0xbf113000
#exit
#exit
Download cifs_manager from the android market and follow the instructions from
http://forum.xda-developers.com/showthread.php?t=756158
If you have Astro file manager installed then tapping on the mounted share from cifs_manager will automatically launch Astro and list the folder/files under that share.
BTW, you can copy the modules anywhere you like even under /sdcard/modules but the default path used by cifs_manager is /system/lib/modules. You can edit the path from cifs manager to point to the location of your cifs.ko module.
---- 05/06/2011 Update ------------
New version of cifs.ko, slow-work.ko for the 1.2 update. This is for kernel version 2.6.32.9
Note, cifs.ko requires some symbols from slow-work.ko so you will need to load slow-work.ko first. If you use cifs-manager, under advanced settings
you can check load modules at startup via insmod and put the path to multiple modules for e.g /system/lib/modules/slow-work.ko:/system/lib/modules/cifs.ko.
Everything seems to be working fine for me. Let me know if you run into issues.
http://dl.dropbox.com/u/16190398/Nook Color 1.2/slow-work.ko
http://dl.dropbox.com/u/16190398/Nook Color 1.2/cifs.ko
http://dl.dropbox.com/u/16190398/Nook Color 1.2/nls_utf8.ko
Alright! This is fantastic! I can even play my SNES roms over wifi. Thanks for sharing.
The only issue I have noticed is that you need to run the insmod commands every time you reboot the device, and I reboot a lot. For now I'm just using gScript to run the 2 commands whenever I need, but it would be great to have them run when the program starts. I know you're just sharing and this has been mentioned in the app thread, just wanted to make my observations known.
Edit: Found a nifty toggle in the settings of cifs managaer that runs the insmod command at startup. I guess I should look before I complain...
any chance you can provide your build environment, so that the rest of us can work on hacking the kernel.
thetoady said:
any chance you can provide your build environment, so that the rest of us can work on hacking the kernel.
Click to expand...
Click to collapse
Setting up the environment is ridiculously easy esp if you have access to a linux box. There is a very well documented wiki page which outlines the process of building your own custom kernel for the nook color.
http://nookdevs.com/NookColor:_Build_the_Original_Kernel
I downloaded the codesourcery tool chain and did the minimum install as I did not care about the IDE and added the path to my environment. THat was about it. Everything else I followed the wiki page.
Here is my .config file if you like. When you run "make menuconfig" you can choose to load an alternate config file instead of the default. Just put this .config (after renaming it to .config_myconfig or something) under your distro/kernel directory.
Let me know if you need anything specific and I'll try to help. I had to add the .txt extension to the config file for xda upload but you can rename it to anything you want.
Hrm, couldn't get that working on my system.
I'm getting this error:
Mountingthe share has failed with an error.
mount: Invalid argument
Thoughts?
pezhore said:
Hrm, couldn't get that working on my system.
I'm getting this error:
Mountingthe share has failed with an error.
mount: Invalid argument
Thoughts?
Click to expand...
Click to collapse
Seems more like an error in configuring CIFS_Manager.
If the module doesnt load you get a different error from Cifs_Manager
"No such device".
Can you try using adb shell and use insmod to load the module manually.
CHeck with lsmod if the module is loaded.
Can you post you cifs_manager screen for the share that you are trying to mount.
pezhore said:
Hrm, couldn't get that working on my system.
I'm getting this error:
Mountingthe share has failed with an error.
mount: Invalid argument
Thoughts?
Click to expand...
Click to collapse
I'm sure you noticed that there's an error in dascud instructions... the 2nd insmod command has a filename typo..
its should read
HTML:
#insmod /system/lib/modules/nls_utf8.ko
dascud.. thanks a ton... as mentioned in my previous post can you please make the change in your post
madrascafe said:
dascud.. thanks a ton... as mentioned in my previous post can you please make the change in your post
Click to expand...
Click to collapse
Done. Were you able to mount the CIFS shares ?
dascud said:
Done. Were you able to mount the CIFS shares ?
Click to expand...
Click to collapse
Yes. No problem at all. I even opened files from root explored & played some music. Thank you for this
firstly thanks dascud's great work! Awesome!
I found a problem when mount with option iocharset=utf8, cifsmanager report below error message then failed to mount
Mounting the share has failed with an error.
mount: Can not access a needed share library
When I remove iocharset=utf8, mount success but I failed to access any folder including non-western characters.
ctos said:
firstly thanks dascud's great work! Awesome!
I found a problem when mount with option iocharset=utf8, cifsmanager report below error message then failed to mount
Mounting the share has failed with an error.
mount: Can not access a needed share library
When I remove iocharset=utf8, mount success but I failed to access any folder including non-western characters.
Click to expand...
Click to collapse
CIfs_manager only loads the cifs.ko modules. You will need to load nls_utf8.ko manually or using a script to display non-western character set. I think you can use something like gscript for the purpose.
I've followed the instructions, but trying to launch the cifsmanager I get
Application not installed on Device
from reading the FAQ on the cifsmanager page, it says its a problem with the launcher. is this because I've updated the NC to 1.01? thanks
dascud said:
CIfs_manager only loads the cifs.ko modules. You will need to load nls_utf8.ko manually or using a script to display non-western character set. I think you can use something like gscript for the purpose.
Click to expand...
Click to collapse
gscript works for me. thanks a lot!
Sent from my LogicPD Zoom2 using XDA App
pezhore said:
Hrm, couldn't get that working on my system.
I'm getting this error:
Mountingthe share has failed with an error.
mount: Invalid argument
Thoughts?
Click to expand...
Click to collapse
I got this when I put the computer name in the share path. I switched to using IP address instead and it worked.
Hi,
Thanks for the files. I didn't follow the steps in the instructions because there is an easier way. Like mention before, ClifsManager only need cifs.ko.
I basically just copy cifs.ko to my sd card. In the CM setting, just change path to
/sdcard/cifs.ko
Setting up shares is easy too, share path is your ip/<sharefolder>, mount point /sdcard/<foldername> and your user/pwd. This worked with Windows 7.
ClifsManager is definitely one of the must have on the NC.
Is there any chance of getting an tun.ko driver built so that this can be used in conjunction with OpenVPN?
Thanks!
smlong426 said:
Is there any chance of getting an tun.ko driver built so that this can be used in conjunction with OpenVPN?
Thanks!
Click to expand...
Click to collapse
Here you go.
http://forum.xda-developers.com/showthread.php?t=889736
Will this, or any software for that matter, allow me to openly share one or more folders on the NC device (SD card), so I can access that NC shared directory from a windows box and copy files back and forth?
KryptoNyte39 said:
Will this, or any software for that matter, allow me to openly share one or more folders on the NC device (SD card), so I can access that NC shared directory from a windows box and copy files back and forth?
Click to expand...
Click to collapse
What you need is a Samba server for Nook. Looks like this has already been accomplished. Maybe you can post a howto once you get this working.
http://forum.xda-developers.com/showpost.php?p=8239139&postcount=128

A working cifs.ko

Don't want to flash a full kernel just need the modules if possible. Many thanks
SordFish said:
Don't want to flash a full kernel just need the modules if possible. Many thanks
Click to expand...
Click to collapse
This is currently one of the top google results for "cifs ouya;" please delete or rename this thread, as there had been zero progress on it, but everyone who wants cifs on ouya is getting steered to it.
huh? no one compile it?
here you are
What I need to do with this files? can you explain with more detail please.?
download and extract them
Code:
adb push md4.ko /data/local/tmp/md4.ko
adb push nls_utf8.ko /data/local/tmp/nls_utf8.ko
adb push cifs.ko /data/local/tmp/cifs.ko
adb shell
su
mount -orw,remount /system
cat /data/local/tmp/md4.ko > /system/lib/modules/md4.ko
cat /data/local/tmp/nls_utf8.ko > /system/lib/modules/nls_utf8.ko
cat /data/local/tmp/cifs.ko > /system/lib/modules/cifs.ko
mount -oro,remount /system
insmod /system/lib/modules/md4.ko
insmod /system/lib/modules/nls_utf8.ko
insmod /system/lib/modules/cifs.ko
then use something like "CifsManager" to mount smb share
P.S. those modules are for 1.0.393-r1 only, and if Ouya release a newer firmware, you will lost the cifs functions.
>s added
needed some >s. I inserted them below
i just pasted it without looking and MAD pc speaker beeping action when it cats to the terminal
Code:
adb push md4.ko /data/local/tmp/md4.ko
adb push nls_utf8.ko /data/local/tmp/nls_utf8.ko
adb push cifs.ko /data/local/tmp/cifs.ko
adb shell
su
mount -orw,remount /system
cat /data/local/tmp/md4.ko > /system/lib/modules/md4.ko
cat /data/local/tmp/nls_utf8.ko > /system/lib/modules/nls_utf8.ko
cat /data/local/tmp/cifs.ko > /system/lib/modules/cifs.ko
mount -oro,remount /system
insmod /system/lib/modules/md4.ko
insmod /system/lib/modules/nls_utf8.ko
insmod /system/lib/modules/cifs.ko
Thanks.
WonderEkin said:
huh? no one compile it?
here you are
Click to expand...
Click to collapse
Err, I guess I should have noted that possibility as well, haha. Thanks.
hi, anyone have working cifs.ko in ouya?, the library is missing. the only option is cifmanager but can´t add at startup
I apologize for my ignorance, but what sort of practical applications would CIFS support offer on the OUYA? I side loaded an app called Samba Filesharing, and it seems to work fine, however the write speed is quite slow - under 3 MB/s from my laptop.
What would be the difference between following the steps above and just side loading the app I've mentioned? I'm very interested in using my OUYA as a file server in conjunction with a USB hard drive.
Thanks!
Sent from my iPhone using Tapatalk 2
So... figured I'd update this thread if anyone wants to test these...
Here's modules that should work on the current firmware ( OUYA 1.2.771 as of this writing ) as well as CIFSManager.
Install the same way as described by WonderEkin.
.. need some direction .. can't make this work .. "No such file or directory" .. share my directory from win8 with no security credential .. smb is working fine ..
realhuh said:
.. need some direction .. can't make this work .. "No such file or directory" .. share my directory from win8 with no security credential .. smb is working fine ..
Click to expand...
Click to collapse
Do these still work?

[Q] Can't mount CIFS despite custom kernel

Hi,
I'm having a hard time mounting a cifs share on my htc one and i hope you guys can help.
i'm using the Insertcoin Rom ( http://forum.xda-developers.com/showthread.php?t=2694142 ) and ElementalX Kernel ( http://forum.xda-developers.com/showthread.php?p=40682393&highlight=cifs#post40682393 )
Although the kernel description mentions cifs support there is no cifs.ko in /system/lib/modules and when i run lsmod on shell there is no cifs listet.
i tried mounting via "mount manager" and mount command on shell, both say "No such device". The FAQ of mount manager says that "no such device" means i have no cifs support installed.
I copied the adress of my network share from es explorer where i can acces the share with no hassle.
Pleas help. A'm i getting something here completely wrong?
Thanks, Johnny

Categories

Resources