I managed to successfully compile emmcfs.ko on Fedora 19 kernel 3.10, and have tested that mount/umount is working. The compiling procedure is a little different to what is described on this thread. I tried to make a patch that is compatible with Fedora and Ubuntu but I can't test on Ubuntu. Let us know if you try it.
I have attached a patch file, based on
arkoPL's patch for all kernels since 2.6.35 with additional patches. The patch is intended to be used with
juuso' modified source.
The patches include:
- All of arkoPL's patches including umount fix
- Adds bash script "osfinder_app" that tries to check if the current distribution is Fedora/Redhat {Thanks to iamthesgt}
- Make sets permissions for "osfinder_app" to 755 automatically
stop make from crashing when permissions are too strict
- Make uses Fedora kernel sources directory if "osfinder_app" identifies Redhat, otherwise it uses the default kernel sources directory
kernel sources directory is different on Fedora
- #include <linux/aio.h> in inode.c
Fixes "/emmcfs/inode.c:1561:26: error: dereferencing pointer to incomplete type struct file *file = iocb->ki_filp;" compile error on Fedora 19 kernel 3.10
Now for the headache! On default Fedora 19 kernel 3.10 kernel, the module will not compile and complains that emmcfs.ko is using GPL symbols and that it violates GPL requirements. For me it was easiest to compile a custom kernel without any GPL symbols. It works for me but there is probably a better solution.
NOTE: The following breaks GPL-enforcement for all kernel modules. Proceed at your own risk! You are responsible to make sure that any software that you distribute complies with all licensing requirements that may be applicable including GPL.
See
Fedora Project - Building a custom kernel. The following is a rough method to patch the kernel source:
Code: Select all
#### cd into kernel source code directory (e.g. ~/rpmbuild/BUILD/kernel-3.10.fc19.new/linux-3.10.9-200.fc19.x86_64/) then
find . -type f -name '*.c' | xargs grep -l 'EXPORT_SYMBOL_GPL(' | xargs sed -i 's/EXPORT_SYMBOL_GPL(/EXPORT_SYMBOL(/g'
#### I only tested the *.c patches. It might be useful to also patch *.h:
find . -type f -name '*.h' | xargs grep -l 'EXPORT_SYMBOL_GPL(' | xargs sed -i 's/EXPORT_SYMBOL_GPL(/EXPORT_SYMBOL(/g'
Now the module should compile!
Edit: Forgot to attach patch
You do not have the required permissions to view the files attached to this post.