Armbian Ubuntu 22.04 Jammy with ZFS 2.1.1 for Odroid HC4


 Share

0

Recommended Posts

screenshothc4.pngnand-sata.png

 

  • mainline based u-boot 2021.07
  • Ubuntu 22.04 Jammy LTS based (upcoming release, could have issues, currently in testing phase)
  • kernel 5.10.y LTS or 5.15.y LTS
  • ZSH with OhMyZSH addon or classic BASH
  • ZFS 2.1.y support
  • Wireguard
  • fan and LCD support
  • boot from SPI / HDD / USB

 

Tested on image (which comes with preinstalled headers, stable kernel):

https://redirect.armbian.com/odroidhc4/Jammy_current

https://redirect.armbian.com/odroidhc4/Jammy_current.torrent

 

apt update and upgrade

 

Spoiler
odroidhc4:igorp:# apt update 
Get:1 http://ports.ubuntu.com jammy InRelease [270 kB]
Hit:2 http://ports.ubuntu.com jammy-security InRelease                            
Hit:3 http://ports.ubuntu.com jammy-updates InRelease
Hit:4 http://ports.ubuntu.com jammy-backports InRelease
Get:6 http://ports.ubuntu.com jammy/universe arm64 Packages [16.7 MB]
Hit:5 https://stpete-mirror.armbian.com/apt jammy InRelease
Get:7 http://ports.ubuntu.com jammy/main armhf Packages [1,732 kB]
Get:8 http://ports.ubuntu.com jammy/main arm64 Packages [1,757 kB]
Get:9 http://ports.ubuntu.com jammy/universe armhf Packages [16.4 MB]
Fetched 36.9 MB in 3s (11.0 MB/s)                           
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
59 packages can be upgraded. Run 'apt list --upgradable' to see them.
odroidhc4:igorp:# apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  apt apt-utils automake binutils binutils-aarch64-linux-gnu binutils-common busybox-initramfs console-setup console-setup-linux
  cpp-11 ethtool g++-11 gcc-11 gcc-11-base keyboard-configuration libapt-pkg6.0 libasan6 libatomic1 libbinutils libbluetooth3
  libboost-iostreams1.74.0 libcc1-0 libctf-nobfd0 libctf0 libdw1 libelf1 libgcc-11-dev libgcc-s1 libgomp1 libhwasan0 libitm1
  liblsan0 libmm-glib0 libncurses6 libncursesw6 libnftnl11 libpcre2-8-0 libpython3.9 libpython3.9-minimal libpython3.9-stdlib
  libsasl2-2 libsasl2-modules-db libstdc++-11-dev libstdc++6 libtinfo6 libtsan0 libubsan1 ncurses-base ncurses-bin ncurses-term
  python3-distutils python3-launchpadlib python3-lib2to3 python3-software-properties python3-yaml python3.9 python3.9-minimal
  rsyslog software-properties-common
59 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 71.7 MB of archives.
After this operation, 385 MB disk space will be freed.
Do you want to continue? [Y/n] 
Get:1 http://ports.ubuntu.com jammy/main arm64 libncurses6 arm64 6.3-1 [108 kB]
Get:2 http://ports.ubuntu.com jammy/main arm64 libncursesw6 arm64 6.3-1 [142 kB]
Get:3 http://ports.ubuntu.com jammy/main arm64 libtinfo6 arm64 6.3-1 [104 kB]
Get:4 http://ports.ubuntu.com jammy/main arm64 ncurses-bin arm64 6.3-1 [183 kB]
Get:5 http://ports.ubuntu.com jammy/main arm64 ncurses-base all 6.3-1 [19.9 kB]
Get:6 http://ports.ubuntu.com jammy/main arm64 libcc1-0 arm64 11.2.0-12ubuntu1 [54.1 kB]
Get:7 http://ports.ubuntu.com jammy/main arm64 gcc-11-base arm64 11.2.0-12ubuntu1 [20.7 kB]
Get:8 http://ports.ubuntu.com jammy/main arm64 libgcc-s1 arm64 11.2.0-12ubuntu1 [39.3 kB]
Get:9 http://ports.ubuntu.com jammy/main arm64 libgomp1 arm64 11.2.0-12ubuntu1 [115 kB]
Get:10 http://ports.ubuntu.com jammy/main arm64 libitm1 arm64 11.2.0-12ubuntu1 [28.4 kB]
Get:11 http://ports.ubuntu.com jammy/main arm64 libatomic1 arm64 11.2.0-12ubuntu1 [10.8 kB]
Get:12 http://ports.ubuntu.com jammy/main arm64 libasan6 arm64 11.2.0-12ubuntu1 [2,228 kB]
Get:13 http://ports.ubuntu.com jammy/main arm64 liblsan0 arm64 11.2.0-12ubuntu1 [942 kB]
Get:14 http://ports.ubuntu.com jammy/main arm64 libtsan0 arm64 11.2.0-12ubuntu1 [2,232 kB]
Get:15 http://ports.ubuntu.com jammy/main arm64 libubsan1 arm64 11.2.0-12ubuntu1 [908 kB]
Get:16 http://ports.ubuntu.com jammy/main arm64 libhwasan0 arm64 11.2.0-12ubuntu1 [1,010 kB]
Get:17 http://ports.ubuntu.com jammy/main arm64 g++-11 arm64 11.2.0-12ubuntu1 [11.1 MB]
Get:18 http://ports.ubuntu.com jammy/main arm64 libstdc++-11-dev arm64 11.2.0-12ubuntu1 [2,099 kB]
Get:19 http://ports.ubuntu.com jammy/main arm64 libgcc-11-dev arm64 11.2.0-12ubuntu1 [1,150 kB]
Get:20 http://ports.ubuntu.com jammy/main arm64 gcc-11 arm64 11.2.0-12ubuntu1 [19.4 MB]
Get:21 http://ports.ubuntu.com jammy/main arm64 cpp-11 arm64 11.2.0-12ubuntu1 [9,734 kB]
Get:22 http://ports.ubuntu.com jammy/main arm64 libstdc++6 arm64 11.2.0-12ubuntu1 [623 kB]
Get:23 http://ports.ubuntu.com jammy/main arm64 libctf0 arm64 2.37-10ubuntu1 [102 kB]
Get:24 http://ports.ubuntu.com jammy/main arm64 libctf-nobfd0 arm64 2.37-10ubuntu1 [106 kB]
Get:25 http://ports.ubuntu.com jammy/main arm64 libbinutils arm64 2.37-10ubuntu1 [733 kB]
Get:26 http://ports.ubuntu.com jammy/main arm64 binutils-common arm64 2.37-10ubuntu1 [213 kB]
Get:27 http://ports.ubuntu.com jammy/main arm64 binutils arm64 2.37-10ubuntu1 [3,160 B]
Get:28 http://ports.ubuntu.com jammy/main arm64 binutils-aarch64-linux-gnu arm64 2.37-10ubuntu1 [3,214 kB]
Get:29 http://ports.ubuntu.com jammy/main arm64 libapt-pkg6.0 arm64 2.3.12 [864 kB]
Get:30 http://ports.ubuntu.com jammy/main arm64 apt arm64 2.3.12 [1,353 kB]
Get:31 http://ports.ubuntu.com jammy/main arm64 apt-utils arm64 2.3.12 [205 kB]
Get:32 http://ports.ubuntu.com jammy/main arm64 console-setup-linux all 1.205ubuntu3 [1,871 kB]
Get:33 http://ports.ubuntu.com jammy/main arm64 console-setup all 1.205ubuntu3 [110 kB]
Get:34 http://ports.ubuntu.com jammy/main arm64 keyboard-configuration all 1.205ubuntu3 [206 kB]
Get:35 http://ports.ubuntu.com jammy/main arm64 libpython3.9 arm64 3.9.9-1 [1,848 kB]
Get:36 http://ports.ubuntu.com jammy/main arm64 python3.9 arm64 3.9.9-1 [437 kB]
Get:37 http://ports.ubuntu.com jammy/main arm64 libpython3.9-stdlib arm64 3.9.9-1 [1,803 kB]
Get:38 http://ports.ubuntu.com jammy/main arm64 python3.9-minimal arm64 3.9.9-1 [2,121 kB]
Get:39 http://ports.ubuntu.com jammy/main arm64 libpython3.9-minimal arm64 3.9.9-1 [781 kB]
Get:40 http://ports.ubuntu.com jammy/main arm64 libpcre2-8-0 arm64 10.39-3 [201 kB]
Get:41 http://ports.ubuntu.com jammy/main arm64 libdw1 arm64 0.186-1 [246 kB]
Get:42 http://ports.ubuntu.com jammy/main arm64 libelf1 arm64 0.186-1 [51.1 kB]                                                    
Get:43 http://ports.ubuntu.com jammy/main arm64 python3-yaml arm64 5.4.1-1 [159 kB]                                                
Get:44 http://ports.ubuntu.com jammy/main arm64 rsyslog arm64 8.2110.0-3ubuntu1 [496 kB]                                           
Get:45 http://ports.ubuntu.com jammy/main arm64 libnftnl11 arm64 1.2.1-1 [64.4 kB]                                                 
Get:46 http://ports.ubuntu.com jammy/main arm64 automake all 1:1.16.5-1.1 [558 kB]                                                 
Get:47 http://ports.ubuntu.com jammy/main arm64 busybox-initramfs arm64 1:1.30.1-7ubuntu1 [176 kB]                                 
Get:48 http://ports.ubuntu.com jammy/main arm64 ethtool arm64 1:5.15-1 [206 kB]                                                    
Get:49 http://ports.ubuntu.com jammy/main arm64 libbluetooth3 arm64 5.62-0ubuntu2 [89.3 kB]                                        
Get:50 http://ports.ubuntu.com jammy/main arm64 libboost-iostreams1.74.0 arm64 1.74.0-13ubuntu1 [243 kB]                           
Get:51 http://ports.ubuntu.com jammy/main arm64 libmm-glib0 arm64 1.18.2-0ubuntu1 [230 kB]                                         
Get:52 http://ports.ubuntu.com jammy/main arm64 libsasl2-modules-db arm64 2.1.27+dfsg2-2 [21.2 kB]                                 
Get:53 http://ports.ubuntu.com jammy/main arm64 libsasl2-2 arm64 2.1.27+dfsg2-2 [55.6 kB]                                          
Get:54 http://ports.ubuntu.com jammy/main arm64 ncurses-term all 6.3-1 [268 kB]                                                    
Get:55 http://ports.ubuntu.com jammy/main arm64 python3-distutils all 3.9.9-2 [144 kB]                                             
Get:56 http://ports.ubuntu.com jammy/main arm64 python3-lib2to3 all 3.9.9-2 [77.8 kB]                                              
Get:57 http://ports.ubuntu.com jammy/main arm64 python3-launchpadlib all 1.10.15.1-1 [119 kB]                                      
Get:58 http://ports.ubuntu.com jammy/main arm64 software-properties-common all 0.99.16 [14.3 kB]                                   
Get:59 http://ports.ubuntu.com jammy/main arm64 python3-software-properties all 0.99.16 [32.2 kB]                                  
Fetched 71.7 MB in 6s (11.3 MB/s)                                                                                                  
Extracting templates from packages: 100%
Preconfiguring packages ...
(Reading database ... 67209 files and directories currently installed.)
Preparing to unpack .../libncurses6_6.3-1_arm64.deb ...
Unpacking libncurses6:arm64 (6.3-1) over (6.2+20201114-2build2) ...
Preparing to unpack .../libncursesw6_6.3-1_arm64.deb ...
Unpacking libncursesw6:arm64 (6.3-1) over (6.2+20201114-2build2) ...
Preparing to unpack .../libtinfo6_6.3-1_arm64.deb ...
Unpacking libtinfo6:arm64 (6.3-1) over (6.2+20201114-2build2) ...
Setting up libtinfo6:arm64 (6.3-1) ...
(Reading database ... 67209 files and directories currently installed.)
Preparing to unpack .../ncurses-bin_6.3-1_arm64.deb ...
Unpacking ncurses-bin (6.3-1) over (6.2+20201114-2build2) ...
Setting up ncurses-bin (6.3-1) ...
(Reading database ... 67209 files and directories currently installed.)
Preparing to unpack .../ncurses-base_6.3-1_all.deb ...
Unpacking ncurses-base (6.3-1) over (6.2+20201114-2build2) ...
Setting up ncurses-base (6.3-1) ...
(Reading database ... 67209 files and directories currently installed.)
Preparing to unpack .../libcc1-0_11.2.0-12ubuntu1_arm64.deb ...
Unpacking libcc1-0:arm64 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Preparing to unpack .../gcc-11-base_11.2.0-12ubuntu1_arm64.deb ...
Unpacking gcc-11-base:arm64 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Setting up gcc-11-base:arm64 (11.2.0-12ubuntu1) ...
(Reading database ... 67209 files and directories currently installed.)
Preparing to unpack .../libgcc-s1_11.2.0-12ubuntu1_arm64.deb ...
Unpacking libgcc-s1:arm64 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Setting up libgcc-s1:arm64 (11.2.0-12ubuntu1) ...
(Reading database ... 67209 files and directories currently installed.)
Preparing to unpack .../00-libgomp1_11.2.0-12ubuntu1_arm64.deb ...
Unpacking libgomp1:arm64 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Preparing to unpack .../01-libitm1_11.2.0-12ubuntu1_arm64.deb ...
Unpacking libitm1:arm64 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Preparing to unpack .../02-libatomic1_11.2.0-12ubuntu1_arm64.deb ...
Unpacking libatomic1:arm64 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Preparing to unpack .../03-libasan6_11.2.0-12ubuntu1_arm64.deb ...
Unpacking libasan6:arm64 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Preparing to unpack .../04-liblsan0_11.2.0-12ubuntu1_arm64.deb ...
Unpacking liblsan0:arm64 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Preparing to unpack .../05-libtsan0_11.2.0-12ubuntu1_arm64.deb ...
Unpacking libtsan0:arm64 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Preparing to unpack .../06-libubsan1_11.2.0-12ubuntu1_arm64.deb ...
Unpacking libubsan1:arm64 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Preparing to unpack .../07-libhwasan0_11.2.0-12ubuntu1_arm64.deb ...
Unpacking libhwasan0:arm64 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Preparing to unpack .../08-g++-11_11.2.0-12ubuntu1_arm64.deb ...
Unpacking g++-11 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Preparing to unpack .../09-libstdc++-11-dev_11.2.0-12ubuntu1_arm64.deb ...
Unpacking libstdc++-11-dev:arm64 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Preparing to unpack .../10-libgcc-11-dev_11.2.0-12ubuntu1_arm64.deb ...
Unpacking libgcc-11-dev:arm64 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Preparing to unpack .../11-gcc-11_11.2.0-12ubuntu1_arm64.deb ...
Unpacking gcc-11 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Preparing to unpack .../12-cpp-11_11.2.0-12ubuntu1_arm64.deb ...
Unpacking cpp-11 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Preparing to unpack .../13-libstdc++6_11.2.0-12ubuntu1_arm64.deb ...
Unpacking libstdc++6:arm64 (11.2.0-12ubuntu1) over (11.2.0-10ubuntu1) ...
Setting up libstdc++6:arm64 (11.2.0-12ubuntu1) ...
(Reading database ... 67211 files and directories currently installed.)
Preparing to unpack .../0-libctf0_2.37-10ubuntu1_arm64.deb ...
Unpacking libctf0:arm64 (2.37-10ubuntu1) over (2.37-9ubuntu1) ...
Preparing to unpack .../1-libctf-nobfd0_2.37-10ubuntu1_arm64.deb ...
Unpacking libctf-nobfd0:arm64 (2.37-10ubuntu1) over (2.37-9ubuntu1) ...
Preparing to unpack .../2-libbinutils_2.37-10ubuntu1_arm64.deb ...
Unpacking libbinutils:arm64 (2.37-10ubuntu1) over (2.37-9ubuntu1) ...
Preparing to unpack .../3-binutils-common_2.37-10ubuntu1_arm64.deb ...
Unpacking binutils-common:arm64 (2.37-10ubuntu1) over (2.37-9ubuntu1) ...
Preparing to unpack .../4-binutils_2.37-10ubuntu1_arm64.deb ...
Unpacking binutils (2.37-10ubuntu1) over (2.37-9ubuntu1) ...
Preparing to unpack .../5-binutils-aarch64-linux-gnu_2.37-10ubuntu1_arm64.deb ...
Unpacking binutils-aarch64-linux-gnu (2.37-10ubuntu1) over (2.37-9ubuntu1) ...
Preparing to unpack .../6-libapt-pkg6.0_2.3.12_arm64.deb ...
Unpacking libapt-pkg6.0:arm64 (2.3.12) over (2.3.11) ...
Setting up libapt-pkg6.0:arm64 (2.3.12) ...
(Reading database ... 67211 files and directories currently installed.)
Preparing to unpack .../archives/apt_2.3.12_arm64.deb ...
Unpacking apt (2.3.12) over (2.3.11) ...
Setting up apt (2.3.12) ...
Installing new version of config file /etc/cron.daily/apt-compat ...
(Reading database ... 67211 files and directories currently installed.)
Preparing to unpack .../0-apt-utils_2.3.12_arm64.deb ...
Unpacking apt-utils (2.3.12) over (2.3.11) ...
Preparing to unpack .../1-console-setup-linux_1.205ubuntu3_all.deb ...
Unpacking console-setup-linux (1.205ubuntu3) over (1.205ubuntu1) ...
Preparing to unpack .../2-console-setup_1.205ubuntu3_all.deb ...
Unpacking console-setup (1.205ubuntu3) over (1.205ubuntu1) ...
Preparing to unpack .../3-keyboard-configuration_1.205ubuntu3_all.deb ...
Unpacking keyboard-configuration (1.205ubuntu3) over (1.205ubuntu1) ...
Preparing to unpack .../4-libpython3.9_3.9.9-1_arm64.deb ...
Unpacking libpython3.9:arm64 (3.9.9-1) over (3.9.8-2) ...
Preparing to unpack .../5-python3.9_3.9.9-1_arm64.deb ...
Unpacking python3.9 (3.9.9-1) over (3.9.8-2) ...
Preparing to unpack .../6-libpython3.9-stdlib_3.9.9-1_arm64.deb ...
Unpacking libpython3.9-stdlib:arm64 (3.9.9-1) over (3.9.8-2) ...
Preparing to unpack .../7-python3.9-minimal_3.9.9-1_arm64.deb ...
Unpacking python3.9-minimal (3.9.9-1) over (3.9.8-2) ...
Preparing to unpack .../8-libpython3.9-minimal_3.9.9-1_arm64.deb ...
Unpacking libpython3.9-minimal:arm64 (3.9.9-1) over (3.9.8-2) ...
Preparing to unpack .../9-libpcre2-8-0_10.39-3_arm64.deb ...
Unpacking libpcre2-8-0:arm64 (10.39-3) over (10.37-0ubuntu2) ...
Setting up libpcre2-8-0:arm64 (10.39-3) ...
(Reading database ... 67211 files and directories currently installed.)
Preparing to unpack .../00-libdw1_0.186-1_arm64.deb ...
Unpacking libdw1:arm64 (0.186-1) over (0.185-2) ...
Preparing to unpack .../01-libelf1_0.186-1_arm64.deb ...
Unpacking libelf1:arm64 (0.186-1) over (0.185-2) ...
Preparing to unpack .../02-python3-yaml_5.4.1-1_arm64.deb ...
Unpacking python3-yaml (5.4.1-1) over (5.3.1-5) ...
Preparing to unpack .../03-rsyslog_8.2110.0-3ubuntu1_arm64.deb ...
Unpacking rsyslog (8.2110.0-3ubuntu1) over (8.2102.0-2ubuntu2) ...
Preparing to unpack .../04-libnftnl11_1.2.1-1_arm64.deb ...
Unpacking libnftnl11:arm64 (1.2.1-1) over (1.2.0-1) ...
Preparing to unpack .../05-automake_1%3a1.16.5-1.1_all.deb ...
Unpacking automake (1:1.16.5-1.1) over (1:1.16.5-1ubuntu1) ...
Preparing to unpack .../06-busybox-initramfs_1%3a1.30.1-7ubuntu1_arm64.deb ...
Unpacking busybox-initramfs (1:1.30.1-7ubuntu1) over (1:1.30.1-6ubuntu3) ...
Preparing to unpack .../07-ethtool_1%3a5.15-1_arm64.deb ...
Unpacking ethtool (1:5.15-1) over (1:5.9-1build1) ...
Preparing to unpack .../08-libbluetooth3_5.62-0ubuntu2_arm64.deb ...
Unpacking libbluetooth3:arm64 (5.62-0ubuntu2) over (5.62-0ubuntu1) ...
Preparing to unpack .../09-libboost-iostreams1.74.0_1.74.0-13ubuntu1_arm64.deb ...
Unpacking libboost-iostreams1.74.0:arm64 (1.74.0-13ubuntu1) over (1.74.0-8ubuntu9) ...
Preparing to unpack .../10-libmm-glib0_1.18.2-0ubuntu1_arm64.deb ...
Unpacking libmm-glib0:arm64 (1.18.2-0ubuntu1) over (1.16.6-2ubuntu1) ...
Preparing to unpack .../11-libsasl2-modules-db_2.1.27+dfsg2-2_arm64.deb ...
Unpacking libsasl2-modules-db:arm64 (2.1.27+dfsg2-2) over (2.1.27+dfsg-2.3) ...
Preparing to unpack .../12-libsasl2-2_2.1.27+dfsg2-2_arm64.deb ...
Unpacking libsasl2-2:arm64 (2.1.27+dfsg2-2) over (2.1.27+dfsg-2.3) ...
Preparing to unpack .../13-ncurses-term_6.3-1_all.deb ...
Unpacking ncurses-term (6.3-1) over (6.2+20201114-2build2) ...
Preparing to unpack .../14-python3-distutils_3.9.9-2_all.deb ...
Unpacking python3-distutils (3.9.9-2) over (3.9.8-1) ...
Preparing to unpack .../15-python3-lib2to3_3.9.9-2_all.deb ...
Unpacking python3-lib2to3 (3.9.9-2) over (3.9.8-1) ...
Preparing to unpack .../16-python3-launchpadlib_1.10.15.1-1_all.deb ...
Unpacking python3-launchpadlib (1.10.15.1-1) over (1.10.14-1) ...
Preparing to unpack .../17-software-properties-common_0.99.16_all.deb ...
Unpacking software-properties-common (0.99.16) over (0.99.15) ...
Preparing to unpack .../18-python3-software-properties_0.99.16_all.deb ...
Unpacking python3-software-properties (0.99.16) over (0.99.15) ...
Setting up automake (1:1.16.5-1.1) ...
Setting up cpp-11 (11.2.0-12ubuntu1) ...
Setting up apt-utils (2.3.12) ...
Setting up libpython3.9-minimal:arm64 (3.9.9-1) ...
Setting up libboost-iostreams1.74.0:arm64 (1.74.0-13ubuntu1) ...
Setting up python3-launchpadlib (1.10.15.1-1) ...
Setting up rsyslog (8.2110.0-3ubuntu1) ...
The user `syslog' is already a member of `adm'.
/usr/bin/which: this version of `which' is deprecated; use `command -v' in scripts instead.
/usr/bin/which: this version of `which' is deprecated; use `command -v' in scripts instead.
/usr/bin/which: this version of `which' is deprecated; use `command -v' in scripts instead.
Removing obsolete conffile /etc/init.d/rsyslog ...
Setting up binutils-common:arm64 (2.37-10ubuntu1) ...
Setting up libctf-nobfd0:arm64 (2.37-10ubuntu1) ...
Setting up python3-yaml (5.4.1-1) ...
Setting up libnftnl11:arm64 (1.2.1-1) ...
Setting up libgomp1:arm64 (11.2.0-12ubuntu1) ...
Setting up libasan6:arm64 (11.2.0-12ubuntu1) ...
Setting up libsasl2-modules-db:arm64 (2.1.27+dfsg2-2) ...
Setting up python3-software-properties (0.99.16) ...
Setting up libncurses6:arm64 (6.3-1) ...
Setting up libatomic1:arm64 (11.2.0-12ubuntu1) ...
Setting up libncursesw6:arm64 (6.3-1) ...
Setting up busybox-initramfs (1:1.30.1-7ubuntu1) ...
Setting up libsasl2-2:arm64 (2.1.27+dfsg2-2) ...
Setting up libubsan1:arm64 (11.2.0-12ubuntu1) ...
Setting up libmm-glib0:arm64 (1.18.2-0ubuntu1) ...
Setting up libhwasan0:arm64 (11.2.0-12ubuntu1) ...
Setting up libbluetooth3:arm64 (5.62-0ubuntu2) ...
Setting up keyboard-configuration (1.205ubuntu3) ...
Your console font configuration will be updated the next time your system
boots. If you want to update it now, run 'setupcon' from a virtual console.
update-initramfs: deferring update (trigger activated)
Setting up python3.9-minimal (3.9.9-1) ...
Setting up libbinutils:arm64 (2.37-10ubuntu1) ...
Setting up python3-lib2to3 (3.9.9-2) ...
Setting up libelf1:arm64 (0.186-1) ...
Setting up libcc1-0:arm64 (11.2.0-12ubuntu1) ...
Setting up liblsan0:arm64 (11.2.0-12ubuntu1) ...
Setting up libitm1:arm64 (11.2.0-12ubuntu1) ...
Setting up libpython3.9-stdlib:arm64 (3.9.9-1) ...
Setting up ethtool (1:5.15-1) ...
Setting up ncurses-term (6.3-1) ...
Setting up libtsan0:arm64 (11.2.0-12ubuntu1) ...
Setting up libctf0:arm64 (2.37-10ubuntu1) ...
Setting up python3-distutils (3.9.9-2) ...
Setting up libdw1:arm64 (0.186-1) ...
Setting up binutils-aarch64-linux-gnu (2.37-10ubuntu1) ...
Setting up binutils (2.37-10ubuntu1) ...
Setting up software-properties-common (0.99.16) ...
Setting up libpython3.9:arm64 (3.9.9-1) ...
Setting up libgcc-11-dev:arm64 (11.2.0-12ubuntu1) ...
Setting up gcc-11 (11.2.0-12ubuntu1) ...
Setting up console-setup-linux (1.205ubuntu3) ...
Setting up python3.9 (3.9.9-1) ...
Setting up console-setup (1.205ubuntu3) ...
update-initramfs: deferring update (trigger activated)
Setting up libstdc++-11-dev:arm64 (11.2.0-12ubuntu1) ...
Setting up g++-11 (11.2.0-12ubuntu1) ...
Processing triggers for man-db (2.9.4-2build1) ...
Processing triggers for dbus (1.12.20-2ubuntu2) ...
Processing triggers for libc-bin (2.34-0ubuntu3) ...
Processing triggers for initramfs-tools (0.140ubuntu8) ...
update-initramfs: Generating /boot/initrd.img-5.10.81-meson64
update-initramfs: Converting to u-boot format
odroidhc4:igorp:#

 

 

sudo apt install zfs-dkms zfsutils-linux

 

Spoiler
odroidhc4:~:% sudo apt install zfs-dkms
[sudo] password for igorp: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
  debhelper
Recommended packages:
  zfs-zed zfsutils-linux
The following NEW packages will be installed:
  zfs-dkms
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,282 kB of archives.
After this operation, 17.8 MB of additional disk space will be used.
Get:1 http://apt.armbian.com jammy/jammy-utils arm64 zfs-dkms all 2.1.1-0york0~21.04 [2,282 kB]
Fetched 2,282 kB in 1s (1,847 kB/s)
Preconfiguring packages ...
Selecting previously unselected package zfs-dkms.
(Reading database ... 67248 files and directories currently installed.)
Preparing to unpack .../zfs-dkms_2.1.1-0york0~21.04_all.deb ...
Unpacking zfs-dkms (2.1.1-0york0~21.04) ...
Setting up zfs-dkms (2.1.1-0york0~21.04) ...
Loading new zfs-2.1.1 DKMS files...
Building for 5.10.81-meson64
Building initial module for 5.10.81-meson64
Done.

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

depmod......
Processing triggers for initramfs-tools (0.140ubuntu8) ...
update-initramfs: Generating /boot/initrd.img-5.10.81-meson64
update-initramfs: Converting to u-boot format

