You are not logged in.

#1 2012-10-30 11:28:44

alexy
Member
Registered: 2012-10-30
Posts: 1

Trouble installing ZFS in archlinux kernel 3.6.3-1-ARCH

I've been trying to install ZFS on my system, and i can't get past a building error for SPL, here is my install output:

==> Downloading zfs PKGBUILD from AUR...
x zfs_preempt.patch
x zfs.install
x PKGBUILD

Comment by: modular on Wed, 24 Oct 2012 03:09:04 +0000
@demizer

I don't/won't run ZFS as a root file system. I'm getting the following build error:
http://pastebin.com/ZcWiaViK

Comment by: demizer on Wed, 24 Oct 2012 04:11:54 +0000
@modular, You're trying to build with the 3.6.2 kernel. The current version (rc11) does not work with the 3.6.2 kernel. If you want to use it, you will have to downgrade to the 3.5.6 kernel (linux and linux-headers). https://wiki.archlinux.org/index.php/Downgrading_Packages

Thanks!	



Comment by: MilanKnizek on Wed, 24 Oct 2012 08:07:19 +0000
@demizer: there still seemed to be a problem during upgrading - zfs/spl requires kernel of certain version (hard-coded) and this blocks the upgrade (the old installed zfs/spl requires the old kernel and kernel can't be upgraded w/o breaking dependency of zfs/spl and therefore build of the new zfs/spl fails, too).

So far, I have had to remove zpl/spl, upgrade kernel, rebuild + install spl/zfs and manually run depmod against the new kernel (i.e. the postinst: depmod -a does not work until next reboot) and only then reboot to load the new kernel  zfs modules successfully.

That is quite clumsy and error-prone - I hope it will be resolved via DMKS.	

Comment by: srf21c on Sun, 28 Oct 2012 04:00:31 +0000
All, if you're suffering zfs kernel upgrade pain  fatigue, seriously consider going with the LTS (long term support) kernel. I just successfully built zfs on a system that I switched to the linux-lts 3.0.48-1. All you have to do is install the linux-lts and linux-lts-headers packages, reboot to the lts kernel, and change any instances of depends= or makedepends= lines in the package build file like so:

Before:
depends=('linux=3.5' "spl=${pkgver}" "zfs-utils=${pkgver}")
makedepends=('linux-headers=3.5')

After:

depends=('linux-lts=3.0' "spl=${pkgver}" "zfs-utils=${pkgver}")
makedepends=('linux-lts-headers=3.0')

Then build and install each package in this order: spl-utils,spl,zfs-utils,zfs.

Worked like a champ for me.	

Comment by: stoone on Mon, 29 Oct 2012 12:09:29 +0000
If you keep the linux, and linux-headers packages while using the LTS you don't need to modify the PKGBUILDs. Because the checks will pass but it will build the packages to your current runnning kernel.	

Comment by: demizer on Mon, 29 Oct 2012 15:56:27 +0000
Hey everybody, just a quick update. The new build tool I have been working on is now in master, https://github.com/demizer/aur-zfs. With it you can build and package two different groups of packages one for aur and one for split. Again, building the split packages is more efficient. I still have a lot of work to be done, but it is progressing. I will be adding git, dkms, and lts packages after I setup my repo. My next step is to add unofficial repository support to my build tool so I can easily setup a repo with precompiled binaries. I will be hosting the repo on my website at http://demizerone.com/archzfs. Initially it will only be for 64bit code since the ZOL FAQ states that ZOL is very unstable with 32bit code due to memory management differences in Solaris and Linux. I will notify you all in the future when that is ready to go.

@MilanKnizek, Yes updating is a pain. ZFS itself is hard-coded to linux versions at build time. The ZFS build tool puts the modules in "/usr/lib/modules/3.5.6-1-ARCH/addon/zfs/", and this the primary reason it has to be rebuilt each upgrade, even minor point releases. Nvidia for example puts their module in "/usr/lib/modules/extramodules-3.5-ARCH/", so minor point releases are still good and the nvidia package doesn't need to be re-installed. A possible reason for ZOL to be hard-coded like this because ZOL is still technically very beta code.

I do have a question for the community, does anyone use ZFS on a 32bit system?

Thanks!	

First Submitted: Thu, 23 Sep 2010 08:50:51 +0000	
zfs 0.6.0_rc11-2 
( Unsupported package: Potentially dangerous ! )
==> Edit PKGBUILD ? [Y/n] ("A" to abort)
==> ------------------------------------
==> n

==> zfs dependencies:
 - linux>=3.5 (already installed)
 - linux-headers>=3.5 (already installed)
 - spl>=0.6.0_rc11 (building from AUR)
 - zfs-utils>=0.6.0_rc11 (building from AUR)


==> Edit zfs.install ? [Y/n] ("A" to abort)
==> ---------------------------------------
n

==> Continue building zfs ? [Y/n]
==> -----------------------------
==> 
==> Building and installing package
==> Install or build missing dependencies for zfs:

==> Downloading spl PKGBUILD from AUR...
x spl.install
x PKGBUILD

Comment by: timemaster on Mon, 15 Oct 2012 22:42:32 +0000
I am not able to compile this package after the upgrade to the 3.6 kernel. Anyone else ? any idea? 	

Comment by: mikers on Mon, 15 Oct 2012 23:34:17 +0000
rc11 doesn't support Linux 3.6; there are some patches on GitHub that might apply against it (I've not done it myself), see:
https://github.com/zfsonlinux/spl/pull/179
https://github.com/zfsonlinux/zfs/pull/1039

