Dantes Posted October 8 Share 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 Link to comment Share on other sites More sharing options...
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.