Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

not install on 5.10 kernel #11449

Closed
suicidesky92 opened this issue Jan 9, 2021 · 30 comments · Fixed by #13141
Closed

not install on 5.10 kernel #11449

suicidesky92 opened this issue Jan 9, 2021 · 30 comments · Fixed by #13141
Labels
Type: Building Indicates an issue related to building binaries

Comments

@suicidesky92
Copy link

suicidesky92 commented Jan 9, 2021

System information

Type Version/Name
Distribution Name Debian GNU/Linux
Distribution Version Bullseye/sid
Linux Kernel 5.10.4-1
Architecture x86_64
ZFS Version zfs-0.8.6-1
SPL Version 0.8.6-1

I am trying to install a package in debian via the standard apt repository. It gives me this error.

Error! Bad return status for module build on kernel: 5.10.0-1-amd64 (x86_64
)
Consult /var/lib/dkms/zfs/0.8.6/build/make.log for more information.
dpkg: error processing package zfs-dkms (--configure):
 installed zfs-dkms package post-installation script subprocess returned er
ror exit status 10
dpkg: dependency problems prevent configuration of zfs-zed:
 zfs-zed depends on zfs-modules | zfs-dkms; however:
  Package zfs-modules is not installed.
  Package zfs-dkms which provides zfs-modules is not configured yet.
  Package zfs-dkms is not configured yet.

dpkg: error processing package zfs-zed (--configure):
 dependency problems - leaving unconfigured
Processing triggers for man-db (2.9.3-2) ...
Processing triggers for initramfs-tools (0.139) ...
update-initramfs: Generating /boot/initrd.img-5.10.0-1-amd64
Errors were encountered while processing:
 zfs-dkms
 zfs-zed
E: Sub-process /usr/bin/dpkg returned an error code (1)

-->

Does this mean I need to wait for the bug fix package to be updated?

@suicidesky92 suicidesky92 added Status: Triage Needed New issue which needs to be triaged Type: Defect Incorrect behavior (e.g. crash, hang) labels Jan 9, 2021
@mabod
Copy link

mabod commented Jan 9, 2021

https://github.com/openzfs/zfs/releases/tag/zfs-0.8.6
Supported Kernels

Compatible with 2.6.32 - 5.9 Linux kernels

@aerusso
Copy link
Contributor

aerusso commented Jan 9, 2021

Hello @suicidesky92, OpenZFS 2.0.1 very recently got into Debian experimental. If 5.10 is a requirement, and you are willing to accept upgrading to 2.0, you can use that option.

ZoL has expressed that they will not be attempting to backport the 5.10 compatibility patches to 0.8.x, due to their complexity---but are willing to accept patches providing that support. Upgrading to 2.0.x is the only certain option at this point, AIUI.

@suicidesky92
Copy link
Author

Hello @suicidesky92, OpenZFS 2.0.1 very recently got into Debian experimental. If 5.10 is a requirement, and you are willing to accept upgrading to 2.0, you can use that option.

ZoL has expressed that they will not be attempting to backport the 5.10 compatibility patches to 0.8.x, due to their complexity---but are willing to accept patches providing that support. Upgrading to 2.0.x is the only certain option at this point, AIUI.

So this is the only way out? Versions 0.8.x will no longer be supported? I can't find a guide for a safe transition from 0.8.x to 2.0, does it exist for debian?

@aerusso
Copy link
Contributor

aerusso commented Jan 10, 2021

The Debian ZFS team has not yet decided between 0.8.x and 2.0.x. I am advocating for 2.0.x, because OpenZFS has EOL-ed 0.8.x (last I have heard). Whatever Debian ZFS decides, will be supported through the lifetime of bullseye, but right now it is still testing---Debian cannot provide the same guarantees for stable to the testing distribution.

As a testing user, you have to be prepared for this kind of packaging churn. If Debian ZFS decides on 2.0.1, you will have to migrate to that, or maintain the software yourself out of Debian.

Your options are to either move to 2.0.x in Debian experimental---which will be backported to bullseye---or to stay on 0.8.6, which requires you to remain on 5.9, since there is not 0.8.x release in existence that supports 5.10.

@aerusso
Copy link
Contributor

aerusso commented Jan 11, 2021

Update: 2.0.1 has been accepted into Debian unstable---and should be available in ~hours. If you experience any difficulty during that upgrade, that is a bug, and please report it to the Debian bugtracker.

@morph027
Copy link

Just tested the unstable package files on 20.04 with latest mainline kernel 5.10.6 successfully (rebuild package recipe).