odroidhc4:~:% modinfo zfs
filename:       /lib/modules/5.10.81-meson64/updates/dkms/zfs.ko
version:        2.1.1-0york0~21.04
license:        CDDL
author:         OpenZFS
description:    ZFS
alias:          devname:zfs
alias:          char-major-10-249
srcversion:     01ED8BF0BDE5F9A75644B3B
depends:        spl,znvpair,icp,zlua,zzstd,zunicode,zcommon,zavl
name:           zfs
vermagic:       5.10.81-meson64 SMP preempt mod_unload aarch64
parm:           zvol_inhibit_dev:Do not create zvol device nodes (uint)
parm:           zvol_major:Major number for zvol device (uint)
parm:           zvol_threads:Max number of threads to handle I/O requests (uint)
parm:           zvol_request_sync:Synchronously handle bio requests (uint)
parm:           zvol_max_discard_blocks:Max number of blocks to discard (ulong)
parm:           zvol_prefetch_bytes:Prefetch N bytes at zvol start+end (uint)
parm:           zvol_volmode:Default volmode property value (uint)
parm:           zfs_fallocate_reserve_percent:Percentage of length to use for the available capacity check (uint)
parm:           zfs_key_max_salt_uses:Max number of times a salt value can be used for generating encryption keys before it is rotated (ulong)
parm:           zfs_object_mutex_size:Size of znode hold array (uint)
parm:           zfs_unlink_suspend_progress:Set to prevent async unlinks (debug - leaks space into the unlinked set) (int)
parm:           zfs_delete_blocks:Delete files larger than N blocks async (ulong)
parm:           zfs_dbgmsg_enable:Enable ZFS debug message log (int)
parm:           zfs_dbgmsg_maxsize:Maximum ZFS debug log size (int)
parm:           zfs_admin_snapshot:Enable mkdir/rmdir/mv in .zfs/snapshot (int)
parm:           zfs_expire_snapshot:Seconds to expire .zfs/snapshot (int)
parm:           vdev_file_logical_ashift:Logical ashift for file-based devices (ulong)
parm:           vdev_file_physical_ashift:Physical ashift for file-based devices (ulong)
parm:           zfs_vdev_scheduler:I/O scheduler
parm:           zfs_arc_shrinker_limit:Limit on number of pages that ARC shrinker can reclaim at once (int)
parm:           zfs_abd_scatter_enabled:Toggle whether ABD allocations must be linear. (int)
parm:           zfs_abd_scatter_min_size:Minimum size of scatter allocations. (int)
parm:           zfs_abd_scatter_max_order:Maximum order allocation used for a scatter ABD. (uint)
parm:           zio_slow_io_ms:Max I/O completion time (milliseconds) before marking it as slow (int)
parm:           zio_requeue_io_start_cut_in_line:Prioritize requeued I/O (int)
parm:           zfs_sync_pass_deferred_free:Defer frees starting in this pass (int)
parm:           zfs_sync_pass_dont_compress:Don't compress starting in this pass (int)
parm:           zfs_sync_pass_rewrite:Rewrite new bps starting in this pass (int)
parm:           zio_dva_throttle_enabled:Throttle block allocations in the ZIO pipeline (int)
parm:           zio_deadman_log_all:Log all slow ZIOs, not just those with vdevs (int)
parm:           zfs_commit_timeout_pct:ZIL block open timeout percentage (int)
parm:           zil_replay_disable:Disable intent logging replay (int)
parm:           zil_nocacheflush:Disable ZIL cache flushes (int)
parm:           zil_slog_bulk:Limit in bytes slog sync writes per commit (ulong)
parm:           zil_maxblocksize:Limit in bytes of ZIL log block size (int)
parm:           zfs_vnops_read_chunk_size:Bytes to read per chunk (ulong)
parm:           zfs_immediate_write_sz:Largest data block to write to zil (long)
parm:           zfs_max_nvlist_src_size:Maximum size in bytes allowed for src nvlist passed with ZFS ioctls (ulong)
parm:           zfs_history_output_max:Maximum size in bytes of ZFS ioctl output that will be logged (ulong)
parm:           zfs_zevent_retain_max:Maximum recent zevents records to retain for duplicate checking (uint)
parm:           zfs_zevent_retain_expire_secs:Expiration time for recent zevents records (uint)
parm:           zfs_lua_max_instrlimit:Max instruction limit that can be specified for a channel program (ulong)
parm:           zfs_lua_max_memlimit:Max memory limit that can be specified for a channel program (ulong)
parm:           zap_iterate_prefetch:When iterating ZAP object, prefetch it (int)
parm:           zfs_trim_extent_bytes_max:Max size of TRIM commands, larger will be split (uint)
parm:           zfs_trim_extent_bytes_min:Min size of TRIM commands, smaller will be skipped (uint)
parm:           zfs_trim_metaslab_skip:Skip metaslabs which have never been initialized (uint)
parm:           zfs_trim_txg_batch:Min number of txgs to aggregate frees before issuing TRIM (uint)
parm:           zfs_trim_queue_limit:Max queued TRIMs outstanding per leaf vdev (uint)
parm:           zfs_removal_ignore_errors:Ignore hard IO errors when removing device (int)
parm:           zfs_remove_max_segment:Largest contiguous segment to allocate when removing device (int)
parm:           vdev_removal_max_span:Largest span of free chunks a remap segment can span (int)
parm:           zfs_removal_suspend_progress:Pause device removal after this many bytes are copied (debug use only - causes removal to hang) (int)
parm:           zfs_rebuild_max_segment:Max segment size in bytes of rebuild reads (ulong)
parm:           zfs_rebuild_vdev_limit:Max bytes in flight per leaf vdev for sequential resilvers (ulong)
parm:           zfs_rebuild_scrub_enabled:Automatically scrub after sequential resilver completes (int)
parm:           zfs_vdev_raidz_impl:Select raidz implementation.
parm:           zfs_vdev_aggregation_limit:Max vdev I/O aggregation size (int)
parm:           zfs_vdev_aggregation_limit_non_rotating:Max vdev I/O aggregation size for non-rotating media (int)
parm:           zfs_vdev_aggregate_trim:Allow TRIM I/O to be aggregated (int)
parm:           zfs_vdev_read_gap_limit:Aggregate read I/O over gap (int)
parm:           zfs_vdev_write_gap_limit:Aggregate write I/O over gap (int)
parm:           zfs_vdev_max_active:Maximum number of active I/Os per vdev (int)
parm:           zfs_vdev_async_write_active_max_dirty_percent:Async write concurrency max threshold (int)
parm:           zfs_vdev_async_write_active_min_dirty_percent:Async write concurrency min threshold (int)
parm:           zfs_vdev_async_read_max_active:Max active async read I/Os per vdev (int)
parm:           zfs_vdev_async_read_min_active:Min active async read I/Os per vdev (int)
parm:           zfs_vdev_async_write_max_active:Max active async write I/Os per vdev (int)
parm:           zfs_vdev_async_write_min_active:Min active async write I/Os per vdev (int)
parm:           zfs_vdev_initializing_max_active:Max active initializing I/Os per vdev (int)
parm:           zfs_vdev_initializing_min_active:Min active initializing I/Os per vdev (int)
parm:           zfs_vdev_removal_max_active:Max active removal I/Os per vdev (int)
parm:           zfs_vdev_removal_min_active:Min active removal I/Os per vdev (int)
parm:           zfs_vdev_scrub_max_active:Max active scrub I/Os per vdev (int)
parm:           zfs_vdev_scrub_min_active:Min active scrub I/Os per vdev (int)
parm:           zfs_vdev_sync_read_max_active:Max active sync read I/Os per vdev (int)
parm:           zfs_vdev_sync_read_min_active:Min active sync read I/Os per vdev (int)
parm:           zfs_vdev_sync_write_max_active:Max active sync write I/Os per vdev (int)
parm:           zfs_vdev_sync_write_min_active:Min active sync write I/Os per vdev (int)
parm:           zfs_vdev_trim_max_active:Max active trim/discard I/Os per vdev (int)
parm:           zfs_vdev_trim_min_active:Min active trim/discard I/Os per vdev (int)
parm:           zfs_vdev_rebuild_max_active:Max active rebuild I/Os per vdev (int)
parm:           zfs_vdev_rebuild_min_active:Min active rebuild I/Os per vdev (int)
parm:           zfs_vdev_nia_credit:Number of non-interactive I/Os to allow in sequence (int)
parm:           zfs_vdev_nia_delay:Number of non-interactive I/Os before _max_active (int)
parm:           zfs_vdev_queue_depth_pct:Queue depth percentage for each top-level vdev (int)
parm:           zfs_vdev_mirror_rotating_inc:Rotating media load increment for non-seeking I/O's (int)
parm:           zfs_vdev_mirror_rotating_seek_inc:Rotating media load increment for seeking I/O's (int)
parm:           zfs_vdev_mirror_rotating_seek_offset:Offset in bytes from the last I/O which triggers a reduced rotating media seek increment (int)
parm:           zfs_vdev_mirror_non_rotating_inc:Non-rotating media load increment for non-seeking I/O's (int)
parm:           zfs_vdev_mirror_non_rotating_seek_inc:Non-rotating media load increment for seeking I/O's (int)
parm:           zfs_initialize_value:Value written during zpool initialize (ulong)
parm:           zfs_initialize_chunk_size:Size in bytes of writes by zpool initialize (ulong)
parm:           zfs_condense_indirect_vdevs_enable:Whether to attempt condensing indirect vdev mappings (int)
parm:           zfs_condense_indirect_obsolete_pct:Minimum obsolete percent of bytes in the mapping to attempt condensing (int)
parm:           zfs_condense_min_mapping_bytes:Don't bother condensing if the mapping uses less than this amount of memory (ulong)
parm:           zfs_condense_max_obsolete_bytes:Minimum size obsolete spacemap to attempt condensing (ulong)
parm:           zfs_condense_indirect_commit_entry_delay_ms:Used by tests to ensure certain actions happen in the middle of a condense. A maximum value of 1 should be sufficient. (int)
parm:           zfs_reconstruct_indirect_combinations_max:Maximum number of combinations when reconstructing split segments (int)
parm:           zfs_vdev_cache_max:Inflate reads small than max (int)
parm:           zfs_vdev_cache_size:Total size of the per-disk cache (int)
parm:           zfs_vdev_cache_bshift:Shift size to inflate reads too (int)
parm:           zfs_vdev_default_ms_count:Target number of metaslabs per top-level vdev (int)
parm:           zfs_vdev_default_ms_shift:Default limit for metaslab size (int)
parm:           zfs_vdev_min_ms_count:Minimum number of metaslabs per top-level vdev (int)
parm:           zfs_vdev_ms_count_limit:Practical upper limit of total metaslabs per top-level vdev (int)
parm:           zfs_slow_io_events_per_second:Rate limit slow IO (delay) events to this many per second (uint)
parm:           zfs_checksum_events_per_second:Rate limit checksum events to this many checksum errors per second (do not set below zed threshold). (uint)
parm:           zfs_scan_ignore_errors:Ignore errors during resilver/scrub (int)
parm:           vdev_validate_skip:Bypass vdev_validate() (int)
parm:           zfs_nocacheflush:Disable cache flushes (int)
parm:           zfs_embedded_slog_min_ms:Minimum number of metaslabs required to dedicate one for log blocks (int)
parm:           zfs_vdev_min_auto_ashift:Minimum ashift used when creating new top-level vdevs
parm:           zfs_vdev_max_auto_ashift:Maximum ashift used when optimizing for logical -> physical sector size on new top-level vdevs
parm:           zfs_txg_timeout:Max seconds worth of delta per txg (int)
parm:           zfs_read_history:Historical statistics for the last N reads (int)
parm:           zfs_read_history_hits:Include cache hits in read history (int)
parm:           zfs_txg_history:Historical statistics for the last N txgs (int)
parm:           zfs_multihost_history:Historical statistics for last N multihost writes (int)
parm:           zfs_flags:Set additional debugging flags (uint)
parm:           zfs_recover:Set to attempt to recover from fatal errors (int)
parm:           zfs_free_leak_on_eio:Set to ignore IO errors during free and permanently leak the space (int)
parm:           zfs_deadman_checktime_ms:Dead I/O check interval in milliseconds (ulong)
parm:           zfs_deadman_enabled:Enable deadman timer (int)
parm:           spa_asize_inflation:SPA size estimate multiplication factor (int)
parm:           zfs_ddt_data_is_special:Place DDT data into the special class (int)
parm:           zfs_user_indirect_is_special:Place user data indirect blocks into the special class (int)
parm:           zfs_deadman_failmode:Failmode for deadman timer
parm:           zfs_deadman_synctime_ms:Pool sync expiration time in milliseconds
parm:           zfs_deadman_ziotime_ms:IO expiration time in milliseconds
parm:           zfs_special_class_metadata_reserve_pct:Small file blocks in special vdevs depends on this much free space available (int)
parm:           spa_slop_shift:Reserved free space in pool
parm:           zfs_unflushed_max_mem_amt:Specific hard-limit in memory that ZFS allows to be used for unflushed changes (ulong)
parm:           zfs_unflushed_max_mem_ppm:Percentage of the overall system memory that ZFS allows to be used for unflushed changes (value is calculated over 1000000 for finer granularity) (ulong)
parm:           zfs_unflushed_log_block_max:Hard limit (upper-bound) in the size of the space map log in terms of blocks. (ulong)
parm:           zfs_unflushed_log_block_min:Lower-bound limit for the maximum amount of blocks allowed in log spacemap (see zfs_unflushed_log_block_max) (ulong)
parm:           zfs_unflushed_log_block_pct:Tunable used to determine the number of blocks that can be used for the spacemap log, expressed as a percentage of the total number of metaslabs in the pool (e.g. 400 means the number of log blocks is capped at 4 times the number of metaslabs) (ulong)
parm:           zfs_max_log_walking:The number of past TXGs that the flushing algorithm of the log spacemap feature uses to estimate incoming log blocks (ulong)
parm:           zfs_max_logsm_summary_length:Maximum number of rows allowed in the summary of the spacemap log (ulong)
parm:           zfs_min_metaslabs_to_flush:Minimum number of metaslabs to flush per dirty TXG (ulong)
parm:           zfs_keep_log_spacemaps_at_export:Prevent the log spacemaps from being flushed and destroyed during pool export/destroy (int)
parm:           spa_config_path:SPA config file (/etc/zfs/zpool.cache) (charp)
parm:           zfs_autoimport_disable:Disable pool import at module load (int)
parm:           zfs_spa_discard_memory_limit:Limit for memory used in prefetching the checkpoint space map done on each vdev while discarding the checkpoint (ulong)
parm:           spa_load_verify_shift:log2 fraction of arc that can be used by inflight I/Os when verifying pool during import (int)
parm:           spa_load_verify_metadata:Set to traverse metadata on pool import (int)
parm:           spa_load_verify_data:Set to traverse data on pool import (int)
parm:           spa_load_print_vdev_tree:Print vdev tree to zfs_dbgmsg during pool import (int)
parm:           zio_taskq_batch_pct:Percentage of CPUs to run an IO worker thread (uint)
parm:           zio_taskq_batch_tpq:Number of threads per IO worker taskqueue (uint)
parm:           zfs_max_missing_tvds:Allow importing pool with up to this number of missing top-level vdevs (in read-only mode) (ulong)
parm:           zfs_livelist_condense_zthr_pause:Set the livelist condense zthr to pause (int)
parm:           zfs_livelist_condense_sync_pause:Set the livelist condense synctask to pause (int)
parm:           zfs_livelist_condense_sync_cancel:Whether livelist condensing was canceled in the synctask (int)
parm:           zfs_livelist_condense_zthr_cancel:Whether livelist condensing was canceled in the zthr function (int)
parm:           zfs_livelist_condense_new_alloc:Whether extra ALLOC blkptrs were added to a livelist entry while it was being condensed (int)
parm:           zfs_multilist_num_sublists:Number of sublists used in each multilist (int)
parm:           zfs_multihost_interval:Milliseconds between mmp writes to each leaf
parm:           zfs_multihost_fail_intervals:Max allowed period without a successful mmp write (uint)
parm:           zfs_multihost_import_intervals:Number of zfs_multihost_interval periods to wait for activity (uint)
parm:           metaslab_aliquot:Allocation granularity (a.k.a. stripe size) (ulong)
parm:           metaslab_debug_load:Load all metaslabs when pool is first opened (int)
parm:           metaslab_debug_unload:Prevent metaslabs from being unloaded (int)
parm:           metaslab_preload_enabled:Preload potential metaslabs during reassessment (int)
parm:           metaslab_unload_delay:Delay in txgs after metaslab was last used before unloading (int)
parm:           metaslab_unload_delay_ms:Delay in milliseconds after metaslab was last used before unloading (int)
parm:           zfs_mg_noalloc_threshold:Percentage of metaslab group size that should be free to make it eligible for allocation (int)
parm:           zfs_mg_fragmentation_threshold:Percentage of metaslab group size that should be considered eligible for allocations unless all metaslab groups within the metaslab class have also crossed this threshold (int)
parm:           zfs_metaslab_fragmentation_threshold:Fragmentation for metaslab to allow allocation (int)
parm:           metaslab_fragmentation_factor_enabled:Use the fragmentation metric to prefer less fragmented metaslabs (int)
parm:           metaslab_lba_weighting_enabled:Prefer metaslabs with lower LBAs (int)
parm:           metaslab_bias_enabled:Enable metaslab group biasing (int)
parm:           zfs_metaslab_segment_weight_enabled:Enable segment-based metaslab selection (int)
parm:           zfs_metaslab_switch_threshold:Segment-based metaslab selection maximum buckets before switching (int)
parm:           metaslab_force_ganging:Blocks larger than this size are forced to be gang blocks (ulong)
parm:           metaslab_df_max_search:Max distance (bytes) to search forward before using size tree (int)
parm:           metaslab_df_use_largest_segment:When looking in size tree, use largest segment instead of exact fit (int)
parm:           zfs_metaslab_max_size_cache_sec:How long to trust the cached max chunk size of a metaslab (ulong)
parm:           zfs_metaslab_mem_limit:Percentage of memory that can be used to store metaslab range trees (int)
parm:           zfs_metaslab_try_hard_before_gang:Try hard to allocate before ganging (int)
parm:           zfs_metaslab_find_max_tries:Normally only consider this many of the best metaslabs in each vdev (int)
parm:           zfs_zevent_len_max:Max event queue length (int)
parm:           zfs_scan_vdev_limit:Max bytes in flight per leaf vdev for scrubs and resilvers (ulong)
parm:           zfs_scrub_min_time_ms:Min millisecs to scrub per txg (int)
parm:           zfs_obsolete_min_time_ms:Min millisecs to obsolete per txg (int)
parm:           zfs_free_min_time_ms:Min millisecs to free per txg (int)
parm:           zfs_resilver_min_time_ms:Min millisecs to resilver per txg (int)
parm:           zfs_scan_suspend_progress:Set to prevent scans from progressing (int)
parm:           zfs_no_scrub_io:Set to disable scrub I/O (int)
parm:           zfs_no_scrub_prefetch:Set to disable scrub prefetching (int)
parm:           zfs_async_block_max_blocks:Max number of blocks freed in one txg (ulong)
parm:           zfs_max_async_dedup_frees:Max number of dedup blocks freed in one txg (ulong)
parm:           zfs_free_bpobj_enabled:Enable processing of the free_bpobj (int)
parm:           zfs_scan_mem_lim_fact:Fraction of RAM for scan hard limit (int)
parm:           zfs_scan_issue_strategy:IO issuing strategy during scrubbing. 0 = default, 1 = LBA, 2 = size (int)
parm:           zfs_scan_legacy:Scrub using legacy non-sequential method (int)
parm:           zfs_scan_checkpoint_intval:Scan progress on-disk checkpointing interval (int)
parm:           zfs_scan_max_ext_gap:Max gap in bytes between sequential scrub / resilver I/Os (ulong)
parm:           zfs_scan_mem_lim_soft_fact:Fraction of hard limit used as soft limit (int)
parm:           zfs_scan_strict_mem_lim:Tunable to attempt to reduce lock contention (int)
parm:           zfs_scan_fill_weight:Tunable to adjust bias towards more filled segments during scans (int)
parm:           zfs_resilver_disable_defer:Process all resilvers immediately (int)
parm:           zfs_dirty_data_max_percent:Max percent of RAM allowed to be dirty (int)
parm:           zfs_dirty_data_max_max_percent:zfs_dirty_data_max upper bound as % of RAM (int)
parm:           zfs_delay_min_dirty_percent:Transaction delay threshold (int)
parm:           zfs_dirty_data_max:Determines the dirty space limit (ulong)
parm:           zfs_dirty_data_max_max:zfs_dirty_data_max upper bound in bytes (ulong)
parm:           zfs_dirty_data_sync_percent:Dirty data txg sync threshold as a percentage of zfs_dirty_data_max (int)
parm:           zfs_delay_scale:How quickly delay approaches infinity (ulong)
parm:           zfs_sync_taskq_batch_pct:Max percent of CPUs that are used to sync dirty data (int)
parm:           zfs_zil_clean_taskq_nthr_pct:Max percent of CPUs that are used per dp_sync_taskq (int)
parm:           zfs_zil_clean_taskq_minalloc:Number of taskq entries that are pre-populated (int)
parm:           zfs_zil_clean_taskq_maxalloc:Max number of taskq entries that are cached (int)
parm:           zfs_livelist_max_entries:Size to start the next sub-livelist in a livelist (ulong)
parm:           zfs_livelist_min_percent_shared:Threshold at which livelist is disabled (int)
parm:           zfs_max_recordsize:Max allowed record size (int)
parm:           zfs_allow_redacted_dataset_mount:Allow mounting of redacted datasets (int)
parm:           zfs_disable_ivset_guid_check:Set to allow raw receives without IVset guids (int)
parm:           zfs_prefetch_disable:Disable all ZFS prefetching (int)
parm:           zfetch_max_streams:Max number of streams per zfetch (uint)
parm:           zfetch_min_sec_reap:Min time before stream reclaim (uint)
parm:           zfetch_max_distance:Max bytes to prefetch per stream (uint)
parm:           zfetch_max_idistance:Max bytes to prefetch indirects for per stream (uint)
parm:           zfetch_array_rd_sz:Number of bytes in a array_read (ulong)
parm:           zfs_pd_bytes_max:Max number of bytes to prefetch (int)
parm:           zfs_traverse_indirect_prefetch_limit:Traverse prefetch number of blocks pointed by indirect block (int)
parm:           ignore_hole_birth:Alias for send_holes_without_birth_time (int)
parm:           send_holes_without_birth_time:Ignore hole_birth txg for zfs send (int)
parm:           zfs_send_corrupt_data:Allow sending corrupt data (int)
parm:           zfs_send_queue_length:Maximum send queue length (int)
parm:           zfs_send_unmodified_spill_blocks:Send unmodified spill blocks (int)
parm:           zfs_send_no_prefetch_queue_length:Maximum send queue length for non-prefetch queues (int)
parm:           zfs_send_queue_ff:Send queue fill fraction (int)
parm:           zfs_send_no_prefetch_queue_ff:Send queue fill fraction for non-prefetch queues (int)
parm:           zfs_override_estimate_recordsize:Override block size estimate with fixed size (int)
parm:           zfs_recv_queue_length:Maximum receive queue length (int)
parm:           zfs_recv_queue_ff:Receive queue fill fraction (int)
parm:           zfs_recv_write_batch_size:Maximum amount of writes to batch into one transaction (int)
parm:           dmu_object_alloc_chunk_shift:CPU-specific allocator grabs 2^N objects at once (int)
parm:           zfs_nopwrite_enabled:Enable NOP writes (int)
parm:           zfs_per_txg_dirty_frees_percent:Percentage of dirtied blocks from frees in one TXG (ulong)
parm:           zfs_dmu_offset_next_sync:Enable forcing txg sync to find holes (int)
parm:           dmu_prefetch_max:Limit one prefetch call to this size (int)
parm:           zfs_dedup_prefetch:Enable prefetching dedup-ed blks (int)
parm:           zfs_dbuf_state_index:Calculate arc header index (int)
parm:           dbuf_cache_max_bytes:Maximum size in bytes of the dbuf cache. (ulong)
parm:           dbuf_cache_hiwater_pct:Percentage over dbuf_cache_max_bytes when dbufs must be evicted directly. (uint)
parm:           dbuf_cache_lowater_pct:Percentage below dbuf_cache_max_bytes when the evict thread stops evicting dbufs. (uint)
parm:           dbuf_metadata_cache_max_bytes:Maximum size in bytes of the dbuf metadata cache. (ulong)
parm:           dbuf_cache_shift:Set the size of the dbuf cache to a log2 fraction of arc size. (int)
parm:           dbuf_metadata_cache_shift:Set the size of the dbuf metadata cache to a log2 fraction of arc size. (int)
parm:           zfs_arc_min:Min arc size
parm:           zfs_arc_max:Max arc size
parm:           zfs_arc_meta_limit:Metadata limit for arc size
parm:           zfs_arc_meta_limit_percent:Percent of arc size for arc meta limit
parm:           zfs_arc_meta_min:Min arc metadata
parm:           zfs_arc_meta_prune:Meta objects to scan for prune (int)
parm:           zfs_arc_meta_adjust_restarts:Limit number of restarts in arc_evict_meta (int)
parm:           zfs_arc_meta_strategy:Meta reclaim strategy (int)
parm:           zfs_arc_grow_retry:Seconds before growing arc size
parm:           zfs_arc_p_dampener_disable:Disable arc_p adapt dampener (int)
parm:           zfs_arc_shrink_shift:log2(fraction of arc to reclaim)
parm:           zfs_arc_pc_percent:Percent of pagecache to reclaim arc to (uint)
parm:           zfs_arc_p_min_shift:arc_c shift to calc min/max arc_p
parm:           zfs_arc_average_blocksize:Target average block size (int)
parm:           zfs_compressed_arc_enabled:Disable compressed arc buffers (int)
parm:           zfs_arc_min_prefetch_ms:Min life of prefetch block in ms
parm:           zfs_arc_min_prescient_prefetch_ms:Min life of prescient prefetched block in ms
parm:           l2arc_write_max:Max write bytes per interval (ulong)
parm:           l2arc_write_boost:Extra write bytes during device warmup (ulong)
parm:           l2arc_headroom:Number of max device writes to precache (ulong)
parm:           l2arc_headroom_boost:Compressed l2arc_headroom multiplier (ulong)
parm:           l2arc_trim_ahead:TRIM ahead L2ARC write size multiplier (ulong)
parm:           l2arc_feed_secs:Seconds between L2ARC writing (ulong)
parm:           l2arc_feed_min_ms:Min feed interval in milliseconds (ulong)
parm:           l2arc_noprefetch:Skip caching prefetched buffers (int)
parm:           l2arc_feed_again:Turbo L2ARC warmup (int)
parm:           l2arc_norw:No reads during writes (int)
parm:           l2arc_meta_percent:Percent of ARC size allowed for L2ARC-only headers (int)
parm:           l2arc_rebuild_enabled:Rebuild the L2ARC when importing a pool (int)
parm:           l2arc_rebuild_blocks_min_l2size:Min size in bytes to write rebuild log blocks in L2ARC (ulong)
parm:           l2arc_mfuonly:Cache only MFU data from ARC into L2ARC (int)
parm:           zfs_arc_lotsfree_percent:System free memory I/O throttle in bytes
parm:           zfs_arc_sys_free:System free memory target size in bytes
parm:           zfs_arc_dnode_limit:Minimum bytes of dnodes in arc
parm:           zfs_arc_dnode_limit_percent:Percent of ARC meta buffers for dnodes
parm:           zfs_arc_dnode_reduce_percent:Percentage of excess dnodes to try to unpin (ulong)
parm:           zfs_arc_eviction_pct:When full, ARC allocation waits for eviction of this % of alloc size (int)
parm:           zfs_arc_evict_batch_limit:The number of headers to evict per sublist before moving to the next (int)





