Can't compile UFSD 9.4 Pro with Ubuntu Kernel 4.8. Suggestions welcome.
I am a little new to Linux and not completely up to speed. Ive tried googling this to no avail. So far it seems that the only answer seems to be to reinstall my system and keep the kernel at 4.4.
If anyone has any suggestions or would like to view the output of the make or config logs let me know and I'll be happy to upload the requested info.
I'm running Yakkety with kernel 4.8.0-37 on an older Intel NUC with an i5 and I'd rather not reinstall right now.
TIA.
AW: Can't compile UFSD 9.4 Pro with Ubuntu Kernel 4.8. Suggestions welcome.
Did you find a solution? I have the same problem. UFSD 9.4Pro does not install with new "virgin" Ubuntu 16.04.2LTS installation
Re: AW: Can't compile UFSD 9.4 Pro with Ubuntu Kernel 4.8. Suggestions welcome.
Hi guys! Please create a support ticket via MyParagon account (https://my.paragon-software.com/#/login) with your issue and ask for a new build with 4.8 support. Cheers!
Re: Can't compile UFSD 9.4 Pro with Ubuntu Kernel 4.8. Suggestions welcome.
I can not login on my.paragon-software.com - here is the error I get:
Code:
Paragon-147-FRE_NTFS_Linux_9.4_Express$ make driver
make -C "/lib/modules/4.4.0-72-generic/build" SUBDIRS="/Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express" O="/lib/modules/4.4.0-72-generic/build" V=1 modules 2>&1
make[1]: Verzeichnis „/usr/src/linux-headers-4.4.0-72-generic“ wird betreten
make -C /usr/src/linux-headers-4.4.0-72-generic KBUILD_SRC=/usr/src/linux-headers-4.4.0-72-generic \
-f /usr/src/linux-headers-4.4.0-72-generic/Makefile modules
make[2]: Verzeichnis „/usr/src/linux-headers-4.4.0-72-generic“ wird betreten
test -e include/generated/autoconf.h -a -e include/config/auto.conf || ( \
echo >&2; \
echo >&2 " ERROR: Kernel configuration is invalid."; \
echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.";\
echo >&2 " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
echo >&2 ; \
/bin/false)
mkdir -p /Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express/.tmp_versions ; rm -f /Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express/.tmp_versions/*
make -f /usr/src/linux-headers-4.4.0-72-generic/scripts/Makefile.build obj=/Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express
gcc -Wp,-MD,/Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express/ifslinux/.ufsdjnl.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/5/include -I/usr/src/linux-headers-lbm- -I/usr/src/linux-headers-4.4.0-72-generic/arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -I/usr/src/linux-headers-4.4.0-72-generic/include -Iinclude -I/usr/src/linux-headers-4.4.0-72-generic/arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I/usr/src/linux-headers-4.4.0-72-generic/include/uapi -Iinclude/generated/uapi -include /usr/src/linux-headers-4.4.0-72-generic/include/linux/kconfig.h -Iubuntu/include -I/usr/src/linux-headers-4.4.0-72-generic/ubuntu/include -I/Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express -D__KERNEL__ -fno-pie -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-pie -no-pie -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -fno-delete-null-pointer-checks -Wno-maybe-uninitialized -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DCC_HAVE_ASM_GOTO -include /Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express/ifslinux/fs_conf.h -DUFSD_DEVICE=ufsd -DUFSD_USE_ASM_DIV64 -DNDEBUG -g0 -include drv_config.h -DUFSD_BUILD_HOST=\"`hostname`\" -Wall -Werror -Wno-unknown-pragmas -Wno-date-time -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ufsdjnl)" -D"KBUILD_MODNAME=KBUILD_STR(jnl)" -c -o /Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express/ifslinux/.tmp_ufsdjnl.o /Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express//ifslinux/ufsdjnl.c
if [ "-pg" = "-pg" ]; then if [ /Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express/ifslinux/ufsdjnl.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount "/Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express/ifslinux/ufsdjnl.o"; fi; fi;
ld -m elf_x86_64 -s -O2 -d -X -r -o /Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express/jnl.o /Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express/ifslinux/ufsdjnl.o
gcc -Wp,-MD,/Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express/ifslinux/.ufsdvfs.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/5/include -I/usr/src/linux-headers-lbm- -I/usr/src/linux-headers-4.4.0-72-generic/arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -I/usr/src/linux-headers-4.4.0-72-generic/include -Iinclude -I/usr/src/linux-headers-4.4.0-72-generic/arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I/usr/src/linux-headers-4.4.0-72-generic/include/uapi -Iinclude/generated/uapi -include /usr/src/linux-headers-4.4.0-72-generic/include/linux/kconfig.h -Iubuntu/include -I/usr/src/linux-headers-4.4.0-72-generic/ubuntu/include -I/Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express -D__KERNEL__ -fno-pie -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-pie -no-pie -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -fno-delete-null-pointer-checks -Wno-maybe-uninitialized -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DCC_HAVE_ASM_GOTO -include /Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express/ifslinux/fs_conf.h -DUFSD_DEVICE=ufsd -DUFSD_USE_ASM_DIV64 -DNDEBUG -g0 -include drv_config.h -DUFSD_BUILD_HOST=\"`hostname`\" -Wall -Werror -Wno-unknown-pragmas -Wno-date-time -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ufsdvfs)" -D"KBUILD_MODNAME=KBUILD_STR(ufsd)" -c -o /Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express/ifslinux/.tmp_ufsdvfs.o /Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express//ifslinux/ufsdvfs.c
/Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express//ifslinux/ufsdvfs.c:118:9: note: #pragma message: PAGE_SHIFT=12
#pragma message "PAGE_SHIFT=" __stringify(PAGE_SHIFT)
^
/Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express//ifslinux/ufsdvfs.c: In function ‘ufsd_xattr_set_acl’:
/Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express//ifslinux/ufsdvfs.c:5451:30: error: passing argument 1 of ‘posix_acl_valid’ from incompatible pointer type [-Werror=incompatible-pointer-types]
err = posix_acl_valid( acl );
^
In file included from /usr/src/linux-headers-4.4.0-72-generic/include/linux/posix_acl_xattr.h:12:0,
from /Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express//ifslinux/ufsdvfs.c:143:
/usr/src/linux-headers-4.4.0-72-generic/include/linux/posix_acl.h:84:12: note: expected ‘struct user_namespace *’ but argument is of type ‘struct posix_acl *’
extern int posix_acl_valid(struct user_namespace *, const struct posix_acl *);
^
/Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express//ifslinux/ufsdvfs.c:5451:13: error: too few arguments to function ‘posix_acl_valid’
err = posix_acl_valid( acl );
^
In file included from /usr/src/linux-headers-4.4.0-72-generic/include/linux/posix_acl_xattr.h:12:0,
from /Daten/Bernd/ntfs/Paragon-147-FRE_NTFS_Linux_9.4_Express//ifslinux/ufsdvfs.c:143:
/usr/src/linux-headers-4.4.0-72-generic/include/linux/posix_acl.h:84:12: note: declared here
extern int posix_acl_valid(struct user_namespace *, const struct posix_acl *);
^
cc1: all warnings being treated as errors
It is here that someone suggests that there have been a posix function change in which seems to lead to the error as far as I can understand.
Re: Can't compile UFSD 9.4 Pro with Ubuntu Kernel 4.8. Suggestions welcome.
and
Quote:
linux-headers-4.4.0-72-generic
? Just a guess.
Re: Can't compile UFSD 9.4 Pro with Ubuntu Kernel 4.8. Suggestions welcome.
Ups, I tried to be clever not to open another thread, but actually I am not on kernel 4.8 as stated in the topic of this thread:
Code:
uname -r
4.4.0-72-generic
Re: Can't compile UFSD 9.4 Pro with Ubuntu Kernel 4.8. Suggestions welcome.
Hi,
The problem is that you are trying to install on kernel 4.8. a version of the Paragon driver, which supports kernels only up to 4.4. That`s not a good idea.
Here are possible solutions:
1) To purchase the Paragon driver Pro version and get for free a driver, supporting up to 4.10. kernel. That`s because the Express version being free does not suppose any upgrade, while the Pro version supposes a free upgrade within a year after the purchase.
2) To downgrade Ubuntu to kernel 4.4
Re: Can't compile UFSD 9.4 Pro with Ubuntu Kernel 4.8. Suggestions welcome.
Hi Folks,
Same here. Running Linux MINT 18.1 and ran the command; uname -r and get 4.4.0-53-generic. I purchased the Professional Version of this product, so I do not understand when I ran the install.sh script as root...it sort of did nothing I could see. Perhaps it is working, but how would I tell? Where should I look to see the driver and where does one enter the licensing codes I received in my email? Do I need those codes?
Want to enter a support ticket, but the site is down due to maintenance.
Chris
Re: Can't compile UFSD 9.4 Pro with Ubuntu Kernel 4.8. Suggestions welcome.
Hi
There was a change in function posix_acl_valid() where the new implementation required additional argument to be supplied
old:
Re: Can't compile UFSD 9.4 Pro with Ubuntu Kernel 4.8. Suggestions welcome.
Hi
There was a change in function posix_acl_valid() where the new implementation required additional argument to be supplied
old:
Code:
posix_acl_valid( posix_acl )
new:
Code:
posix_acl_valid( user_namespace, posix_acl )
so in order to fix the problem the file ifslinux/ufsdvfs.c needs some changes in function ufsd_xattr_set_acl() starting at line line: 5421
The first argument is not supplied in line 5451
Code:
err = posix_acl_valid( acl );
In order to fix that I "borrowed" user_namespace definition from another place in the file (line 4692).
File should contain this updated function.
Code:
///////////////////////////////////////////////////////////
// ufsd_xattr_set_acl
//
// Helper function for ufsd_xattr_acl_access_set/ufsd_xattr_acl_default_set
///////////////////////////////////////////////////////////
static int
ufsd_xattr_set_acl(
IN struct inode *i,
IN int type,
IN const void *value,
IN size_t size
)
{
#include <linux/user_namespace.h>
// wait for 'init_user_ns' to be non G.P.L.
struct user_namespace user_ns = {
.uid_map = { .nr_extents = 1, .extent[0] = { .count = ~0u, }, },
.gid_map = { .nr_extents = 1, .extent[0] = { .count = ~0u, }, },
.projid_map = { .nr_extents = 1, .extent[0] = { .count = ~0u, }, },
#if defined HAVE_STRUCT_USER_NAMESPACE_COUNT && HAVE_STRUCT_USER_NAMESPACE_COUNT
.count = ATOMIC_INIT(3),
#else
.kref = { .refcount = ATOMIC_INIT(3), },
#endif
.owner = GLOBAL_ROOT_UID,
.group = GLOBAL_ROOT_GID,
#if defined HAVE_STRUCT_USER_NAMESPACE_PROC_INUM && HAVE_STRUCT_USER_NAMESPACE_PROC_INUM
.proc_inum = PROC_USER_INIT_INO,
#endif
};
struct posix_acl *acl;
int err;
if ( !UFSD_SB( i->i_sb )->options.acl )
return -EOPNOTSUPP;
if ( !inode_owner_or_capable( i ) )
return -EPERM;
if ( NULL == value )
acl = NULL;
else {
acl = Posix_acl_from_xattr( value, size );
if ( IS_ERR( acl ) )
return PTR_ERR(acl);
if ( NULL != acl ) {
err = posix_acl_valid( &user_ns, acl );
if ( err )
goto release_and_out;
}
}
err = ufsd_set_acl( i, acl, type );
release_and_out:
if ( NULL != acl )
ufsd_posix_acl_release( acl );
return err;
}
Main changes are:
1. Added user_ns structure:
Code:
#include <linux/user_namespace.h>
// wait for 'init_user_ns' to be non G.P.L.
struct user_namespace user_ns = {
.uid_map = { .nr_extents = 1, .extent[0] = { .count = ~0u, }, },
.gid_map = { .nr_extents = 1, .extent[0] = { .count = ~0u, }, },
.projid_map = { .nr_extents = 1, .extent[0] = { .count = ~0u, }, },
#if defined HAVE_STRUCT_USER_NAMESPACE_COUNT && HAVE_STRUCT_USER_NAMESPACE_COUNT
.count = ATOMIC_INIT(3),
#else
.kref = { .refcount = ATOMIC_INIT(3), },
#endif
.owner = GLOBAL_ROOT_UID,
.group = GLOBAL_ROOT_GID,
#if defined HAVE_STRUCT_USER_NAMESPACE_PROC_INUM && HAVE_STRUCT_USER_NAMESPACE_PROC_INUM
.proc_inum = PROC_USER_INIT_INO,
#endif
};
and changed err = posix_acl_valid( acl ); to err = posix_acl_valid( &user_ns, acl );
Hope that helps.
p4xel.