在使用orangepi zero2的这块板子的时候,刷的系统镜像是3.0.6的镜像版本,然后在对板子进行联网等操作的时候,有些可能是需要重启才能生效,所以使用reboot
指令进行重启。但是在重启的过程中,发现有一个进程会一直卡着,导致板子不能正常重启。,具体如下:
使用sudo reboot
指令然后出现一个进程一直卡着导致板子不能重启
使用sudo poweroff
指令出现同样的问题导致板子不能正常关闭
后来经过多次重刷镜像,更换内存卡、更换电源等措施后发现这个问题还是没有解决。这个问题是偶发性的,并不是每次重启或者关机都会卡在这里,但是一旦有这个进程卡着,就会导致它板子不能重启或者关闭。而且orangepi zero2
这块板卡没有按键能让它重启的操作,所以只能够重新拔插才能重启。后来从网上查找资料,发现应该是它系统本身的问题,底下给出了一个解决方法,但是具体操作没有很详细。所以接下来详细写一下解决的过程。
-
首先说明一下原因,个人觉得应该是它这个镜像的问题,在网上查找相关资料后发现有一篇评论说只要替换它的一个后缀名为
.dtb
文件的就可以了,经过测试替换文件后确实没有再出现过这个问题了。 -
下边是那个要替换的文件链接:3.0.6镜像文件替换:链接: https://pan.baidu.com/s/1ORQcAKWiSqWF6Fdgd7l36w 提取码: cfd5
将这个文件下载到本地并解压,然后使用MobaXterm
或者filezilla
软件将文件传输到orangepi zero2
里边
-
然后关于这种
.dtb
文件的话一般是设备树文件一般都存放在根目录,使用find
指令查找文件位置使用这条指令在根目录下查找文件,然后应该是会出现一长串的
Permission denied
,这个不需要管,直接看最后它查找到的文件所在位置。然后可以发现这个文件在三个位置出现了,一个是在
boot
目录下,另外两个分别是在/home/orangepi
和/usr/lib
出现,在家目录下的那个文件是要替换的文件,所以不可能是那个,至于/usr/lib
这个目录主要用来存放一些库文件和系统软件。所以要替换的文件是在./boot/dtb-5.16.17-sun50iw9/allwinner/
这个文件底下。 -
然后使用
cd
指令跳转到此路径,将家目录的那个sun50i-h616-orangepi-zero2.dtb
文件拷贝到此处,因为是在根目录文件操作,所以要用到超级用户权限sudo
。为了以防万一可以将这个dtb-5.16.17-sun50iw9
目录在家目录下备份,如果后期有问题也可以再恢复。具体操作如下: -
然后进入
/boot/dtb-5.16.17-sun50iw9/allwinner
目录下将那个文件删除,然后将那个替换的文件移到此目录,(需要注意的是删除文件的时候千万不要删错了!!!) -
然后重启生效。(可以多试几次,看看是否还会被进程卡住)