odroidhc4:igorp:# apt install zfsutils-linux
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libnvpair3linux libuutil3linux libzfs4linux libzpool5linux
Suggested packages:
  nfs-kernel-server samba-common-bin zfs-initramfs | zfs-dracut
Recommended packages:
  zfs-zed
The following NEW packages will be installed:
  libnvpair3linux libuutil3linux libzfs4linux libzpool5linux zfsutils-linux
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,931 kB of archives.
After this operation, 6,091 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://apt.armbian.com jammy/jammy-utils arm64 libnvpair3linux arm64 2.1.1-0york0~21.04 [60.3 kB]
Get:2 http://apt.armbian.com jammy/jammy-utils arm64 libuutil3linux arm64 2.1.1-0york0~21.04 [55.4 kB]
Get:3 http://apt.armbian.com jammy/jammy-utils arm64 libzfs4linux arm64 2.1.1-0york0~21.04 [218 kB]                      
Get:4 http://apt.armbian.com jammy/jammy-utils arm64 libzpool5linux arm64 2.1.1-0york0~21.04 [1,110 kB]
Get:5 http://apt.armbian.com jammy/jammy-utils arm64 zfsutils-linux arm64 2.1.1-0york0~21.04 [486 kB]
Fetched 1,931 kB in 1s (1,391 kB/s)                         
Selecting previously unselected package libnvpair3linux.
(Reading database ... 69123 files and directories currently installed.)
Preparing to unpack .../libnvpair3linux_2.1.1-0york0~21.04_arm64.deb ...
Unpacking libnvpair3linux (2.1.1-0york0~21.04) ...
Selecting previously unselected package libuutil3linux.
Preparing to unpack .../libuutil3linux_2.1.1-0york0~21.04_arm64.deb ...
Unpacking libuutil3linux (2.1.1-0york0~21.04) ...
Selecting previously unselected package libzfs4linux.
Preparing to unpack .../libzfs4linux_2.1.1-0york0~21.04_arm64.deb ...
Unpacking libzfs4linux (2.1.1-0york0~21.04) ...
Selecting previously unselected package libzpool5linux.
Preparing to unpack .../libzpool5linux_2.1.1-0york0~21.04_arm64.deb ...
Unpacking libzpool5linux (2.1.1-0york0~21.04) ...
Selecting previously unselected package zfsutils-linux.
Preparing to unpack .../zfsutils-linux_2.1.1-0york0~21.04_arm64.deb ...
Unpacking zfsutils-linux (2.1.1-0york0~21.04) ...
Setting up libnvpair3linux (2.1.1-0york0~21.04) ...
Setting up libuutil3linux (2.1.1-0york0~21.04) ...
Setting up libzfs4linux (2.1.1-0york0~21.04) ...
Setting up libzpool5linux (2.1.1-0york0~21.04) ...
Setting up zfsutils-linux (2.1.1-0york0~21.04) ...
insmod /lib/modules/5.10.81-meson64/updates/dkms/spl.ko 
insmod /lib/modules/5.10.81-meson64/updates/dkms/icp.ko 
insmod /lib/modules/5.10.81-meson64/updates/dkms/zavl.ko 
insmod /lib/modules/5.10.81-meson64/updates/dkms/znvpair.ko 
insmod /lib/modules/5.10.81-meson64/updates/dkms/zcommon.ko 
insmod /lib/modules/5.10.81-meson64/updates/dkms/zlua.ko 
insmod /lib/modules/5.10.81-meson64/updates/dkms/zzstd.ko 
insmod /lib/modules/5.10.81-meson64/updates/dkms/zunicode.ko 
insmod /lib/modules/5.10.81-meson64/updates/dkms/zfs.ko 
Created symlink /etc/systemd/system/zfs-import.target.wants/zfs-import-cache.service → /lib/systemd/system/zfs-import-cache.service.
Created symlink /etc/systemd/system/zfs.target.wants/zfs-import.target → /lib/systemd/system/zfs-import.target.
Created symlink /etc/systemd/system/zfs-mount.service.wants/zfs-load-module.service → /lib/systemd/system/zfs-load-module.service.
Created symlink /etc/systemd/system/zfs.target.wants/zfs-load-module.service → /lib/systemd/system/zfs-load-module.service.
Created symlink /etc/systemd/system/zfs.target.wants/zfs-mount.service → /lib/systemd/system/zfs-mount.service.
Created symlink /etc/systemd/system/zfs.target.wants/zfs-share.service → /lib/systemd/system/zfs-share.service.
Created symlink /etc/systemd/system/zfs-volumes.target.wants/zfs-volume-wait.service → /lib/systemd/system/zfs-volume-wait.service.
Created symlink /etc/systemd/system/zfs.target.wants/zfs-volumes.target → /lib/systemd/system/zfs-volumes.target.
Created symlink /etc/systemd/system/multi-user.target.wants/zfs.target → /lib/systemd/system/zfs.target.
zfs-import-scan.service is a disabled or a static unit, not starting it.
zfs-import-scan.service is a disabled or a static unit, not starting it.
Processing triggers for man-db (2.9.4-2build1) ...
Processing triggers for libc-bin (2.34-0ubuntu3) ...

 

 

 