@EriksRemess
Copy link

EriksRemess commented Jan 14, 2021

Seems like 2.0.1 doesn't want to work with kernel 5.10.7

`checking whether modules can be built... no
configure: error:
*** Unable to build an empty module.

Building module:
cleaning build area...(bad exit status: 2)
make -j8 KERNELRELEASE=5.10.7-051007-lowlatency...(bad exit status: 2)
ERROR (dkms apport): kernel package linux-headers-5.10.7-051007-lowlatency is not supported
Error! Bad return status for module build on kernel: 5.10.7-051007-lowlatency (x86_64)
Consult /var/lib/dkms/zfs/2.0.1/build/make.log for more information.
...done.`

DKMS make.log for zfs-2.0.1 for kernel 5.10.7-051007-lowlatency (x86_64) Thu 14 Jan 2021 11:35:11 PM UTC make: *** No targets specified and no makefile found. Stop.

@mabod
Copy link

mabod commented Jan 15, 2021

Seems like 2.0.1 doesn't want to work with kernel 5.10.7

Works fine for me. Builds fine with arch 5.10.7. Which autoconf version are you using? Zfs fails to build with autoconf 2.70: #11413

@morph027
Copy link

Got 2.69-11.1 on focal. Weird that it does build with with 5.10.6 on the same system but 5.10.7 refuses to build ;)

@EriksRemess
Copy link

EriksRemess commented Jan 19, 2021

Which autoconf version are you using?

autoconf 2.69 (Ubuntu 20.04)

Just tried with mainline Kernel 5.10.8, same thing - DKMS Kernel module doesn't want to build.

@morph027
Copy link

Latest 5.10.10 works for me with 2.0.1-3 packages:

Setting up linux-headers-5.10.10-051010 (5.10.10-051010.202101231639) ...
Setting up linux-headers-5.10.10-051010-generic (5.10.10-051010.202101231639) ...
/etc/kernel/header_postinst.d/dkms:
 * dkms: running auto installation service for kernel 5.10.10-051010-generic

Kernel preparation unnecessary for this kernel.  Skipping...

