Real init

This commit is contained in:
TBK 2019-03-09 01:16:55 +01:00
parent 541575b745
commit 8503633acc
6 changed files with 127 additions and 0 deletions

52
PKGBUILD Normal file
View File

@ -0,0 +1,52 @@
# Maintainer: TBK <aur at jjtc dot eu>
# Contributor: TBK <aur at jjtc dot eu>
pkgname=sdfat-dkms-git
_gitname=kernel-sdfat
pkgver=26.4f65bdd
pkgrel=1
pkgdesc='FAT12/16/32(VFAT)/64(exFAT) filesytems kernel module - use with DKMS'
arch=('any')
url='https://github.com/cryptomilk/kernel-sdfat'
license=('GPL2')
depends=('dkms')
makedepends=('git' 'linux-headers')
conflicts=('vfat' 'exfat' 'exfat-dkms-git' 'sdfat-dkms-git')
options=('!strip')
source=("${_gitname}::git+${url}.git"
dkms.conf
mount.exfat
fix-blkdev.patch
fix-makefile.patch
fix-module_alias.patch)
sha512sums=('SKIP'
'd61b198adef98554767c596e9708b64a6ed8cd2ffd382c8cb38938fc467d27e8849969ea94d803683d44397b4f5f0c512c01ed05d0f35fb03611f56401e19a31'
'85c54950e69e342221343b8b542fda47f80b9a7104e1097a7f1c9a09f69758ef8881c238d2740f3a21aa2b5cdcb3b9b8224c731ec2e39fa4632f56c2df85bc84'
'a84005de882a14a29252956f009d9785435a1dff7e578537eb5d0f222e2d89925aa95f883cd7817becac384ebaa4cc44ef636a41ea8e063b306cfa33add54a69'
'f55b3ed728ce8716aee0924cd7f27534e25a9e3984bec14e17839e91f1ad290b7e2c9ed85e4f93678f8a0c200c7ed087ec659fb57d84d55e35d4098e3296504e'
'5859133537c76b333eaeaa12f5144528891479d21062bbd90560e7f100f074c4f4b5f846b7ad4d720f2ea4595ace88c3bd3f9b67e5c76ff4b9e4d52989dacf96')
pkgver() {
cd ${_gitname}
echo $(git rev-list --count master).$(git rev-parse --short master)
}
prepare() {
# update PACKAGE_VERSION to pkgver
sed -i "s/PACKAGE_VERSION=\"[-._ 0-9a-zA-Z]*\"/PACKAGE_VERSION=\"${pkgver}\"/g" "${srcdir}/dkms.conf"
# apply patchs
cd ${_gitname}
patch -p1 < "${srcdir}/fix-blkdev.patch"
patch -p1 < "${srcdir}/fix-makefile.patch"
patch -p1 < "${srcdir}/fix-module_alias.patch"
}
package() {
rm -fr ${_gitname}/{.git,.gitignore}
mkdir -p "${pkgdir}/usr/src"
cp -r ${_gitname} "${pkgdir}/usr/src/sdfat-${pkgver}"
install -Dm644 "${srcdir}/dkms.conf" "${pkgdir}/usr/src/sdfat-${pkgver}/dkms.conf"
install -Dm755 "${srcdir}/mount.exfat" "${pkgdir}/usr/bin/mount.exfat"
}

13
dkms.conf Normal file
View File

@ -0,0 +1,13 @@
PACKAGE_VERSION="26.4f65bdd"
# Items below here should not have to change with each driver version
PACKAGE_NAME="sdfat"
MAKE[0]="make CONFIG_SDFAT_FS=m CONFIG_SDFAT_USE_FOR_EXFAT=y CONFIG_SDFAT_USE_FOR_VFAT=y -C ${kernel_source_dir} SUBDIRS=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build modules"
CLEAN="make -C ${kernel_source_dir} SUBDIRS=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build clean"
BUILT_MODULE_NAME="sdfat_fs"
DEST_MODULE_LOCATION="/kernel/fs/sdfat"
MODULES_CONF_OBSOLETES[0]="fat,vfat,exfat"
AUTOINSTALL="yes"
REMAKE_INITRD="yes"

18
fix-blkdev.patch Normal file
View File

@ -0,0 +1,18 @@
--- 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);

15
fix-makefile.patch Normal file
View File

@ -0,0 +1,15 @@
--- a/Makefile
+++ b/Makefile
@@ -13,10 +13,10 @@
all:
- make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
+ @$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
- make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
+ @$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
cscope:
rm -rf cscope.files cscope.files

26
fix-module_alias.patch Normal file
View File

@ -0,0 +1,26 @@
--- a/sdfat.c
+++ b/sdfat.c
@@ -5087,6 +5087,7 @@
#endif /* CONFIG_SDFAT_DBG_IOCTL */
.fs_flags = FS_REQUIRES_DEV,
};
+MODULE_ALIAS_FS("sdfat");
#ifdef CONFIG_SDFAT_USE_FOR_EXFAT
static struct file_system_type exfat_fs_type = {
@@ -5100,6 +5101,7 @@
#endif /* CONFIG_SDFAT_DBG_IOCTL */
.fs_flags = FS_REQUIRES_DEV,
};
+MODULE_ALIAS_FS("exfat");
#endif /* CONFIG_SDFAT_USE_FOR_EXFAT */
#ifdef CONFIG_SDFAT_USE_FOR_VFAT
@@ -5114,6 +5116,7 @@
#endif /* CONFIG_SDFAT_DBG_IOCTL */
.fs_flags = FS_REQUIRES_DEV,
};
+MODULE_ALIAS_FS("vfat");
#endif /* CONFIG_SDFAT_USE_FOR_VFAT */
static int __init init_sdfat_fs(void)

3
mount.exfat Normal file
View File

@ -0,0 +1,3 @@
#!/bin/sh
mount -t sdfat "$@"