Checking for ZFS pool status after drive pool import:
 

Spoiler
odroidhc4:~:% zpool status           
  pool: pool
 state: ONLINE
config:

	NAME        STATE     READ WRITE CKSUM
	pool        ONLINE       0     0     0
	  sda1      ONLINE       0     0     0
	  sda2      ONLINE       0     0     0
	  sda3      ONLINE       0     0     0

errors: No known data errors

odroidhc4:~:% df
Filesystem     1K-blocks    Used Available Use% Mounted on
tmpfs             390776    5908    384868   2% /run
/dev/mmcblk0p1  30371612 1616872  28407488   6% /
tmpfs            1953872       0   1953872   0% /dev/shm
tmpfs               5120       4      5116   1% /run/lock
tmpfs            1953872       0   1953872   0% /tmp
/dev/zram1         47960    2056     42320   5% /var/log
tmpfs             390772       0    390772   0% /run/user/1000
pool            27934208  524416  27409792   2% /pool

 


Enable LCD:

 

Spoiler
odroidhc4:~:% git clone https://github.com/rpardini/sys-oled-hc4.git
Cloning into 'sys-oled-hc4'...
remote: Enumerating objects: 99, done.
remote: Counting objects: 100% (2/2), done.
remote: Total 99 (delta 1), reused 1 (delta 1), pack-reused 97
Receiving objects: 100% (99/99), 54.83 KiB | 1.61 MiB/s, done.
Resolving deltas: 100% (33/33), done.
odroidhc4:~:% cd sys-oled-hc4
odroidhc4:sys-oled-hc4:% sudo ./install.sh                                                                                 <master>
Installing Dependencies
Hit:1 http://ports.ubuntu.com jammy InRelease
Hit:2 http://ports.ubuntu.com jammy-security InRelease
Hit:3 http://ports.ubuntu.com jammy-updates InRelease
Hit:4 http://ports.ubuntu.com jammy-backports InRelease
Hit:5 http://armbian.16z.eu/apt jammy InRelease   
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
build-essential is already the newest version (12.9ubuntu2).
The following additional packages will be installed:
  libbrotli-dev libexpat1-dev libfreetype-dev libfreetype6 libjpeg-turbo8 libjpeg-turbo8-dev libjpeg8 libjpeg8-dev libjs-jquery
  libjs-sphinxdoc libjs-underscore libpng-dev libpython3-dev libpython3.9-dev python-pip-whl python3.9-dev zlib1g-dev
