Kernel Panic! On Arch Armv7 (Pi 3)

I’m having issues since updating the Linux kernel on my raspberry pi 3 running Arch. When the pisound is connected there is a kernel panic on boot.

I’ve tried a fresh install of Arch but the same problem occurs. Any idea what could cause this, and how it could be fixed? I’ve tried disabling the pisound overlay in config.txt but only physically unplugging helps.

That’s because there’s an EEPROM chip on Pisound with the device tree overlay data, this way config.txt changes are not needed. You’d have to disable the EEPROM chip data loading, by adding ‘bcm2708.vc_i2c_override=1’ to /boot/cmdline.txt

Please tell me what are the steps I should take to reproduce the issue, (I have used Arch only minimally before) and I’ll see how we can get this fixed. :slight_smile:

1 Like

The only steps required are those for installing Arch on an SD card as shown in the link and booting up while the pisound is connected.

https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3#installation

I was able to test the device with Raspbian and there were no issues there. I will try the fix you suggested a.s.a.p

Adding that line to cmdline.txt did not help. Is there supposed to be a comma seperator? This is what’s in cmdline.txt right now:

root=/dev/mmcblk0p2 rw rootwait console=ttyAMA0,115200 console=tty1 selinux=0 plymouth.enable=0 smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 kgdboc=ttyAMA0,115200 elevator=noop

The , is used when a single ‘variable’ may have multiple values. The variable I showed above would actually disable loading Pisound kernel module, so you would still not be able to use Pisound.

As I understand the build on http://de6.mirror.archlinuxarm.org/os/rpi/ is already the broken one. Where could I get an Arch OS image which still worked fine with Pisound?

Can you post what is outputted by this command:

uname -a

with Pisound unmounted.

Also, maybe the same command works for updating just the kernel, and hopefully it’s the same kind of kernel as used on Raspbian, try updating it to the latest version:

sudo rpi-update

Yeah the current version is the one that is broken. Fortunately I still have the tar.gz archive that I used initially which worked fine. You can download it here:

I tried rpi-update, but this is not available on Arch. So I upgraded using pacman -Syu. This gave me hope as there was a new version of raspberry-linux, but it did not fix the problem. Running uname gave me this result: 15192208948451899278694

Thank you for sharing the previous version - I will have something to compare with.

Looks like Arch is using 4.14 kernel tree, I think Raspbian is still on 4.9.

I will try to investigate this at the end of the week.

Hey, here’s a progress update - I reproduced the issue myself after installing the older build you shared (it was running 4.9 kernel) and updating it to the latest version, and I found the actual issue:

This line should actually be:

 memset(rxbuf, 0, len);

I’m not sure why 4.9 kernels with the exact same code was working fine, it should be affected as well. :slight_smile:

I will submit a patch to Raspberry Pi guys and in about a week it should get integrated into 4.9 and 4.14 versions, then it will be a matter for Arch Linux developers to update their RPI Kernel package with the latest one available.

Ok, the fix is in official 4.9 and 4.14 branches, now it should be a matter of getting a new kernel version to be released and made available via rpi-update for Raspbian distros, and pacman on Arch. Most likely the version with the fix will be 4.14.22.

I have just verified, after updating the system using:

pacman -Syu

I got the kernel upgraded to 4.14.22-1-ARCH and the kernel panic is fixed.

1 Like

Hah, I can see how that line of code could cause an issue! Thanks for fixing this, I will update mine this afternoon :wink: