Tested cifs.ko and nls_utf8.ko (from factory kernel) - Captivate Android Development

Just for interested people, I have compiled cifs.ko and nls_utf8.ko from US version SGHI897 kernel (from samsung opensource website). This package has been tested under JF6, (out-of-box settings, but rooted). Key notes:
0. mount with -o iocharset=utf8, -t cifs
1. use "busybox" to do "mv or cp or mount or umount"
2. use direct "#" prompt to do "insmod"
3. better use GScript after you have tested these ko's

hiway123 said:
Just for interested people, I have compiled cifs.ko and nls_utf8.ko from US version SGHI897 kernel (from samsung opensource website). This package has been tested under JF6, (out-of-box settings, but rooted). Key notes:
0. mount with -o iocharset=utf8, -t cifs
1. use "busybox" to do "mv or cp or mount or umount"
2. use direct "#" prompt to do "insmod"
3. better use GScript after you have tested these ko's
Click to expand...
Click to collapse
I have absolutely no idea what you are talking about, other than it means someone's gonna come up with SOMETHING new to play with here....... =)

techmik67 said:
I have absolutely no idea what you are talking about, other than it means someone's gonna come up with SOMETHING new to play with here....... =)
Click to expand...
Click to collapse
coz, from searching the forum, there is no cifs and utf8 support for captivate. The first is used when using captivate to mount remote windows share folders. In other words, you can use rockplayer on captivate to browser media files on windows desktop. For some reasons, there could be encoding problem to view these media files' names, such as asian characters. Then the second one is needed.

hiway123 said:
coz, from searching the forum, there is no cifs and utf8 support for captivate. The first is used when using captivate to mount remote windows share folders. In other words, you can use rockplayer on captivate to browser media files on windows desktop. For some reasons, there could be encoding problem to view these media files, such as asian characters. Then the second one is needed.
Click to expand...
Click to collapse
I can definitely see why UTF8 is important, though I have no idea what to do with these files to be honest. also, linux-based system that doesn't support UTF8, really?

Kaik541 said:
I can definitely see why UTF8 is important, though I have no idea what to do with these files to be honest. also, linux-based system that doesn't support UTF8, really?
Click to expand...
Click to collapse
Don't quite understand your meaning, sorry. But anyway, just for interested people...

the module works great thanks for your effort.

network pimp... android novice.
hiway123, i pulled down your make of cifs.ko; loaded it in a network folder on my ext sdcard, but am not sure what to do now. (insmod, etc)
I attempted a few mount commands, and a few other linux norm paths, but I think I am lost here. Can you give a 1, 2, step of how to run the mount command? your post was rather cryptic. (i know i know, for the interested only! well definitely interested...)
*Note* I downloaded this nifty app: CIFSmanager app from the market, and it is open enough that it allows for the user to direct path for the cifs module (insmod path) to the file you compiled (again which is now on my sdcard) it seemed to be happy with it, but gave me some other error I believe had something to do with it not being root. (phone is rooted, have several apps with root level access... however haven't yet figured out how to run certain individual apps as root, that don't automatically try to obtain root access. blah blah blah, another project.)
anyhoot - i would love to be able to mount a vfs on this bird! had the captivate for about a month and love'n it! I got tons of media I'd like to stream over the network and found a few nice apps (ARCmedia / rocket, etc.) that i tested (direct copy to sd) and played my .flv files just fine! :-D
now all i need to do it trick the system into thinking my network paths are mounted resources. (Everything else works well, I can access network shares, view pictures, docs, standard video that the default video player can play fine.) So next step is to learn what YOU know.
sorry for the long post! - th x

tucxforever said:
hiway123, i pulled down your make of cifs.ko; loaded it in a network folder on my ext sdcard, but am not sure what to do now. (insmod, etc)
I attempted a few mount commands, and a few other linux norm paths, but I think I am lost here. Can you give a 1, 2, step of how to run the mount command? your post was rather cryptic. (i know i know, for the interested only! well definitely interested...)
*Note* I downloaded this nifty app: CIFSmanager app from the market, and it is open enough that it allows for the user to direct path for the cifs module (insmod path) to the file you compiled (again which is now on my sdcard) it seemed to be happy with it, but gave me some other error I believe had something to do with it not being root. (phone is rooted, have several apps with root level access... however haven't yet figured out how to run certain individual apps as root, that don't automatically try to obtain root access. blah blah blah, another project.)
anyhoot - i would love to be able to mount a vfs on this bird! had the captivate for about a month and love'n it! I got tons of media I'd like to stream over the network and found a few nice apps (ARCmedia / rocket, etc.) that i tested (direct copy to sd) and played my .flv files just fine! :-D
now all i need to do it trick the system into thinking my network paths are mounted resources. (Everything else works well, I can access network shares, view pictures, docs, standard video that the default video player can play fine.) So next step is to learn what YOU know.
sorry for the long post! - th x
Click to expand...
Click to collapse
I have a samba server in LAN, say at 192.168.1.1. So, I do these steps:
1. unzip my package to your computer, there are two ko files. Then use USB cable to transfer these two files to your phone in /sdcard folder.
2. on the phone, I used "terminal emulator", run "su" into root mode, make new folders like "busybox mkdir /system/lib/modules", you may try other directory name, I don't think that does a matter. Move the two ko files from /sdcard to this newly created folder, remember to use "busybox mv" command.
3. create a mount point on your phone, "mkdir /sdcard/smb" for example. or "busybox mkdir" I cannot remember.
4. insert modules, using "insmod /system/lib/modules/cifs.ko" and "insmod /system/lib/modules/nls_utf8.ko", remember these commands must be run everytime after you reboot your phone, so I use Gscript to create a shortcut, it's very convenient.
5. mount server's samba share folder in the phone, using "busybox mount -t cifs //192.168.1.1/your_share_folder /sdcard/smb -v -o user=yourusername,pass=yourpasswd,iocharset=utf8".
6. now, you can use rockplayer to browse into /sdcard/smb on your phone to view what is shared.
7. It is better to umount your folder once you finish transferring files. Then simply do "busybox umount /sdcard/smb".
Actually, only commands 5-7 are needed after your first attempt. Of course, if you have not done step 4 after a reboot, you need to do that step as well. I use Gscript in market to create shortcuts to these 4-7 commands. That's more convenient instead of typing on such small screen.

Have you tried this with any of the Custom ROMs in this section? If so, which ones work? Can you tell me how to compile a CIFS.KO?
Can it be compiled against the ROMs supplied here?
Thanks in advance,

Freaking brilliant, was exactly what I was looking for...thanks OP!
*edit*
Should mention, I used the posted .KO with stock rogers rom (i896) and it seems to be working flawlessly from my testing so far. I've even been able to stream some lower bitrate HD video and have it run smoothly and consistantly

insmod: init_module '/system/lib/modules/cifs.ko' failed (Exec format error)
something wrong?
i use SetiroN's kernel... and I9000 Froyo - maybe that is the reason?

Id assume that the kernel you are using isn't compatible and the module will have to be compiled for it.
Sent from my SAMSUNG-SGH-I896

love the rom just wish had few diff tweaks

Related

Debian working niceley on Desire.

Debian for Desire.
If you are able to try this on another android device, please do as I will be very interested in the results.
Download
http://www.multiupload.com/79TSI1AAF9
You will need.
-Root access.
-Busybox (included in most custom roms)
-1.4gig free on SDCARD
-VNC Client (ie. AndroidVNC)
-Terminal Emulator (ie. ConnectBot)
-7zip
Instructions
-Extract the file deSIREbian.7z on your PC using 7zip.
-Copy the contents (debian.img and deboot) to root directory of SDCARD.
-On your phone in terminal emulator type
su
sh /sdcard/deboot
Click to expand...
Click to collapse
You should get a blank screen showing "localhost:/#" after a couple of seconds.
-On your phone in your VNC client log in using these details
Password - password
Port - 5901
Click to expand...
Click to collapse
Nickname and Address are not needed, call it what you want though.
Changing the colour to 24bit and enabling local mouse pointer and full screen bit map are not neccesary but reccomended.
-Thats it.
Notes.
-You can log in via ssh, (gives a much better terminal, ie works properly with aptitude). Use [email protected] and password "toor"
-The version of Debian is Armel Lenny, installed using debootstrap.
-It is just the base package with LXDE on top, you only get a desktop, a file browser, an internet browser, and a pic viewer.
-If you want more packages there's tonnes of room on the image. eg apt-get install openoffice.org or apt-get install abiword or apt-get install any flipping thing u want
-You can access the SDCARD from Debian at "root/sdcard" (read-write)
-You can access Debian filesystem from Android (When Debian is running) at "sdcard/debian" (read only)
-debian.img is mounted at "sdcard/debian" using "dev/block/loop5"
-So far the only rom i have come accross that this dont work with is one of the cyanogen nightlies from last week. apart from that, working on opendesire, cyanogen, defrost, leedroid, official 2.2 with busybox...
Issues.
Debian cannot be shut down. You need to reboot the phone to do this. (You can kill the VNC server with "vncserver -kill :1" there is an icon on the festoons to do this.)
Update log.
deSIREbain.
-First release.
deSIREbain2
Fixed
-Loading a second terminal no longer breaks vnc.
-You no longer need to create the folder debian on sdcard.
Added
-ssh server (login with root and toor)
Removed.
-The image has been downsized from 2 gig to 1.4
Hey,
thank you for your work, i will test it so far and will tell you the results
got this error:
Code:
# su
su
# sh /sdcard/deboot
sh /sdcard/deboot
mount: No such file or directory
mount: No such file or directory
mount: No such file or directory
mount: No such file or directory
mount: mounting /sdcard on /sdcard/debian/root/sdcard failed: No such file or di
rectory
net.ipv4.ip_forward = 1
chroot: can't change root directory to /sdcard/debian: No such file or directory
#
If you have the same problems try out
su
mkdir /sdcard/debian
losetup /dev/block/loop3 /sdcard/debian.img
mount -t ext2 /dev/block/loop3 /sdcard/debian
ls /sdcard/debian
thx to mercianary for help
greetings
I found this guide quite helpful at getting a bootstrapped Debian setup running.
http://www.saurik.com/id/10
I didn't need to insert the ext2 module as it's already loaded for me, I guess G1s didn't have that convenience back then.
blackstoneuser5 said:
I found this guide quite helpful at getting a bootstrapped Debian setup running.
www . saurik.com/id/10
I didn't need to insert the ext2 module as it's already loaded for me, I guess G1s didn't have that convenience back then.
Click to expand...
Click to collapse
I used parts of this for reference too. Its a great guide, explains things really well.
i've just updated this. link is in the first post.
Fixed
-Loading a second terminal no longer breaks vnc.
-You no longer need to create the folder debian on sdcard.
Added
-ssh server (login with root and toor)
Removed.
-The image has been downsized from 2 gig to 1.4
debian for desire--help please
hi
I spent much time for searching debian or ubuntu for desire, but nothin worked
know i found this and i have download everything and start to install over the terminal
but the " sh /sdcard/deboot" is not workin to
there's only this answer:
# su
su
# sh /sdcard/deboot
sh /sdcard/deboot
[: not found
losetup: not found
mount: No such file or directory
mount: No such file or directory
mount: No such file or directory
mount: No such file or directory
busybox: not found
sysctl: not found
chroot: not found
may somebody help me?
i really want to have it on the desire
thanks
It looks like you had not installed busybox
Which ROM do you use ?
oh i'm sorry
i'm a newbie and don't really know what a rom is
but i had problems with busybox and there was a somebody who said i can get the app titanium and let it install the busybox
could you please show me a tut how to install busybox
maybe a german tut
thanks
Getting error at: sh /sdcard/deboot
line 5: syntax error near unexpected token `else'
Rosi1337 said:
Getting error at: sh /sdcard/deboot
line 5: syntax error near unexpected token `else'
Click to expand...
Click to collapse
dont know why that happened.. works on mine. syntax looks ok to me.
try with this one (attatched), it's the same but without the bit that's not working for you.
what rom are you using, i shall try to replicate the error so I can try to fix properly.
thepuechen said:
could you please show me a tut how to install busybox
maybe a german tut
thanks
Click to expand...
Click to collapse
There should be a guide on installing busybox somewhere if you want to search for it, i know i remember seeing one a while ago.
Too be honest, your better off just flashing a rom that includes busybox, it would be MUCH easier.
have a look here and see what takes your fancy, I would recomend defrost, because it is stable and easy to overclock.
Thanks mercianary,
It works fine!,
I use customised DeFroST_0.9b_uvonly with USB-host patch.
By the way I would like to add more options to kernel line.
Where can I find like a menu.lst file ? or How to add it to kernel line.
There is no /dev/graphics/* in running Debian console.
I would like to use FrameBuffer on running Debian.
thanks,
Android VNC won't connect Trying to get a handshake, but then says that VNC connection failed
please paste at that time log
jacobtc said:
Android VNC won't connect Trying to get a handshake, but then says that VNC connection failed
Click to expand...
Click to collapse
Please paste at that time log.
Maybe vnc server does not running.
tknv said:
Thanks mercianary,
It works fine!,
I use customised DeFroST_0.9b_uvonly with USB-host patch.
By the way I would like to add more options to kernel line.
Where can I find like a menu.lst file ? or How to add it to kernel line.
There is no /dev/graphics/* in running Debian console.
I would like to use FrameBuffer on running Debian.
thanks,
Click to expand...
Click to collapse
You should understand that this is not a really booted native linux. Instead you are working in a chroot environment. So there is no kernel running that can get parameters. Only the the stock kernel of your DeFroST. Also there is no FrameBuffer as the graphic hardware ist not accessible. Instead this approach uses a vnc-server to which you can connect via a local viewer.
The advantage of this approach is clear:
- run almost any linux package available in the debian repository
- use your phone as before with the nice android
The disadvantage:
- no graphic output, so no 3D-games (which are rare under linux on the arm platform ;-)
- you can crash your android by eating up to much ram (not such a problem - it restarts on its own and if not you just have to reboot)
Thread is dead?
It seems this thread is dead. The problems many users seem to have come from a dirty setup. The image is broken in many terms:
- wrong file permissions on important binaries, like su
- wrong file permissions on many device files under /dev, so the ttys are only accessible by root
- wrong permissions on other places so there are always errors when installing additonal software (e.g. with the man pages)
- wrong setup that uses the root user for the desktop - instead an unprivileged user should be used
- missing packages for timezones and locales so the time is only right, if you are in a UTC region and console programs having trouble displaying anything else then plain english
I can not recommend using this setup image. It is better to use one of the instructions available online to get a clean setup.
Su doesn't work because your allready root.
Getting anything but root to work would be a real pain.
As you said its a chroot environment, its never going to be perfect.
The image was made using debootstrap just like all the other 'clean' ones.
Yep, it is broken as hell, but it works for what most people would need it for...make,gcc,python,a proper web browser,torrents, and some emergency word processing on the train to work.
The problem most people have is not being able to mount the image, this is due to fro-yo a2sd taking up all the loop devices.
Just thought I'd add my 2 cents.
I tried this on a MIUI rom and the scripy didnt do anything - ie i ran it using:
"# sh /sdcard/deboot"
.....and all it said was:
"#"
I entered all the lines in the shell script but the last one said it failed to launch VLC and no commands registered property (not even ls)
So i tried it on Defrost 5.1, and the script still didn't work.
But when i entered everything manually, it did work. Not too sure about the green theme though.
But thanks alot! Saves me spending a few hours trying to coax a working debootstrap out of my computer.
Thanks!
Josh.
mercianary said:
Su doesn't work because your allready root.
Click to expand...
Click to collapse
Nope. Actually su works only for root. It's missing the setuid root flag like all other binaries that should have it set.
mercianary said:
Getting anything but root to work would be a real pain.
Click to expand...
Click to collapse
Nope. I am always working as a normal, unprivileged user in my chroot. You just have to be in the proper groups. No need to work as root. Android works also with an unprivileged user.
mercianary said:
As you said its a chroot environment, its never going to be perfect.
The image was made using debootstrap just like all the other 'clean' ones.
Yep, it is broken as hell, but it works for what most people would need it for...make,gcc,python,a proper web browser,torrents, and some emergency word processing on the train to work.
Click to expand...
Click to collapse
This is what I do not understand. There is no need that it is broken, as mine works without any errors. So I think something went wrong in creating yours. For sure a chroot is no running OS but you can server almost any service with it and run anything you want (if your ram does not get exhausted ;-).
mercianary said:
The problem most people have is not being able to mount the image, this is due to fro-yo a2sd taking up all the loop devices.
Click to expand...
Click to collapse
Yes. Everyone with a good rom should have a2sd+ (aka the old a2sd) which saves more space than the froyo one and leaves your loop devices for you.
jo

[How to] CIFS after 4.1.83 update

Anybody who wants to get CIFS working after 1.8.3 update (assumes you have cifs.ko and slow-work.ko from 1.5.7)
1) adb
2) su
3) mkdir /lib/modules/2.6.32.9-00007-g527fe10
4) cp <slow-work.ko location>/slow-work.ko /lib/modules/2.6.32.9-00007-g527fe10
5) cp <cifs.ko location>/cifs.ko /lib/modules/2.6.32.9-00007-g527fe10
6) depmod -a
7) modprobe slow-work.ko
8) modprobe cifs.ko
9) reboot
This will load up CIFS automatically after every boot.
-F
I will move this to development when you reach the posts limit so you can have the chance to discuss overthere.
Thanks,
Can you upload these two files
I don't have them from 1.5.7
Thanks much,
Foogl said:
Anybody who wants to get CIFS working after 1.8.3 update (assumes you have cifs.ko and slow-work.ko from 1.5.7)
1) adb
2) su
3) mkdir /lib/modules/2.6.32.9-00007-g527fe10
4) cp <slow-work.ko location>/slow-work.ko /lib/modules/2.6.32.9-00007-g527fe10
5) cp <cifs.ko location>/cifs.ko /lib/modules/2.6.32.9-00007-g527fe10
6) depmod -a
7) modprobe slow-work.ko
8) modprobe cifs.ko
9) reboot
This will load up CIFS automatically after every boot.
-F
Click to expand...
Click to collapse
Anybody who wants to get CIFS working after 1.8.3 update (assumes you have cifs.ko and slow-work.ko from 1.5.7)
Click to expand...
Click to collapse
Can you explain how to get CIFS if we don't have cifs.ko and slow-work.ko from 1.57? Not new to linux, but new to working with android so step-by-steps are apprecaited.
Thanks
ibscum said:
Can you explain how to get CIFS if we don't have cifs.ko and slow-work.ko from 1.57? Not new to linux, but new to working with android so step-by-steps are apprecaited.
Thanks
Click to expand...
Click to collapse
Well, you can build them from the source. But here are some useful ko's build for 1.57
Sorry for the noon question but what is cifs
Sent from my MB860 using XDA Premium App
CIFS ...
... is a network protocol for sharing various thinks (files, printers, ...).
See http://en.wikipedia.org/wiki/Server_Message_Block
You are using in Windows to share folders on network. Linux implementation is called Samba. If you have that capability on your phone, you can mount your home network shares, watch movies directly from your phone without actually copying them on the phone and all sort of good thinks.
It is absolutely essential service, if you want to use your phone more extensively.
Do you know how to get nls_utf8.ko working with cifs?
Insmod nls_utf8.ko says "error inserting 'nls_utf8.ko': -1 Invalid module format
Foogl said:
... is a network protocol for sharing various thinks
Click to expand...
Click to collapse
Grr, hopefully this doesn't cause a double post - having user error even getting a quick reply in...
I followed your directions above but had some issues. When copying the files over, I kept getting 'cannot stat ..." I gave it the full path, it was under the c directory, I even tried placing the files directly under C but no matter what it kept giving the same issue. I then just copied them onto the phone using mass storage method and then did a cp from adb shell to put them in the modules directory. I assume it needed to be copied using the shell as su in order for permissions to work out?
Then I did depmod -a, which worked fine. However, modprobe .. did not. It only retuns FATAL cannot find module etc. I tried giving it the full path to the files with no success. So a google search showed some people saying to try insmod instead. I treid that giving the full path to the files and it didn't return any errors. So I ASSUME it worked?
Not sure why this didn't go as smooth as your instructions. I feel like I hacked my way through it and it's likely gone awry. I wont be able to test this out with CIFS manager until later tonight. Any suggestions on where I went wrong or what I might need to redo?
Thanks!
Well, it worked like a champ. Thanks for the quick how-to and help. Now if I could find an app that will play .iso format movies it would all be perfect...
Update:
Not only does it work, it works great. Had some time to really play with it and I couldn't be happier. No more streaming from PC to phone (except for iso formats) via apps like VLC S&C. Simply browse to the mount which looks just like any other folder on my phone and open and play my media, or open my docs. Quality is excellent, can seek/skip whatever without any hesitation. In short, it acts just as though it's a local folder. I know this is old news to most of you. Just thought I'd share for those who aren't familiar with CIFS. I swear, this connects/mounts to my windows server and plays better than my windows PC.
Just to clarify, for those who my run into the same issues I did.
If it refuses to copy the files from your pc to phone under adb shell, just copy them to your phone via the usual usb mass storage drag/drop method. I placed them in a temp folder. then back to the adb shell, do the cp commands just adjust the path where the files live to the path on your phone (i.e. in the temp dir). I suppose you might be able to just move these into the modules dir using a file explorer w/ root privs but I wanted to be sure the correct file permissions existed by doing it with adb shell as su.
Then if, after doing depmod -a the modprobe doesn't work, use insmod. I gave the full path to where you copy these files in (/lib/modules/2.6.32.9-00007-g527fe10/<filename>). Again, not sure if thats needed or if it's smart enough to scan the full modules hierarchy for the file names.
This doesn't seem to work for me anymore after the GB OTA update. Anyone has it working for them?
norm688 said:
This doesn't seem to work for me anymore after the GB OTA update. Anyone has it working for them?
Click to expand...
Click to collapse
Me either..
Cifs.ko for 4.5.91 would be awesome.
Me either..
Cifs.ko for 4.5.91 would be awesome.
Click to expand...
Click to collapse
Agreed! Any help on getting Cifs running would be greatly appreciated.
Been searching for something and found this:
http://forum.xda-developers.com/showthread.php?t=1113191
Is there any harm in using a cifs.ko intended for a different device? I'm at work now, but might give this a shot when I get home to see if it's functional for Atrix. There's another thread under the development section asking the same question of where we can get a Gingerbread friendly module.
Any direction is appreciated.
theres a bunch of kernels (some included in ROMs) with baked in CIFs support such as the popular faux123's overclock/undervolt kernel.
Flash a kernel via clockwork, no muss no fuss.
theres a bunch of kernels (some included in ROMs) with baked in CIFs support such as the popular faux123's overclock/undervolt kernel.
Flash a kernel via clockwork, no muss no fuss.
Click to expand...
Click to collapse
Hmm. Haven't taken the leap to unlock the BL. Haven't had a need for a custom ROM yet. Really, the only functionality missing for my purposes is this cifs module. I'd rather not have to unlock and bake a custom ROM just for a cifs module if possible.
fair enough. I figure if I'm rooting around system files (pun intended) might as well go the whole hog.
Then again I've run custom ROMs on all 3 droids I've owned so I'm kinda used to the assumption that whatever stock is, I can get it much faster/better
ibscum said:
Is there any harm in using a cifs.ko intended for a different device?
Any direction is appreciated.
Click to expand...
Click to collapse
There shouldn't be... but I'm pretty sure the Module (cifs.ko) needs to be compiled for the specific kernel version. (2.6.32.9-00001-g41bc3e0 [email protected] #2) The Actual Android version (GB 2.3.4) does not matter.
So if you find a cifs.ko for THAT kernel version (or a Kernel thats close enough) it might work. It's trial and error.
There are lots of folks (far smarter than I am), who can grab the kernel source and compile a cifs.ko... I'll have to learn one of these days.
fair enough. I figure if I'm rooting around system files (pun intended) might as well go the whole hog.
Click to expand...
Click to collapse
True. I have the official OTA 2.3.4 update and haven't seen any clear direction on whether I can unlock - looks like most of the information is related to those who unlocked with the leaked update. Granted, I haven't put much time into it since I've been content up until now. Might be time to start digging for info.
So if you find a cifs.ko for THAT kernel version (or a Kernel thats close enough) it might work. It's trial and error.
There are lots of folks (far smarter than I am), who can grab the kernel source and compile a cifs.ko... I'll have to learn one of these days.
Click to expand...
Click to collapse
I believe the module I linked was from a Samsung device so I'm guessing it's a no go. Appreciate the info guys!
wintermute000 said:
theres a bunch of kernels (some included in ROMs) with baked in CIFs support such as the popular faux123's overclock/undervolt kernel.
Flash a kernel via clockwork, no muss no fuss.
Click to expand...
Click to collapse
Took this advice and flashed faux123's kernel.
Not only does cifs work... my data speeds went from 300k average.. to 2mb average.
Thanks for the advice

[GUIDE] Mount Windows or Linux share on Kindle using CifsManager

NOTE: These instructions may be outdated. If you've installed a recent ROM, the cifs drivers are probably built in, and you should be able to use Cifsmanager as long as the "Load cifs module" option is checked.
These are my notes for mounting a remote Windows share on my Kindle Fire. Note that this also works with CM7.
Why do this? My usage example is so I don't have to manually copy comics down to the Kindle for reading with Perfect Viewer. I can read them directly via Wifi on my Kindle. It's also a lot easier to manage the files on the PC.
Root is required
CifsManager Free
https://market.android.com/details?id=ws.plattner.cifsmanager&hl=en
Drivers
http://forum.xda-developers.com/showthread.php?t=1396960
Big thanks to riverzhou for providing these files!
Steps
1. Install root if necessary - find another guide for this
2. Ensure a proper share is available from PC
3. Install CifsManager - note, not available on Amazon appstore, so will have to install from Android Market, or side load
4. Copy drivers to /sdcard/cifs
5. CifsManager
Load cifs module -> checked
Load via insmod -> checked
Path to cifs.ko: /sdcard/cifs/slow-work.ko:/sdcard/cifs/cifs.ko
Use IP for share, like this: 192.168.15.100/sharename
Create folder on sdcard for mount point, like /sdcard/comics
Ectoplasmic said:
These are my notes for mounting a remote Windows share on my Kindle Fire. I have it working, and will tidy up the steps as time passes.
Why do this? My usage example is so I don't have to manually copy comics down to the Kindle for reading with Perfect Viewer. I can read them directly via Wifi on my Kindle. It's also a lot easier to manage the files on the PC.
Root is required
CifsManager Free
https://market.android.com/details?id=ws.plattner.cifsmanager&hl=en
Drivers
http://forum.xda-developers.com/showthread.php?t=1396960
Big thanks to riverzhou for providing these files!
Steps
1. Install root if necessary - find another guide for this
2. Ensure a proper share is available from PC
3. Install CifsManager - note, not available on Amazon appstore, so will have to install from Android Market, or side load
4. Copy drivers to /sdcard/cifs
5. CifsManager
Load cifs module -> checked
Load via insmod -> checked
Path to cifs.ko: /sdcard/cifs/slow-work.ko:/sdcard/cifs/cifs.ko
Use IP for share, like this: 192.168.15.100/sharename
Create folder on sdcard for mount point, like /sdcard/comics
Click to expand...
Click to collapse
Worked out pretty good for me! Thanks
I just tried this... worked well for me as well.
Nice, now if only I can get rooted again after the 6.2.1 update, I'll be able to follow my own guide again
Can someone explain how to set up the computer side of this? I got the Fire side working (I think), but I'm not sure how to get a remote share working under Windows.
brian112358: it really depends on your version of windows.
Ectoplasmic: You're Awesome. You just single handedly gave my kfire 2TB of resources while on my home network.
brian112358 said:
Can someone explain how to set up the computer side of this? I got the Fire side working (I think), but I'm not sure how to get a remote share working under Windows.
Click to expand...
Click to collapse
I was having problems with my Windows shared folder as well. After trying all kinds of variations on my path name I eventually started from scratch, but instead of manually entering my mount paths I let CifsManager do it for me. Then everything worked as it should, even though my manual entries were exactly the same as the automated ones. Go figure.
Anyway, I'm on a 32-bit Windows 7. First, find the folder you want to share and Right-Click>Properties>Sharing>Advanced Sharing>Check the Share this Folder box>Ok. Take note of the name. (Mine was "Downloads")
The share path for my folder is now:
192.168.1.101/Downloads
In CifsManager I followed the OP's instructions for setting the driver paths, but I did not create a folder for the mount point on the KF. Instead, I set Mount point prefix to: /mnt/sdcard/cifs. I then added a New Share Path and only entered the following:
Share Path: 192.168.1.101/Downloads
*Tap on Mount Point field and it should auto fill
That's it. CifsManager then created a new folder: /mnt/sdcard/cifs/Downloads. I do not have a password login for my pc so I left user as "guest" and password blank. Works perfectly now. Like I said, everything was exactly the same as my manual entries, but for some reason it works now
Hope that helps.
golucky said:
brian112358: it really depends on your version of windows.
Ectoplasmic: You're Awesome. You just single handedly gave my kfire 2TB of resources while on my home network.
Click to expand...
Click to collapse
Glad it's working. I also noticed a little better Wifi performance since the 6.2.1 update, at least with this app.
This is really handy to have. Saves a lot of trouble copying files to the Kindle. This is the sort of thing that needs to be baked into custom roms.
Followed the steps in the OP. Only thing is I'm still getting the same errors that I got before adding the drivers provided.
if I use the IP of the share I get : Mounting the share has failed with an error. mount: No such device or address. (I can browse to the IP/path with ESFE)
if I use the network name I get: Mounting the share has failed with an error. mount: Invalid argument.
I tried to insmod the cifs.ko via terminal and it threw an error code there too. "Exec format error"
I'm running NRG's ICS CM9 ROM 6/23 with Hashcode's 3.x kernel (dated Jun 8 in About tablet info)
Edit: or could it be the drivers just don't like the 3.x kernel. Leaning towards that after a little more reading.
ProfEngr said:
Followed the steps in the OP. Only thing is I'm still getting the same errors that I got before adding the drivers provided.
if I use the IP of the share I get : Mounting the share has failed with an error. mount: No such device or address. (I can browse to the IP/path with ESFE)
if I use the network name I get: Mounting the share has failed with an error. mount: Invalid argument.
I tried to insmod the cifs.ko via terminal and it threw an error code there too. "Exec format error"
I'm running NRG's ICS CM9 ROM 6/23 with Hashcode's 3.x kernel (dated Jun 8 in About tablet info)
Edit: or could it be the drivers just don't like the 3.x kernel. Leaning towards that after a little more reading.
Click to expand...
Click to collapse
I just installed cifs from the market. Did not bother with the drivers and cifs connected with my server the first time. I am on twa's job ROM.
ghost_og said:
I was having problems with my Windows shared folder as well. After trying all kinds of variations on my path name I eventually started from scratch, but instead of manually entering my mount paths I let CifsManager do it for me. Then everything worked as it should, even though my manual entries were exactly the same as the automated ones. Go figure.
Anyway, I'm on a 32-bit Windows 7. First, find the folder you want to share and Right-Click>Properties>Sharing>Advanced Sharing>Check the Share this Folder box>Ok. Take note of the name. (Mine was "Downloads")
The share path for my folder is now:
192.168.1.101/Downloads
In CifsManager I followed the OP's instructions for setting the driver paths, but I did not create a folder for the mount point on the KF. Instead, I set Mount point prefix to: /mnt/sdcard/cifs. I then added a New Share Path and only entered the following:
Share Path: 192.168.1.101/Downloads
*Tap on Mount Point field and it should auto fill
That's it. CifsManager then created a new folder: /mnt/sdcard/cifs/Downloads. I do not have a password login for my pc so I left user as "guest" and password blank. Works perfectly now. Like I said, everything was exactly the same as my manual entries, but for some reason it works now
Hope that helps.
Click to expand...
Click to collapse
Hi -
I set mine up just like this ... and it did indeed create the mount point /mnt/sdcard0/cifs/comic. I get the little green circle on CifsManager ..BUT.. when I click on the mount, CifsManager gives me this error: This feature depends on an installed file manager (astro/estrongs).
I do have Astro installed, and also Perfect Viewer (comic reader). I can navigate to /mnt/sdcard0/cifs/comic via root-manager and I see my comics, but can't load them. If I try to load them via any other method (while cifs mounted) I get file not found.
What could be the problem please ??
Thanks
Not sure if this will help anyone. I just came back to this thread thinking I needed the syntax for installing the drivers. Turns out I didn't.
Every relatively modern ROM I've installed (CM9, CM10) has not needed drivers, either on my KF, or my Samsung. However, I found it necessary to ensure "Load cifs module" is checked in the CifsManager settings.
Also, if you're using PerfectViewer, something I didn't know for quite a while is that you can actually browse and read from network shares directly from the app. Use the "open file" method and not the bookshelf, change from Local to Lan and go from there.
I still like to use CifsManager for various reasons

[Q] Connecting to Network Shares

I've been reading as much as I can if it is possible to mount a network share with your Nexus 10. I've downloaded both cifsmanager and mount manager, and can get neither to work.
I can connect to my network with mount manager and some other apps. But getting the Nexus 10 to see your shares as a local folder seems to be a big PIA.
Does anyone have it working, and can they document the steps?
I'm also using CM 10.1, but will flash to any kernel if it can be done.
Thanks
PT
ptmuldoon said:
I've been reading as much as I can if it is possible to mount a network share with your Nexus 10. I've downloaded both cifsmanager and mount manager, and can get neither to work.
I can connect to my network with mount manager and some other apps. But getting the Nexus 10 to see your shares as a local folder seems to be a big PIA.
Does anyone have it working, and can they document the steps?
I'm also using CM 10.1, but will flash to any kernel if it can be done.
Thanks
PT
Click to expand...
Click to collapse
Here is a link that discusses CIFS.
http://goo.gl/ot1mi
Also search for CIFS in the developer's forum that discusses your ROM. The issues with CIFS surround the addition of multi-user support in 4.2.2. That feature meant the mount command needed additional arguments plus you need to create RSA keys. The link above provides that information and other details.
I have it working. Requires a specific set of kernel modules, which means a specific ROM/kernel combination.
I use mrRobinsons AOKP PUB ROM with KTmanta kernel.
After that, I run a script as root to mount the CIFS share, in my case:
Username is the source PC windows username, and then password
The 192.168.1.101\files is the path to my share, extra \ needed for *nix escaping
The /data/media/0/TV-PC is the path on my tablet, empty directory where the mount will occur.
#!/system/bin/sh
#This will mount cifs shares if the network is available
insmod /system/lib/modules/md4.ko
insmod /system/lib/modules/cifs.ko
busybox mount -t cifs -o username=tv,password=<YOUR_PASSWORD>,rw,file_mode=0777,dir_mode=0777,uid=1000,gid=1000,unc=\\\\192.168.1.101\\files //192.168.1.101/files /data/media/0/TV-PC
sttovo said:
I have it working. Requires a specific set of kernel modules, which means a specific ROM/kernel combination.
I use mrRobinsons AOKP PUB ROM with KTmanta kernel.
After that, I run a script as root to mount the CIFS share, in my case:
Username is the source PC windows username, and then password
The 192.168.1.101\files is the path to my share, extra \ needed for *nix escaping
The /data/media/0/TV-PC is the path on my tablet, empty directory where the mount will occur.
#!/system/bin/sh
#This will mount cifs shares if the network is available
insmod /system/lib/modules/md4.ko
insmod /system/lib/modules/cifs.ko
busybox mount -t cifs -o username=tv,password=<YOUR_PASSWORD>,rw,file_mode=0777,dir_mode=0777,uid=1000,gid=1000,unc=\\\\192.168.1.101\\files //192.168.1.101/files /data/media/0/TV-PC
Click to expand...
Click to collapse
Thanks Stove. I'm changing to mrRobinsons AOKP PUB ROM with KTmanta kernel.
But when it comes to running the script, do you need to have the app open first before mounting the share? Or will the native apps find everything with not issues?
Just an update that I SSH'd into my Nexus 10 and ran the script in a terminal.
I now see the shares mounted in a terminal. But I do not see anything mounted when in either ES File Explorer any other app.
ptmuldoon said:
Just an update that I SSH'd into my Nexus 10 and ran the script in a terminal.
I now see the shares mounted in a terminal. But I do not see anything mounted when in either ES File Explorer any other app.
Click to expand...
Click to collapse
I think I had this problem too, but I regret I don't remember how i fixed it. I *think* it had something to do with permissions. Did you use the uid and gid arguments that I had in my script? Also, my CIFS mount point is under my data /sdcard (data) mount, if you're mounting under / then that might change things.
I run my script directly from my Nexus 10 in a terminal as root.
May want to look in the thread linked below, this is where I got what I needed for the script.
Edit - check post 62 in this link. Looks like it's related to setting the ownership bits… 0777
http://forum.xda-developers.com/showthread.php?t=2003836
I use esfileexplorer to access my samba shares. It's not a permanent mount in the root fs, but i can watch videos thid way.
nvertigo67 said:
I use esfileexplorer to access my samba shares. It's not a permanent mount in the root fs, but i can watch videos thid way.
Click to expand...
Click to collapse
Yes, but that's not the same as mounting a shared network folder. The idea is for all native apps to see your media as if it was locally on your device
sttovo said:
I think I had this problem too, but I regret I don't remember how i fixed it. I *think* it had something to do with permissions. Did you use the uid and gid arguments that I had in my script? Also, my CIFS mount point is under my data /sdcard (data) mount, if you're mounting under / then that might change things.
I run my script directly from my Nexus 10 in a terminal as root.
May want to look in the thread linked below, this is where I got what I needed for the script.
Edit - check post 62 in this link. Looks like it's related to setting the ownership bits… 0777
http://forum.xda-developers.com/showthread.php?t=2003836
Click to expand...
Click to collapse
Sttove.. You may be on to something. .. The script/mount command already is suing 0777, but I noticed i could not create a folder in terminal after mounting the share.
I hope to do some more testing and research when I get back home tonight.
ptmuldoon said:
Yes, but that's not the same as mounting a shared network folder. The idea is for all native apps to see your media as if it was locally on your device
Sttove.. You may be on to something. .. The script/mount command already is suing 0777, but I noticed i could not create a folder in terminal after mounting the share.
I hope to do some more testing and research when I get back home tonight.
Click to expand...
Click to collapse
One other thing I just thought of, how is your share setup on the server side? If you go into Advanced Sharing for the share, then Permissions, make sure you have Everyone set to read, write, etc… That leaves your share wide open, but at least something you can test.
sttovo said:
One other thing I just thought of, how is your share setup on the server side? If you go into Advanced Sharing for the share, then Permissions, make sure you have Everyone set to read, write, etc… That leaves your share wide open, but at least something you can test.
Click to expand...
Click to collapse
I can SSH into the Nexus10 via a terminal/putty from a PC. Create the mount point, and then see my share info. I am then also able to create a directory in terminal as well.
But when I than go to the Nexus and ESFile Explorer or any other app, the mapped share folder is blank.
I think I read something on blank mount/shares, but will have to keep looking into it.
Has anyone seen that happen before and know its cause?

How to mount a NFS share?

Hello there!
I'm not sure wether this is the right Forum thread, nor if it's even possible.
English is not my first language, but i hope i can make myself clear and explain my problem.
As in the title mentioned I just want to mount a nfs share into my filesystem so that i can access my media through a vpn whereever I go.
I'm using a Synology Diskstation as NAS and created some NFS-shares (tried version 3 and 4) which are accessable in my Network. It's working flawless with my raspberry pi and with my debian system. I don't want to use smb (cfis).
I want to use my favorit musicplayer to listen to my music, mounted via fstab in the musicfolder for example.
Right now i'm using the yatse app, works fine - but it's just a workaround....
I tried FreedomOS(stock kernel and elementalx)+busybox and Resurrection Remix(stockkernel and lightningkernel)+ busybox. All i get is Invalid argument or error messages. I just can't get it to work. It's a linux system, why can't i use a simple nfs share?
Any help would be apreciated.
Thanks in advance!
I used to mount a nfs share with busybox so be sure to have that installed.
next be sure to have a working VPN connection to your home network.
One more thing to check is that VPN connections are allowed to access the nfs shares. Dont know if you need to set this up with synology or that it's enabled by default.
Thanks for the response.
I have all permissions set to get access to the nfs-share, tried it without vpn aswell. The vpn itself is working like a charm.
I have access to my NAS via webinterface and sftp, i can control and stream from my raspberry pi aswell. No problems with the vpn for sure.
I'm using busybox aswell. Can you post me your mount command or your fstab line for the mount?
the1weasel said:
Thanks for the response.
I have all permissions set to get access to the nfs-share, tried it without vpn aswell. The vpn itself is working like a charm.
I have access to my NAS via webinterface and sftp, i can control and stream from my raspberry pi aswell. No problems with the vpn for sure.
I'm using busybox aswell. Can you post me your mount command or your fstab line for the mount?
Click to expand...
Click to collapse
I used this i believe.
Your kernel needs to support it.
https://gist.github.com/aldur/4a3f90a111b71662f056
maikvitesse said:
I used this i believe.
Your kernel needs to support it.
https://gist.github.com/aldur/4a3f90a111b71662f056
Click to expand...
Click to collapse
Thats exactly what i was told over here https://forum.xda-developers.com/oneplus-5/development/kernel-elementalx-op3-1-00-t3626808/post73156290#post73156290
I will follow up on that, thanks for pointing me in the right direction aswell.
Ok, i was able to mount the share.
Now that it's getting a general question i will follow up here. I posted what i did over here aswell and got it solved to this state.
I can see the files in the Terminal, but not in any App (explorer, musicplayer etc.).
As i already wrote here: https://forum.xda-developers.com/showpost.php?p=73161675&postcount=437 I'm guessing it's because i mounted as root so normal users can't use it. Or at least thats what I'm thinking.
I searched the forum already and just found a thread with someone having the same problem without solution.
Is there a way that i can use the mounted share with any app I want?
Just for the roundup.
Here is whats working:
mount a nfs-share through an terminal app. => Files are visible/browsable
whats not working:
Use the mounted nfs-share systemwide with any other app.
What i tried (used Termux):
mount into /mnt/remotenfs => files show up in terminal, just there.
mount into /storage/emulated/0/Music/remote => files show up in terminal, just there.
mounted the share and then started an explorer (solidexplorer) from terminal - same result. No fileaccess through explorer.
the1weasel said:
Just for the roundup.
Here is whats working:
mount a nfs-share through an terminal app. => Files are visible/browsable
whats not working:
Use the mounted nfs-share systemwide with any other app.
What i tried (used Termux):
mount into /mnt/remotenfs => files show up in terminal, just there.
mount into /storage/emulated/0/Music/remote => files show up in terminal, just there.
mounted the share and then started an explorer (solidexplorer) from terminal - same result. No fileaccess through explorer.
Click to expand...
Click to collapse
I think I suggested something like this as a way to glean some information about this problem in the other thread, but don't recall for certain what the outcome if any was:
At least since V5 and above of Android OS, there's been some sort of thread insularity that keeps another thread from seeing what some of the first one sees. (moreso than before V5). I figured that since fstab.qcom (or whatever the name of the actual startup file where "mount -a" is pointed) must contain the mounted partitions that are visible to all. If that's the case, it's either the startup mount daemon, or it is in one of the columns of each "mount" entry in fstab.*.
I think I suggested adding a mount entry without the "automount at start" parameter for your remote music. Just curious if that was tried? Also, I thought the file where these were entries were kept in M & N (6 & 7) had "*vold*" in the title.
I'm also curious about this and will look around for some better answer because it seems very non-linux / android that only the thread performing the action can see the result (although that is how local actions / variables act).
After some poking around: I think this link explains some possible reasons for this behavior, not that there isn't some way around it. Probably there is no way around it without some compromise of whatever privacy additions android OS is after. It sounds a lot like an SELinux & /proc FS change. https://stackoverflow.com/questions/38590140/file-system-changes-in-android-nougat
hachamacha said:
I think I suggested something like this as a way to glean some information about this problem in the other thread, but don't recall for certain what the outcome if any was:
At least since V5 and above of Android OS, there's been some sort of thread insularity that keeps another thread from seeing what some of the first one sees. (moreso than before V5). I figured that since fstab.qcom (or whatever the name of the actual startup file where "mount -a" is pointed) must contain the mounted partitions that are visible to all. If that's the case, it's either the startup mount daemon, or it is in one of the columns of each "mount" entry in fstab.*.
I think I suggested adding a mount entry without the "automount at start" parameter for your remote music. Just curious if that was tried? Also, I thought the file where these were entries were kept in M & N (6 & 7) had "*vold*" in the title.
I'm also curious about this and will look around for some better answer because it seems very non-linux / android that only the thread performing the action can see the result (although that is how local actions / variables act).
After some poking around: I think this link explains some possible reasons for this behavior, not that there isn't some way around it. Probably there is no way around it without some compromise of whatever privacy additions android OS is after. It sounds a lot like an SELinux & /proc FS change. https://stackoverflow.com/questions/38590140/file-system-changes-in-android-nougat
Click to expand...
Click to collapse
Thanks for the response, looks like you are much more into that android thing....
I just added
"10.11.12.10:/volume1/Audio /storage/emulated/0/Music/remote nfs nolock,ro defaults"
to the fstab.qcom . Doesn't mount at startup.
I realized some inconsitency in the ssh thing, sometimes it works mounting via ssh, sometimes not....strange. (mount: applet not found)
To be sure i'm doing all that stuff without ssh.
Edit:
For everyone else reading this. It's not about music, the musicfolder is just a random folder to see if it's working.
the1weasel said:
Thanks for the response, looks like you are much more into that android thing....
I just added
"10.11.12.10:/volume1/Audio /storage/emulated/0/Music/remote nfs nolock,ro defaults"
to the fstab.qcom . Doesn't mount at startup.
I realized some inconsitency in the ssh thing, sometimes it works mounting via ssh, sometimes not....strange. (mount: applet not found)
To be sure i'm doing all that stuff without ssh.
Edit:
For everyone else reading this. It's not about music, the musicfolder is just a random folder to see if it's working.
Click to expand...
Click to collapse
To add to that: It doesn't seem like any surprise that just putting an entry in the fstab.qcom doesn't work the same as the others. As I search around for a way to do this it becomes apparent that even a Synology app designed to do this (DS File) (Mounts a NFS share on Synology box and allows file transfers) isn't able to allow others to see it's mounted share.
Before I mounted a Synology folder using Synology DS File, I created a tmp folder and cd there and then did a mount > mountbefore.log. After the mount of the share while still running DS File pointing to my Synology folder, I did a mount > ./mountafter.log. I then did a diff -urN (and just a diff) ./mountbefore.log ./mountafter.log that showed no differences. That seems telling.
Also, I did the same with /proc/mounts /proc/mountinfo /proc/mountstatus before and after, and nothing showed up as different. Also I did a ps | grep DS to see whether the ps output gave me any clue as to what local mount point was used, but though I could see the DS process, I couldn't see it's mountpoints.
I'm pretty sure there's an SELINUX (or many) entrie(s) for the mounted share that prevent the usual visibility. I recall reading that "fixing" the /proc exploits was a big priority with the advent of SElinux so I'll look at that angle too. I don't think that the fact that DLNA works is of much use in this problem. It's really a solution to a different and specific problem.
hachamacha said:
To add to that: It doesn't seem like any surprise that just putting an entry in the fstab.qcom doesn't work the same as the others. As I search around for a way to do this it becomes apparent that even a Synology app designed to do this (DS File) (Mounts a NFS share on Synology box and allows file transfers) isn't able to allow others to see it's mounted share.
Before I mounted a Synology folder using Synology DS File, I created a tmp folder and cd there and then did a mount > mountbefore.log. After the mount of the share while still running DS File pointing to my Synology folder, I did a mount > ./mountafter.log. I then did a diff -urN (and just a diff) ./mountbefore.log ./mountafter.log that showed no differences. That seems telling.
Also, I did the same with /proc/mounts /proc/mountinfo /proc/mountstatus before and after, and nothing showed up as different. Also I did a ps | grep DS to see whether the ps output gave me any clue as to what local mount point was used, but though I could see the DS process, I couldn't see it's mountpoints.
I'm pretty sure there's an SELINUX (or many) entrie(s) for the mounted share that prevent the usual visibility. I recall reading that "fixing" the /proc exploits was a big priority with the advent of SElinux so I'll look at that angle too. I don't think that the fact that DLNA works is of much use in this problem. It's really a solution to a different and specific problem.
Click to expand...
Click to collapse
Hmm I just found this: https://forum.xda-developers.com/showthread.php?t=2106480 and will have a closer look into it later, I'm running out of time right now and have to leave.
But what I've read so far looks similar to the problem we are facing right now. Maye thats the way to go. I'll try it, as I said, later.
At this point i don't even care if it's smb or nfs as long as i can mount my stuff into the filesystem.
One other thing I noticed but haven't messed around with yet is that I was looking at the various mount commands for different implementations (not that any will just work like 2 versions ago), and noticed that only /system/xbin/mount is a soft link to /system/xbin/busybox (standard busybox link to allow using it various look-alike-to-linux commands.
But then I realized that /system/bin/mount is also there, also a soft-link to /system/bin/toybox (another busybox clone) and am wondering if it behaves any differently. Might be worth a look (but I doubt it). /system/bin/toybox is at least a different version of busybox and not linked to it.
Just looked at your last reply and realized that unfortunately the two links of interest are at the now nonexistant domain cyanogenmod.org. Maybe the diffs are worthwhile. Gotta work, Later.
hachamacha said:
One other thing I noticed but haven't messed around with yet is that I was looking at the various mount commands for different implementations (not that any will just work like 2 versions ago), and noticed that only /system/xbin/mount is a soft link to /system/xbin/busybox (standard busybox link to allow using it various look-alike-to-linux commands.
But then I realized that /system/bin/mount is also there, also a soft-link to /system/bin/toybox (another busybox clone) and am wondering if it behaves any differently. Might be worth a look (but I doubt it). /system/bin/toybox is at least a different version of busybox and not linked to it.
Just looked at your last reply and realized that unfortunately the two links of interest are at the now nonexistant domain cyanogenmod.org. Maybe the diffs are worthwhile. Gotta work, Later.
Click to expand...
Click to collapse
I'm back home already a little late but enaugh time for more researches.
This link:
https://github.com/mkasick/android_...mmit/b358bf82c079a577f011c167da8b65faef73a06e
is working. And really worth reading it and explains the visibility problem.
mkasick said:
Android 4.2 breaks Dalvik-apps that mount file systems to be shared with other apps. This includes CifsManager, Mount Manager, essentially anything that mounts cifs shares, FUSE file sytems, etc. The symptom is that the mounted contents appear fine to app that peforms the mount operation (assuming the app itself provides the ability to browse the contents), but every other app only sees an empty directory at the mount point.
It turns out that this problem is a side-effect of the approach used to implement multi-user storage in Android 4.2. I've explained the problem in detail in the commit log for a Gerrit issue we're reviewing for CyanogenMod 10.1 that addresses the problem:
Ideally, any 4.2 ROM can provide support for CifsManager by applying a change to Dalvik, and a second change to the boot ramdisk's init.rc:
Dalvik change: Zygote: Restrict slave mountspace so Dalvik apps can mount system-wide volumes
init.rc change: init.rc: Create /storage mountpoint so Dalvik can mark as slave in zygotes
Alternatively, ROMs that can't/prefer not to use a source-build Dalvik (libdvm), I've also provided a kernel patch that implements a similar workaround within the kernel. It also requires the above init.rc modification:
Kernel commit: Restrict slave mountspace so Dalvik apps can mount system-wide volumes
init.rc change: init.rc: Create /storage mountpoint so Dalvik can mark as slave in zygotes
With either of the above two fixes, CifsManager et al. should work when using a mountpoint outside /storage (and /mnt/shell/emulated). I'd recommend using "/mnt/cifs" or something similar. Attempting to mount inside /storage retains the previous behavior where the mount can not be seen by other apps.
Note that ROMs only need one of the above two fixes, although they are compatible with each other and will function correctly if both are present. The Dalvik approach is preferred over the kernel workaround where feasible. Attached are the three patches referenced in the issues/commits.
Attachments: (sry for editing the quote)
dalvik.diff: https://forum.xda-developers.com/attachment.php?attachmentid=1656555&d=1358548352
nitrc.diff: https://forum.xda-developers.com/attachment.php?attachmentid=1656556&d=1358548352
kernel.diff: https://forum.xda-developers.com/attachment.php?attachmentid=1656557&d=1358548352
Click to expand...
Click to collapse
Look at the attached files, the answer is in there, but i don't know what to do with it
Thanks. I've got to do some work from home before I go back to messing around with this. I read the zygote/Dalvik page. I'm sure I've read it before but had the impression that the information was obsolete, but maybe not!
I guess there a couple of problems for me with that information.
1) It is pretty old (2013 or so): I can't even find the pertinent file in my source tree anymore.
2) dalvik has undergone a lot of revisions since this was tried. I'm not at all sure the change looks very different from the way tmpfs is /storage mounted already.
(but I could try this one. I figure in real time, if it'd let me remount it with the changes, the worst it could do is lock me up).
3) the kernel I'm using doesn't appear to have that line in it, besides, I'd have to rebuild the kernel.
I guess I'd much rather find a userspace way around this problem if possible. I seems almost unthinkable that there'd be no other way (via the mount cmd for example and careful choice of mount folder) to mount something that could be seen by any process. I'll keep trying from that angle.
Regrouping: I was ssh'd into the synology server poking around when I noticed that the running nfs daemon (as shown by ps -ef | grep nfs) was nfs4. I didn't see that Android supported that so I decided to just move the entire exercise of mount.nfs4 over to Ubuntu 16.04 box.
I made sure I had all the NFS stuff installed and pretty much did these statement:
mount -t nfs -o ro x.x.x.x/share /mnt/remote # failed with bad argument
mount -t nfs4 -o ro x.x.x.x/share /mnt/remote # failed with bad argument
mount.nfs4 x.x.x.x/share /mnt/remote #failed with bad argument.
At that point I decided that android didn't matter if I couldn't figure out how to mount NFS shares from linux.
I then tried mount -t cifs -o ro,user=me,pass=pwd //server/share /mnt/remote
It mounted up immediately. I need to look up some working examples of someone using mount.nfs / 4 from anywhere to synology. While I'm sure I've used it before, I'm also pretty sure I don't recall how exactly the setup and syntax works.

Categories

Resources