[Solved] ODROID C1+ not booting after kernel upgrade

Creating a bug report/issue

Required Information

  • DietPi version | 8.21.1
  • Kernel version | 6.1.50
  • SBC model | Odroid c1+
  • Power supply used | 5V 1A USB-OTG
  • SD card used | SanDisk max endurance 64GB

Hi together, since last weekend my old odroid c1+ was working very well with old armbian edge as well as armbian current kernel. After kernel upgrade via apt to the new current kernel (6.1.50 ??? ) this weekend the device is not booting anymore. Since a fresh Diet-PI installation does kernel upgrade from armbian at the beginning as well via dist-upgrade I´am somehow stuck. Would a change of apt sources to a former armbian build help ? How can I prevent the kernel upgrade at the beginning until we have a new booting kernel for odroid c1+ Thank you and best regards Oskar…

As a quick workaround I removed link in apt sources to https://apt.armbian.com/ in dietpi-armbian.list after stopping the script running after the first logon. Now I can boot again to kernel 5.15.93. Which is not optimal but ok for me until it can be figured out why the new compiled armbian kernels are not working anymore. Best regards…Oskar

Many thanks for reporting. Huh, the Armbian APT repo is finally shipping updates again? I was already worried and we started to ship own 64-bit Rockchip kernel builds as the repo did not ship any updates since February.

Indeed Linux 6.1.50 for a bunch of SoCs: armbian storage

That this breaks the C1+ is of course a problem. Do you have a serial console to check for bootloader and early kernel logs? Is there any output on HDMI or nothing?

Sadly I only have 64-bit Amlogic SBCs here.

Since there is a known issues with some Odroids with warn reboots. Power cycling does not help in your case?

While there is no official maintainer for C1/C1+, a community member fixed HDMI output and did some commits some months ago, so I had hope that will gets again better supported and maintained, but that seems to have been a onetime contribution only. At least what I can see is that the kernel still has a device tree for the Odroid C1.

Hi Micha, yep armbian is definitely shipping kernel updates. Unfortunately I have no serial console → I´ll try to get one. HDMI at least seems to send a signal but my 4k monitor can not sync. Power cycling does not help when trying to boot. The blue led stays on. I downloaded and installed kernel 6.1.11 edge from Index of /apt/pool/main/l/linux-6.1.11-meson/ which is working perfectly (besides the known reboot problem). This seems to be the last know booting kernel…For the odroid dietpi Image removing armbian from apt sources for me is a workaround I can live with…Thank you and best regards from Dresden/Germany Oskar

1 Like

At least a 6.1 version. I’m still trying to figure out how to explicitly build an older Linux version with Armbian build system, if possible, to find out what it is caused by an upstream change or one of the build system itself.

I have run into a problem this weekend upgraded my 4 Odroid C1 units, only one of the four reboots and runs 8.21.1 with apparently no issue. of the other three I used a backup image and downgraded them then re-ran the upgrades and it still happens. goes through the install, does a reboot. (which i have to power cycle) and when it powers back up there is no heartbeat (blue LED).
I have been working all night and am now to the point I imaged the working unit and am going to flash that image to one of the others and see if it works.
one of the units is a dedicated speed tester with grafana on it and i’d like to not have to rebuild that from scratch if I can somehow get the update to work instead.
will report back after i reimage one with the image from the one that works.

ok. progress.
I imaged unit #3 which was the working unit with 8.21.1 running.
i flashed that image on to unit #2, and after a couple reboots was able to find it in my router’s DHCP list and I was able to putty into it to change it’s name. i then did a poweroff from putty, then physically powered it off and back on and it worked again and I was able to putty in without issue on the first try.

then i flashed unit #1 with the #3 image and it booted fine on first try. i was able to find the IP and putty into it to change the name without issue. i did a poweroff from putty, then a physical power off and on and reconnected via putty. So now 3 of the 4 are working apparently so far.

the thing i noticed early on was that #3 had meson files in the boot partition that were at 5.15.93 while the ones that did not boot #1 #2 & #4 all had meson files of 6.10.something.

one of the first things I tried doing was copying the boot directory from #3 to #4 and it does boot but it says on every boot that a reboot is needed due to a kernal update. if I keep rebooting I keep getting the same reboot is needed message. but at this point #4 is no longer booting and grabbing an IP.

i grabbed a C1+ that was still running 8.20.0 and did the update to 8.21.1 and afterwards it failed to boot.
so i reflashed it with the image from C1 #3 and it took that and booted and logged in and changed the name ok. so it’s running 8.21.1 from the C1 #3 image.

i grabbed a C2 that was still running 8.20.0 and did the update to 8.21.1 and it rebooted just fine into 8.21.1.
so it seems like the issue is only with the C1 and C1+ model odroids so far. i still have an XU4 and C4 that i have not upgraded to latest yet. gonna hold off on them for now.

Could someone please test the latest “edge” kernel, with Linux 6.4.13?

apt install linux-{image,dtb}-edge-meson

With next DietPi update (released tomorrow), we do:

  • Ping “current” and “edge” kernel packages to Armbian v23.02.2, being the latest version known to be functional on the C1. Hence the apt upgrade implied with the dietpi-upgrade will upgrade the kernel, dtb and in case headers to this version.
  • In case enforce an automated downgrade. This is to cover cases where someone ran an apt upgrade and afterwards a dietpi-update without rebooting first.
  • Afterwards those packages are set on hold. This is to assure that, when v23.02.2 packages are removed from the repo, which makes the pin ineffective, the packages are not upgraded.

However, I hope we find a newer kernel version which does work. I currently do not have much time for this, but might try an unmodified mainline kernel build next development cycle, in case the problem is caused by one of Armbian’s patches instead of upstream changes.

i was just hoping the information i could gather would be of some help to you geniuses, i’m barely hanging on making the SBCs do useful things. that being said, do you want me to run that apt command line on one of my working C1/C1+ and report the results? what should I expect to happen?
I’m still trying to figure a way to salvage the Speed Test unit that won’t boot without having to rebuild it from scratch, but I’m thinking I’m gonna have to .

Hi, unfortunatly install kernel 6.4.13 via apt install linux-{image,dtb}-edge-meson is not booting. I will try the other new kernels from the beta mirror Index of /beta/pool/main/l/ now…I´ll post results here…Best regards Oskar

Results:
The kernels from the beta mirror are not booting either. So till now for me the last booting kernel for odroid c1 is 6.1.11…
I tried to update from dietpi 8.21 to dietpi 8.22.2 beta in order to test the new patch v8.22 · MichaIng/DietPi@6ccef11 · GitHub . But since dietpi-update does an update of the kernel in the beginning which requires an immediate reboot during apt-upgrade we still can not boot if upgraded from 8.21. The only current solution at the moment seems to remove https://apt.armbian.com/ from apt sources to prevent the kernel upgrade…

Good news: with the “released” dietpi-version 8.22.3 and update from 8.21.1 everything is working fine now. I had to uncomment the apt link to https://apt.armbian.com/ in dietpi-armbian.list before the update. Otherwise dietpi-update gives an error. Thanks a lot and best regards…Oskar

1 Like

i was also able to update my # 1, 2, & 3 C1’s which i had copied over from #3 as it didn’t die from the previous update. #4 i put a fresh downloaded copy of DietPi and started from scratch and it installed fine, I was then able to add influxdb and grafana and speedtest and get it working again as a network speed monitor. my last C1 won’t boot to do the upgrade, so I’ll end up redoing it from scratch …it’s an octoprint server. my C1+ I was able to run the update to 8.22.3 as well.
I did NOT have to modify the apt link as Oskar did and I did not get any errors.

i don’t know if any info i provided was of any value or not, but it does indeed seem resolved.

1 Like

Thanks guys. For our new image, and as part of DietPi v8.22, we hardcoded the kernel packages to the last functional ones on Odroid C1. This is done with the APT preference file /etc/apt/preferences.d/00-dietpi-odroidc1. It would be great if you could check for and text new kernel releases by times:

apt show linux-image-{current,edge}-meson

But there is no official Armbian board maintainer for it since a long time, so despite there were some commits this year which fixed e.g. long broken HDMI, I fear we must accept that reliable support is gone.

However, if someone finds time to test unmodified mainline Linux, or finds other functional kernel sources, I am open to switch to an own set of kernel packages.

Good news…Since a few hours I am running kernel 6.6.2 edge now on my odroid c1 without any glitches (see picture)


. I downloaded kernel from Index of /beta/pool/main/l/linux-6.6.2/ and dtb from Index of /beta/pool/main/l/linux-dtb-edge-meson/. Unfortutantly i can not install the corresponding linux headers due to unmet dependencies which i can not resolve. apt --fix-broken install always installs the old kernel again. And installing the missing packages by myself ends up in a witches circle…But for now everything is fine with the old headers…Best regards Oskar

Edit 27.11.2023: I could install the linux headers as well by changing /etc/apt/preferences.d/00-dietpi-odroidc1 to the actual 6.6.2 kernel. The only problem at the moment when using as headless devices is besides the known rebooting bug that changing of ethernet port speeds e.g. from 1Gbit → 100Mbit is not possible anymore. I did this at night with the old kernel just to save a little power…

Hi, I am also using ODROID C1+ and would like to install kenel 6.6.2.
Can you please tell me how you installed it?
Best regards SW

I just downloaded the kernel,dtb and linux headers for meson edge from Index of /beta/pool/main/l/ with wget, changed the preferences file /etc/apt/preferences.d/00-dietpi-odroidc1 to the new kernel version (24.2.0), installed the downloaded files with dpkg -i. And after that I did fix the dependencies with apt-get -f install. Good luck and best regards…Rem.: Currently i am testing kernel 6.6.8. 6.6.x kernels are working but still seem to be a little bit unstable. Sometimes the odroid crahes and I have to reconnect power again in order to reboot the device. In contrast to that 6.1.11 is rock stable but this may depend on your usage…Oskar

1 Like

Hi, Thank you very much for your guide!!

At first, I didn’t even know where to start.
But I after following what you did (and changing preference), I was able to install 6.6.8 kernel.

Now ‘uname -a’ prints
Linux DietPi 6.6.8-edge-meson #2 SMP Wed Dec 20 16:02:07 UTC 2023 armv7l GNU/Linux

Thank you again and Happy New Year.
Best Wishes, SW

Good news for odroid c1. I am successful testing kernel 6.7.10 edge from armbian beta. Kernel is stable and know what the reboot command (which was broken for years) is now working flawlessly. So no need to switch on/off power for rebooting. So we may have a good chance to switch kernel if kernel gets to the armbian “normal” channel.

1 Like