I imported the existing repository into git and split it up into
fuse.kext and libfuse (because they really are separate projects).
The libfuse part contains:
1) fuse-current.tar.gz + fuse-current-macosx.patch (libfuse/v2.7.3 tag)
2) import of the upstream fuse cvs repository with the macosx patch
forward ported to 2.8.1 (libfuse branch)
The fuse.kext part contains:
1) the fusefs xcode project from core/10.5/fusefs extracted using
git-subtree (fuse.kext/v2.7.1 tag)
2) the above with a few patches applied in an attempt to make it work
on a 64bit kernel (fuse.kext branch).
Needless to say, it doesn't work yet. But at least it doesn't
crash/panic the kernel (at least in my preliminary tests not). However
the code isn't perfect yet. Sometimes the kernel will lock up for a few
seconds (show the beachball, mouse moves but system otherwise
unresponsive). The problem seems to be that the kernel is waiting on a
response from the userspace but doesn't receive it, and after the
timeout (a few seconds) it gives up, unlocks everything goes back to
normal. I see 'MacFUSE: force ejecting (no response from user space 5)'
in dmesg. The 'hello' example from libfuse works fine, the lockup
usually happens when running the libfuse test application in the
fusexmp_fh filesystem. Or even just cd'ing into the fusexmp_fh
filesystem and running 'ls' sometimes is enough to trigger it. After the
lockup, I have to use 'kill -9' to stop the filesystem, but once it's
stopped and unmounted, unloading the kext works without problems.
If anyone knows how to debug the macosx kernel, I'd be interested to
know how. I tried to enable all the debugging code in the fusefs kext
but it didn't produce any meaningful output. Maybe I need to add some
more IOLog()'s to see what's going on inside the kernel.
If you want to try to build it and help, here is how you can get the
code. These instructions will overwrite your current installation, so
use with care!
git clone -b libfuse git://github.com/wereHamster/macfuse.git libfuse
git clone -b fuse.kext git://github.com/wereHamster/macfuse.git fuse.kext
cd libfuse
glibtoolize -fi; autoreconf -fi
sh darwin_configure.sh $PWD/../fuse.kext
make && make install
cd ../fuse.kext
./scripts/install.sh
Now you can try one of the examples:
cd ../libfuse/examples
mkdir mnt && ./hello -d ./mnt
--
You received this message because you are subscribed to the Google Groups
"MacFUSE" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/macfuse?hl=en.