Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

volicon not working? #57

Closed
jtolio opened this issue Oct 12, 2012 · 8 comments
Closed

volicon not working? #57

jtolio opened this issue Oct 12, 2012 · 8 comments

Comments

@jtolio
Copy link

jtolio commented Oct 12, 2012

hello,

i'm providing the fuse option "volicon=/path/to/icons.icns" but fuse is failing to mount with the error:

fuse: unknown option `modules=volicon'

it looks like somehow my dmg didn't provide the volicon module? what happened?

@bfleischer
Copy link
Member

Could you post all options you are using? Does /path/to/icons.icns contain spaces or other special characters?

@jtolio
Copy link
Author

jtolio commented Oct 12, 2012

I was worried about that, so I tried to make sure.

I'm generating a c-string of options and passing it to fuse like so:

struct fuse_args args = FUSE_ARGS_INIT(0, NULL);
fuse_opt_add_arg(&args, argv[0]);
fuse_opt_add_arg(&args, mystring);

where mystring = "-oallow_root,max_read=131072,max_write=131072,fsname=MyFS,subtype=fs,nolocalcaches,volname=MyFS,volicon=/Applications/Chess.app/Contents/Resources/chess.icns"

And that's when I get "fuse: unknown option `modules=volicon'"

What should I check next?

@jtolio
Copy link
Author

jtolio commented Oct 23, 2012

any other ideas?

@bfleischer
Copy link
Member

Are you using the lowlevel FUSE interface as in calling fuse_lowlevel_new(...) instead of fuse_new(...) or fuse_main(...)?

The lowlevel interface does not allow loading FUSE modules. Since the volicon option tries to load the volicon module it won't work on the lowlevel interface. You have basically three options:

  • Use the higher level FUSE interface
  • Use the lowlevel FUSE interface without a volume icon (drop volicon=/Applications/Chess.app/Contents/Resources/chess.icns from mystring and you should be fine)
  • Use the the lowlevel interface and handle the volume icon yourself. You just need to place the icon file in the root of the FUSE volume and name it .VolumeIcon.icns. Finder will pick it up automatically.

@jtolio
Copy link
Author

jtolio commented Oct 25, 2012

nice, so I made a .VolumeIcon.icns but it's not getting picked up. are there any special attributes or stat fields the volicon module is setting?

@bfleischer
Copy link
Member

Please take a look at volicon.c in lib/modules of the fuse repository: https://github.com/osxfuse/fuse/blob/fuse-2.7/lib/modules/volicon.c#L411. You need to tweak your volume's xattrs.

@jtolio
Copy link
Author

jtolio commented Oct 25, 2012

doh, i'm using auto_xattr. do you think providing my own ._.VolumeIcons.icns file would be easy?

@bfleischer
Copy link
Member

I don't know. I've never tried to fake AppleDouble files.

Since the original issue has been resolved I'm going to close this ticket.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants