“F.A.Q汇总”的版本间的差异

来自弘迪在线
跳转至: 导航搜索
系统功能问题
系统裁剪定制
第72行: 第72行:
  
 
重新make后即可将BSP自带的ES文件管理器和串口调试助手编译进去。
 
重新make后即可将BSP自带的ES文件管理器和串口调试助手编译进去。
 +
 +
 +
A: 如何适配不同的WiFi/BT模组?
 +
 +
Q: 源码已适配过多款WiFi/BT模组,在“android/device/softwinner/板型”目录下,将对应型号模组的BoardConfig.mk替换掉原有文件,例如适配RTL8188EU时将BoardConfig.mk.8188eu覆盖原BoardConfig.mk,然后make clean/make即可。
 +
 +
对于A40i:除了替换对应的BoardConfig.mk还需要替换init.device.rc;
 +
 +
对于A133:除了替换对应的BoardConfig.mk还需要替换board.dts和sys_config.fex(位于longan/device/config/chips/a133/configs/c3)
 +
 +
若要适配已支持的模组之外的型号,请自行移植内核驱动和HAL层代码,参考《Axx Android WiFi-BT配置说明书》。
  
 
==系统功能问题==
 
==系统功能问题==

2022年6月22日 (三) 08:53的版本

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: 只修改FEX文件是否需要重新编译源码?

Q: 不需要,仅执行pack即可。

系统裁剪定制

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: 如何适配不同的WiFi/BT模组?

Q: 源码已适配过多款WiFi/BT模组,在“android/device/softwinner/板型”目录下,将对应型号模组的BoardConfig.mk替换掉原有文件,例如适配RTL8188EU时将BoardConfig.mk.8188eu覆盖原BoardConfig.mk,然后make clean/make即可。

对于A40i:除了替换对应的BoardConfig.mk还需要替换init.device.rc;

对于A133:除了替换对应的BoardConfig.mk还需要替换board.dts和sys_config.fex(位于longan/device/config/chips/a133/configs/c3)

若要适配已支持的模组之外的型号,请自行移植内核驱动和HAL层代码,参考《Axx Android WiFi-BT配置说明书》。

系统功能问题

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)。


A: A33核心板的AP-CK32KO 32.768kHz时钟输出是否能给外部RTC使用?

Q: 不可以!该时钟输出仅供AP6212等WiFi+BT模组使用,休眠/关机状态下无输出。


A: 必须要使用外部RTC么?片上RTC不可用么?核心板VCC-RTC是输入还是输出?

Q: 全志片上RTC功耗较高,使用纽扣电池的情况下续航不能保证,建议使用PCF8563T一类的外部RTC以保证守时。VCC-RTC为核心板PMIC的其中一路“Always On”LDO的输出,与CPU的片上RTC供电引脚相连,只要DCIN/USBVBUS/VBAT其中任一电源有电,该LDO即输出3V3电源,以供RTC使用。


A: 触摸(其他外设)驱动能否直接编译到内核而不编译成.ko模块?

Q: 可以,但依然建议编译为.ko模块,以便方便适配不同的板型(可以通过脚本选择insmod不同的驱动模块)。另外若驱动全部编译到内核需注意编译打包后的boot.img体积是否超过boot分区的大小!


A: 为何音量键(LRADC按键)乱跳?

Q: LRADC引脚为高阻态,需通过100k上拉至AVCC(3.0V),避免采集到干扰信号导致按键误触发。


A: 关于电池/便携式应用:

Q: 核心板支持3.7V锂电池供电,只需将电池接到VBAT引脚(对于A33,VBAT-EXT引脚在板内通过0R电阻与VBAT相连)即可。同时需要在FEX/DTS文件里修改电池参数(RDC-内阻 CAP-容量)使之匹配,否则可能系统电量计算不准确或计算错误。第一次接入电池需要进行1~2次充放循环,以使PMIC正确计算电量,并且不可再断开电池。

若电池自带温度探头,可将其接到TS引脚,同时修改FEX/DTS文件使能PMIC温度检测(默认关闭,以防不接温度探头时干扰信号误唤醒系统)。

核心板的PS引脚为电源输出,其输出电压等于DCIN或USBVBUS或VBAT,且关机状态下也有输出。一般接Boost升压电路升至5V供其他外设使用,并且需要加MOS管开关以防关机后外设继续消耗电量。