Suggested packages:
  freetype2-doc python-psutil-doc python-setuptools-doc
Recommended packages:
  javascript-common libpng-tools
The following NEW packages will be installed:
  libbrotli-dev libexpat1-dev libfreetype-dev libfreetype6 libfreetype6-dev libjpeg-dev libjpeg-turbo8 libjpeg-turbo8-dev libjpeg8
  libjpeg8-dev libjs-jquery libjs-sphinxdoc libjs-underscore libpng-dev libpython3-dev libpython3.9-dev python-pip-whl python3-dev
  python3-pip python3-psutil python3-setuptools python3-wheel python3.9-dev zlib1g-dev
0 upgraded, 24 newly installed, 0 to remove and 0 not upgraded.
Need to get 10.7 MB of archives.
After this operation, 34.7 MB of additional disk space will be used.
Get:1 http://ports.ubuntu.com jammy/main arm64 libbrotli-dev arm64 1.0.9-2build4 [336 kB]
Get:2 http://ports.ubuntu.com jammy/main arm64 libexpat1-dev arm64 2.4.1-3 [131 kB]
Get:3 http://ports.ubuntu.com jammy/main arm64 libfreetype6 arm64 2.11.0+dfsg-1 [382 kB]
Get:4 http://ports.ubuntu.com jammy/main arm64 zlib1g-dev arm64 1:1.2.11.dfsg-2ubuntu7 [163 kB]
Get:5 http://ports.ubuntu.com jammy/main arm64 libpng-dev arm64 1.6.37-3build4 [194 kB]
Get:6 http://ports.ubuntu.com jammy/main arm64 libfreetype-dev arm64 2.11.0+dfsg-1 [555 kB]
Get:7 http://ports.ubuntu.com jammy/main arm64 libfreetype6-dev arm64 2.11.0+dfsg-1 [8,340 B]
Get:8 http://ports.ubuntu.com jammy/main arm64 libjpeg-turbo8 arm64 2.1.1-0ubuntu1 [129 kB]
Get:9 http://ports.ubuntu.com jammy/main arm64 libjpeg-turbo8-dev arm64 2.1.1-0ubuntu1 [246 kB]
Get:10 http://ports.ubuntu.com jammy/main arm64 libjpeg8 arm64 8c-2ubuntu8 [2,198 B]
Get:11 http://ports.ubuntu.com jammy/main arm64 libjpeg8-dev arm64 8c-2ubuntu8 [1,550 B]
Get:12 http://ports.ubuntu.com jammy/main arm64 libjpeg-dev arm64 8c-2ubuntu8 [1,546 B]
Get:13 http://ports.ubuntu.com jammy/main arm64 libjs-jquery all 3.5.1+dfsg+~3.5.5-7 [314 kB]
Get:14 http://ports.ubuntu.com jammy/main arm64 libjs-underscore all 1.9.1~dfsg-4 [103 kB]
Get:15 http://ports.ubuntu.com jammy/main arm64 libjs-sphinxdoc all 4.2.0-5 [137 kB]
Get:16 http://ports.ubuntu.com jammy/main arm64 libpython3.9-dev arm64 3.9.9-1 [4,798 kB]
Get:17 http://ports.ubuntu.com jammy/main arm64 libpython3-dev arm64 3.9.4-1build1 [7,402 B]
Get:18 http://ports.ubuntu.com jammy/universe arm64 python-pip-whl all 20.3.4-4 [1,897 kB]
Get:19 http://ports.ubuntu.com jammy/main arm64 python3.9-dev arm64 3.9.9-1 [508 kB]
Get:20 http://ports.ubuntu.com jammy/main arm64 python3-dev arm64 3.9.4-1build1 [25.5 kB]
Get:21 http://ports.ubuntu.com jammy/main arm64 python3-setuptools all 58.2.0-1 [336 kB]
Get:22 http://ports.ubuntu.com jammy/universe arm64 python3-wheel all 0.34.2-1 [23.8 kB]
Get:23 http://ports.ubuntu.com jammy/universe arm64 python3-pip all 20.3.4-4 [283 kB]
Get:24 http://ports.ubuntu.com jammy/main arm64 python3-psutil arm64 5.8.0-2 [157 kB]
Fetched 10.7 MB in 2s (6,051 kB/s)        
Selecting previously unselected package libbrotli-dev:arm64.
(Reading database ... 68180 files and directories currently installed.)
Preparing to unpack .../00-libbrotli-dev_1.0.9-2build4_arm64.deb ...
Unpacking libbrotli-dev:arm64 (1.0.9-2build4) ...
Selecting previously unselected package libexpat1-dev:arm64.
Preparing to unpack .../01-libexpat1-dev_2.4.1-3_arm64.deb ...
Unpacking libexpat1-dev:arm64 (2.4.1-3) ...
Selecting previously unselected package libfreetype6:arm64.
Preparing to unpack .../02-libfreetype6_2.11.0+dfsg-1_arm64.deb ...
Unpacking libfreetype6:arm64 (2.11.0+dfsg-1) ...
Selecting previously unselected package zlib1g-dev:arm64.
Preparing to unpack .../03-zlib1g-dev_1%3a1.2.11.dfsg-2ubuntu7_arm64.deb ...
Unpacking zlib1g-dev:arm64 (1:1.2.11.dfsg-2ubuntu7) ...
Selecting previously unselected package libpng-dev:arm64.
Preparing to unpack .../04-libpng-dev_1.6.37-3build4_arm64.deb ...
Unpacking libpng-dev:arm64 (1.6.37-3build4) ...
Selecting previously unselected package libfreetype-dev:arm64.
Preparing to unpack .../05-libfreetype-dev_2.11.0+dfsg-1_arm64.deb ...
Unpacking libfreetype-dev:arm64 (2.11.0+dfsg-1) ...
Selecting previously unselected package libfreetype6-dev:arm64.
Preparing to unpack .../06-libfreetype6-dev_2.11.0+dfsg-1_arm64.deb ...
Unpacking libfreetype6-dev:arm64 (2.11.0+dfsg-1) ...
Selecting previously unselected package libjpeg-turbo8:arm64.
Preparing to unpack .../07-libjpeg-turbo8_2.1.1-0ubuntu1_arm64.deb ...
Unpacking libjpeg-turbo8:arm64 (2.1.1-0ubuntu1) ...
Selecting previously unselected package libjpeg-turbo8-dev:arm64.
Preparing to unpack .../08-libjpeg-turbo8-dev_2.1.1-0ubuntu1_arm64.deb ...
Unpacking libjpeg-turbo8-dev:arm64 (2.1.1-0ubuntu1) ...
Selecting previously unselected package libjpeg8:arm64.
Preparing to unpack .../09-libjpeg8_8c-2ubuntu8_arm64.deb ...
Unpacking libjpeg8:arm64 (8c-2ubuntu8) ...
Selecting previously unselected package libjpeg8-dev:arm64.
Preparing to unpack .../10-libjpeg8-dev_8c-2ubuntu8_arm64.deb ...
Unpacking libjpeg8-dev:arm64 (8c-2ubuntu8) ...
Selecting previously unselected package libjpeg-dev:arm64.
Preparing to unpack .../11-libjpeg-dev_8c-2ubuntu8_arm64.deb ...
Unpacking libjpeg-dev:arm64 (8c-2ubuntu8) ...
Selecting previously unselected package libjs-jquery.
Preparing to unpack .../12-libjs-jquery_3.5.1+dfsg+~3.5.5-7_all.deb ...
Unpacking libjs-jquery (3.5.1+dfsg+~3.5.5-7) ...
Selecting previously unselected package libjs-underscore.
Preparing to unpack .../13-libjs-underscore_1.9.1~dfsg-4_all.deb ...
Unpacking libjs-underscore (1.9.1~dfsg-4) ...
Selecting previously unselected package libjs-sphinxdoc.
Preparing to unpack .../14-libjs-sphinxdoc_4.2.0-5_all.deb ...
Unpacking libjs-sphinxdoc (4.2.0-5) ...
Selecting previously unselected package libpython3.9-dev:arm64.
Preparing to unpack .../15-libpython3.9-dev_3.9.9-1_arm64.deb ...
Unpacking libpython3.9-dev:arm64 (3.9.9-1) ...
Selecting previously unselected package libpython3-dev:arm64.
Preparing to unpack .../16-libpython3-dev_3.9.4-1build1_arm64.deb ...
Unpacking libpython3-dev:arm64 (3.9.4-1build1) ...
Selecting previously unselected package python-pip-whl.
Preparing to unpack .../17-python-pip-whl_20.3.4-4_all.deb ...
Unpacking python-pip-whl (20.3.4-4) ...
Selecting previously unselected package python3.9-dev.
Preparing to unpack .../18-python3.9-dev_3.9.9-1_arm64.deb ...
Unpacking python3.9-dev (3.9.9-1) ...
Selecting previously unselected package python3-dev.
Preparing to unpack .../19-python3-dev_3.9.4-1build1_arm64.deb ...
Unpacking python3-dev (3.9.4-1build1) ...
Selecting previously unselected package python3-setuptools.
Preparing to unpack .../20-python3-setuptools_58.2.0-1_all.deb ...
Unpacking python3-setuptools (58.2.0-1) ...
Selecting previously unselected package python3-wheel.
Preparing to unpack .../21-python3-wheel_0.34.2-1_all.deb ...
Unpacking python3-wheel (0.34.2-1) ...
Selecting previously unselected package python3-pip.
Preparing to unpack .../22-python3-pip_20.3.4-4_all.deb ...
Unpacking python3-pip (20.3.4-4) ...
Selecting previously unselected package python3-psutil.
Preparing to unpack .../23-python3-psutil_5.8.0-2_arm64.deb ...
Unpacking python3-psutil (5.8.0-2) ...
Setting up python3-setuptools (58.2.0-1) ...
Setting up python3-wheel (0.34.2-1) ...
Setting up python3-psutil (5.8.0-2) ...
Setting up libexpat1-dev:arm64 (2.4.1-3) ...
Setting up libfreetype6:arm64 (2.11.0+dfsg-1) ...
Setting up libjpeg-turbo8:arm64 (2.1.1-0ubuntu1) ...
Setting up zlib1g-dev:arm64 (1:1.2.11.dfsg-2ubuntu7) ...
Setting up python-pip-whl (20.3.4-4) ...
Setting up libjs-jquery (3.5.1+dfsg+~3.5.5-7) ...
Setting up libbrotli-dev:arm64 (1.0.9-2build4) ...
Setting up libjs-underscore (1.9.1~dfsg-4) ...
Setting up libjpeg8:arm64 (8c-2ubuntu8) ...
Setting up libjpeg-turbo8-dev:arm64 (2.1.1-0ubuntu1) ...
Setting up libpng-dev:arm64 (1.6.37-3build4) ...
Setting up libpython3.9-dev:arm64 (3.9.9-1) ...
Setting up libfreetype-dev:arm64 (2.11.0+dfsg-1) ...
Setting up python3-pip (20.3.4-4) ...
Setting up libjs-sphinxdoc (4.2.0-5) ...
Setting up python3.9-dev (3.9.9-1) ...
Setting up libjpeg8-dev:arm64 (8c-2ubuntu8) ...
Setting up libpython3-dev:arm64 (3.9.4-1build1) ...
Setting up libjpeg-dev:arm64 (8c-2ubuntu8) ...
Setting up libfreetype6-dev:arm64 (2.11.0+dfsg-1) ...
Setting up python3-dev (3.9.4-1build1) ...
Processing triggers for man-db (2.9.4-2build1) ...
Processing triggers for libc-bin (2.34-0ubuntu3) ...
Installing GPIO library dependency in pip...
Collecting RPi.GPIO==0.7.1a4
  Downloading RPi.GPIO-0.7.1a4.tar.gz (29 kB)
