一、问题
如图:
接上调试串口,每次启动都会报错。不过使用过程中没有发现有什么影响。
百度查阅,有一位博主提到,但是没有细说解决方案:
spinlock变量没有初始化_spinlock bad magic on-CSDN博客https://blog.csdn.net/longwang155069/article/details/52224284
问过客服,不回复。
我个人觉得大概率是内核软件问题,硬件我都测试过,cpu,lpddr,ssd都没问题。
系统为官方给的 Ubuntu 22,内核版本 5.10。
换成 debian 依然有这个问题,怀疑是 5.10 内核的问题。
二、编译内核
重新编译 5.10 版本的内核,我单独下载的内核源码进行编译,没有使用香橙派的 orangepi-build,在编译完成后使用 make install 进行的内核更新,没有使用 apt 进行管理。
重新安装内核后,依然有这个问题。
于是我使用 orangepi-build 进行编译,内核使用推荐的 6.1 版本。这次使用 deb 包的方式,先清除原有的内核,头文件,u-boot,以及设备树:
可以使用 dpkg --list | grep linux 查看安装的包:
我这里都是升级过的,所以包名带有 current ,代表 6.1 内核。如果是 5.10 内核,这里是 legacy。
然后安装新的 deb 包:
卸载过哪些包,就对应安装哪些包。以下是我更新的部分:
详细步骤可以查阅手册,讲的比较细。
重新启动开发板:
这次干干净净,应该是没问题了。
更新内核建议修复软件依赖,防止软件因为版本问题报错:
sudo apt dist-upgrade