Friday, November 17, 2017

Linux 4.14.0 on the Alix 2c3 and 2d3

Up to recently the kernel 4.1.0-rc6 was the last one I was able to run on my Alix 2c3. Tag v4.1-rc7 would only do boot loop: grub loads the image and it reboots immediately without any output on serial.
I tried running git bisect but I haven't found anything useful: f18c34e48 would be the first bad commit but that seems strange. I think the commit only unmasked some other issue. Reverting it would make a few later commits work, but for e75c73ad6 the revert no longer helps.
But there is some good news: kernel 4.13.5 does not boot-loop and it does not freeze. It dies on a kernel BUG in the driver for the cs5535 timer (a spurious interrupt), but that can be fixed. The issue was introduced in 8f9327cbb, so it's been present in tags ≥ v4.3-rc7. For the record, the bug is only there because of a spurious interrupt at an unexpected moment. If the spurious interrupt wasn't there, the code would work OK. The interrupt looks like an Alix oddity. The issue is fixed in eb39a7c03, it's included in kernels ≥ v4.14-rc6.
All in all, upstream kernels ≥ 4.14-rc6 work again on the Alix 2 (I tested them on Alix 2c3 and Alix 2d3). :-)
Here is my 4.14.0 config. It's tuned for my needs - you most likely want to adapt the configuration for things like wifi and usb drivers, filesystems... But it should provide a working initial setup.