Closed piyushaswani55 closed 12 months ago
That is bad, the latest version of rpi-eeprom
depends on the new firmware package now, which requires a different boot mount setup. And the repository does not offer the old version anymore ๐.
Please select from the error-handle "Change command" and replace everything with true
. Then after setup has finished, do this to install an older version manually and set the package on hold for now, until we figured out how to safely migrate RPi systems from old to new firmware packges:
G_AGP rpi-eeprom raspi-firmware
G_AGUP
G_AGI rpi-eeprom
EDIT: Workaround updated, since the latest rpi-eeprom
package is compatible now. It only needs to be assured that raspi-firmware
and the old (unconfgured) rpi-eeprom
are purged, when affected by above error.
@MichaIng Can you confirm what you mean by
Please select from the error-handle "Change command" and replace everything with true.
Ran an apt upgrade
and got a similar error and came here. And now I'm afraid to reboot as this pi is running my DHCP server, DNS server, pihole, rustdesk server, etc. I'm assuming if I purge and reinstall via above method, things should be okay but I'm confused what you meant by the above. Not something I have time to toy around with much right now lol. Seems like a pretty idiotic breaking change from upstream....sigh...
You've probably already seen, but if it's helpful for live-patch: https://forums.raspberrypi.com/viewtopic.php?p=2156899 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1055901
Hello,
I ran into this right during post-configuration after a fresh install on my Pi4. There was indeed no /boot/firmware. If you look into the raspi-firmware package, the postinstall script says:
elif ! mountpoint -q /boot/firmware; then
echo "Error: missing /boot/firmware, did you forget to mount it?" >&2
exit 1
So I gave this script a mountpoint...
mkdir /boot/firmware
mount -t tmpfs -o size=128M firmware /boot/firmware
...and it happily installed :-)
While this is only a tmpfs, I made it a real folder afterwards
cp -r /boot/firmware /tmp/
umount /boot/firmware
rm -r /boot/firmware
cp -r /tmp/firmware /boot/firmware
Will someone please enlighten me? Why should /boot/firmware be a mountpoint at all?
See here: https://github.com/MichaIng/DietPi/issues/6676#issuecomment-1771124218
Unintentionally the new rpi-eeprom
package pulls this new raspi-firmware
package as dependency, which cannot work without the partitioning/mount change. The RPi package maintainers forgot about those which manually upgraded to Bookworm, hence use the old /boot
mount, or 3rd party distros like us.
An unclean migrating can cause havoc, hence as long as you are not sure about what you are doing, I strongly advice to apply the workaround I posted above, which downgrades and holds the rpi-eeprom
package, and purges the new raspi-firmware
package for now.
The migration according to the linked RPi forum topic is possible, but incomplete: You need to purge the old bootloader package and migrate the kernel package(s) as well to assure that everything is compatible with each other. Else any kernel and/or bootloader upgrade or reinstall might break things.
I am writing a script for a clean and complete migration, which will be offered on next DietPi update.
@matzepunkrocker
Note that with your /boot/firmware
directory (not a mount) and /boot
still being a FAT partition, any next raspi-firmware
package upgrade will fail again. Also the new kernel package(s) cannot be installed like that. /boot
must be a regular dir on the ext4 rootfs and the FAT partition directly mounted to /boot/firmware
. The RPi forum topic linked above your post has this correct, but misses the other package migrations.
Okay, I merged a live patch + pre-patch to prevent this package from being upgraded + install the latest compatible version when done via dietpi-config
. RPi images are also rebuilding with the patch applied already.
The actual migration to the new firmware/kernel packages can be discussed here: #6676 They are required for RPi 5 support as well.
thank you for your work!
when will the live-patch be online ? Also in 8.24 or only 8.23 ?
It is online already. Just run dietpi-update
and it will be offered. All it does is setting the package on hold and adjusting the dietpi-config
(and first boot) option so that it installs the last compatible version of the package hosted on our server, instead of the new one. In 8.24 (dev
branch) it has been solved code-wise the regular way.
Btw, I reported it to the RPi repo as well, and they removed the dependency, with a note that the package should go into the RPi repo next week. Afterwards, the workaround is not required anymore ๐.
Okay, thanks for info. The live-patch doesnt show up, i dont know why.
root@HomeNetDNS:~# dietpi-update
DietPi-Update โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Phase: Checking for available DietPi update
[ OK ] DietPi-Update | Checking IPv4 network connectivity [ OK ] DietPi-Update | Checking IPv6 network connectivity [ OK ] DietPi-Update | Checking DNS resolver [ INFO ] DietPi-TimeSync | Manual mode detected, skipping time sync [ INFO ] DietPi-Update | Getting latest version from: https://raw.githubusercontent.com/MichaIng/DietPi/beta/.update/version [ OK ] DietPi-Update | Got valid latest version: 8.24.0 [ OK ] DietPi-Update | No update required, your DietPi installation is already up to date: [ INFO ] DietPi-Update | Current version : v8.24.0 [ INFO ] DietPi-Update | Latest version : v8.24.0 [ INFO ] DietPi-Update | Checking for new available live patches [ INFO ] DietPi-Update | APT update, please wait... Hit:1 https://deb.debian.org/debian bookworm InRelease Hit:2 https://deb.debian.org/debian bookworm-updates InRelease Hit:3 https://deb.debian.org/debian-security bookworm-security InRelease Hit:4 https://deb.debian.org/debian bookworm-backports InRelease Hit:5 https://archive.raspberrypi.org/debian bookworm InRelease Hit:6 https://packages.redis.io/deb bookworm InRelease Reading package lists... [ OK ] DietPi-Update | APT update [ INFO ] DietPi-Update | No APT upgrades were found, not creating file: /run/dietpi/.apt_updates
If i run "apt upgrade" i get the message "2 not fully installed or removed." that are raspi-eeprom and raspi-firmware... "apt update" says it all up2date... strange behavior... i dont wanna reset my entire setup :(((
If i run "apt upgrade" i get the message "2 not fully installed or removed." that are raspi-eeprom and raspi-firmware... "apt update" says it all up2date... strange behavior... i dont wanna reset my entire setup :(((
Please apply the workaround I provided above: https://github.com/MichaIng/DietPi/issues/6747#issuecomment-1808348281 The live patch only works if the package upgrade has not been attempted yet.
Okay, thanks for info. The live-patch doesnt show up, i dont know why.
Because you are on v8.24 already (beta or dev?). If you are on beta, wait for v8.24.1, if you are on dev:
dietpi-update -1
Okay thanks, iยดm on 8.24 beta branch - so i wait for 8.24.1 then and hope that the livepatch works, even if I have already initiated the package upgrade. Finger crossed :)
Please apply the workaround I provided above: https://github.com/MichaIng/DietPi/issues/6747#issuecomment-1808348281 The live patch only works if the package upgrade has not been attempted yet.
Sorry, but how do I check if all is good now? I ran apt update/upgrade BEFORE noticing that there was a LIVE patch. What I did:
What can I do to verfiy that my RPi will still boot up after a shutdown?
best
Bernd
The system will boot still. There should be nothing to worry about.
#
That is bad, the latest version of
rpi-eeprom
depends on the new firmware package now, which requires a different boot mount setup. And the repository does not offer the old version anymore ๐.Please select from the error-handle "Change command" and replace everything with
true
. Then after setup has finished, do this to install an older version manually and set the package on hold for now, until we figured out how to safely migrate RPi systems from old to new firmware packges:G_AGP rpi-eeprom raspi-firmware cd /tmp curl -fo package.deb 'https://archive.raspberrypi.org/debian/pool/main/r/rpi-eeprom/rpi-eeprom_20.1-1_all.deb' apt install ./package.deb rm package.deb apt-mark hold rpi-eeprom
Thanks for this fix! I also had to remove the raspi-firmware package, or else the latest dietpi upgrade did not complete, it would fail on apt because the firmware package was not configured.
A new version of rpi-eeprom
has been pushed to APT servers, which does not depend on raspi-firmware
anymore. Hence it is again possible to unhold and upgrade it:
apt-mark unhold rpi-eeprom
apt update
apt upgrade
Will be done next DietPi update as well.
So who is to blame here, his name?
Not sure what you are looking for. But there was a short period of time where RPi developer added a dependency between different packages causing some conflicts. This has been removed in meantime. And what are you doing with a name of a developer?
I want to make funny jokes on him when this happens again.
What a bad attitude to make fun of open source projects where people sacrifice their free time for people like you who then have the products for free. We are all human and mistakes can happen. It would be better if you actively participated in the relevant projects yourself instead of making fun of them. You should be ashamed of yourself.
That's an interesting card you pulled out. I should be thankful to profitable entity who sells 4 year old credit card sized computers for 100-200% markup. OK Agree with you on OSS, still not free proprietary license, people are paid for development. In my universe payment means accountability. Files: firmware/* Copyright: 2019, Raspberry Pi (Trading) Ltd. License: custom
i miss the feature to mute / complete block such idiots on github...
I want to make funny jokes on him when this happens again.
Why TF would you think it is fun to go after people who create cool tools and WORK FOR YOU FOR FREE??
I am running Raspberry Pi 4B
I installed the image released on 2023-11-23 and upgraded it to DietPi v8.25.1 and ran the firmware migration script. Everything works, but there seems to be a problem with the vc4-fkms-v3d driver. SDR++ has a high CPU usage when it is idle (not playing an SDR). I also reports a very low frame rate. Changing to boot from another system upgraded to DietPi v8.25.1, CPU usage is low.
This had been identified as a driver issue, and the OpenGL version that is used. The vc4-fkms-v3d driver dramatically reduced CPU usage. Please see SDR++ Graphics issue with Raspberry Pi 4 #844
I should note that newer systems work well with either the vc4-kms-v3d or the vc4-fkms-v3d driver. Raspberry Pi Bookworm OS no longer allows the vc4-fkms-v3d driver.
Are the vc4-kms-v3d drivers being loaded correctly?
Edit: I found that the vc4-kms drivers are not in /boot/firmware/overlays. I copied them from the backup that the script made and it is back to normal after a reboot.
It seems that an update from v8.23.3 to v8.25.1 can still trigger this bug - and I don't understand how that's possible. I had a user of a 8.23.3 based image fall into that trap today and it took a while to walk them remotely through getting this resolved.
Is there a step that I can do prior to running dietpi-update 1
that makes sure this doesn't happen?
It happens when someone did a manual apt upgrade
during the 2-3 days until we shipped the live patch, and did not recognise or ignore the resulting error.
We only fixed it in so far that the live patch prevented the package upgrade in the first patch, but fixing the already happened upgrade error would have been too much for a live patch. We could try to detect it in a pre-patch and then fix it that way, but I think/hope that most users sorted it in the meantime, and the package itself was fixed as well.
It seems that an update from v8.23.3 to v8.25.1 can still trigger this bug - and I don't understand how that's possible. I had a user of a 8.23.3 based image fall into that trap today and it took a while to walk them remotely through getting this resolved.
Is there a step that I can do prior to running
dietpi-update 1
that makes sure this doesn't happen?
I'm unfortunately another victim of the 8.23.3 -> 8.25.1 trap >.> As of today what is the recommended guidance for getting the upgrade to finish up properly if I've encountered this bug?
Thanks in advance!
Can you share the whole complete error message you have on screen?
Happily - this is (I believe) the relevant bit that I get in the terminal (let me know if there's anything else you're looking for):
[ INFO ] DietPi-Update | APT upgrade, please wait...
Reading package lists...
Building dependency tree...
Reading state information...
Calculating upgrade...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up raspi-firmware (1:1.20231024+ds-1+rpt2) ...
stat: cannot read file system information for '/boot/firmware': No such file or directory
Error: missing /boot/firmware, did you forget to mount it?
dpkg: error processing package raspi-firmware (--configure):
installed raspi-firmware package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
raspi-firmware
E: Sub-process /usr/bin/dpkg returned an error code (1)
[FAILED] DietPi-Update | APT upgrade
- Command: apt-get -y --with-new-pkgs upgrade
Additionally, the relevant bits from the blue text if it helps:
Linux (redacted) 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
apt-get -y --with-new-pkgs upgrade
G_AGP raspi-firmware
Yep, that unclogged it! Appreciate the assistance o7
Details:
Linux nebulae 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
apt-get -y --allow-change-held-packages install rpi-eeprom
Steps to reproduce:
DietPi_RPi-ARMv8-Bookworm
on RPi 4Expected behaviour:
The command should not error out
Actual behaviour:
dpkg: error processing package rpi-eeprom (--configure): dependency problems - leaving unconfigured Errors were encountered while processing: raspi-firmware rpi-eeprom E: Sub-process /usr/bin/dpkg returned an error code (1)