SIMcom嵌入式Linux平台通用配置

修订记录修订日期修订作者修订备注
创建第一版2020.02.14forwardxiang@163.com文档版本V1.0.0

第一部分 SIMcom嵌入式Linux平台通用配置

1. 1 开发环境中的必要脚本

1.1.1 SIMcom提供的备份脚本

  • 首先查看开发环境内sim_rootfs/etc/init.d路径下是否有SIMcom提供的备份脚本helloworld_auto_restore.sh,该脚本主要负责:

    1、备份/data/helloworld应用程序,即所有应用程序的入口应用程序。

    2、备份可选的脚本文件/data/helloworld_monitor.sh/data/monitor.sh

    3、备份动作只发生在每次启动系统该文件不存在且对应的备份源文件存在的情况下。

1.1.2 ibeelink提供的备份脚本

  • 其次查看开发环境内sim_rootfs/etc/init.d路径下是否有ibeelink提供的备份脚本ibeelink_restore.sh,该脚本主要负责:

    1、备份开发的业务APP程序,即main_app等必要的应用程序。

    2、备份业务APP所需要的配置文件。例如APP的参数设置。

    3、备份永远不会更改的只读文件,例如可以用于恢复出厂设置的文件。

    4、ibeelink提供的脚本需要链接到/etc/rc5.d/S99xxxx,其中xxxx为脚本名称。

1.1.3 SIMcom提供的启动脚本

  • 最后查看开发环境内sim_rootfs/etc/init.d路径下是否有SIMcom提供的启动脚本start_helloworld.sh,该脚本主要负责:

    1、启动入口应用程序/data/helloworld,由此调起用户的其他业务APP。

    2、启动可选脚本文件/data/monitor.sh,用于紧急情况下作为调试手段的入口。

    3、利用start-stop-daemon守护进程工具对入口应用程序进行启停守护。

  • 若原厂没有提供启动脚本,将启动脚本复制到相应目录后,使用软链接进行脚本链接,在开发环境最外层目录下举例:sudo ln -sf ../init.d/start_helloworld sim_rootfs/etc/rc5.d/S99start_helloworld

1.2 开发环境通用配置方法

1.2.1 /data和/cache分区内文件的备份

  • /data和/cache分区内的文件为可读可写文件,因此面临着极限状态下文件丢失的风险。

  • 根据SIMcom的建议,采用双向备份的方式对该分区的文件进行备份:

    1、启动时发现丢失/data下的重要文件,则检查/cache下的对应文件,若存在则从/cache下复制。

    2、启动时发现丢失/cache下的重要文件,则检查/data下的对应文件,若存在则从/data下复制。

  • /data/helloworld文件由脚本helloworld_auto_restore.sh负责备份,其他在这两个区内的文件均由脚本文件ibeelink_restore.sh负责备份。注意:当前仅支持在脚本中指定的文件的备份。

  • 注意:虽然这两个区域内文件同时丢失的概率极小,但仍然无法保证百分百。

1.2.2 只读文件(Read-only)的备份方法

  • 在开发环境sim_rootfs路径下可以使用root权限写入文件到任意子目录下。
  • 例如将需要备份的网络配置文件auto_net_cfg_file写入到sim_rootfs/home路径下。
  • 最后在ibeelink_restore.sh脚本中将该文件的备份源文件位置设置为/home/auto_net_cfg_file,当/data/auto_net_cfg_file文件丢失后,系统启动时会自动从只读区域/home复制该文件。

1.2.3 系统默认模块PID模式配置方法

  • 在开发环境sim_usrfs路径或其子路径中找到文件boot_hsusb_composition

  • boot_hsusb_composition链接到/sbin/usb/compositions/9001或者/sbin/usb/compositions/9011

  • 若需要将系统默认模块PID模式配置为9011模式,则执行指令ln -sf /sbin/usb/compositions/9011 boot_hsusb_composition

  • 注意:

    1、boot_hsusb_composition文件所在路径使用指令ls -l命令核对模块PID是否配置为想要的模式。若不是则使用上述方法更改。

    2、只要开发环境不再更改,该配置只需要配置一次即可。

