Installing Debian on RockPro64

Installed Debian ‘testing’ from netinst iso (2020.06.15) today. Fetched, wrote to USB pen drive and booted. Due to U-Boot being present in on-board SPI flash I did not had to mess with installation media.


There were some issues:

  1. no graphics on default installer (known, someone promised to fix it)
  2. grub refusing to install (bug against installer reported)
  3. Panfrost failing to initialize

Serial console FTW!

Ok, this time I am joking. There are two choices: text and graphical installer. First option lacks kernel modules for graphics so only serial console is available. Graphical installer works fine.

EFI Grub and lack of EFI variables storage

As I booted board with U-Boot there was no EFI variables storage. Grub was not satisfied:

os-prober: debug: running /usr/lib/os-probes/50mounted-tests on /dev/sdb2
50mounted-tests: debug: mounted using GRUB fat filesystem driver
50mounted-tests: debug: running subtest /usr/lib/os-probes/mounted/40lsb
50mounted-tests: debug: running subtest /usr/lib/os-probes/mounted/90linux-distro
grub-installer: info: Installing grub on 'dummy'
grub-installer: info: grub-install does not support --no-floppy
grub-installer: info: Running chroot /target grub-install  --force "dummy"
grub-installer: Installing for arm64-efi platform.
grub-installer: grub-install: warning: Cannot set EFI variable Boot0000.
grub-installer: grub-install: warning: vars_set_variable: write() failed: Invalid argument.
grub-installer: grub-install: warning: _efi_set_variable_mode: ops->set_variable() failed: No such file or directory.
grub-installer: grub-install: error: failed to register the EFI boot entry: No such file or directory.
grub-installer: error: Running 'grub-install  --force "dummy"' failed.

How to work around it?

  1. chroot into target system and run update-grub by hand
  2. copy “/efi/debian/grubaa64.efi” to “/efi/boot/bootaa64.efi”

This way U-Boot will get efi binary to load in default location.

Panfrost initialization failure

Panfrost kernel module needs some devfreq governor. Kernel has four of them, Debian enables one. There are no dependencies between those modules which ends with this error:

panfrost ff9a0000.gpu: devfreq_add_device: Unable to find governor for the device
panfrost ff9a0000.gpu: [drm:panfrost_devfreq_init [panfrost]] *ERROR* Couldn't initialize GPU devfreq
panfrost ff9a0000.gpu: Fatal error during devfreq init
panfrost: probe of ff9a0000.gpu failed with error -22


  1. boot system
  2. rmmod panfrost, modprobe governor_simpleondemand, modprobe panfrost
  3. update-initramfs -u -kall

Good option at this phase is changing configuration of update-initramfs to include only needed kernel modules (by setting “MODULES=dep” in it’s configuration). This allowed me to shrink initramfs from 37 to 13 megabytes (removal of plymouth and ntfs-3g shrinked to 6.6 MB).

Final effect

Board boots directly to graphical login manager and then to KDE Plasma session. Some of OpenGL games work, some not (Nexuiz). Looks good.

aarch64 debian rockpro64 sbc