Building wheels for collected packages: RPi.GPIO
  Building wheel for RPi.GPIO (setup.py) ... done
  Created wheel for RPi.GPIO: filename=RPi.GPIO-0.7.1a4-cp39-cp39-linux_aarch64.whl size=71613 sha256=53dfde6f104ca9f3546d35832487870d397234ea8122f28d67bfb595e1aa40e4
  Stored in directory: /root/.cache/pip/wheels/6f/1c/5c/113894ea5785c8856518ad0d88803c2ec7cbc6cb88e47f2e04
Successfully built RPi.GPIO
Installing collected packages: RPi.GPIO
Successfully installed RPi.GPIO-0.7.1a4
Installing luma.oled library
Collecting luma.oled
  Downloading luma.oled-3.8.1-py2.py3-none-any.whl (32 kB)
Collecting luma.core>=2.0.0
  Downloading luma.core-2.3.1-py2.py3-none-any.whl (71 kB)
     |████████████████████████████████| 71 kB 3.6 MB/s 
Collecting pillow>=4.0.0
  Downloading Pillow-8.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.0 MB)
     |████████████████████████████████| 3.0 MB 16.0 MB/s 
Collecting deprecated
  Downloading Deprecated-1.2.13-py2.py3-none-any.whl (9.6 kB)
Collecting spidev
  Downloading spidev-3.5.tar.gz (10 kB)
Collecting cbor2
  Downloading cbor2-5.4.2.tar.gz (85 kB)
     |████████████████████████████████| 85 kB 2.4 MB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Requirement already satisfied: RPI.GPIO in /usr/local/lib/python3.9/dist-packages (from luma.core>=2.0.0->luma.oled) (0.7.1a4)
Collecting pyftdi
  Downloading pyftdi-0.53.3-py3-none-any.whl (141 kB)
     |████████████████████████████████| 141 kB 15.4 MB/s 
Collecting smbus2
  Downloading smbus2-0.4.1-py2.py3-none-any.whl (11 kB)
Collecting wrapt<2,>=1.10
  Downloading wrapt-1.13.3.tar.gz (48 kB)
     |████████████████████████████████| 48 kB 2.6 MB/s 
Collecting pyusb!=1.2.0,>=1.0.0
  Downloading pyusb-1.2.1-py3-none-any.whl (58 kB)
     |████████████████████████████████| 58 kB 2.9 MB/s 
Collecting pyserial>=3.0
  Downloading pyserial-3.5-py2.py3-none-any.whl (90 kB)
     |████████████████████████████████| 90 kB 4.7 MB/s 
Building wheels for collected packages: cbor2, wrapt, spidev
  Building wheel for cbor2 (PEP 517) ... done
  Created wheel for cbor2: filename=cbor2-5.4.2-cp39-cp39-linux_aarch64.whl size=165153 sha256=7cc7110c2bf4bf36ad78c8e2c3e8f48f3ecebb9b012bcac8254d6605e7ff5934
  Stored in directory: /root/.cache/pip/wheels/8f/73/f0/a47bd572f51ce2006f0df606036923f3c437f8b33e735472e2
  Building wheel for wrapt (setup.py) ... done
  Created wheel for wrapt: filename=wrapt-1.13.3-cp39-cp39-linux_aarch64.whl size=74011 sha256=0f76a47d495cfc1bdccae8d188476519326772a392e8517e6e91a452aeb3a296
  Stored in directory: /root/.cache/pip/wheels/f9/6e/ed/b9a64c8281ff2ee42402497ff3c67f4abd39f552efecc309a9
  Building wheel for spidev (setup.py) ... done
  Created wheel for spidev: filename=spidev-3.5-cp39-cp39-linux_aarch64.whl size=41256 sha256=56d77998f647774b49eaa3fbd10f58e1a0389c199cb27d3164021cc03ab107fc
  Stored in directory: /root/.cache/pip/wheels/af/4b/86/7f9af5f0c9fbcca1aa3279380b64bf55f323ba022485d9a041
Successfully built cbor2 wrapt spidev
Installing collected packages: wrapt, pyusb, pyserial, spidev, smbus2, pyftdi, pillow, deprecated, cbor2, luma.core, luma.oled
Successfully installed cbor2-5.4.2 deprecated-1.2.13 luma.core-2.3.1 luma.oled-3.8.1 pillow-8.4.0 pyftdi-0.53.3 pyserial-3.5 pyusb-1.2.1 smbus2-0.4.1 spidev-3.5 wrapt-1.13.3
Installing sys-oled files
'etc/sys-oled.conf' -> '/etc/sys-oled.conf'
'bin/sys-oled' -> '/usr/local/bin/sys-oled'
'share/sys-oled' -> '/usr/local/share/sys-oled'
'share/sys-oled/C&C Red Alert [INET].ttf' -> '/usr/local/share/sys-oled/C&C Red Alert [INET].ttf'
'share/sys-oled/helios4_logo.png' -> '/usr/local/share/sys-oled/helios4_logo.png'
'system/sys-oled.service' -> '/etc/systemd/system/sys-oled.service'
Enabling sys-oled at startup
Created symlink /etc/systemd/system/multi-user.target.wants/sys-oled.service → /etc/systemd/system/sys-oled.service.
Starting service...
odroidhc4:sys-oled-hc4:%

 

 

Enable FAN:

 

Spoiler
# create file /etc/fancontrol with the following content

INTERVAL=10
DEVPATH=hwmon0=devices/virtual/thermal/thermal_zone0 hwmon2=devices/platform/pwm-fan
DEVNAME=hwmon0=cpu_thermal hwmon2=pwmfan
FCTEMPS=hwmon2/pwm1=hwmon0/temp1_input
FCFANS= hwmon2/pwm1=hwmon2/fan1_input
MINTEMP=hwmon2/pwm1=50
MAXTEMP=hwmon2/pwm1=60
MINSTART=hwmon2/pwm1=20
MINSTOP=hwmon2/pwm1=28
MINPWM=hwmon2/pwm1=0
MAXPWM=hwmon2/pwm1=255

 


 

sudo systemctl restart fancontrol

 

Build from sources (build host must be Ubuntu Hirsute or Jammy):
 

apt-get -y install git
git clone https://github.com/armbian/build
cd build
sed "s/^#DOCKER_FLAGS+=(--privileged)/DOCKER_FLAGS+=(--privileged)/" -i config/templates/config-docker.conf
touch .ignore_changes
./compile.sh \
docker \
EXPERT="yes" \
BOARD="odroidhc4" \
BRANCH="current" \
RELEASE="jammy" \
KERNEL_ONLY="no" \
KERNEL_CONFIGURE="no" \
BUILD_DESKTOP="no" \
BUILD_MINIMAL="no"

 

 

Link to post
Share on other sites

  • Igor changed the title to Armbian Ubuntu 22.04 Jammy with ZFS 2.1.1 for Odroid HC4
Donate and support the project!

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...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

0