“F.A.Q汇总”的版本间的差异
(→源码编译/烧录) |
(→系统裁剪定制) |
||
第44行: | 第44行: | ||
Q: 固件修改器对于带有Native库的APP不能正常将APP内包含的库文件正确部署到固件内对应的分区目录中,导致APP启动会出现找不到库的情况。建议将APP随Android源码一起编译打包,具体方法可参考《A64_Android_L快速移植指南》、《Android 10 SDK快速移植指南》中“预装APK”章节的介绍。(文档可在资料光盘中查找) | Q: 固件修改器对于带有Native库的APP不能正常将APP内包含的库文件正确部署到固件内对应的分区目录中,导致APP启动会出现找不到库的情况。建议将APP随Android源码一起编译打包,具体方法可参考《A64_Android_L快速移植指南》、《Android 10 SDK快速移植指南》中“预装APK”章节的介绍。(文档可在资料光盘中查找) | ||
+ | |||
+ | |||
+ | A: 如何启用BSP自带的串口助手等小工具?(如何把原厂自带的apk编译进固件?) | ||
+ | |||
+ | Q: apk/源码位置: | ||
+ | |||
+ | A33 Android 4.4:android/device/softwinner/polaris-common/prebuild | ||
+ | |||
+ | A64 Android 6.0:android/device/softwinner/common/prebuild | ||
+ | |||
+ | A40i Android 7.1:android/vendor/aw | ||
+ | |||
+ | A133 Android 10.0:android/vendor/aw/public | ||
+ | |||
+ | 在其目录下找到apk文件或app源码所在位置的Android.mk,查看其中的LOCAL_MODULE字段,然后将其写入android/device/softwinner/版型/版型.mk中,例如: | ||
+ | |||
+ | PRODUCT_PACKAGES += \ | ||
+ | |||
+ | ESFileExplorer \ | ||
+ | |||
+ | SerialPort | ||
+ | |||
+ | 重新make后即可将BSP自带的ES文件管理器和串口调试助手编译进去。 | ||
==系统功能问题== | ==系统功能问题== |
2022年6月2日 (四) 16:27的版本
F.A.Q汇总
源码编译/烧录
A: A133 Android 10编译完后打包(运行pack命令)时报“flags:FATAL unable to parse provided options with getopt.”错误。
Q: A133的BSP中打包脚本调用了awk,而awk工具分mawk和gawk两个版本,Ubuntu自带的为mawk而脚本使用gawk的语法编写的,导致脚本parse命令行时出错。解决方法:
$ sudo apt-get install gawk
安装好后重新进行打包。若依然不行则检查系统当前使用的awk版本,强制设置为gawk:
$ sudo update-alternatives --config awk
A: A40i Android 7.1编译时报错“No Jack server running.”
Q: 不要关闭当前编译的终端窗口!直接运行:
$ jack-admin start-server
然后继续make即可。
A: 为什么A133修改完内核.config后重新编译longan之前修改的内容恢复原样了?
Q: 在longan中执行./build.sh config时,BSP的脚本会根据当前目录下的隐藏文件.buildconfig中LICHEE_KERN_DEFCONF环境变量所指向的内核defconfig文件,将其拷贝并覆盖当前的内核.config。不执行./build.sh config则不会这样,或将改后的.config复制覆盖掉LICHEE_KERN_DEFCONF所指向的defconfig文件即可。
A: 虚拟机编译Android固件报错“out of memory”?
Q: Android编译比较消耗CPU和内存资源,请为虚拟机分配更多的RAM空间!或尝试减少编译线程(make -j4或-j2)。
A: A133为何烧录过“安全固件”后无法再次烧录固件?
Q: 烧录安全固件会将固件中的证书写入CPU的eFuse,此后再次烧录的固件必须具备同样的证书才可以烧录进去。即烧录过此安全固件的CPU以后只能烧录这个固件或带有相同证书的固件,无法烧录其他固件了。建议不要编译和烧录“安全固件”(pack -v命令生成的)!
A: A40i编译Lichee报错awk: line2: function strtonum never defined
Q: 同A133的问题一样,安装并替换Ubuntu系统的awk为gawk即可。
系统裁剪定制
A: 如何将自己的APP打包到Android固件中?为何用固件修改器植入APP后APP无法正常打开?(带lib.so库的提示找不到对应的库文件)
Q: 固件修改器对于带有Native库的APP不能正常将APP内包含的库文件正确部署到固件内对应的分区目录中,导致APP启动会出现找不到库的情况。建议将APP随Android源码一起编译打包,具体方法可参考《A64_Android_L快速移植指南》、《Android 10 SDK快速移植指南》中“预装APK”章节的介绍。(文档可在资料光盘中查找)
A: 如何启用BSP自带的串口助手等小工具?(如何把原厂自带的apk编译进固件?)
Q: apk/源码位置:
A33 Android 4.4:android/device/softwinner/polaris-common/prebuild
A64 Android 6.0:android/device/softwinner/common/prebuild
A40i Android 7.1:android/vendor/aw
A133 Android 10.0:android/vendor/aw/public
在其目录下找到apk文件或app源码所在位置的Android.mk,查看其中的LOCAL_MODULE字段,然后将其写入android/device/softwinner/版型/版型.mk中,例如:
PRODUCT_PACKAGES += \
ESFileExplorer \
SerialPort
重新make后即可将BSP自带的ES文件管理器和串口调试助手编译进去。
系统功能问题
A: A133休眠后无法唤醒?
Q: 调试发现AC107驱动会导致休眠功能异常,目前尚未能解决此问题,若需要休眠功能的用户可暂时屏蔽AC107,方法如下:
使用固件修改器(DragonFace 2.6.1)或直接修改源码中的kernel dts配置,找到节点sound@3,将其status改为disabled即可。
A: A133 Android 10使用移远EC20通信模块,可以看到信号强度,但无4G图标且无法上网?
Q: 当前移远RIL库适配存在问题,修改android/vendor/aw/public/prebuild/lib/librild/radio_common.mk,将对应语句改为下面的样子:
$(LOCAL_PATH)/libquectel-ril/arm64-v8a/ip-up:system/etc/ppp/ip-up \
$(LOCAL_PATH)/libquectel-ril/arm64-v8a/ip-down:system/etc/ppp/ip-down \
$(LOCAL_PATH)/libquectel-ril/ql-ril.conf:/system/etc/ql-ril.conf \
$(LOCAL_PATH)/libquectel-ril/apns-conf.xml:system/etc/apns-conf.xml
保存后make installclean后重新make生成固件。
(移远EC200T/S等RNDIS拨号方式的不受影响)
A: 核心板的FEL引脚可否作GPIO使用?
Q: 不可以。
A: 核心板是否支持SD卡烧录固件?
Q: 原厂提供PhoenixCard工具用于生成烧录TF卡,具体使用方法请参考原厂文档,这里暂时不做进一步支持。
A: A133 Android 10 “显示在其他应用的上层”界面显示“无法使用该功能”?
Q: Android Go 低内存设备存在多种动画或者功能默认不启用,比如应用窗口化功能。若要解除此限制,可使用固件修改器修改build.prop,将ro.config.low_ram由true改为false,或在SDK源码中修改ceres_c3.mk相关项后重新编译打包固件。
参考资料:Android Go 低内存设备存在多种动画或者功能默认不启用 isLowRamDeviceStatic()
A: 为何A33/A133的RTL8152B以太网插口黄色指示灯常亮?如何改变8152的指示灯显示状态?
Q: 可在驱动内修改(内核目录/drivers/net/usb/r8152.c)找到下列代码:
if (tp->version == RTL_VER_01) {
ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_LED_FEATURE);
ocp_data &= ~LED_MODE_MASK;
ocp_write_word(tp, MCU_TYPE_PLA, PLA_LED_FEATURE, ocp_data);
}
在其后面添加:
//led0=link100 led1=link10+link100+active
ocp_data = 0xB2;
ocp_write_word(tp, MCU_TYPE_PLA, PLA_LEDSEL, ocp_data);
保存后重新编译lichee/longan和android后烧录验证。
寄存器PLA_LEDSEL/0xDD90为RTL8152的LED状态控制寄存器,写入对应的值可改变LED的指示状态,具体可以参考其Datasheet(文件:RTL8152B.pdf)。