Closed Herrie82 closed 5 years ago
For .use_clustering seems we need to have .dma_boundary now as per: https://github.com/torvalds/linux/commit/4af14d113bcf95c12d1462ba623b7e7117bd3fb3#diff-89162e4d0981a374a20bfa001471fb2f
For do_gettimeofday there's a possible solutions in: https://lists.opensuse.org/opensuse-factory/2019-03/msg00199.html :
u64 ts; ts = ktime_get_boottime(); return ts/1000;
struct timeval tv; do_gettimeofday(&tv); return ((u64)tv.tv_sec * 1000000) + tv.tv_usec;
For access_ok see: https://github.com/tonyhutter/zfs/commit/916bb5f8f2e3956660fc347b3a98edf4f8d788d3
Hmm, might be that they are still changing the API. At the moment I don't have much time to look into this. I just contacted AMD about incompatibilities of their Windows driver on more recent Windows builds. Also began to do some patchwork on the RAID drivers webinterface for Linux.
So might be that I will bundle all work - rcraid-dkms, rcraid cli tools and rcraid webui - into a new repository. The current ones naming is just to specific to the kernel driver.
@Herrie82 Thank you for the research! :+1:
I might get to actually push something, just don't really know how to test the new code with dkms. Still very new to linux on desktop ;)
You will find all sources here:
$ ls /usr/src/
bbswitch-0.8/ linux-headers-4.18.0-15/ linux-headers-4.18.0-16/ nvidia-390.116/ .tmp_versions/
kpatch-0.5.0/ linux-headers-4.18.0-15-generic/ linux-headers-4.18.0-16-generic/ rcraid-8.1.0/ virtualbox-5.2.18/
You can do modification there as root (sudo nano /foo/bar) and tell dkms to rebuild rcraid.
@thopiekar Thanks :)
I'll try to keep the patches minimal and straight forward. As usual there are multiple ways to Rome, but will try to stick to the easy solution. With a simple kernel version check as was done previously where possible.
That would be great! I think we all agree that the sources should build against all kernel versions possible. 🙂
Should be fixed with https://github.com/thopiekar/rcraid-dkms/pull/5
Seems that with kernel 5.0.x there are some new issues cc @martinkarlweber
This is what I get from make.log while trying to install 5.0.3 on Kubuntu 18.04:
DKMS make.log for rcraid-8.1.0 for kernel 5.0.3-050003-generic (x86_64) vr 22 mrt 2019 9:59:10 CET make: Entering directory '/var/lib/dkms/rcraid/8.1.0/build/src'
building for kernel 5.0.3-050003-generic
make -C /lib/modules/5.0.3-050003-generic/build SUBDIRS=/var/lib/dkms/rcraid/8.1.0/build/src modules make[1]: Entering directory '/usr/src/linux-headers-5.0.3-050003-generic' Makefile:189: ================= WARNING ================ Makefile:190: 'SUBDIRS' will be removed after Linux 5.3 Makefile:191: Please use 'M=' or 'KBUILD_EXTMOD' instead Makefile:192: ========================================== ln -sf
basename /var/lib/dkms/rcraid/8.1.0/build/src/rcblob.x86_64.o .o
/var/lib/dkms/rcraid/8.1.0/build/src/rcblob.x86_64.o CC [M] /var/lib/dkms/rcraid/8.1.0/build/src/rc_init.o CC [M] /var/lib/dkms/rcraid/8.1.0/build/src/rc_msg.o CC [M] /var/lib/dkms/rcraid/8.1.0/build/src/rc_mem_ops.o CC [M] /var/lib/dkms/rcraid/8.1.0/build/src/rc_event.o CC [M] /var/lib/dkms/rcraid/8.1.0/build/src/rc_config.o CC [M] /var/lib/dkms/rcraid/8.1.0/build/src/vers.o /var/lib/dkms/rcraid/8.1.0/build/src/rc_init.c:349:3: error: вЂScsi_Host_Template {aka struct scsi_host_template}’ has no member named вЂuse_clustering’ .use_clustering = ENABLE_CLUSTERING, ^~~~~~ /var/lib/dkms/rcraid/8.1.0/build/src/rc_msg.c: In function вЂrc_vprintf’: /var/lib/dkms/rcraid/8.1.0/build/src/rc_msg.c:218:3: error: implicit declaration of function вЂdo_gettimeofday’; did you mean вЂdo_settimeofday64’? [-Werror=implicit-function-declaration] do_gettimeofday(&tv); ^~~~~~~ do_settimeofday64 /var/lib/dkms/rcraid/8.1.0/build/src/rc_msg.c: In function вЂrc_msg_access_ok’: /var/lib/dkms/rcraid/8.1.0/build/src/rc_msg.c:2416:101: error: macro "access_ok" passed 3 arguments, but takes just 2 accessOk.returnStatus = access_ok( VERIFY_WRITE , accessOk.access_location, accessOk.access_size); ^ /var/lib/dkms/rcraid/8.1.0/build/src/rc_msg.c:2416:29: error: вЂaccess_ok’ undeclared (first use in this function); did you mean вЂaccessOk’? accessOk.returnStatus = access_ok( VERIFY_WRITE , accessOk.access_location, accessOk.access_size); ^~~~~ accessOk /var/lib/dkms/rcraid/8.1.0/build/src/rc_msg.c:2416:29: note: each undeclared identifier is reported only once for each function it appears in /var/lib/dkms/rcraid/8.1.0/build/src/rc_init.c:349:29: error: вЂENABLE_CLUSTERING’ undeclared here (not in a function); did you mean вЂAPIC_CLUSTERID’? .use_clustering = ENABLE_CLUSTERING, ^~~~~ APIC_CLUSTERID cc1: some warnings being treated as errors scripts/Makefile.build:276: recipe for target '/var/lib/dkms/rcraid/8.1.0/build/src/rc_msg.o' failed make[2]: [/var/lib/dkms/rcraid/8.1.0/build/src/rc_msg.o] Error 1 make[2]: Waiting for unfinished jobs.... scripts/Makefile.build:276: recipe for target '/var/lib/dkms/rcraid/8.1.0/build/src/rc_init.o' failed make[2]: [/var/lib/dkms/rcraid/8.1.0/build/src/rc_init.o] Error 1 Makefile:1553: recipe for target 'module/var/lib/dkms/rcraid/8.1.0/build/src' failed make[1]: [module/var/lib/dkms/rcraid/8.1.0/build/src] Error 2 make[1]: Leaving directory '/usr/src/linux-headers-5.0.3-050003-generic' Makefile:60: recipe for target 'all' failed make: *** [all] Error 2 make: Leaving directory