forked from openwrt/packages
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add kernel-sdfat to repo Patch adapted from cryptomilk/kernel-sdfat#4 Updated/Successor to exfat-nofuse module Signed-off-by: Daniel Engberg <[email protected]>
- Loading branch information
Showing
2 changed files
with
69 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# | ||
# Copyright (C) 2018 Daniel Engberg <[email protected]> | ||
# | ||
# This is free software, licensed under the GNU General Public License v2. | ||
# See /LICENSE for more information. | ||
# | ||
|
||
include $(TOPDIR)/rules.mk | ||
include $(INCLUDE_DIR)/kernel.mk | ||
|
||
PKG_NAME:=kernel-sdfat | ||
PKG_VERSION:=20180522 | ||
PKG_RELEASE:=1 | ||
PKG_MAINTAINER:= | ||
PKG_LICENSE:=GPL-2.0 | ||
PKG_LICENSE_FILES:=LICENSE | ||
|
||
PKG_SOURCE_URL:=https://codeload.github.com/cryptomilk/$(PKG_NAME)/tar.gz/aa8183f?dummy=/ | ||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz | ||
PKG_HASH:=17e171bd9d6cdcb617d2e92ec8c06c308108e61fdf6ff70bcb1335b59d4d2c44 | ||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-aa8183f | ||
|
||
include $(INCLUDE_DIR)/package.mk | ||
|
||
define KernelPackage/fs-sdfat | ||
SUBMENU:=Filesystems | ||
TITLE:=sdFAT kernel driver | ||
FILES:=$(PKG_BUILD_DIR)/sdfat_fs.ko | ||
AUTOLOAD:=$(call AutoLoad,30,sdfat_fs,1) | ||
DEPENDS:=+kmod-nls-base +kmod-nls-utf8 +kmod-nls-cp437 +kmod-nls-iso8859-1 @BUILD_PATENTED | ||
endef | ||
|
||
define KernelPackage/fs-sdfat/description | ||
Kernel module for FAT12/16/32/VFAT and exFAT filesytems | ||
endef | ||
|
||
MAKE_OPTS:= \ | ||
ARCH="$(LINUX_KARCH)" \ | ||
CROSS_COMPILE="$(TARGET_CROSS)" \ | ||
M="$(PKG_BUILD_DIR)" | ||
|
||
define Build/Compile | ||
$(MAKE) -C "$(LINUX_DIR)" \ | ||
$(MAKE_OPTS) \ | ||
CONFIG_SDFAT_FS=m \ | ||
modules | ||
endef | ||
|
||
$(eval $(call KernelPackage,fs-sdfat)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
diff --git a/blkdev.c b/blkdev.c | ||
index 264c670..046f688 100644 | ||
--- a/blkdev.c | ||
+++ b/blkdev.c | ||
@@ -118,8 +118,14 @@ s32 bdev_readahead(struct super_block *sb, u64 secno, u64 num_secs) | ||
|
||
blk_start_plug(&plug); | ||
for (i = 0; i < num_secs; i++) { | ||
- if (i && !(i & (sects_per_page - 1))) | ||
+ if (i && !(i & (sects_per_page - 1))) { | ||
+#ifdef MODULE | ||
+ blk_finish_plug(&plug); | ||
+ blk_start_plug(&plug); | ||
+#else | ||
blk_flush_plug(current); | ||
+#endif | ||
+ } | ||
sb_breadahead(sb, (sector_t)(secno + i)); | ||
} | ||
blk_finish_plug(&plug); |
bb74cf4
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pprindeville
Hi, if you have a few minutes to spare I would be grateful.
I'm having trouble getting this filesystem driver to properly announce supported filesystems to the kernel but it probably boils down to me in the end. ;-)
As far as I can tell they're defined here:
https://github.com/cryptomilk/kernel-sdfat/blob/master/sdfat.c#L75
...and turned on by default here:
https://github.com/cryptomilk/kernel-sdfat/blob/master/Kconfig#L18
However, I'm not sure if Kconfig gets imported by default of if I need to define variables for make.
It currently looks like this which seems to confuse block-mount and friends.
It works if you try to mount manually (busybox mount) however it seems to be a bit noisy but that's because it tries all available filesystems?
A hack would be to symlink mount as mount.exfat but that seems like a strange solution as other modules works fine without that workaround.