前言
这篇文章简单介绍下我移植k20pro-PostmarketOS出现的问题以及解决方法
移植教程可以参考这篇文章
注:以下问题需要执行pmbootstrap log
才能找到,或者在pmbootstrap的工作目录里的log.txt
里找到
建议编译内核前先删除pmbootstrap的工作目录里的log.txt
问题1: xxx patch无法打补丁
这个问题出现在执行pmbootstrap kconfig edit
时
解决办法:
在linux-xiaomi-raphael/APKBUILD
中删除所有.patch字样
问题2: asm/type.h :no such file or directory
这个问题出现在执行pmbootstrap build linux-xiaomi-raphael
时
解决办法:
执行
1 | $ pmbootstrap chroot |
问题3: gzip(cpio) command not found
同上
解决办法:
将上面的linux-headers
换成gzip(cpio)
问题4 c语言错误
同上
解决办法:
如果你是c语言大佬,可以试试修复
否则尝逝更换编译器为clang
在linux-xiaomi-raphael/APKBUILD
中添加以下字段
1 | CC="clang" |
或者使用gcc6/gcc4(仅限老旧手机)
在linux-xiaomi-raphael/APKBUILD
中添加以下字段
1 | # Compiler: GCC 6 (doesn't boot when compiled with newer versions) |
如果要使用gcc4,请将上面字段的6改成4
如果还是不行的话,建议更换一个问题较少的内核这里着重点名小米,官方内核就是一坨shit
问题5: Permission denied
这个问题可能出现在执行pmbootstrap build linux-xiaomi-raphael
或者pmbootstrap install
的时候
解决办法:
换个目录并将目录权限设置成755
1 | $ chmod 755 $(pmbootstrap_work_dir) |
问题6: xxx.h no such file or directory
这个问题出现在执行pmbootstrap build linux-xiaomi-raphael
时,且问题多出自与小米官方内核雷军,金凡!
解决办法:
使用find命令找到缺失的文件然后将文件复制到报错的文件的目录中
问题7:../include/linux/compiler-gcc.h:2:2: error: #error “Please don’t include <linux/compiler-gcc.h> directly, include <linux/compiler.h> instead.”
同上
解决办法:
将APKBUILD
中的
1 | prepare() { |
换成
1 | prepare() { |
问题8: losetup: /home/pmos/rootfs/xiaomi-raphael.img: failed to set up loop device: no such file or directory
这个问题出现在执行pmbootstrap indtall
时
解决办法:
在后面添加--android-recovery-zip
,只构建卡刷包
问题9: deviceinfo: missing dtb
同上
解决办法: 在deviceinfo中
的deviceinfo_dtb
选项中添加编译好的dtb路径,一般添加在$pkgdir/boot/dtbs/
中:
1 | deviceinfo_format_version="0" |
问题10: python2: command not found
出现在mkdtboimg中。而且从Alpine3.16开始就不再提供。
解决办法:
1.切换版本到v20.06(不推荐)
2.修改源码,可以参考以下patch:
1 | From 88cdbae9030bea8e6a7233af3b4adf0d62930498 Mon Sep 17 00:00:00 2001 |
-------------本文结束感谢您的阅读-------------