首页 > 其他分享 >【Android驱动12】Modem编译和sim卡配置检测过程

【Android驱动12】Modem编译和sim卡配置检测过程

时间:2024-08-18 14:26:08浏览次数:12  
标签:12 false sim vendor Android Modem mediatek SIM modem

一,Modem编译

1.1 查看ReleseNote发现需要查看"Build_Configure_Modem_MOLY"这张表,解压MT67xx_(xxx)_MOLY.LR9.W1444.MD.LWTG.MP.Vx.tar.gz到某文件,并在make目录下查看支持的配置信息
在这里插入图片描述

1.2 执行的命令,开始编译modem,则是

./make.sh "SM67xx(Lxx_xxx).mak" new

1.3 执行
perl device/mediatek/build/build/tools/modemRenameCopy.pl [Modem 代码路径] [编译Modem所使用的.mak文件 ],如

perl *****/modemRenameCopy.pl  ./Moly/  MT67xx_LTG_DSDS

自动为所要复制到alps/vendor/mediatek/proprietary/modem/${modem} 下的文件重命名,并生成一个Android.mk文件,alps/vendor/mediatek/proprietary/该路径下是没有modem这个文件夹的,需要自己创建。

请确保在alps/vendor/mediatek/proprietary/modem/中有一个Android.mk。 你可以从alps/device/mediatek/build/build/tools/modem/modem_Android.mk复制到alps/vendor/mediatek/proprietary/modem/Android.mk

1.4 在alps/device/ c o m p a n y / {company}/ company/{project}/ProjectConfig.mk找到相应的ProjectConfig.mk,配置CUSTOM_MODEM,保证跟自己创建的目录alps/vendor/mediatek/proprietary/modem/${modem}名称一致。

然后再/alps下重新编译

1.5 PUSH modem 到手机中进行调
编译eng或者userdebug版本:
userdebug:

adb shell setprop service.adb.root 1 

再进入Settings->Developer options,取消 USB debugging,然后再重新勾选上,即可获得root权限
eng版本可省略这一步。

adb remount
adb push xxxx.xx  /system/etc/firmware/

modem文件清单:

ltg: catcher_filter_1_ltg_n.bin dsp_1_ltg_n.bin modem_1_ltg_n.img
lwg: catcher_filter_1_lwg_n.bin dsp_1_lwg_n.bin modem_1_lwg_n.img
c2k: boot_3_3g_n.rom fsm_cust_df_3_3g_n.img fsm_rf_df_3_3g_n.img fsm_rw_df_3_3g_n.img modem_3_3g_n.img

3、重启机器

adb reboot 

二,sim卡驱动配置

2.1 使能sim卡

sim卡的正常工作设计到modem,modem则需要你们根据具体情况编译了

device/mediateksample/$(yourprojectname)/ProjectConfig.mk

CUSTOM_MODEM=(主make文件modem的名称,不要带中文)

在vendor_ap_s0/vendor/mediatek/proprietary/modem/文件夹下导入编译好的modem文件夹,里面modem文件夹名字与主make里面保持一致

如果要更换modem,最好删除out目录下modem文件夹里面的打包文件,在编译

out/soong/.intermediates/system/sepolicy/vendor_property_contexts/android_common/gen/namespace_checked/vendor/mediatek/proprietary/modem

下载烧录到手机,系统设置里面看基带版本是否有定义,有定义代表modem编进去了,不过sim卡能正常使用还是在根据原理图在dws里面配置引脚

只想保留sim1卡槽,双卡配置成单卡

device/mediateksample/$(yourprojectname)/ProjectConfig.mk

MTK_MULTI_SIM_SUPPORT = dsds  //双卡       ss   //单卡

2.2 sim卡热插拔

device/mediateksample/$(yourprojectname)/ProjectConfig.mk

MTK_SIM_HOT_SWAP= yes
MTK_SIM_HOT_SWAP_COMMON_SLOT = yes      //打开关于sim卡热插拔的宏开关

2.3 sim卡的eint,无热插拔可以不配置,需要该功能就需要配置了

$(LINUX_KERNEL_VERSION)/drivers/misc/mediatek/dws/$(MTK_PLATFORM)/$(yourprojectname).dws

vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/$(yourprojectname)/dct/dct/codegen.dws

vendor/mediatek/proprietary/custom/$(yourprojectname)/kernel/dct/dct/codegen.dws
sim卡:

			<gpio35>
                <eint_mode>false</eint_mode>
                <def_mode>1</def_mode>
                <inpull_en>true</inpull_en>
                <inpull_selhigh>true</inpull_selhigh>
                <def_dir>IN</def_dir>
                <out_high>false</out_high>
                <varName0>GPIO_SIM2_SIO</varName0>
                <smt>false</smt>
                <ies>true</ies>
            </gpio35>
            <gpio36>
                <eint_mode>false</eint_mode>
                <def_mode>1</def_mode>
                <inpull_en>false</inpull_en>
                <inpull_selhigh>false</inpull_selhigh>
                <def_dir>OUT</def_dir>
                <out_high>false</out_high>
                <varName0>GPIO_SIM2_SRST</varName0>
                <smt>false</smt>
                <ies>true</ies>
            </gpio36>
            <gpio37>
                <eint_mode>false</eint_mode>
                <def_mode>1</def_mode>
                <inpull_en>false</inpull_en>
                <inpull_selhigh>false</inpull_selhigh>
                <def_dir>OUT</def_dir>
                <out_high>false</out_high>
                <varName0>GPIO_SIM2_SCLK</varName0>
                <smt>false</smt>
                <ies>true</ies>
            </gpio37>
            <gpio38>
                <eint_mode>false</eint_mode>
                <def_mode>1</def_mode>
                <inpull_en>false</inpull_en>
                <inpull_selhigh>false</inpull_selhigh>
                <def_dir>OUT</def_dir>
                <out_high>false</out_high>
                <varName0>GPIO_SIM1_SCLK</varName0>
                <smt>false</smt>
                <ies>true</ies>
            </gpio38>
            <gpio39>
                <eint_mode>false</eint_mode>
                <def_mode>1</def_mode>
                <inpull_en>false</inpull_en>
                <inpull_selhigh>false</inpull_selhigh>
                <def_dir>OUT</def_dir>
                <out_high>false</out_high>
                <varName0>GPIO_SIM1_SRST</varName0>
                <smt>false</smt>
                <ies>true</ies>
            </gpio39>
            <gpio40>
                <eint_mode>false</eint_mode>
                <def_mode>1</def_mode>
                <inpull_en>true</inpull_en>
                <inpull_selhigh>true</inpull_selhigh>
                <def_dir>IN</def_dir>
                <out_high>false</out_high>
                <varName0>GPIO_SIM1_SIO</varName0>
                <smt>false</smt>
                <ies>true</ies>
            </gpio40>

具体引脚使用你们看原理图,仅供参考

三,SIM卡不识或者掉卡简单分析

在这里插入图片描述

3.1 不识卡问题

不识卡的主要原因:

		Modem发生错误,异常或者重启。 
		SIM卡热插拔配置不正确引起的不识卡 
		某些特殊的卡与MTK平台兼容的问题

3.2 识卡慢的问题

①识卡过程中拔出SIM卡,再插入,此时SIM driver会认为是掉卡情况,会执行full recovery救卡动作,将会耗费一定的时间初始化SIM卡。梳理SIM卡流程及测试操作步骤。 
②是否热插拔功能引起,让HW跟进。

3.3 SIM卡出现概率性掉卡,是什么原因,该如何解决?

1,概率性掉卡问题一般是HW干扰导致。
SW上针对掉卡现象的救卡流程为首先是三次fast recovery,三次reset sim来重新识别卡。
若三次fast recovery没能将卡救回来,接着再启动full recovery enhancement timer,此timer interval默认为30s,直到将卡救回来。
若是full recovery timer来救卡,网络恢复较慢,会再次出现”XXXX欢迎您”欢迎界面。

2,从HW上彻底排查干扰源,以HW手段解决。
1) SIM受到干扰可分为两大类:
SIM IO受到干扰,这种情况一般是layout导致,数字信号受到干扰0->1,1->0。1.8V的SIM更容易受到这种干扰。
SIM本身受到干扰,一般是在PA发射信号时表现比较显著。

2) 可通过SIM driver log粗略定位是IO受到干扰还是SIM本身受到干扰:
SIM掉卡后,首先会有三次fast recovery捡卡机制,若这三次recovery,能将卡找回来,表明受到的是IO干扰,通过reset卡,避开了信号受干扰的时刻,然后能将SIM卡找回来。
若三次fast recovery不能将卡找回来,表明SIM本身受到干扰。

HW实验方法:
(1)检查layout走线;
(2) 量SIM POWER,IO波形,通过波形确认是否有noise;
(3)SIM1_DATA,SIM1_CLK,SIM1_RST 上分别加12pF 的电容;
(4)用导电箔将SIM包起来,并良好的导地;
(5)降低天线发射功率改变天线发射方向

标签:12,false,sim,vendor,Android,Modem,mediatek,SIM,modem
From: https://blog.csdn.net/jiangchaobing_2017/article/details/141299124

相关文章

  • Android 13.0 recovery页面旋转180度问题的解决方案
    1.前言在13.0的系统rom定制化开发工作中,在系统中recovery的页面也是相关重要的一部分,在系统recoveryota升级等功能,都是需要recovery功能的,在某些产品定制化中在recovery的时候,发现居然旋转了180度,接下来分析下recovery关于屏幕显示方向的相关源码,来修改这个功能2.recovery......
  • 基于flask+vue框架的基于Android的校园公益管理APP小程序端[开题+论文+程序]-计算机毕
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今社会,随着教育理念的进步和青年学生社会责任感的增强,校园公益活动已成为培养学生综合素质、促进社会和谐的重要途径。然而,传统的公益......
  • 一本通1215:迷宫答案
    #include<bits/stdc++.h>usingnamespacestd;charmp[105][105];boolvis[105][105];intdx[4]={0,0,1,-1};intdy[4]={-1,1,0,0};intfx,fy,sx,sy,n,c,a=0;voiddfs(intx,inty){  if(x==fx&&y==fy)  {    cout<<"YES"&l......
  • 西门子精致面板TP1200 历史数据(历史数据、审计追踪) 移存到网络路径
    1.网络共享1.1Window功能SMB安装1.2.共享文件夹1.3.触摸屏端需要设置电脑的用户、密码、网络信息2.如何安全移动归档数据---------------------------------------------------------------------------------------------------------------------------------如......
  • 抽象代数精解【12】
    这里写目录标题群同构基础例子参考文献群同构基础设G与G′......
  • 打靶记录12——Fawkes
    靶机:https://download.vulnhub.com/harrypotter/Fawkes.ova这是个哈利波特系列的靶机,作者和本人都非常喜欢这个系列,因为它的漏洞和利用点都设计得很巧妙。难度:高目标:取得2个root权限+3个flag涉及攻击方法:主机发现端口扫描Web信息收集FTP服务攻击缓冲区溢出......
  • Android MTP流程
    概要本文的目的是介绍Android系统中MTP的一些相关知识。主要的内容包括:第1部分MTP简介      对Mtp协议进行简单的介绍。第2部分MTP框架      介绍Android系统下MTP的框架。第3部分MTP启动流程      详细分析MTP服务的启动流程,包括Java层,......
  • 012、Vue3+TypeScript基础,子页面使用defineExpose暴露成员来给主页面使用
    01、App.vue代码如下:<template><divclass="app"><h2>{{title}}</h2><button@click="showLog">点我数组子页面年龄</button><!--使用了ref来获取子组件的属性--><Personref="person001"/......
  • 【漫谈C语言和嵌入式007】AD2S1210简介与应用:高精度旋转变压器到数字转换器的解析
            在精密运动控制和测量系统中,旋转变压器(Resolver)是一种常用的传感器,能够精确检测旋转轴的位置和速度。为了将旋转变压器的模拟信号转换为数字信号,便于微控制器或DSP进行处理,AD2S1210作为一款高性能的旋转变压器到数字转换器(RDC),为工程师提供了高精度、低延迟的......
  • 【Java毕设选题推荐】基于SpringBoot的springboot基于Android的房屋租赁App
    前言:我是IT源码社,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务......