第二部分 SIMcom嵌入式Linux平台选用配置

2.1 auto-net拨号上网配置方法

2.1.1 为什么要使用该方法

  • 由于高通更新了部分资源,导致SIMcom未能及时配置相关参数,这也导致了SIM7600CE-CNSE模块无法同SIM7600CE-T一样正常使用9011模式下的RNDIS拨号(需要一直插上USB线才能正常上网)。
  • auto_net方式,无需应用操作。强烈要求和推荐SIM7600CE-CNSE模块使用该方法。

2.1.2 如何配置auto-net拨号上网

  • 在开发环境打包镜像时将sim_usrfs目录(挂载后为/data)下auto_net_cfg_file文件始终存在且写1(发布的版本没有该文件)。
  • 在备份脚本里备份auto_net_cfg_file文件,且建议备份源放在只读文件系统下,例如/home文件夹。
  • 在开发环境打包镜像时将sim_usrfs目录下文件mobileap_cfg.xml文件和mobileap_cfg.xsd文件中MobileAPEnableAtBootup应该分别置为1(发布的CNSE版本有误)。无需备份。
  • 在开发环境打包镜像时sim_usrfs目录或其子目录中将boot_hsusb_composition链接到/sbin/usb/compositions/9001(默认就是该值,建议检查一下即可)。

2.2 未配置脚本的文件备份补救方法

2.2.1 为什么需要补救措施

  • 由于历史遗留问题,导致一些设备在没有做文件备份的功能前提下就生产交付了。
  • 文件备份的脚本存放在只读文件系统中,无法通过远程升级写入脚本的方法进行补救。
  • 虽然无法通过脚本进行备份,但是可以在应用程序中主动备份。

2.2.2 如何采取补救措施

  • 由于/data/helloworld文件由SIMcom提供的脚本进行备份,固可以在该应用程序中进行备份操作。

  • 首先需要更新/data/helloworld文件以便写入备份逻辑。下面以使用业务APP更新该文件为例。

    1、在业务APP启动后调用http_upgrade接口去蜜连平台拉取最新的helloworld文件。

    2、注意拉取成功后,需要上报给服务器最新版本号,防止该文件被重复拉取。

    3、使用的接口工程代码地址:整包HTTP远程升级接口,研发人员可以克隆后直接测试。

  • helloworld程序中备份逻辑为:

    1、若模块PID不是9011,则更改为9011后重启系统。

    2、先检查/data目录下需要备份的文件是否丢失,若丢失,则从对应的备份源复制。

    3、再检查/cache目录下需要备份的文件,若丢失,则从/data目录下复制。

    4、若发生备份操作,则使用UDP协议上报给日志服务器47.102.121.15:9898,用于记录。

    5、若设备因无法上网导致上报失败,则再下次启动时继续上报。

    6、helloworld程序中备份逻辑代码地址:备份逻辑代码地址

第三部分 SIMcom嵌入式Linux平台配置原理

3.1 应用程序自启动原理

3.1.1 helloworld应用程序是谁启动的

  • 在脚本start_helloworld.sh的源码中我们可以看到如下代码:

    start-stop-daemon -S -b -a /data/helloworld
    

    这说明,helloworld应用程序是由start-stop-daemon这个启停工具启动的。关于该工具的作用请自行百度或谷歌进行了解。

3.1.2 start_helloworld.sh脚本程序是谁启动的

  • /etc/rc5.d/目录下可以找到S99start_helloworld文件,这是个链接文件,使用命令ls -l可以清楚的查看到其指向的源文件就是start_helloworld.sh这个脚本文件。
  • Linux系统在每次启动时都会按优先级次序去启动各个脚本文件或应用程序。
  • 本节举例中,rc5.d表示该目录下的文件运行级为5级,而S99则表示启动优先级为99。

3.2 应用程序备份原理

3.2.1 如何实现应用程序备份

  • 将需要备份的文件和备份逻辑写入脚本中。
  • 链接该脚本到自启动目录下。
  • 由Linux自启动该脚本,即可完成文件备份的工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fffxxx222

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值