01-18-2020, 01:25 AM
Regarding the failed firmware load of dptx. (Direct firmware load for rockchip/dptx.bin failed with error -2)
I think maybe everyone will have problems regardless of encryption.
My system doesn't have any disk encryption and the firmware is present in rootfs (/lib/firmware/rockchip/dptx.bin)
But an initrd is present /boot/initrd.img-5.4.2-2-pinebookpro-arm64 that doesn't contain dptx.bin
It seems the kernel only looks in the initrd (or rootfs appears too late), so regardless whether /lib/firmware/rockchip/dptx.bin is present in the rootfs or whether rootfs is encrpted or not, it won't find/load dptx.bin unless it's in initrd.
In case anyone is interested, this is how I added dptx.bin to the initrd on my bullseye/sid installation. (disclaimer, there is probably a better way to do this)
First check initrd for dptx
If dptx was not shown (like the example above) and you want to add it, then add a hook script to automatically copy it from roots to initrd when initrd is updated
vi /etc/initramfs-tools/hooks/add-dptx-firmware
The script has to be executable or it is ignored.
chmod +x /etc/initramfs-tools/hooks/add-dptx-firmware
If you don't have /lib/firmware/rockchip/dptx.bin present in rootfs, install package "firmware-misc-nonfree"
Update initrd and check it contains dptx
Great it's present. Now reboot.
For me this was necessary so I could use a USB-C to HDMI adapter to connect an external monitor.
(01-17-2020, 04:30 AM)danielt Wrote: Anyone with an encrypted rootfs will have problems because the third try will take place during the rootfs decrypt prompt and will also fail.
I think maybe everyone will have problems regardless of encryption.
My system doesn't have any disk encryption and the firmware is present in rootfs (/lib/firmware/rockchip/dptx.bin)
But an initrd is present /boot/initrd.img-5.4.2-2-pinebookpro-arm64 that doesn't contain dptx.bin
It seems the kernel only looks in the initrd (or rootfs appears too late), so regardless whether /lib/firmware/rockchip/dptx.bin is present in the rootfs or whether rootfs is encrpted or not, it won't find/load dptx.bin unless it's in initrd.
In case anyone is interested, this is how I added dptx.bin to the initrd on my bullseye/sid installation. (disclaimer, there is probably a better way to do this)
First check initrd for dptx
Code:
gzip -dc /boot/initrd.img-5.4.2-2-pinebookpro-arm64 | cpio -t | grep dptx
74917 blocks
If dptx was not shown (like the example above) and you want to add it, then add a hook script to automatically copy it from roots to initrd when initrd is updated
vi /etc/initramfs-tools/hooks/add-dptx-firmware
Code:
#!/bin/bash
[[ "$1" == prereqs ]] && exit 0
. /usr/share/initramfs-tools/hook-functions
copy_file firmware /lib/firmware/rockchip/dptx.bin
The script has to be executable or it is ignored.
chmod +x /etc/initramfs-tools/hooks/add-dptx-firmware
If you don't have /lib/firmware/rockchip/dptx.bin present in rootfs, install package "firmware-misc-nonfree"
Update initrd and check it contains dptx
Code:
# update-initramfs -u
# gzip -dc /boot/initrd.img-5.4.2-2-pinebookpro-arm64 | cpio -t | grep dptx
usr/lib/firmware/rockchip/dptx.bin
75115 blocks
Great it's present. Now reboot.
For me this was necessary so I could use a USB-C to HDMI adapter to connect an external monitor.