公司有时候会接一些定制项目来开发,最近收到一个以前合作过客户的问题。下面是情境再现:

客户基于AM335X芯片开发通信类产品,运行Linux系统,上层使用mysql, redis服务,使用python语言开发。产品已经投运到现场,运行三个月后,持续出现设备无法启动,以太网无法连接问题。无法远程修复问题,只有派工程师去现场解决。

经过一段时间的跟进,发现如下问题:

  1. 应用程序未使用watchdog,而是由kernel来定时feed
  2. 客户使用TF Card作为存储设备,卡上分有两个分区,boot和root。三个月后root分区出现无法登录和bad block现象
  3. 上层应用中有使用mysql和redis服务,客户使用python语言开发应用。mysql数据库有损坏。
  4. 没有升级和反馈通道

上面的问题,发现在很多工业产品中都会遇到,毕竟很多公司都是以主要功能为主导开发,一般像升级,反馈等功能都不会先行开发。但是,这个这案例就说明了一个问题,由于没有先行开发升级,反馈和维护功能,导致现场出现问题后,只有派实施人员去解决,但解决也不是一次性的,后期有问还是要去。因为无法远程得到运行日志,并提供相应维护措施,让设备回到正常运行状态。

对于工业类产品公司,大部分精力会花在自身领域内的服务上,软件开发人员大多也在花时间在开发提供服务的业务。这时候,硬件部分会找一些第三方板卡公司来合作开发,这样可以减少开发时间和成本。但是大多数板卡公司,也只是跟据芯片公司提供的评估板进行二次开发,让成本更体现本地化优势,提供给不同行业的用户使用。软件方面,也只是修改BSP和个别驱动代码,适配自己的底板和核心板。用户拿到板卡,看起来是可以直接进行应用软件开发,实际上也只是提供了一个基本的开发框架而已。上面说到的升级,反馈和维护都没有提供相应的解决方案。实际产品开发中,还有部署环节,也需要用户自己去开发。这样看来板卡公司其实还是有很大的市场空间,可现实是这些公司还是以售卖硬件为主,没有看到软件的价值和服务,所带来的商业利润。