-
Notifications
You must be signed in to change notification settings - Fork 124
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. |
I got stuck in the same trap. After a long while entered the PINN GUI again, upgraded to 3.8.8 and after restart was notified of yet another upgrade. After doing that I now have the aforementioned ioctl error. Is there anything I could do from the console itself now or is it only shutting down and putting the pinn-lite.zip into the recovery folder after prying the SD card from my Pi? |
Sorry to hear this happened to you. |
cmdline.txt exists and contains the following: disable_overscan=1 [pi4] [board-type=0x17] config.bak looks considerably different: [pi4] The "os" folder is empty and there is no file "recover4.elf" in the RECOVERY partitition. The SD Card has been prepared in an Apple computer and hence has the hidden Spotlight folder and a couple of those files starting with ._ that contain information for MacOS about files in the folder. I can see that previously there has been a recover4.elf in this partition. I tried it with a cmdline.txt with your sequence of settings, but... not unexpectedly, that had no effect. Thanks for your advice! |
The problem with upgrading from 3.8.8 to 3.9.x is that PINN now includes support for Pi5 with its extra kernel image and overlays and it only just fits - we're talking only kilobytes or even bytes spare! Those extra Apple related files may have made the difference in preventing some files from being copied. My suggestion would be to:
NOTE: the RECOVER*.elf files have now been renamed to the more usual START*.elf names. This should get you up and running again, but the omission of kernel8.img means it won't run on a Pi5 until it is restored. In the longer term, I advise you to increase the size of your RECOVERY partition to allow for future upgrades. You can do this in several ways:
|
Ah, that is confusing. The RECOVERY partition is currently at 160MB with 96MB free space at this time (with all files left on it). I may have reserved enough space from the get go... This is a Pi4 4GB with a 32GB SD Card. |
Oh ok. |
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: