| Summary: | Add FUSE: File system in Userspace | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Randy MacLeod <randy.macleod> |
| Component: | core | Assignee: | Hongxu Jia <hongxu.jia> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | enhancement | ||
| Priority: | Low | CC: | bluelightning, bruce.ashfield, hongxu.jia, kai.kang, liezhi.yang, mark.hatle, meta.mr.watcher, meta.watcher, ning.zhang, Qi.Chen, sen.zhang, sgw, tom.zanussi, yi.zhao |
| Version: | 1.5 | ||
| Target Milestone: | 1.5 M1 | ||
| Hardware: | All | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | Don't know | |
|
Description
Randy MacLeod
2013-04-03 04:59:27 UTC
Oops, moved from kernel doamin since we already have the FUSE module: cat packages-split/kernel-dev/usr/src/kernel/.config CONFIG_FUSE_FS=m FYI, both fuse and sshfs-fuse are available in meta-oe. Yes, not only fuse and sshfs-fuse but also gvfs, ifuse, smbnetfs, owfs, ntfs-3g are available in meta-oe. Hi Saul, Is it necessary to move fuse and the related from meta-oe to oe-core? I have tested fuse and ntfs-3g in oe-core, and it works well. //Hongxu Hi Saul, About this feature, the following is the goal and mean: 1, Add fuse to oe-core and let target system could support `ntfs' and `exfat' filesystems. 2, Add four packages to oe-core: 1) fuse, move fuse_2.9.2 from meta-oe; 2) ntfs-3g-ntfsprogs, moved from meta-oe, and update from 2011.4.12 to 2013.1.13; 3) fuse-exfat_1.0.1, it doesn't exist in meta-oe and newly added to oe-core; 4) exfat-utils_1.0.1, it doesn't exist in meta-oe and newly added to oe-core; //Hongxu Test Case *Steps 1, prepare target: e-menlow 2 usb sticks: one for boot and install, another for filesystem test. 2, config, conf/local.conf: 247 MACHINE ?= "emenlow-noemgd" 247 IMAGE_INSTALL_append = " ntfs-3g ntfsprogs fuse-exfat exfat-utils" conf/bblayers.conf: 8 BBLAYERS ?= " \ 9 /home/jiahongxu/yocto/poky/meta \ 10 /home/jiahongxu/yocto/poky/meta-yocto \ 11 /home/jiahongxu/yocto/poky/meta-yocto-bsp \ 12 /home/jiahongxu/yocto/poky/meta-intel \ 13 /home/jiahongxu/yocto/poky/meta-intel/meta-emenlow \ 3, build image bitbake core-image-sato 4, load image to emenlow Test Case TC-2927: boot and install from usb 5, open a terminal/ssh of e-menlow Test Case TC-2955: remote access by ssh 6, make exfat filesystem on the testing usb storage 1) plug usb stick into e-menlow 2) execute `mkfs.exfat /dev/sdc1' 7, test usb stick with exfat filesystem is accessible Test Case TC-2947: usb mount Test Case TC-2948: usb read files Test Case TC-2949: usb umount Test Case TC-2950: usb write files 8, make ntfs filesystem on the testing usb storage 1) plug usb stick into e-menlow, if mounted, invoke `umount /dev/sdc1' first. 2) execute `mkfs.ntfs -f /dev/sdc1' 9, test usb stick with ntfs filesystem is accessible Test Case TC-2947: usb mount Test Case TC-2948: usb read files Test Case TC-2949: usb umount Test Case TC-2950: usb write files *Expected Results: 1, build image success 2, make exfat filesystem success root@emenlow-noemgd:~# mkfs.exfat /dev/sdc1 mkexfatfs 1.0.1 Creating... done. Flushing... done. File system created successfully. 3, make ntfs filesystem success root@emenlow-noemgd:~# mkfs.ntfs -f /dev/sdc1 Cluster size has been automatically set to 4096 bytes. Creating NTFS volume structures. mkntfs completed successfully. Have a nice day. 4, While the usb's filesystem type is exfat or ntfs, system can mount plugged usb automatically, read files from usb, write files to usb and unmout usb automatically. This looks like useful work, but is there a need to add these to OE-Core, or can they just be maintained/added to in meta-oe where they are currently? (In reply to comment #6) > This looks like useful work, but is there a need to add these to OE-Core, or > can they just be maintained/added to in meta-oe where they are currently? Hi Saul, What is your suggestion? oe-core or meta-oe? Which one should I maintain/add? //Hongxu Wind River uses FUSE across many projects, layers, images and is now common functionality from our point of view. oe-core is the component that is imported and supported as a whole, not meta-oe, hence why we are looking to drive fuse down to oe-core. .. but obviously, we are just one opinion on what sits where. At this point given the number of items that would need to move, I would suggest either a patch of RFC to the meta-oe to move the filesystem related bits into a meta-oe/meta-filesystems layer similar to meta-networking. This would allow that layer to be included independant of the larger meta-oe recipe set. You would have to survey all the FS related items, and propose what should move, I would not move things like nautlius, gedit or gnome-vfs, it will be a tough argument to move gvfs since it's a gnome item in meta-gnome already. This will require someone (like WR) to step up and maintain this new layer like the meta-networking layer. Create a layer meta-filesystems to collect additional filesystems recipes: Fuse is included in the layer: * Git repository git://git.openembedded.org/meta-openembedded * Subdirectory meta-filesystems * Dependencies git://git.openembedded.org/openembedded-core git://git.openembedded.org/meta-openembedded meta-oe Survey the filesystem related items in meta-oe, and move them to the
meta-openembedded/meta-filesystems layer
*1, already layout in meta-oe, they will be moved to meta-filesystems with
the exception of lvm2 and udisks.
- lvm2 is depended by udisks/cryptsetup/multipath-tools.
- udisks has close relations with systemd.
meta-oe--------------->|recipes-core---------------->|f2fs-tools
|recipes-extended------------>|owfs
|recipes-connectivity-------->|ifuse
|sshfs-fuse
|smbnetfs
|recipes-support------------->|ntfs-3g-ntfsprogs
|xfsprogs
|cramfs
|physfs
|fuse
|lvm2
|udisks
*2, already layout in oe-core/meta, they will stay where they are.
oe-core/meta---------->|recipes-devtools------------>|file
|dosfstools
|squashfs-tools
|devel-config------->nfs-export-root
|btrfs-tools
|genext2fs
|e2fsprogs
|util-linux
|packagegroups------>packagegroup-base.bb
|sysfsutils
|recipes-extended------------>|stat
|recipes-support------------->|attr
*3, TOBE layout in meta-filesystems layer.
ifuse, sshfs-fuse, owfs, smbnetfs, ntfs-3g-ntfsprogs, fuse-exfat are based on fuse
meta-filesystems------>|recipes-filesystems--------->|ifuse
|sshfs-fuse
|owfs
|ntfs-3g-ntfsprogs
|cramfs
|smbnetfs
|fuse-exfat
|recipes-support------------->|fuse
|physfs
|recipes-utils--------------->|f2fs-tools
|exfat-utils
|xfsprogs
*4, upgrade and newly added
1) 4 Packages need to be upgraded
owfs, 2.8p20-->2.9p1
ntfs-3g-ntfsprogs, 2011.4.12-->2013.1.13
xfsprogs, 3.1.8-->3.1.11
fuse, 2.9.2-->2.9.3
2) 2 Packages are newly added to meta-filesystems
fuse-exfat: add version 1.0.1
exfat-utils: add version 1.0.1
|