This is a tutorial for building and installing the latest release version (0.7.3 as of writing) of "ZFS on Linux" on a Raspberry Pi 3 running Raspbian Stretch. Specifically, we'll be building the dkms
version of ZoL, which saves you the hassle of re-compiling the kernel modules after every kernel update. Even though ZoL added support for building dkms packages for debian in version 0.7.3, the build process on a Raspberry Pi 3 is not quite straight-forward. Hopefully, these instructions will make it easier.
- Install the build dependencies.
$ sudo apt-get update
$ sudo apt-get install build-essential autoconf libtool gawk alien fakeroot
$ sudo apt-get install dkms zlib1g-dev uuid-dev libattr1-dev libblkid-dev libselinux-dev libudev-dev libssl-dev parted lsscsi wget ksh
You'll also need the kernel headers. Running apt-get upgrade will take care of both installation and upgradation.
$ sudo apt-get upgrade raspberrypi-kernel raspberrypi-kernel-headers
- Download the source.
Download the latest release tarballs for zfs and spl from this page and extract them.
$ wget https://github.com/zfsonlinux/zfs/releases/download/zfs-0.7.3/spl-0.7.3.tar.gz && tar -xzf spl-0.7.3.tar.gz
$ wget https://github.com/zfsonlinux/zfs/releases/download/zfs-0.7.3/zfs-0.7.3.tar.gz && tar -xzf zfs-0.7.3.tar.gz
- Compile and install spl.
$ cd spl-0.7.3/
$ autoreconf --install --force
$ ./configure
You need to make a small edit to the Makefile
generated by configure
before you proceed.
$ sed -E 's/(^RPMBUILD = rpmbuild.*)/\1 --target=armhf/' -i Makefile
$ make pkg-utils deb-dkms
$ for deb in *.deb; do sudo dpkg -i "$deb"; done
The final step will take some time as dkms builds spl modules for each kernel version installed in your system.
- Compile and install zfs.
The build process for zfs is the same as spl, albeit with an extra option --with-config=srpm
in ./configure
$ cd ../zfs-0.7.3/
$ autoreconf --install --force
$ ./configure --with-config=srpm
$ sed -E 's/(^RPMBUILD = rpmbuild.*)/\1 --target=armhf/' -i Makefile
$ make pkg-utils deb-dkms
$ for deb in *.deb; do sudo dpkg -i "$deb"; done
The zfs source is much bigger than spl's and hence the build time will also be much longer.
- Reboot and Enjoy. :)
- The ZoL Wiki
- rpdom on this thread
zfs-0.8.2 failed to build on
Linux laser-gw 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux
At the same time, the "zfs-0.7.13" built successfully:
If someone has a solution, pls share!