Since the SBC no longer boots, I can’t get a lot of the version information. I downloaded and imaged using “DietPi_OdroidC4-ARMv8-Bullseye.img” dated November 20th.
SBC model | Odroid C4
Power supply used | Ameridroid 12V/2A US power supply
SD card used | Samsung 32GB Evo Select
Steps to reproduce
Boot MicroSD with fresh image of DietPi
SSH to device and wait for initial updates
Expected behaviour
SSH to the device would still work after updates/reboot
Actual behaviour
Device is now inaccessible after updates/reboot
Extra details
If I connect an HDMI cable to the device, I can it is stopped after Running/scripts/local-premount...done
Error after “Starting version 247.3-7+deb11u1”: “Unable to handle kernel paging request at virtual address” followed by some more information and a call trace.
I think I may have gotten this resolved. I was using a MicroSD to SD adapter to image my card. I’ve plugged a card reader in that supports MicroSD instead and re-imaged. I’m at least getting further than I was before.
This is still flaky. Sometimes when I flash it, it will boot. (Many times it won’t, even after a fresh flash.) When it does boot, after updating and restarting, I end up with a kernel panic, whether it was imaged using the adapter or the card reader. Any help would be appreciated.
Thank you all for the help. Here’s what happened in my latest attempt. Just flashed my card again. I’m trying a different card now: it’s a Kingston 64GB MicroSD.
This is one of the rare occasions it survived the reboot. Here’s the output in my SSH session before the reboot:
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
─────────────────────────────────────────────────────
DietPi v8.11.2 : 00:10 - Tue 12/20/22
─────────────────────────────────────────────────────
- LAN IP : 192.168.1.129 (eth0)
DietPi-Update
─────────────────────────────────────────────────────
Phase: Checking for available DietPi update
[ OK ] DietPi-Update | Checking IPv4 network connectivity
[ OK ] DietPi-Update | Checking DNS resolver
[ OK ] DietPi-TimeSync | systemctl stop systemd-timesyncd
[ OK ] DietPi-TimeSync | mkdir -p /run/systemd/timesync
[ INFO ] DietPi-Update | Getting latest version from: https://raw.githubusercontent.com/MichaIng/DietPi/master/.update/version
[ OK ] DietPi-Update | Got valid latest version: 8.12.1
[ OK ] DietPi-Update | Update available:
[ INFO ] DietPi-Update | Current version : v8.11.2
[ INFO ] DietPi-Update | Latest version : v8.12.1
DietPi-Update
─────────────────────────────────────────────────────
Phase: Checking for update pre-requirements
[ OK ] DietPi-Update | DietPi-Userdata validation: /mnt/dietpi_userdata
[ OK ] DietPi-Update | Free space check: path=/ | available=55703 MiB | required=100 MiB
[ SUB1 ] DietPi-Services > stop
[ INFO ] DietPi-Services | skip : cron (due to mask)
DietPi-Update
─────────────────────────────────────────────────────
Phase: Applying pre-patches
[ OK ] DietPi-Update | Downloading pre-patches
[ OK ] DietPi-Update | Applying execute permission
[ OK ] DietPi-Update | Successfully applied pre-patches
DietPi-Update
─────────────────────────────────────────────────────
Phase: Upgrading APT packages
[ INFO ] DietPi-Update | APT update, please wait...
Get:1 https://deb.debian.org/debian bullseye InRelease [116 kB]
Get:2 https://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
Get:3 https://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Get:4 https://deb.debian.org/debian bullseye-backports InRelease [49.0 kB]
Get:5 https://mirror-us-sea2.armbian.airframes.io/apt bullseye InRelease [36.6 kB]
Get:6 https://deb.debian.org/debian bullseye/contrib arm64 Packages [41.0 kB]
Get:7 https://deb.debian.org/debian bullseye/main arm64 Packages [8072 kB]
Get:8 https://deb.debian.org/debian bullseye/non-free arm64 Packages [73.0 kB]
Get:9 https://deb.debian.org/debian bullseye-updates/main arm64 Packages [12.0 kB]
Get:10 https://deb.debian.org/debian-security bullseye-security/main arm64 Packages [206 kB]
Get:11 https://deb.debian.org/debian bullseye-backports/non-free arm64 Packages [9864 B]
Get:12 https://deb.debian.org/debian bullseye-backports/main arm64 Packages [365 kB]
Get:13 https://deb.debian.org/debian bullseye-backports/contrib arm64 Packages [3844 B]
Get:14 https://mirror-us-sea2.armbian.airframes.io/apt bullseye/main arm64 Packages [592 kB]
Fetched 9668 kB in 7s (1352 kB/s)
Reading package lists...
[ OK ] DietPi-Update | APT update
[ INFO ] DietPi-Update | APT upgrade, please wait...
Reading package lists...
Building dependency tree...
Reading state information...
Calculating upgrade...
The following packages will be upgraded:
armbian-firmware base-files libtasn1-6 linux-dtb-current-meson64
linux-image-current-meson64 linux-u-boot-odroidc4-current nano
7 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 67.5 MB of archives.
After this operation, 137 MB disk space will be freed.
Get:1 https://deb.debian.org/debian bullseye/main arm64 base-files arm64 11.1+deb11u6 [70.1 kB]
Get:2 https://deb.debian.org/debian bullseye/main arm64 libtasn1-6 arm64 4.16.0-2+deb11u1 [53.3 kB]
Get:3 https://deb.debian.org/debian bullseye/main arm64 nano arm64 5.4-2+deb11u2 [647 kB]
Get:7 https://mirror-us-sea2.armbian.airframes.io/apt bullseye/main arm64 linux-u-boot-odroidc4-current arm64 22.11.1 [761 kB]
Get:5 https://mirror-us-sea1.armbian.airframes.io/apt bullseye/main arm64 linux-dtb-current-meson64 arm64 22.11.2 [130 kB]
Get:4 https://armbian.lv.auroradev.org/apt bullseye/main arm64 armbian-firmware all 22.11.2 [9443 kB]
Get:6 https://mirror-us-sea1.armbian.airframes.io/apt bullseye/main arm64 linux-image-current-meson64 arm64 22.11.2 [56.4 MB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 67.5 MB in 10s (6774 kB/s)
(Reading database ... 17886 files and directories currently installed.)
Preparing to unpack .../base-files_11.1+deb11u6_arm64.deb ...
Unpacking base-files (11.1+deb11u6) over (11.1+deb11u5) ...
Setting up base-files (11.1+deb11u6) ...
Installing new version of config file /etc/debian_version ...
(Reading database ... 17886 files and directories currently installed.)
Preparing to unpack .../libtasn1-6_4.16.0-2+deb11u1_arm64.deb ...
Unpacking libtasn1-6:arm64 (4.16.0-2+deb11u1) over (4.16.0-2) ...
Setting up libtasn1-6:arm64 (4.16.0-2+deb11u1) ...
(Reading database ... 17886 files and directories currently installed.)
Preparing to unpack .../nano_5.4-2+deb11u2_arm64.deb ...
Unpacking nano (5.4-2+deb11u2) over (5.4-2+deb11u1) ...
Preparing to unpack .../armbian-firmware_22.11.2_all.deb ...
Unpacking armbian-firmware (22.11.2) over (22.08.6) ...
Preparing to unpack .../linux-dtb-current-meson64_22.11.2_arm64.deb ...
Unpacking linux-dtb-current-meson64 (22.11.2) over (22.08.4) ...
Preparing to unpack .../linux-image-current-meson64_22.11.2_arm64.deb ...
Unpacking linux-image-current-meson64 (22.11.2) over (22.08.4) ...
Removing obsolete initramfs images
Preparing to unpack .../linux-u-boot-odroidc4-current_22.11.1_arm64.deb ...
Unpacking linux-u-boot-odroidc4-current (22.11.1) over (22.08.6) ...
Setting up linux-image-current-meson64 (22.11.2) ...
Removing obsolete initramfs images
removed '/boot/initrd.img-5.10.147-meson64'
removed '/boot/uInitrd-5.10.147-meson64'
update-initramfs: Generating /boot/initrd.img-6.0.13-meson64
update-initramfs: Converting to U-Boot format
Image Name: uInitrd
Created: Tue Dec 20 00:12:06 2022
Image Type: AArch64 Linux RAMDisk Image (gzip compressed)
Data Size: 12444304 Bytes = 12152.64 KiB = 11.87 MiB
Load Address: 00000000
Entry Point: 00000000
'/boot/uInitrd' -> 'uInitrd-6.0.13-meson64'
Setting up linux-dtb-current-meson64 (22.11.2) ...
Setting up linux-u-boot-odroidc4-current (22.11.1) ...
Setting up armbian-firmware (22.11.2) ...
Setting up nano (5.4-2+deb11u2) ...
Processing triggers for libc-bin (2.31-13+deb11u5) ...
[ OK ] DietPi-Update | APT upgrade
DietPi-Update
─────────────────────────────────────────────────────
Phase: Installing new DietPi code
[ OK ] DietPi-Update | Downloading update archive
[ OK ] DietPi-Update | Unpacking update archive
[ OK ] DietPi-Update | Removing unused files
[ OK ] DietPi-Update | Hardening update archive mode
[ OK ] DietPi-Update | Installing new DietPi scripts
[ OK ] DietPi-Update | Installing new DietPi system files
[ SUB1 ] DietPi-Set_software > verify_dietpi.txt
[ OK ] DietPi-Set_software | Downloading current dietpi.txt
[ OK ] verify_dietpi.txt | Completed
DietPi-Update
─────────────────────────────────────────────────────
Phase: Applying incremental patches
[ INFO ] DietPi-Update | Current version : v8.11.2
[ INFO ] DietPi-Update | Latest version : v8.12.1
[ INFO ] DietPi-Patch | Patching to DietPi v8.12...
[ OK ] DietPi-Patch | Patched to DietPi v8.12
[ INFO ] DietPi-Update | APT autopurge, please wait...
Reading package lists...
Building dependency tree...
Reading state information...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
[ OK ] DietPi-Update | APT autopurge
[ OK ] DietPi-Update | Incremental patching to v8.12.1 completed
[ INFO ] DietPi-Update | Checking for new available live patches
[ OK ] DietPi-Update | eval echo 1 > /boot/dietpi/.install_stage
DietPi-Update
─────────────────────────────────────────────────────
Phase: Completed
[ INFO ] DietPi-Update | Current version : v8.12.1
[ INFO ] DietPi-Update | Latest version : v8.12.1
[ OK ] DietPi-Survey | Setting in /boot/dietpi.txt adjusted: SURVEY_OPTED_IN=0
[ OK ] DietPi-Survey | Purging survey data
[ INFO ] DietPi-Update | A reboot is done to finalise the kernel upgrade
On the monitor I’ve got connected directly to the device, I see kernel panic - not syncing: stack-protector: kernel stack is corrupted in perf_event_mmap+0x448/0x448. Here’s the full trace:
Now, if I try to power back up, the device will not boot. It tries to recover jornal on the SD card. Runs /scripts/local-bottom but fails running /scripts/init-bottom with Failed to send exit request: Connection refused. It ultimately finishes with No init found. Try passing init= bootarg.
Looks like an instability caused by the recent switch of kernel to v6.0. Was done just yesterday, if I see it correctly, so we probably need to wait for more reports on Armbian forum. The crash probably caused a filesystem corruption which breaks boot now (/sbin/init not being found).
Initial cause of the crash might have been the load of a specific kernel module. You could retry with installing everything but PHP (as this is where it crashed) and its dependencies. Then check whether it works stable so far, then in case install PHP and see whether it crashes at the same step php-common package configuration. But not sure how to know which kernel module it is, if not contained in the logs.
I’ll try installing everything but PHP. I’m not installing PHP directly, so I’m guessing it’s a dependency of something else. Will I need to avoid installing anything with a web UI? Does that whole web stack get installed whenever another app needs to install a web server?
Yes dependency’s w IP will be installed whenever needed. Like Nextcloud, there we install web server, PHP, database and Redis as dependency automatically.
Sorry. Just had an opportunity to circle back to this. Is there a convenient way to see which software doesn’t depend on PHP so that I can install just those apps? I think just about everything I want to run has a web interface, so there may not be any.
What did you actively select for install? Sonarr is one, I guess, which does not depend on PHP or a dedicated webserver. And some media player/server? Looks like one driven by Python, hence it should work without PHP as well. Might be Nextcloud only, which pulls in PHP.
OK, without PHP, I’m hitting a different issue when DietPi tries to enable SSH.
[FAILED] DietPi-Software | systemctl enable ssh
[FAILED] DietPi-Software | systemctl enable ssh
[ INFO ] DietPi-BugReport | Generating informative command outputs, please wait...
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
I don’t have a different PSU to try, but I have tried a couple of SD cards as you noted. I also tried the kernel downgrade, and after rebooting, I have this:
I guess there was something broken with the last crash already. Probably downgrading the kernel after flashing a new image (and without installing any software at first) or on a backup from before crash works better.
I can also not get much out of the kernel errors. Only other thing I can suggest for now is to test an Armbian image: Odroid C4 – Armbian
Upgrade the kernel:
apt update
apt full-upgrade
reboot
Of course there is no dietpi-software, but probably you can install some parts manually or put some load onto the system in other ways to try triggering the crash, or failing boot with the first SD card. Armbian then has a bug tracking guideline which results in a forum post: Bug reporting – Armbian
Do not mention DietPi in it, they do not like us forwarding bug reports, even when obviously a kernel and/or bootloader issue.
I there is no fix until 2. January week, I’ll create an image with Linux 5.19 packages installed an set on hold.