Otherwise downgrade to Linux 3.5.x or linux-lts and wait for rc12.	

Comment by: timemaster on Mon, 15 Oct 2012 23:54:03 +0000
Yes, I saw that too late.
https://github.com/zfsonlinux/zfs/commit/ee7913b644a2c812a249046f56eed39d1977d706	

Comment by: demizer on Tue, 16 Oct 2012 07:00:16 +0000
Looks like the patches have been merged, now we wait for rc12.	

Comment by: vroomanj on Fri, 26 Oct 2012 17:07:19 +0000
@demizer: 3.6 support is available in the master builds, which are stable but not officially released yet. Can't the build be updated to use the master tars?

https://github.com/zfsonlinux/spl/tarball/master
https://github.com/zfsonlinux/zfs/tarball/master	

Comment by: demizer on Fri, 26 Oct 2012 17:51:42 +0000
@vroomanj, I plan on working on the git packages this weekend. All I have to figure out if it is going to be based on an actual git clone or if its just going to be the download links you provided. They are pretty much the same, but i'm not really clear what the Arch Package Guidelines say about this yet. Also, I don't think the current packages in AUR now should be based off of git master. They should be based off of the ZOL stable releases (rc10, rc11, ...). That's why I am making git packages so people can use them if they want to upgrade to the latest kernel and the stable release hasn't been made yet. As is the case currently.	

First Submitted: Sat, 26 Apr 2008 14:34:31 +0000	
spl 0.6.0_rc11-2 
( Unsupported package: Potentially dangerous ! )
==> Edit PKGBUILD ? [Y/n] ("A" to abort)
==> ------------------------------------
==> n

==> spl dependencies:
 - linux>=3.5 (already installed)
 - spl-utils>=0.6.0_rc11 (already installed)
 - linux-headers>=3.5 (already installed)


==> Edit spl.install ? [Y/n] ("A" to abort)
==> ---------------------------------------
==> n

==> Continue building spl ? [Y/n]
==> -----------------------------
==> 
==> Building and installing package
==> Making package: spl 0.6.0_rc11-2 (Tue Oct 30 11:34:13 CET 2012)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving Sources...
  -> Downloading spl-0.6.0-rc11.tar.gz...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0   178    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   136  100   136    0     0    154      0 --:--:-- --:--:-- --:--:--   293
100  508k  100  508k    0     0   357k      0  0:00:01  0:00:01 --:--:-- 1245k
==> Validating source files with md5sums...
    spl-0.6.0-rc11.tar.gz ... Passed
==> Extracting Sources...
  -> Extracting spl-0.6.0-rc11.tar.gz with bsdtar
==> Starting build()...
configure.ac:34: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated.  For more info, see:
configure.ac:34: http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation
checking metadata... yes
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-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... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
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 for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert i686-pc-linux-gnu file names to i686-pc-linux-gnu format... func_convert_file_noop
checking how to convert i686-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/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 /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... no
checking if : 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 (/usr/bin/ld) 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 spl license... GPL
checking linux distribution... arch
checking default package type... arch
checking whether rpm is available... no
checking whether rpmbuild is available... no
checking whether dpkg is available... no
checking whether dpkg-buildpackage is available... no
checking whether alien is available... no
checking whether pacman is available... yes (4.0.3)
checking whether makepkg is available... yes (4.0.3)
checking spl config... kernel
checking kernel source directory... /usr/src/linux-3.6.3-1-ARCH
checking kernel build directory... /usr/src/linux-3.6.3-1-ARCH
checking kernel source version... 3.6.3-1-ARCH
checking kernel file name for module symbols... Module.symvers
checking whether debugging is enabled... no
checking whether basic debug logging is enabled... yes
checking whether basic kmem accounting is enabled... yes
checking whether detailed kmem tracking is enabled... no
checking whether modules can be built... yes
checking whether atomic types use spinlocks... no
checking whether kernel defines atomic64_t... yes
checking whether kernel defines atomic64_cmpxchg... no
checking whether kernel defines atomic64_xchg... yes
checking whether kernel defines uintptr_t... yes
checking whether INIT_WORK wants 3 args... no
checking whether register_sysctl_table() wants 2 args... no
checking whether set_shrinker() available... no
checking whether shrinker callback wants 3 args... no
checking whether struct path used in struct nameidata... yes
checking whether task_curr() is available... no
checking whether unnumbered sysctl support exists... no
checking whether struct ctl_table has ctl_name... no
checking whether fls64() is available... yes
checking whether device_create() is available... yes
checking whether device_create() wants 5 args... yes
checking whether class_device_create() is available... no
checking whether set_normalized_timespec() is available as export... yes
checking whether set_normalized_timespec() is an inline... yes
checking whether timespec_sub() is available... yes
checking whether init_utsname() is available... yes
checking whether header linux/fdtable.h exists... yes
checking whether files_fdtable() is available... yes
checking whether __clear_close_on_exec() is available... yes
checking whether header linux/uaccess.h exists... yes
checking whether kmalloc_node() is available... yes
checking whether monotonic_clock() is available... no
checking whether struct inode has i_mutex... yes
checking whether struct mutex has owner... yes
checking whether struct mutex owner is a task_struct... yes
checking whether mutex_lock_nested() is available... yes
checking whether on_each_cpu() wants 3 args... yes
checking whether kallsyms_lookup_name() is available... yes
checking whether get_vmalloc_info() is available... no
checking whether symbol *_pgdat exist... yes
checking whether first_online_pgdat() is available... no
checking whether next_online_pgdat() is available... no
checking whether next_zone() is available... no
checking whether pgdat_list is available... no
checking whether global_page_state() is available... yes
checking whether page state NR_FREE_PAGES is available... yes
checking whether page state NR_INACTIVE is available... no
checking whether page state NR_INACTIVE_ANON is available... yes
checking whether page state NR_INACTIVE_FILE is available... yes
checking whether page state NR_ACTIVE is available... no
checking whether page state NR_ACTIVE_ANON is available... yes
checking whether page state NR_ACTIVE_FILE is available... yes
checking whether symbol get_zone_counts is needed... no
checking whether user_path_dir() is available... yes
checking whether set_fs_pwd() is available... no
checking whether set_fs_pwd() wants 2 args... yes
checking whether vfs_unlink() wants 2 args... yes
checking whether vfs_rename() wants 4 args... yes
checking whether vfs_fsync() is available... yes
checking whether vfs_fsync() wants 2 args... yes
checking whether struct fs_struct uses spinlock_t... yes
checking whether struct cred exists... yes
checking whether groups_search() is available... no
checking whether __put_task_struct() is available... yes
checking whether proc_handler() wants 5 args... yes
checking whether kvasprintf() is available... yes
checking whether rwsem_is_locked() acquires sem->wait_lock... no
checking whether invalidate_inodes() is available... no
checking whether invalidate_inodes_check() is available... no
checking whether invalidate_inodes() wants 2 args... yes
checking whether shrink_dcache_memory() is available... no
checking whether shrink_icache_memory() is available... no
checking whether symbol kern_path_parent exists in header... no
checking whether kern_path_parent() is available... no
checking whether zlib_deflate_workspacesize() wants 2 args... yes
checking whether struct shrink_control exists... yes
checking whether struct rw_semaphore member wait_lock is raw... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating lib/Makefile
config.status: creating cmd/Makefile
config.status: creating module/Makefile
config.status: creating module/spl/Makefile
config.status: creating module/splat/Makefile
config.status: creating include/Makefile
config.status: creating scripts/Makefile
config.status: creating spl.spec
config.status: creating spl-modules.spec
config.status: creating PKGBUILD-spl
config.status: creating PKGBUILD-spl-modules
config.status: creating spl.release
config.status: creating dkms.conf
config.status: creating spl_config.h
config.status: executing depfiles commands
config.status: executing libtool commands
make  all-recursive
make[1]: Entering directory `/tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11'
Making all in module
make[2]: Entering directory `/tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11/module'
make -C /usr/src/linux-3.6.3-1-ARCH SUBDIRS=`pwd`  CONFIG_SPL=m modules
make[3]: Entering directory `/usr/src/linux-3.6.3-1-ARCH'
  CC [M]  /tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11/module/spl/../../module/spl/spl-debug.o
  CC [M]  /tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11/module/spl/../../module/spl/spl-proc.o
  CC [M]  /tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11/module/spl/../../module/spl/spl-kmem.o
  CC [M]  /tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11/module/spl/../../module/spl/spl-thread.o
  CC [M]  /tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11/module/spl/../../module/spl/spl-taskq.o
  CC [M]  /tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11/module/spl/../../module/spl/spl-rwlock.o
  CC [M]  /tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11/module/spl/../../module/spl/spl-vnode.o
/tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11/module/spl/../../module/spl/spl-vnode.c: In function 'vn_remove':
/tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11/module/spl/../../module/spl/spl-vnode.c:327:2: error: implicit declaration of function 'path_lookup' [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make[5]: *** [/tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11/module/spl/../../module/spl/spl-vnode.o] Error 1
make[4]: *** [/tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11/module/spl] Error 2
make[3]: *** [_module_/tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11/module] Error 2
make[3]: Leaving directory `/usr/src/linux-3.6.3-1-ARCH'
make[2]: *** [modules] Error 2
make[2]: Leaving directory `/tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11/module'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/yaourt-tmp-alex/aur-spl/src/spl-0.6.0-rc11'
make: *** [all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...
==> ERROR: Makepkg was unable to build spl.
==> Restart building spl ? [y/N]
==> ----------------------------

... i'm stuck here, can anyone help me with this one? please !

Offline

#2 2012-10-30 11:52:12

Scimmia
Bug Wrangler
Registered: 2012-09-01
Posts: 4,786

Re: Trouble installing ZFS in archlinux kernel 3.6.3-1-ARCH

Did you read the comments, either on the AUR page or in the output that you posted? They explain it.

Offline

Board footer

Powered by FluxBB