Running the pre_build script:
checking for gawk... gawk
checking metadata... META file
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether make supports nested variables... yes
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking whether make sets $(MAKE)... yes
checking how to print strings... printf
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... none
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /bin/ld
checking if the linker (/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /bin/nm -B
checking the name lister (/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) none
checking for pkg-config... /bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking dependency style of gcc... none
checking whether to build with code coverage support... no
checking how to create a pax tar archive... gnutar
checking zfs author... OpenZFS
checking zfs license... CDDL
checking whether NLS is requested... yes
checking for msgfmt... /bin/msgfmt
checking for gmsgfmt... /bin/msgfmt
checking for xgettext... /bin/xgettext
checking for msgmerge... /bin/msgmerge
checking for ld... /bin/ld -m elf_x86_64
checking if the linker (/bin/ld -m elf_x86_64) is GNU ld... yes
checking for shared library run path origin... done
checking 32-bit host C ABI... no
checking for the common suffixes of directories in the library search path... lib,lib
checking zfs config... kernel
checking whether gcc supports -Wno-unused-but-set-variable... yes
checking whether gcc supports -Wno-bool-compare... yes
checking whether gcc supports -Wframe-larger-than=<size>... yes
checking whether gcc supports -Wno-format-truncation... yes
checking whether gcc supports -Wno-format-zero-length... yes
checking whether gcc supports -fno-omit-frame-pointer... yes
checking whether gcc supports -fno-ipa-sra... yes
checking whether to build with -fsanitize=address support... no
checking whether host toolchain supports SSE... yes
checking whether host toolchain supports SSE2... yes
checking whether host toolchain supports SSE3... yes
checking whether host toolchain supports SSSE3... yes
checking whether host toolchain supports SSE4.1... yes
checking whether host toolchain supports SSE4.2... yes
checking whether host toolchain supports AVX... yes
checking whether host toolchain supports AVX2... yes
checking whether host toolchain supports AVX512F... yes
checking whether host toolchain supports AVX512CD... yes
checking whether host toolchain supports AVX512DQ... yes
checking whether host toolchain supports AVX512BW... yes
checking whether host toolchain supports AVX512IFMA... yes
checking whether host toolchain supports AVX512VBMI... yes
checking whether host toolchain supports AVX512PF... yes
checking whether host toolchain supports AVX512ER... yes
checking whether host toolchain supports AVX512VL... yes
checking whether host toolchain supports AES... yes
checking whether host toolchain supports PCLMULQDQ... yes
checking whether host toolchain supports MOVBE... yes
checking for system type (linux-gnu)... Linux
checking for python3... python3
checking for python version... 3.8
checking for python platform... linux
checking for python script directory... ${prefix}/lib/python3.8/site-packages
checking for python extension module directory... ${exec_prefix}/lib/python3.8/site-packages
checking for python3.8... /bin/python3.8
checking for a version of Python >= '2.1.0'... yes
checking for a version of Python >= '3.4.0'... yes
checking for the distutils Python package... yes
checking for Python include path... -I/usr/include/python3.8
checking for Python library path... -L/usr/lib -lpython3.8
checking for Python site-packages path... /usr/lib/python3/dist-packages
checking python extra libraries... -lcrypt -lpthread -ldl  -lutil -lm -lm
checking python extra linking flags... -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions
checking consistency of all components of python development environment... yes
checking for python3.8 module: setuptools... yes
checking for python3.8 module: cffi... no
checking whether to enable pyzfs: ... no
checking for sed --in-place... --in-place
checking kernel source directory... /lib/modules/5.10.10-051010-generic/build
checking kernel build directory... /lib/modules/5.10.10-051010-generic/build
checking kernel source version... 5.10.10-051010-generic
checking kernel file name for module symbols... Module.symvers
checking whether modules can be built... yes
checking for kernel config option compatibility... done
checking whether kernel was built with 16K or larger stacks... yes
checking whether mutex_lock() is GPL-only... no
checking whether CONFIG_TRIM_UNUSED_KSYM is disabled... yes
checking whether CONFIG_ZLIB_INFLATE is defined... yes
checking whether CONFIG_ZLIB_DEFLATE is defined... yes
checking whether fpu headers are available... asm/fpu/api.h
checking whether objtool header is available... linux/objtool.h
checking whether wait_queue_entry_t exists... yes
checking whether /dev/zfs minor is available... 249
checking whether DECLARE_EVENT_CLASS() is available... no
checking for available kernel interfaces... done
checking whether access_ok() has 'type' parameter... no
checking whether global_node_page_state() exists... yes
checking whether global_zone_page_state() exists... yes
checking whether enum node_stat_item contains NR_FILE_PAGES... yes
checking whether enum node_stat_item contains NR_INACTIVE_ANON... yes
checking whether enum node_stat_item contains NR_INACTIVE_FILE... yes
checking whether enum zone_stat_item contains NR_FILE_PAGES... no
checking whether enum zone_stat_item contains NR_INACTIVE_ANON... no
checking whether enum zone_stat_item contains NR_INACTIVE_FILE... no
checking whether global_page_state enums are sane... yes
checking whether compile-time stack validation (objtool) is available... yes
checking whether STACK_FRAME_NON_STANDARD is defined... yes
checking whether PDE_DATA() is available... yes
checking whether fops->fallocate() exists... yes
checking whether zlib_deflate_workspacesize() wants 2 args... yes
checking whether struct rw_semaphore has member activity... no
checking whether struct rw_semaphore has atomic_long_t member count... yes
checking whether header linux/sched/rt.h exists... yes
checking whether header linux/sched/signal.h exists... yes
checking whether io_schedule_timeout() is available... yes
checking whether usleep_range() is available... yes
checking whether kmem_cache_create_usercopy() exists... yes
checking whether kvmalloc(ptr, flags) is available... yes
checking whether __vmalloc(ptr, flags, pageflags) is available... no
checking whether wait_on_bit() takes an action... no
checking whether wq_head->head and wq_entry->entry exist... yes
checking whether timestamp_truncate() exists... yes
checking whether inode->i_*time's are timespec64... yes
checking whether inode_lock_shared() exists... yes
checking whether group_info->gid exists... yes
checking whether kernel_write() takes loff_t pointer... yes
checking whether kernel_read() takes loff_t pointer... yes
checking whether timer_setup() is available... yes
checking whether timer function expects timer_list... yes
checking whether struct timer_list has flags... yes
checking whether super_block->s_user_ns exists... yes
checking whether proc_ops structure exists... yes
checking whether bops->check_events() exists... yes
checking whether bops->release() is void... yes
checking whether REQ_FAILFAST_MASK is defined... yes
checking whether REQ_DISCARD is defined... no
checking whether REQ_FLUSH is defined... no
checking whether REQ_PREFLUSH is defined... yes
checking whether REQ_OP_DISCARD is defined... yes
checking whether REQ_OP_SECURE_ERASE is defined... yes
checking whether REQ_OP_FLUSH is defined... yes
checking whether bio->bi_opf is defined... yes
checking whether bio_set_op_attrs is available... yes
checking whether bio_set_dev() is available... yes
checking whether bio_set_dev() is GPL-only... yes
checking whether bio_end_io_t wants 1 arg... yes
checking whether bio->bi_status exists... yes
checking whether bio has bi_iter... yes
checking whether submit_bio() wants 1 arg... yes
checking whether current->bio_list exists... yes
checking whether blkg_tryget() is available... yes
checking whether blkg_tryget() is GPL-only... yes
checking whether blkdev_get_by_path() exists... yes
checking whether blkdev_put() exists... yes
checking whether blkdev_reread_part() exists... no
checking whether invalidate_bdev() exists... yes
checking whether lookup_bdev() wants dev_t arg... no
checking whether lookup_bdev() wants 1 arg... yes
checking whether bdev_logical_block_size() is available... yes
checking whether bdev_physical_block_size() is available... yes
checking whether check_disk_change() exists... no
checking whether bdev_disk_changed() exists... yes
checking whether bdev_whole() is available... no
checking whether struct blk_plug is available... yes
checking whether blk_queue bdi is dynamic... yes
checking whether blk_queue_discard() is available... yes
checking whether blk_queue_secure_erase() is available... yes
checking whether blk_queue_flag_set() exists... yes
checking whether blk_queue_flag_clear() exists... yes
checking whether blk_queue_flush() is available... no
checking whether blk_queue_write_cache() exists... yes
checking whether blk_queue_write_cache() is GPL-only... yes
checking whether blk_queue_max_hw_sectors() is available... yes
checking whether blk_queue_max_segments() is available... yes
checking whether revalidate_disk_size() is available... yes
checking whether get_disk_ro() is available... yes
checking whether generic_readlink is global... no
checking whether ql->discard_granularity is available... yes
checking whether inode_owner_or_capable() exists... yes
checking whether super_block uses const struct xattr_handler... yes
checking whether xattr_handler has name... yes
checking whether xattr_handler->get() wants dentry and inode... yes
checking whether xattr_handler->set() wants dentry and inode... yes
checking whether xattr_handler->list() wants simple... yes
checking whether posix_acl_from_xattr() needs user_ns... yes
checking whether generic_setxattr() exists... no
checking whether posix_acl_release() is available... yes
checking whether posix_acl_release() is GPL-only... yes
checking whether set_cached_acl() is usable... yes
checking whether __posix_acl_chmod exists... yes
checking whether posix_acl_equiv_mode() wants umode_t... yes
checking whether posix_acl_valid() wants user namespace... yes
checking whether iops->get_acl() exists... yes
checking whether iops->set_acl() exists... yes
checking whether uncached_acl_sentinel() exists... yes
checking whether posix_acl has refcount_t... yes
checking whether iops->getattr() takes a path... yes
checking whether inode_set_flags() exists... yes
checking whether inode_set_iversion() exists... yes
checking whether sops->show_options() wants dentry... yes
checking whether file_inode() is available... yes
checking whether file_dentry() is available... yes
checking whether fops->fsync() wants no dentry... no
checking whether fops->fsync() wants range... range
checking whether fops->aio_fsync() exists... no
checking whether sops->evict_inode() exists... yes
checking whether sops->dirty_inode() wants flags... yes
checking whether super_block has s_shrink... yes
checking whether shrink_control has nid... yes
checking whether new 2-argument shrinker exists... no
checking whether ->count_objects callback exists... yes
checking whether struct shrink_control exists... yes
checking whether iops->create()/mkdir()/mknod() take umode_t... yes
checking whether iops->lookup() passes flags... yes
checking whether iops->create() passes flags... yes
checking whether iops->get_link() passes delayed... yes
checking whether i_op->tmpfile() exists... yes
checking whether dops->d_automount() exists... yes
checking whether eops->encode_fh() wants inode... yes
checking whether eops->commit_metadata() exists... yes
checking whether clear_inode() is available... yes
checking whether setattr_prepare() is available... yes
checking whether insert_inode_locked() is available... yes
checking whether d_make_root() is available... yes
checking whether d_obtain_alias() is available... yes
checking whether d_prune_aliases() is available... yes
checking whether d_set_d_op() is available... yes
checking whether dops->d_revalidate() takes struct nameidata... no
checking whether dentry uses const struct dentry_operations... yes
checking whether super_block has s_d_op... yes
checking whether truncate_setsize() is available... yes
checking whether security_inode_init_security wants callback... yes
checking whether fst->mount() exists... yes
checking whether super_setup_bdi_name() exists... yes
checking whether set_nlink() is available... yes
checking whether sget() wants 5 args... yes
checking whether lseek_execute() is available... no
checking whether vfs_getattr() wants 4 args... yes
checking whether vfs_getattr() wants 2 args... no
checking whether vfs_getattr() wants 3 args... no
checking whether vfs_fsync() wants 2 args... yes
checking whether fops->iterate_shared() is available... yes
checking whether aops->direct_IO() uses iov_iter... yes
checking whether fops->read/write_iter() are available... yes
checking whether new_sync_read/write() are available... no
checking whether generic_write_checks() takes kiocb... yes
checking whether iov_iter types are available... yes
checking whether iov_iter_init() is available... yes
checking whether iov_iter_advance() is available... yes
checking whether iov_iter_revert() is available... yes
checking whether iov_iter_fault_in_readable() is available... yes
checking whether iov_iter_count() is available... yes
checking whether copy_to_iter() is available... yes
checking whether copy_from_iter() is available... yes
checking whether kmap_atomic wants 1 args... yes
checking whether follow_down_one() is available... yes
checking whether submit_bio is member of struct block_device_operations... yes
checking whether generic bio_*_io_acct() are available... yes
checking whether kernel fpu is available... internal
checking whether kernel defines fmode_t... yes
checking whether kuid_t/kgid_t is available... yes
checking whether i_(uid|gid)_(read|write) exist... yes
checking whether module_param_call() is hardened... yes
checking whether iops->rename() wants flags... yes
checking whether current_time() exists... yes
checking whether ns_capable exists... yes
checking whether has_capability() is available... yes
checking whether cred_t->user_ns exists... yes
checking whether kuid_has_mapping/kgid_has_mapping exist... yes
checking whether in_compat_syscall() is available... yes
checking whether ktime_get_coarse_real_ts64() exists... yes
checking whether ktime_get_raw_ts64() exists... yes
checking whether totalram_pages() exists... yes
checking whether totalhigh_pages() exists... yes
checking whether kstrtoul() exists... yes
checking whether percpu_counter_init() wants gfp_t... yes
checking whether is inside percpu_ref.data... yes
checking whether assertion support will be enabled... no
checking whether debuginfo support will be forced... no
checking whether basic kmem accounting is enabled... no
checking whether detailed kmem tracking is enabled... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating include/Makefile
config.status: creating include/os/Makefile
config.status: creating include/os/linux/Makefile
config.status: creating include/os/linux/kernel/Makefile
config.status: creating include/os/linux/kernel/linux/Makefile
config.status: creating include/os/linux/spl/Makefile
config.status: creating include/os/linux/spl/rpc/Makefile
config.status: creating include/os/linux/spl/sys/Makefile
config.status: creating include/os/linux/zfs/Makefile
config.status: creating include/os/linux/zfs/sys/Makefile
config.status: creating include/sys/Makefile
config.status: creating include/sys/crypto/Makefile
config.status: creating include/sys/fm/Makefile
config.status: creating include/sys/fm/fs/Makefile
config.status: creating include/sys/fs/Makefile
config.status: creating include/sys/lua/Makefile
config.status: creating include/sys/sysevent/Makefile
config.status: creating include/sys/zstd/Makefile
config.status: creating module/Kbuild
config.status: creating module/Makefile
config.status: creating module/avl/Makefile
config.status: creating module/icp/Makefile
config.status: creating module/lua/Makefile
config.status: creating module/nvpair/Makefile
config.status: creating module/os/linux/spl/Makefile
config.status: creating module/os/linux/zfs/Makefile
config.status: creating module/spl/Makefile
config.status: creating module/unicode/Makefile
config.status: creating module/zcommon/Makefile
config.status: creating module/zfs/Makefile
config.status: creating module/zstd/Makefile
config.status: creating zfs.release
config.status: creating zfs_config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing po-directories commands

Building module:
cleaning build area...
make -j12 KERNELRELEASE=5.10.10-051010-generic............

Running the post_build script:
Signing module:
 - /var/lib/dkms/zfs/2.0.1/5.10.10-051010-generic/x86_64/module/znvpair.ko
 - /var/lib/dkms/zfs/2.0.1/5.10.10-051010-generic/x86_64/module/spl.ko
 - /var/lib/dkms/zfs/2.0.1/5.10.10-051010-generic/x86_64/module/icp.ko
 - /var/lib/dkms/zfs/2.0.1/5.10.10-051010-generic/x86_64/module/zavl.ko
 - /var/lib/dkms/zfs/2.0.1/5.10.10-051010-generic/x86_64/module/zzstd.ko
 - /var/lib/dkms/zfs/2.0.1/5.10.10-051010-generic/x86_64/module/zcommon.ko
 - /var/lib/dkms/zfs/2.0.1/5.10.10-051010-generic/x86_64/module/zlua.ko
 - /var/lib/dkms/zfs/2.0.1/5.10.10-051010-generic/x86_64/module/zunicode.ko
 - /var/lib/dkms/zfs/2.0.1/5.10.10-051010-generic/x86_64/module/zfs.ko
Secure Boot not enabled on this system.
cleaning build area...

DKMS: build completed.

zavl.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.10.10-051010-generic/updates/dkms/

znvpair.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.10.10-051010-generic/updates/dkms/

zunicode.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.10.10-051010-generic/updates/dkms/

zcommon.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.10.10-051010-generic/updates/dkms/

zfs.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.10.10-051010-generic/updates/dkms/

icp.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.10.10-051010-generic/updates/dkms/

zlua.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.10.10-051010-generic/updates/dkms/

spl.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.10.10-051010-generic/updates/dkms/

zzstd.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.10.10-051010-generic/updates/dkms/

depmod...

DKMS: install completed.
   ...done.
Setting up linux-image-unsigned-5.10.10-051010-generic (5.10.10-051010.202101231639) ...
I: /boot/vmlinuz.old is now a symlink to vmlinuz-5.4.0-64-generic
I: /boot/initrd.img.old is now a symlink to initrd.img-5.4.0-64-generic
I: /boot/vmlinuz is now a symlink to vmlinuz-5.10.10-051010-generic
I: /boot/initrd.img is now a symlink to initrd.img-5.10.10-051010-generic
Setting up linux-modules-5.10.10-051010-generic (5.10.10-051010.202101231639) ...
Setting up linux-mainline-5.10 (5.10.10-5.10.10) ...
Processing triggers for linux-image-unsigned-5.10.10-051010-generic (5.10.10-051010.202101231639) ...
/etc/kernel/postinst.d/dkms:
 * dkms: running auto installation service for kernel 5.10.10-051010-generic
   ...done.
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-5.10.10-051010-generic

@EriksRemess
Copy link

EriksRemess commented Jan 26, 2021

I can confirm that OpenZFS v2.0.1 DKMS module builds fine with mainline Linux Kernel v5.10.10

Update: broken again on v5.10.11

@Qubitium
Copy link

Qubitium commented Feb 2, 2021

@suicidesky92 5.10.11 and 5.10.12 mainline ubuntu kernel on 20.04 still fail to compile dkms under openzfs 2.0.2. However, 5.10.10 dkms compiles fine.

Should be re-opened.

@mabod
Copy link

mabod commented Feb 2, 2021

I am on Arch and 2.0.x compiles fine on any of the kernels I have installed:

(2/3) Install DKMS modules
==> dkms install --no-depmod -m zfs -v 2.0.2 -k 5.10.11-arch1-1
==> dkms install --no-depmod -m zfs -v 2.0.2 -k 5.10.12-xanmod1-cacule-1-cacule
==> dkms install --no-depmod -m zfs -v 2.0.2 -k 5.4.94-1-lts
==> dkms install --no-depmod -m zfs -v 2.0.2 -k 5.10.12-zen1-1-zen
==> dkms install --no-depmod -m zfs -v 2.0.2 -k 5.10.12-lqx1-1-lqx

@EriksRemess
Copy link

Same here, OpenZFS 2.0.2 DKMS build fails with Ubuntu's mainline kernels 5.10.11 and 5.10.12.

@behlendorf
Copy link
Contributor

Reopening until the build issue with the 5.10.11 and 5.10.12 kernel is resolved.

@behlendorf behlendorf reopened this Feb 2, 2021
@behlendorf behlendorf added Type: Building Indicates an issue related to building binaries and removed Status: Triage Needed New issue which needs to be triaged Type: Defect Incorrect behavior (e.g. crash, hang) labels Feb 2, 2021
@behlendorf
Copy link
Contributor

The 5.10.11/12 build failures appear to have been caused by a kernel change resulting in a missing module.lds file from the distribution kernel packages. This broke all external module builds. There relevant upstream issues are:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1906131
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=975571

@EriksRemess
Copy link

Looks like it is fixed in Linux kernel v5.10.13 Ubuntu mainline build.

@inthebrilliantblue
Copy link

Looks like it is fixed in Linux kernel v5.10.13 Ubuntu mainline build.

I just tried kernel v5.10.14 Ubuntu mainline, and it is broken again showing "Unable to build an empty module.".

@szubersk
Copy link
Contributor

@suicidesky92 @EriksRemess @inthebrilliantblue Is it still an issue? OpenZFS 2.0+ should build fine with Linux 5.10 on Debian/Ubuntu.

@kneutron
Copy link

Still an issue, just tried dist-upgrading Linux Mint Debian Edition and ZFS 2.0.x and 2.1.2 are not compatible with Debian BPO kernels 5.10 or 5.15

@szubersk
Copy link
Contributor

Still an issue, just tried dist-upgrading Linux Mint Debian Edition and ZFS 2.0.x and 2.1.2 are not compatible with Debian BPO kernels 5.10 or 5.15

Would you share exact commands executed?

@kneutron
Copy link

https://github.com/kneutron/ansitest/blob/master/debian-compile-zfs--boojum.sh
https://github.com/kneutron/ansitest/blob/master/ubuntu_zfs_build_install.sh

(snip)
checking for available kernel interfaces... done
checking whether access_ok() has 'type' parameter... no
checking whether global_node_page_state() exists... yes
checking whether global_zone_page_state() exists... yes
checking whether enum node_stat_item contains NR_FILE_PAGES... no
checking whether enum node_stat_item contains NR_INACTIVE_ANON... no
checking whether enum node_stat_item contains NR_INACTIVE_FILE... no
checking whether enum zone_stat_item contains NR_FILE_PAGES... no
checking whether enum zone_stat_item contains NR_INACTIVE_ANON... no
checking whether enum zone_stat_item contains NR_INACTIVE_FILE... no
checking whether global_page_state enums are sane... no
NR_FILE_PAGES in either node_stat_item or zone_stat_item: NOT FOUND
configure: error:
*** None of the expected "global page state" interfaces were detected.
*** This may be because your kernel version is newer than what is
*** supported, or you are using a patched custom kernel with
*** incompatible modifications.
***
*** ZFS Version: zfs-2.1.2-1
*** Compatible Kernels: 3.10 - 5.15

Building module:
cleaning build area...(bad exit status: 2)
make -j2 KERNELRELEASE=5.10.0-9-amd64...(bad exit status: 2)
Error! Bad return status for module build on kernel: 5.10.0-9-amd64 (x86_64)
Consult /var/lib/dkms/zfs/2.1.2/build/make.log for more information.
.
Errors were encountered while processing:
zfs-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)

