Dantes Posted October 8 Posted October 8 (edited) Hiya peoples, Finally figured out what caused my black screen after updating After installing a new kernel (via apt) the '/boot/dtb' symlink is not updated, and fails to boot properly. lrwxrwxrwx 1 root root 31 Oct 7 11:38 dtb -> dtb-6.11.2-edge-rockchip-rk3588 lrwxrwxrwx 1 root root 38 Oct 7 08:49 Image -> vmlinuz-6.11.2-current-rockchip-rk3588 lrwxrwxrwx 1 root root 38 Oct 7 08:49 uInitrd -> uInitrd-6.11.2-current-rockchip-rk3588 So I wrote a systemd service that: 1. Runs before shutdown/reboot 2. Changes into the /boot directory 3. Reads the version from the dtb symlink 4. Reads the version from the Image symlink 5. Compares the versions 6. And if they do NOT match, creates a new dtb symlink that matches the Image symlink version. [Unit] Description=match dtb symlink with kernel version DefaultDependencies=no Before=shutdown.target [Service] Type=oneshot ExecStart=/bin/sh -c 'set -x;cd /boot;dtb=$(readlink dtb|sed 's,^dtb-,,');vmlinuz=$(readlink Image|sed 's,vmlinuz-,,');[ "$dtb" = "$vmlinuz" ] || ln -sf dtb-$vmlinuz dtb' TimeoutStartSec=0 [Install] WantedBy=shutdown.target To use this: 1. sudo nano /etc/systemd/system/dtb-match-kernel.service and paste in the text above. 2. sudo systemd enable dtb-match-kernel.service You can check the journal if it works with: 3. journalctl -u dtb-match-kernel.service or the /boot directory lrwxrwxrwx 1 root root 31 Oct 7 11:39 dtb -> dtb-6.11.2-current-rockchip-rk3588 lrwxrwxrwx 1 root root 38 Oct 7 08:49 Image -> vmlinuz-6.11.2-current-rockchip-rk3588 lrwxrwxrwx 1 root root 38 Oct 7 08:49 uInitrd -> uInitrd-6.11.2-current-rockchip-rk3588 Dantes Edited October 8 by Dantes 0 Quote
Recommended Posts
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.