1.modem定制过程
(1)编译环境和工具
一般来讲modem源码是由MTK提供,拿到源码后,射频工程师会修改2G和3G射频参数,然后由驱动工程师将射频参数合入,然后再ubuntu下通过GCC工具编译modem,编译完成后再将生成的modem在mk文件中进行配置即可。
(2)Modem的编译过程(MT6589以后的平台的编译,以A977 4.4 WCDMA配置为例)
a.拿到MTK的modem源码,将射频2G和3G的射频参数文件发给射频工程师根据实际情况进行修改。
射频文件位于modem源码的custom/modem目录下,l1_rf是2G的射频文件目录,ul1_rf是WCDMA 3G 射频文件目录,有时候l1_rf目录下会有多个目录,具体本项目中2G配置的是哪一个要看make/HUAQIN82_TB_B2D_KK_HSPA.mak文件中配置情况。
例如A977 4.4 WCDMA项目中,在HUAQIN82_TB_B2D_KK_HSPA.mak文件中可以搜索到MT6166_2G_82_TB_CUSTOM(2G)和CUSTOM_MT6166_UMTS_FDD_TB(3G),即说明该项目中2G和3G分别用的就是MT6166_2G_82_TB_CUSTOM和CUSTOM_MT6166_UMTS_FDD_TB。将MT6166_2G_82_TB_CUSTOM目录的l1d_custom_rf.h文件和CUSTOM_MT6166_UMTS_FDD_TB目录中的ul1d_custom_rf.h文件按照射频工程师给的参数进行修改。
b.将射频工程师修改的2G和3G射频参数同步MTK给的源码中。
通过bcompare将相应的射频文件同步到MTK源码里。
c.Ubuntu下编译更新射频参数的modem
首先将GCC工具拷贝到MTK modem源码的tools目录中,然后打开命令行进入到tools的上级目录,然后执行如下编译命令:
./make.sh "HUAQIN82_TB_B2D_KK_HSPA.mak" new(其中引号中的部分是make目录一个文件的名字)
大概1分钟左右就可以编译完毕,编译完成后会在tools的同级中新生成一个build目录。新建一个文件夹a977_kk_hspa_0318(文件夹的命令方式参考某个具体项目的mediatek/custom/common/modem目录的文件夹名称),将build/HUAQIN82_TB_B2D_KK_HSPA/DEFAULT/bin目录的HUAQIN82_TB_B2D_KK_HSPA.mak、HUAQIN82_TB_B2D_KK_HSPA_PCB01_MT6582_S00.A3300GV_V34.bin、HUAQIN82_TB_B2D_KK_HSPA_PCB01_MT6582_S00.elf三个文件拷贝到a977_kk_hspa_0318目录中,并将此三个文件分别命名为modem_1_wg_n.mak、modem_1_wg_n.img、HUAQIN82_TB_B2D_KK_HSPA_PCB01_MT6582_S00_1_wg_n.elf。
将build/HUAQIN82_TB_B2D_KK_HSPA/DEFAULT/tst/database目录下的BPLGUInfoCustomAppSrcP_MT6582_S00_A3300GV_V34、catcher_filter.bin、DbgInfo_WR8.W1315.MD.WG.MP_HUAQIN82_TB_B2D_KK_HSPA_A3300GV_V34_2014_03_20_14_58三个文件拷贝到a977_kk_hspa_0318目录中,同时将名字分别改为BPLGUInfoCustomAppSrcP_MT6582_S00_A3300GV_V34_1_wg_n、catcher_filter_1_wg_n.bin、DbgInfo_WR8.W1315.MD.WG.MP_HUAQIN82_TB_B2D_KK_HSPA_A3300GV_V34_2014_03_20_14_58_1_wg_n。
备注:上述文件的后缀名是根据项目的编译配置表决定的,A977项目的编译配置表为“ReleaseNote_for_MT6582_KK1.MP1_TB.xlsx”,其中规定WCDMA项目的modem文件后缀为"_1_wg_n",TD-SCDMA项目modem文件后缀为“_1_tg_n”。
d.在项目中配置新编译的modem
将刚才新建的文件夹a977_kk_hspa_0318拷贝到具体项目的mediatek/custom/common/modem目录下,同时将ProjectConfig.mk文件中的 CUSTOM_MODEM配置为a977_kk_hspa_0318。对整个项目重新new,编译完成后下载版本验证通话、上网功能,然后让射频工程师用机器做相关测试验证,如果没问题,modem配置便宣告完成。
2.编译去掉SIM卡通话和短信功能的modem
在modem源码的在make/custom_config/HUAQIN82_TB_B2D_KK_HSPA_EXT.mak及make/HUAQIN82_TB_B2D_KK_HSPA.mak中添加CUSTOM_OPTION = __DISABLE_SMS__ __DISABLE_CSCALL__,然后按照第1点进行编译即可。
上述是去掉SIM卡通话和短信功能需要在modem端进行的配置,此外还需要在AP端进行如下修改:
(1)mediatek\config\project_name\android.hardware.telephony.gsm.xml
去掉android.hardware.telephony.gsm.xml文件中的如下两项:
(2)mediatek\config\project_name\ProjectConfig.mk
在ProjectConfig.mk文件中添加如下配置:
CUSTOM_MODEM = a977_kk_hspa_data_0616 # disable cs call and disable sms
RESOURCE_OVERLAY_SUPPORT = generic navbar tablet generic_3GDATAONLY
MTK_VT3G324M_SUPPORT=no
GEMINI=no
MTK_GEMINI_SMART_3G_SWITCH=0
MTK_GEMINI_ENHANCEMENT=no
MTK_GEMINI_3G_SWITCH=no
MTK_SHARE_MODEM_CURRENT=1
MTK_TTY_SUPPORT = no
MTK_TB_APP_CALL_FORCE_SPEAKER_ON=no
MTK_FD_SUPPORT = no
MTK_FD_FORCE_REL_SUPPORT = no
MTK_TB_WIFI_3G_MODE = 3GDATA_ONLY
3.编译只去掉SIM卡通话功能的modem
在modem源码的在make/custom_config/HUAQIN82_TB_B2D_KK_HSPA_EXT.mak及make/HUAQIN82_TB_B2D_KK_HSPA.mak中添加CUSTOM_OPTION = __DISABLE_CSCALL__,然后按照第1点进行编译即可。
上述是只去掉SIM卡通话功能需要在modem端进行的配置,此外还需要在AP端进行如下修改:
(1)mediatek\config\project_name\android.hardware.telephony.gsm.xml
去掉android.hardware.telephony.gsm.xml文件中的如下两项:
(2)mediatek\config\project_name\ProjectConfig.mk
在ProjectConfig.mk文件中添加如下配置:
CUSTOM_MODEM = a977_kk_hspa_data_sms_0714 # disable cs call
RESOURCE_OVERLAY_SUPPORT = generic navbar tablet generic_3GDATASMS
MTK_VT3G324M_SUPPORT=no
GEMINI=no
MTK_GEMINI_SMART_3G_SWITCH=0
MTK_GEMINI_ENHANCEMENT=no
MTK_GEMINI_3G_SWITCH=no
MTK_SHARE_MODEM_CURRENT=1
MTK_TTY_SUPPORT = no
MTK_TB_APP_CALL_FORCE_SPEAKER_ON=no
MTK_FD_SUPPORT = no
MTK_FD_FORCE_REL_SUPPORT = no
MTK_TB_WIFI_3G_MODE = 3GDATA_SMS
4.如何默认打开短信中的小区广播
操作步骤:"Messages" - Press the "Menu key" from the bottom of the phone ,From the options, choose "Settings",Select 'Cell broadcast'.
修改modem端代码,在nvram_cust_pack.c文件中,COMMON_NVRAM_EF_SMSAL_COMMON_PARAM_DEFAULT的第8个byte就是小区广播的开关。1表示打开,0表示关闭。进入修改后,按照第1点进行编译即可。
5.如何配置不支持SIM卡热插拔
A977项目(MT8382平台)不支持SIM卡热插拔,因此在modem端和AP均需要进行设置,去掉SIM插拔功能。
modem端需要将make/custom_config/HUAQIN82_TB_B2D_KK_GPRS_EXT.make和make/custom_config/HUAQIN82_TB_B2D_KK_HSPA_EXT.mak文件中的SIM_HOT_SWAP = SIM_SLOT_1改为SIM_HOT_SWAP = NONE,然后重新编译、更新mdoem。
AP端需要将ProjectConfig.mk文件中将宏MTK_SIM_HOT_SWAP置为no。