Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

ZFS "just works" now on Armbian (2 step instructions if you are thick like me)!

Featured Replies

EDIT: Solution in next post (this started as a question; yeah maybe I should have split it, but whatever).

 

Apologies if this is dumb question.  I finally got my hands on some appropriate (64-bit) hardware, and ready to install software now.

 

I have read so many threads (in Kobol Club and elsewhere), Issues (at GitHub as well as Atlassian) and I think this is solved by now (on Armbian) but cannot confirm?

 

Official install instructions (on OpenZFS website) don't really seem applicable to Armbian (kernel headers will be different, etc.).

 

I guess what I am asking is, do I just do something like the following:

 

$ sudo apt install zfs-dkms zfsutils-linux

 

And it should "just work"?  Or is there more to it than that?

 

Looks like I should make sure backports are set up beforehand, as ZFS version is significantly newer there (2.0.3 vs 0.7.12).

 

Target device is ROCKPro64, on latest Armbian 21.02.3 Buster Current, which is kernel 5.10.21.

Edited by TRS-80
add note at top to save people time

  • Author

Following the @lanefu School of Systems Administration ("here, hold my beer!"), I decided to just give it a go.  And IT VEERRRRRKS!  :thumbup:  :beer:

 

Here are step by step instructions for my fellow nervous, trepidatious sorts out there:

 

1. Install kernel headers.  I did this through armbian-config (Software -> Headers_install), rather than dicker around trying to figure out which exact package I needed for my board and architecture.

 

2. Issue the following command:

 

$ sudo apt -t buster-backports install zfs-dkms zfsutils-linux

 

Note: I did not have to enable backports, as apparently they already are "out of the box" in Armbian; however, follow instructions at link if this is not the case for you.

 

Result:

 

Spoiler





trs80@rockpro64:~$ sudo apt -t buster-backports install zfs-dkms zfsutils-linux
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libnvpair3linux libuutil3linux libzfs4linux libzpool4linux
Suggested packages:
  debhelper nfs-kernel-server samba-common-bin zfs-initramfs | zfs-dracut
Recommended packages:
  zfs-zed
The following NEW packages will be installed:
  libnvpair3linux libuutil3linux libzfs4linux libzpool4linux zfs-dkms zfsutils-linux
0 upgraded, 6 newly installed, 0 to remove and 60 not upgraded.
Need to get 4,094 kB of archives.
After this operation, 23.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://deb.debian.org/debian buster-backports/contrib arm64 libnvpair3linux arm64 2.0.3-1~bpo10+1 [57.4 kB]
Get:2 http://deb.debian.org/debian buster-backports/contrib arm64 libuutil3linux arm64 2.0.3-1~bpo10+1 [56.4 kB]
Get:3 http://deb.debian.org/debian buster-backports/contrib arm64 libzfs4linux arm64 2.0.3-1~bpo10+1 [220 kB]
Get:4 http://deb.debian.org/debian buster-backports/contrib arm64 libzpool4linux arm64 2.0.3-1~bpo10+1 [1,065 kB]
Get:5 http://deb.debian.org/debian buster-backports/contrib arm64 zfsutils-linux arm64 2.0.3-1~bpo10+1 [464 kB]
Get:6 http://deb.debian.org/debian buster-backports/contrib arm64 zfs-dkms all 2.0.3-1~bpo10+1 [2,231 kB]
Fetched 4,094 kB in 0s (11.8 MB/s)
Preconfiguring packages ...
Selecting previously unselected package libnvpair3linux.
(Reading database ... 66267 files and directories currently installed.)
Preparing to unpack .../0-libnvpair3linux_2.0.3-1~bpo10+1_arm64.deb ...
Unpacking libnvpair3linux (2.0.3-1~bpo10+1) ...
Selecting previously unselected package libuutil3linux.
Preparing to unpack .../1-libuutil3linux_2.0.3-1~bpo10+1_arm64.deb ...
Unpacking libuutil3linux (2.0.3-1~bpo10+1) ...
Selecting previously unselected package libzfs4linux.
Preparing to unpack .../2-libzfs4linux_2.0.3-1~bpo10+1_arm64.deb ...
Unpacking libzfs4linux (2.0.3-1~bpo10+1) ...
Selecting previously unselected package libzpool4linux.
Preparing to unpack .../3-libzpool4linux_2.0.3-1~bpo10+1_arm64.deb ...
Unpacking libzpool4linux (2.0.3-1~bpo10+1) ...
Selecting previously unselected package zfsutils-linux.
Preparing to unpack .../4-zfsutils-linux_2.0.3-1~bpo10+1_arm64.deb ...
Unpacking zfsutils-linux (2.0.3-1~bpo10+1) ...
Selecting previously unselected package zfs-dkms.
Preparing to unpack .../5-zfs-dkms_2.0.3-1~bpo10+1_all.deb ...
Unpacking zfs-dkms (2.0.3-1~bpo10+1) ...
Setting up libnvpair3linux (2.0.3-1~bpo10+1) ...
Setting up zfs-dkms (2.0.3-1~bpo10+1) ...
Loading new zfs-2.0.3 DKMS files...
Building for 5.10.21-rockchip64
Building initial module for 5.10.21-rockchip64
Done.

zavl.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.10.21-rockchip64/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.21-rockchip64/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.21-rockchip64/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.21-rockchip64/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.21-rockchip64/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.21-rockchip64/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.21-rockchip64/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.21-rockchip64/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.21-rockchip64/updates/dkms/

depmod...

DKMS: install completed.
Setting up libuutil3linux (2.0.3-1~bpo10+1) ...
Setting up libzfs4linux (2.0.3-1~bpo10+1) ...
Setting up libzpool4linux (2.0.3-1~bpo10+1) ...
Setting up zfsutils-linux (2.0.3-1~bpo10+1) ...
insmod /lib/modules/5.10.21-rockchip64/updates/dkms/spl.ko 
insmod /lib/modules/5.10.21-rockchip64/updates/dkms/icp.ko 
insmod /lib/modules/5.10.21-rockchip64/updates/dkms/zavl.ko 
insmod /lib/modules/5.10.21-rockchip64/updates/dkms/znvpair.ko 
insmod /lib/modules/5.10.21-rockchip64/updates/dkms/zcommon.ko 
insmod /lib/modules/5.10.21-rockchip64/updates/dkms/zlua.ko 
insmod /lib/modules/5.10.21-rockchip64/updates/dkms/zzstd.ko 
insmod /lib/modules/5.10.21-rockchip64/updates/dkms/zunicode.ko 
insmod /lib/modules/5.10.21-rockchip64/updates/dkms/zfs.ko 
zfs-import-scan.service is a disabled or a static unit not running, not starting it.
Processing triggers for libc-bin (2.28-10) ...
Processing triggers for systemd (241-7~deb10u6) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for initramfs-tools (0.133+deb10u1) ...
update-initramfs: Generating /boot/initrd.img-5.10.21-rockchip64
update-initramfs: Converting to u-boot format
trs80@rockpro64:~$ 

 

 

It took "a little while" to build the module(s).  Just be patient, go grab $BEVERAGE or whatever, take a break...

 

I don't know how to express how happy I am about this.  I have wanted to do ZFS on some ARM based device for literally years now.  RK3399 was very exciting when it came out, but took years to finally get stable.

 

A special thanks to all RK3399 devs, here and elsewhere, for making this a reality.  Beers are on me if/when we ever get around to having ArmbianCon!  :thumbup:  :beer:  :love:

 

  • TRS-80 changed the title to ZFS "just works" now on Armbian (2 step instructions if you are thick like me)!
15 hours ago, TRS-80 said:

I have read so many threads (in Kobol Club and elsewhere), Issues (at GitHub as well as Atlassian) and I think this is solved by now (on Armbian) but cannot confirm?

 

Issues are (were) with upstream Debian and Ubuntu, while now they obviously fixed ... ZFS on Armbian and kernel 5.10. works OOB since January. On Debian backport repo you now have slightly more recent ZFS version which could be good, could also be bad :) 

 

 

  • Author
16 hours ago, Igor said:

slightly more recent ZFS version which could be good, could also be bad :)

 

I get the sense I will be much better off with the newer version (in the case of ZFS).  However, as I am now become a "ZFS system administrator" I have gone back to more actively monitoring their mailing list.

 

This works for me.

 

# BRANCH=$(cat /.armbian-release.host | grep BRANCH | cut -d'=' -f2)

# [ "$BRANCH" == "" ] && exit 1

# . /.armbian-release.host

# . /etc/armbian-release

# INSTALL_PKG="linux-headers-${BRANCH}-${LINUXFAMILY}"

# apt install ${INSTALL_PKG}

# apt install dkms fakeroot linux-libc-dev menu debhelper

# apt install zfsutils-linux zfs-initramfs zfs-auto-snapshot zfs-zed zfs-dkms

# apt remove zfs-auto-snapshot

# apt install --reinstall zfs-initramfs zfs-dkms zfs-zed

# apt-mark hold linux-image*

 

For some reason, I found it necessary to install, uninstall, and reinstall a couple of the packages. I've no earthly idea why. Anyway, it works for me.

 

I put a hold on upgrades of the kernel because I'm paranoid like that.

 

I've just set up Armbian 22.05.3 bullseye on an Odroid HC4 and am trying to enable ZFS, however the modules won't compile.

 

This is using zfs-dkms from bullseye-backports:

 

Setting up zfs-dkms (2.1.5-1~bpo11+1) ...
Removing old zfs-2.1.5 DKMS files...

------------------------------
Deleting module version: 2.1.5
completely from the DKMS tree.
------------------------------
Done.
Loading new zfs-2.1.5 DKMS files...
Building for 5.10.123-meson64
Building initial module for 5.10.123-meson64
configure: error: 
		*** This kernel does not include the required loadable module
		*** support!
		***
		*** To build OpenZFS as a loadable Linux kernel module
		*** enable loadable module support by setting
		*** `CONFIG_MODULES=y` in the kernel configuration and run
		*** `make modules_prepare` in the Linux source tree.
		***
		*** If you don't intend to enable loadable kernel module
		*** support, please compile OpenZFS as a Linux kernel built-in.
		***
		*** Prepare the Linux source tree by running `make prepare`,
		*** use the OpenZFS `--enable-linux-builtin` configure option,
		*** copy the OpenZFS sources into the Linux source tree using
		*** `./copy-builtin <linux source directory>`,
		*** set `CONFIG_ZFS=y` in the kernel configuration and compile
		*** kernel as usual.
			
Error! Bad return status for module build on kernel: 5.10.123-meson64 (aarch64)
Consult /var/lib/dkms/zfs/2.1.5/build/make.log for more information.
dpkg: error processing package zfs-dkms (--configure):
 installed zfs-dkms package post-installation script subprocess returned error exit status 10

 

make.log simply says

 

DKMS make.log for zfs-2.1.5 for kernel 5.10.123-meson64 (aarch64)
Mon 18 Jul 2022 16:04:48 AEST
make: *** No targets specified and no makefile found.  Stop.

 

The config.log refers to build/build.log which says the following, which seems to be the real error:

 

make: Entering directory '/usr/src/linux-headers-5.10.123-meson64'
  MODPOST /var/lib/dkms/zfs/2.1.5/build/build/Module.symvers
make[2]: *** No rule to make target 'scripts/module.lds', needed by '/var/lib/dkms/zfs/2.1.5/build/build/config_block/config_block.ko'.
make[2]: Target '__modfinal' not remade because of errors.
make[1]: *** [scripts/Makefile.modpost:130: __modpost] Error 2
make: *** [Makefile:1726: modules] Error 2
make: Leaving directory '/usr/src/linux-headers-5.10.123-meson64'

 

Seems to be the same bug as this https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=975571

 

is there a fix on Armbian?

 

thanks

On 7/18/2022 at 6:37 PM, Igor said:

Yes it is - use Jammy user land. It works there perfectly. Debian user land usually needs more debugging and fixing. If you insist going Debian route - when you find where the problem is https://docs.armbian.com/Process_Contribute/ 

 

So I have this working on bullseye by using the Armbian edge kernel (linux-image-edge-meson64, 5.17.5-meson64 in my case) with zfs from bullseye-backports. The important part was the new kernel headers I think, as the previous kernel (linux-image-current-meson64, 5.10.123-meson64) appears to be missing module.lds needed to build any out of tree module. I think the same problem would occur with jammy because the kernel package is the same.

 

This looks like it was fixed in January 2021 in https://github.com/armbian/build/pull/2545, but meson64 still has an unfixed 5.10 kernel as current in 22.05.3, while some other boards have 5.15 (and some have earlier versions) which has the fix, and so does the meson64 edge kernel 5.17.5.

3 hours ago, hmof said:

So I have this working on bullseye by using the Armbian edge kernel (linux-image-edge-meson64, 5.17.5-meson64 in my case) with zfs from bullseye-backports. The important part was the new kernel headers I think, as the previous kernel (linux-image-current-meson64, 5.10.123-meson64) appears to be missing module.lds needed to build any out of tree module. I think the same problem would occur with jammy because the kernel package is the same.

 

This looks like it was fixed in January 2021 in https://github.com/armbian/build/pull/2545, but meson64 still has an unfixed 5.10 kernel as current in 22.05.3

 

Good catch. I had in my mind we fixed this lds related bug ... well, 5.10.y is going out soon, so this is not getting fixes unless someone has a desire to do that.

 

3 hours ago, hmof said:

while some other boards have 5.15


This is needed as it is very difficult to secure good stability and functionality across all hardware by using one kernel. If we would go simple way, it would be a lot worse. So we kept meson64 on 5.10.y and bump others to next LTS. ATM not sure what will happen with current branch but EDGE is being prepared for 5.19.y. If things will work well, its possible to bump current directly to 5.19.y

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.