$ less /var/lib/dkms/zfs/2.1.2/build/make.log
DKMS make.log for zfs-2.1.2 for kernel 5.10.0-9-amd64 (x86_64)
Sat 19 Feb 2022 09:16:33 PM CST
make: *** No targets specified and no makefile found. Stop.

@szubersk
Copy link
Contributor

@kneutron Please try applying #13096 and re-running ./autogen.sh before configure. There are problems with kernel directories detection which I managed to reproduce. If the problem still exists please attach config.log from your attempt.

@kneutron
Copy link

I haven't the least idea how to do manual patching with ZFS code or branching out with my own git tree, I just wait for full stable releases. (Not a C programmer)

Already applied the soft-symlink fix in this thread however:
#9935

@szubersk
Copy link
Contributor

@kneutron, did the symlink hack work out for you we'll?

@kneutron
Copy link

It works OK with Debian Oldstable kernels, when I tried dist-upgrading to current Stable I ran into issues as described

@szubersk
Copy link
Contributor

@kneutron, I managed to reproduce the issue using LMDE 4 + bullseye repos. Please make following change right after you unpack OpenZFS sources (it can be done with the text editor). It turns out that Linux Mint was treated as Proxmox.

--- scripts/dkms.mkconf
+++ scripts/dkms.mkconf
@@ -30,7 +30,7 @@ PRE_BUILD="configure
   --with-config=kernel
   --with-linux=\$(
     case \`lsb_release -is\` in
-      (Debian|Devuan)
+      (Debian|Devuan|Linuxmint)
         if [[ -e \${kernel_source_dir/%build/source} ]]
         then
           echo \${kernel_source_dir/%build/source}

@kneutron
Copy link

kneutron commented Feb 24, 2022

I manually put in the 1-line fix, redid ./configure and the "make" part from my script, dpkg -i on the resulting .deb packages and it looks like it works :)

zpool version

zfs-2.1.2-1
zfs-kmod-2.1.2-1

dmesg|grep ZFS

[13249.605625] ZFS: Loaded module v2.1.2-1, ZFS pool version 5000, ZFS filesystem version 5

uname -a

Linux p2300m-lmde 5.15.0-0.bpo.3-amd64 #1 SMP Debian 5.15.15-2~bpo11+1 (2022-02-03) x86_64 GNU/Linux

Thanks! Hope this makes it into zfs 2.1.3 :)

@szubersk
Copy link
Contributor

@kneutron, we are very glad that you can use OpenZFS now!

I issued #13141 with a correction. Now everything in @behlendorf (merging and reviewing) and @tonyhutter (including the correction to zfs-2.1.3, #13063) hands.

Have a good one!

behlendorf pushed a commit that referenced this issue Feb 24, 2022
Fix `zfs-dkms` installation on Debian-derived distributions by
aligning the directory detection logic to #13096.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: szubersk <szuberskidamian@gmail.com>
Closes #11449
Closes #13141
tonyhutter pushed a commit to tonyhutter/zfs that referenced this issue Feb 24, 2022
Fix `zfs-dkms` installation on Debian-derived distributions by
aligning the directory detection logic to openzfs#13096.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: szubersk <szuberskidamian@gmail.com>
Closes openzfs#11449
Closes openzfs#13141
nicman23 pushed a commit to nicman23/zfs that referenced this issue Aug 22, 2022
Fix `zfs-dkms` installation on Debian-derived distributions by
aligning the directory detection logic to openzfs#13096.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: szubersk <szuberskidamian@gmail.com>
Closes openzfs#11449
Closes openzfs#13141
nicman23 pushed a commit to nicman23/zfs that referenced this issue Aug 22, 2022
Fix `zfs-dkms` installation on Debian-derived distributions by
aligning the directory detection logic to openzfs#13096.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: szubersk <szuberskidamian@gmail.com>
Closes openzfs#11449
Closes openzfs#13141
andrewc12 pushed a commit to andrewc12/openzfs that referenced this issue Aug 30, 2022
Fix `zfs-dkms` installation on Debian-derived distributions by
aligning the directory detection logic to openzfs#13096.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: szubersk <szuberskidamian@gmail.com>
Closes openzfs#11449
Closes openzfs#13141
lundman pushed a commit to openzfsonwindows/openzfs that referenced this issue Sep 1, 2022
Fix `zfs-dkms` installation on Debian-derived distributions by
aligning the directory detection logic to openzfs#13096.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: szubersk <szuberskidamian@gmail.com>
Closes openzfs#11449
Closes openzfs#13141
andrewc12 pushed a commit to andrewc12/openzfs that referenced this issue Sep 23, 2022
Fix `zfs-dkms` installation on Debian-derived distributions by
aligning the directory detection logic to openzfs#13096.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: szubersk <szuberskidamian@gmail.com>
Closes openzfs#11449
Closes openzfs#13141
andrewc12 pushed a commit to andrewc12/openzfs that referenced this issue Sep 23, 2022
Fix `zfs-dkms` installation on Debian-derived distributions by
aligning the directory detection logic to openzfs#13096.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: szubersk <szuberskidamian@gmail.com>
Closes openzfs#11449
Closes openzfs#13141
andrewc12 pushed a commit to andrewc12/openzfs that referenced this issue Sep 23, 2022
Fix `zfs-dkms` installation on Debian-derived distributions by
aligning the directory detection logic to openzfs#13096.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: szubersk <szuberskidamian@gmail.com>
Closes openzfs#11449
Closes openzfs#13141
andrewc12 pushed a commit to andrewc12/openzfs that referenced this issue Sep 23, 2022
Fix `zfs-dkms` installation on Debian-derived distributions by
aligning the directory detection logic to openzfs#13096.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: szubersk <szuberskidamian@gmail.com>
Closes openzfs#11449
Closes openzfs#13141
andrewc12 pushed a commit to andrewc12/openzfs that referenced this issue Sep 23, 2022
Fix `zfs-dkms` installation on Debian-derived distributions by
aligning the directory detection logic to openzfs#13096.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: szubersk <szuberskidamian@gmail.com>
Closes openzfs#11449
Closes openzfs#13141
andrewc12 pushed a commit to andrewc12/openzfs that referenced this issue Sep 23, 2022
Fix `zfs-dkms` installation on Debian-derived distributions by
aligning the directory detection logic to openzfs#13096.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: szubersk <szuberskidamian@gmail.com>
Closes openzfs#11449
Closes openzfs#13141
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Building Indicates an issue related to building binaries
Projects
None yet
Development

Successfully merging a pull request may close this issue.

10 participants