Yocto/X11和Ubuntu在英创Linux主板上的对比

 2019-12-16     作者:黄志超         
文章标签:UbuntuX11Yocto

  英创公司的ESM6802和ESM7000主板都是基于yocto的工程来定制的内核以及文件系统,yocto是一个开源社区,它针对许多嵌入式设备的CPU提供了系统模板和工具,而且积累了非常丰富的资源。ESM6802和ESM7000主板的文件系统也从中选取了大量实用的库以及工具,包括x11桌面服务以及基于x11的qt-5.8版本等,让用户开发起来更加方便。


  同时英创公司也将Ubuntu系统移植到嵌入式主板ESM6802和ESM7000中,考虑到稳定性选取了Ubuntu-18.04 LTS版本,在Ubuntu官方提供的arm版本基础文件系统包上,将常用的库和工具安装上(包括X11桌面服务以及qt-5.9.5等),配合主板修改好相关的配置文件就完成了Ubuntu系统的移植。在对Ubuntu系统的测试的过程中,英创公司与现在基于yocto工程移植的系统做了一些比较,主要是以开发环境的搭建、使用以及工控领域最为重视的稳定性作为比较点,可以供用户参考。


开发环境比较


  首先是主板标准系统(后面简称yocto/X11系统)的开发环境的搭建,英创公司通过yocto的项目制作了供主板使用的交叉工具链安装包,用户在安装了Linux发行版系统的开发主机(通常是PC)中可以一键安装完成。使用的时候也很方便,用户只需要根据手册的说明执行一条命令导入环境变量,就能够正常使用交叉工具链了。同时为了让不太熟悉Linux系统的用户能够更加方便的开发,英创公司还提供了配合交叉工具链使用的eclipse和开发Qt程序所使用的QtCreator,这两款工具都提供了一个方便操作的IDE环境,让用户可以跳过相对复杂的命令行,在IDE界面中编辑和编译代码。


  再来看Ubuntu系统,客户需要在开发主机上安装和主板Ubuntu系统相同的版本来搭建环境,也就是Ubuntu-18.04版本。开发环境的搭建是利用Ubuntu系统提供的静态的arm虚拟功能,直接在开发主机上建立主板的chroot环境,在这个环境中就能够完成开发和调试。这里简单介绍一下chroot环境,chroot是unix系统的一个操作,针对正在运作的软件进程和它的子进程,改变它外显的根目录,创建并运行一个隔离的虚拟软件系统拷贝。其实这就类似于在Ubuntu系统中创建一个跨平台的虚拟机,在虚拟机中运行arm主板的系统。英创公司会提供给用户一个配置好的专用于开发的文件系统(在主板的文件系统基础上精简并配置好Qtcreator),利用这个文件系统建立chroot环境,就可以在这个环境中使用QtCreator中进行开发。


  通过对两种系统开发环境的介绍,可以看出来yocto/X11系统开发环境的搭建和使用更为简便,在安装好交叉工具链和IDE工具后,直接运行eclipse或者QtCreator就可以进行代码调试和开发了。Ubuntu系统在搭建环境的时候很简单,只用将英创公司提供的开发专用文件系统拷贝到开发主机中,但是每次运行都需要建立chroot环境,进入到chroot环境中再启动QtCreator进行开发,如果熟悉linux系统的用户可以设计一个脚本来启动。最大的问题在于因为类似于搭建了一个虚拟机,所以运行速度会有所降低,如果用户的开发主机本来就是使用的虚拟机安装的Ubuntu系统,那么chroot环境的运行速度将会有明显降低,从而会影响开发的效率。


系统可维护性和稳定性比较


  主板的yocto系统中包含了常用的工具和库文件,比如apache、splite3、mysql、qt5.8等,这些工具和库文件的版本都是固定不变的,并且经过了长时间的测试,可以保证系统的稳定性。同时这些工具和库文件都是由英创公司移植的,如果出现问题,能够第一时间测试和处理。


  Ubuntu系统中可以支持从Ubuntu的软件源(arm版本)获取软件,通过apt-get命令就可以方便的安装所需要的工具。但同时也带来了一些问题,这些软件都是由Ubuntu社区提供,有一些软件没有在主板上测试足够长的时间,不能够保证它的稳定性。一旦Ubuntu的软件源有更新,在这之后使用apt-get命令安装的软件都会升级到新版本,新的软件版本同样没有在主板上测试过,如果出现问题,英创公司无法定位到具体的代码中。所以从稳定性上来讲,yocto系统更加有保障。


  从工业控制的角度来看,设备大都是处在无人值守的情况,稳定性是最为重要的指标,对于软件并不要求使用最新的版本。所以综合看来,在yocto/X11系统能够满足应用需求的情况下,从开发的便捷性和主板的稳定性来讲,yocto/X11系统是最符合嵌入式工业控制的要求的选择。


  当然Ubunut系统也有它的优点,如果需要使用比较复杂的软件,比如像Docker这类软件,移植到arm平台是十分复杂以及花费时间的,但是Ubunut的软件源中就能够提供现成的arm版本软件,这时就可以选择使用Ubuntu系统进行进行开发。利用Ubunut提供的软件安装工具,能够快速的搭建好基本的软件环境,可以极大的节省开发时间。


  有兴趣的用户可以直接和英创的工程师联系获取相关资料。

文章标签:UbuntuX11Yocto