-
Notifications
You must be signed in to change notification settings - Fork 120
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kernel panic after update from 3.8.8 to 3.9.1 #815
Comments
Sorry the upgrade didn't quite work out for you. You already have an expanded recovery partition, so I'm surprised it failed (unless your /os folder was totally full!). Glad to hear you are making the most of PINN's functionalities, though! 😁 |
My recovery partition has about 700Mb free space even with the As you proposed, I retried my repair process using PINN 3.9.1 version and modifying the You surely noticed the unnatural data partition size. After OSes installation (through PINN), I used GParted to move and resize all partitions in the way I need for my tests. But I didn't "inform" PINN about those changes in any way. Do you think this could be the origin of the update problem? If so, what should I do so that PINN can deal with the changes during the update process? Additionally, do you plan from now on to force this |
I can't imagine what happened, then. The upgrade process normally works fine. From 3.8.8 I added a 'preupdate' script feature so that I could adapt the upgrade process. This was necessary this time to account for the filename changes and the lack of disk space. In addition, I save the boot partition contents to a temporary folder before upgrading so I can rollback if it fails due to lack of disk space. Moving and resizing the partitions should not have any effect on PINN. PINN only cares about the order of the partitions and depending on the OS, the partition label, partuuid or uuid. It does not care about the size or location of the partition. I shall have to rethink the "clean up" of the boot partition on the next upgrade. I had overlooked that as I am stopping providing a full NOOBS image with some OSes stored in the /os folder as it is too time consuming to produce. For users who have already enlarged their recovery partition, this should not be necessary anyway. |
Thanks for doing these tests. I think that confirms my suspicion and the the kernel panic is understandable. EDIT: Have you modified config.txt or pinn_init? |
Effectively, changing the HDMI port allowed a successful update process to 3.9.1, like expected as No I didn't do any change in PINN's configuration, except in the I found that those kind of messages are displayed by an old feature called RPI safe mode, only still supported by NOOBS (and possibly by inheritors like PINN), that can be activated by shunting GPIO pins 5 and 6, to be able to edit config.txt and cmdline.txt with vi in a busybox shell. So, that's right: my HDMI connection was not "as expected", but falling in emergency mode seems to me a little extreme :-) and not really expectable as PINN 3.8.8 is not affected by the misconnection. Nevertheless, thanks to you for your really appreciate help and work. |
Wow, that was totally unexpected. I don't think it is a failure of the upgrade process, but a failure of 3.9.1 to startup when using HDMI2 instead of HDMI1. It's not from RPi Safe mode, but when the Pi4 came along with 2 HDMI ports, I tried to detect which one is in use and switch PINN to using that one. First time I have seen such a failure. I will see if I can replicate it. |
This is indeed an issue caused by the renaming of the recovery files. |
Fortunately, we have a quick solution! 😄
This is done automatically in recovery.elf, but when it's renamed to start.elf, it isn't. |
Same problem as above. ioctl FBIOPUT_CON2FBMAP: Invalid argument After exit - kernel panic... Doesn't matter if is fresh install or update from older version. Or if boot from SDcard or USB. |
Did you modify config.txt as above? |
Yup. But not help in my case. I stay with previous version for now. |
Are you using the secondary HDMI port? |
I've tested the change on my Pi400 and it works fine. Please check you modified it correctly. |
@VortexNexus - The v3.9.2 upgrade should now work with your expanded recovery partition and populated /os folder. |
Although I had been aware of PINN for a little while, but never had gotten around to using it, probably as I use all my Pi 4b's headless for server apps and my Pi 400 has gathered dust for the last year as I had to undertake multiple house moves. However, I want to be able to use to try multiple different operating systems such as the latest Ubuntu and Fedora, without messing with my Raspberry Pi OS install all from the same Samsung T1 500gb SSD drive. Tried again with 3.9.2 and the issue is no longer occurring. |
Glad to hear 3.9.2 fixed your issues. You said you started with 3.9.1 and got a "kernel panic" after flashing it directly from Rpi Imager. If so, that would be a different issue because the kernel panic mentioned here was due to an upgrade failure from 3.8.8. "Kernel panic" is actually mentioned on the screen. But you also mentioned you tried 3.8.8. If you upgraded from there to 3.9.1, the kernel panic would occur due to additional files on the recovery partition like in the /os folder.. The 2nd bug fixed in 3.9.2 concerns using the 2nd hdmi port, but I thought it would only happen if you only had hdmi1 connectrd. Switching to hdmi0 would solve that issue. Not sure it would occur if you had both connected at the same time. This was not a kernel panic. |
@procount: I made the tests you asked me for again, trying to update from PINN 3.8.8 to 3.9.2. But it seems that this requires PINN to update first to 3.9.1, falling into the same problem of the kernel panic. |
Hopefully the update to 3.9.2 fixes things now. |
Mmh, not sure to understand what you mean. As explained in my previous post, 3.9.1 and 3.9.2 updates both left the I thought it was possible to update from PINN 3.8.8 directly to 3.9.2 using the "Ignore" button on PINN's 3.8.8 update confirmation dialog. So I tried, but it seems it has the same behavior as the "No" button, doing nothing. Now, imho, for anyone having PINN 3.8.8 installed with a non empty
Do you see another option? |
Assuming you have 3.8.8 installed, please try the following:
|
I've given it a try, but unfortunately, that didn't work. Remarks:
At the end of the transfer process, I checked through SSH that the archive file was really present in the remote So it seems the update process don't care about an already downloaded ".zip" file in the |
Have a Raspberry PI4 4GB Model B. |
Unfortunately the log doesn't help me much. It says it can't mount the rootfs, which is actually an initramfs so I'm confused. |
Can't seem to find a log ? Does PINN dumb one somewhere on the disk ? edit: Okay loaded onto SD card, 3.9.2 worked by installing the Lite version, still would like to pull full log on upgrade fail, i have some other PI4 i'd like to upgrade PINN without having to redo everything... |
There is the kernel dmesg log which you screenshot a photo of, and PINN has its own log in /tmp/debug. The kernel panics during the development of the upgrade process were due to additional files in the /os folder, but that was resolved and you've tried an upgrade from a default 3.8.8 version (which worked for me) so this is something new. Is there anything out of the ordinary with your setup? - any unusual hardware attached, for example, or additional files stored on PINN's recovery partition other than those supplied? Something to remember in future, is that if an upgrade fails, it will only really affect the recovery partition, so there's no need to completely start from scratch and wipe your OS partitions. In that case, the best way to proceed is to wipe only the RECOVERY partition and then unzip pinn-lite.zip (v3.8.8) onto it. When you boot PINN, there will be a prompt to delete all the partitions, but you should skip that to keep your existing OSes. (You can avoid that risk altogether by deleting the 'runinstaller' option from cmdline.txt to be doubly sure). In order to resolve this, seeing as there are no logs, I think it would be necessary to have an image of your recovery partition so I can debug this myself (provided you haven't filled your /os folder with MBs of files!). So before you upgrade another one, please take an image of just the RECOVERY partition (e.g. use dd) and a copy of the output of At some point, if you are upgrading several PINN installations, you should really expand the RECOVERY partition otherwise future PINN upgrades may not fit.
|
@procount : as I pointed it in a previous post, the update process to 3.9.2 clears the content of the cmdline.txt file. I'm not sure you noticed it. For me, this is the reason why the rootfs cannot be mounted (the system has no info about which mounting point must be used), and also the reason why the system falls in the emergency "kernel panic" mode. |
@VortexNexus - yes I noticed your comment and changed the procedure. The upgrade process (should) now copy recovery.cmdline (or cmdline.txt) to /tmp first, then restores it after upgrading. Rather than reinstalling a totally new version, I maintain the old version and modify the few changes that are needed for 3.9.2. |
Hello,
I've been using PINN since years now and its a really great solution, always improved in a very good way. I never had any problem during installation nor update until today.
On a fully functional Raspberry PI 3B v1.2 (so quite an old one for sure) running PINN 3.8.8, I have been notified a new version was available, and as usual I applied the upgrade. After that, PINN didn't start any more, displaying a Kernel panic message. Additionally, the "os" sub-directory was empty, but I usually put there the image(s) of the installed system(s) as I am currently doing tests often resulting in a dysfunctional bookworm system, and so I need to be able to replace it from scratch (thanks to PINN functionalities).
Some details to reproduce:
To solve my problem, I re-formatted the RECOVERY partition, restored PINN 3.8.8 files and its "os" sub-directory content, updated the recovery.cmdline file (essentially removing the "runinstaller" argument, and adding the "no_update"). Then, PINN and the two RasPIOS systems were able to start again normally.
I know PINN is currently on its way to gain full compatibility with the PI 5. So perhaps something is simply wrong in my setup (using an old PI 3B). In that case, just let me know about it.
Thanks a lot for your work.
The text was updated successfully, but these errors were encountered: