嵌入式Linux方案概览王辉王辉华清远见提纲一.Linux内核版本选择二.Linux系统开发工具三.通用Linux系统结构四.通用平台Linux应用系统五.Linux平台版本管理及测试华清远见一Linux内核版本选择v摘要:Ø标准版linux内核Ø基于标准版的商业版本Ø针对开发平台的选择华清远见一Linux内核版本选择LinuxKernelStandardVersion()Linux-2.6.25Linux-2.4.36Linux-2.2.26MontaVistaLinux(NotFree)(MontaVista)(Realtime、IDEDevRocket)BlueCatLinux(NotFree)(LynuxWorks)(compitablewithlynxRTOS)TimesysLinux(NotFree)(TimeSys)(RealTimeIDETimeStorm)RTLinux(NotFree)(FSMLabs/WindRiver)(HardRealtime)OurCHOICE:Linux-2.6.25linuxlinux内核版本现内核版本现状:状:华清远见一Linux内核版本选择vlinux内核标准版ØLinux内核标准版包括三个分枝:2.6.x/2.4.x/2.2.xv基于标准版的商业版本Ø基于标准版Linux内核,开发出许多商业版本:MotavistaLinux、timesysLinux…ü优点:商业版Linux内核在实时性、图形版开发工具、技术支持等方面具有一定优势ü缺点:价格贵、更新不及时、对开源软件的兼容性不理想华清远见一Linux内核版本选择v开发平台的选择Ø一般平台根据成本、应用领域需求,选择标准版Linux-2.6.25(2.6.x分枝的最新稳定版),如果考虑实时性要求,可以移植RT-patch以弥补实时性不足ü理由:与商业版比,费用低,更新及时;与其他两分枝相比,实时性、安全性、应用软件的支持性更好华清远见二Linux系统开发工具v摘要:ØLinux系统开发工具简述ØLinux内核开发工具ØLinux内核、驱动调试工具ØLinux应用开发工具Ø应用调试工具Ø平台优化工具华清远见二Linux系统开发工具vLinux系统开发工具简述ØLinux内核及应用的编译、调试、优化都是以GNU工具链为基础,直接使用开源工具或是选择从GNU工具链修改过的商业工具Ø商业版工具基本以GNU工具为基础,配以图形界面及硬件调试接口,有些还进行了优化操作华清远见二Linux系统开发工具vLinux内核开发工具Ø基于成本与性能的考虑,Linux内核选择codesourcery维护GNU工具链4.2.3(最新稳定版Glibc2.5+Linux2.6.18header)vLinux内核、驱动调试工具ØPrintk/Oops/proc/sysfs(内核自带,可用)Ø汇编级跟踪调试(ICE,可用)Ø源码级跟踪调试(kgbd+hostgdb,需移植)Ø源码级跟踪调试(ICE+IDE,需购买)华清远见二Linux系统开发工具vLinux应用开发工具ØLinux应用开发以内核开发工具为基础,并加入Glibc-2.8(2.5)(最新稳定版)Ø为了达到商业版开发工具的使用效果,推荐使用图形开发工具(eclipse+GNUtoolchain),方便开发及调试,让新手更容易入门开发。华清远见二Linux系统开发工具v应用调试工具Ø源码级调试工具(gdbserver+hostgdb,可用)ØWindows下源码级调试工具(gdbserver+hostgdb+eclipse)ØPrintf(应用自带,可用)ØStrace华清远见二Linux系统开发工具v平台优化工具ØLinux内核优化工具ü调用统计工具(Ptrace,需移植)ü信息统计工具(k/dprobes,需移植)ØLinux应用优化工具üProfiling工具(gprof,可用)üProfiling工具(oprofile,可用)华清远见三通用Linux系统结构华清远见三通用Linux系统结构vLinux应用系统一般由Linux内核、应用程序基本库、图形库、应用程序四部分组成v在这四部分中,Linux内核、应用程序基本库几乎以开源解决方案为主,没有太多选择v由于应用程序紧紧依赖于图形库,加之图形库备选众多,所以选择图形库已经成为Linux系统构建中的重要环节,考查图形库最重要有以下几点:字体、国际化、2D加速、多媒体框架、浏览器方案、通信协议方案华清远见四通用平台Linux应用系统v摘要:Ø一般平台Linux内核功能概览ØLinux内核主要FeaturesØ一般平台图形库选择华清远见四通用平台Linux系统通用平台通用平台LinuxLinux内核功能概览内核功能概览华清远见四通用平台Linux系统v通用平台Linux内核主要Features:Ø存储设备üNORFlash、NandSLC/MLCFlash、MMC/SD、IDE硬盘(PIO)Ø人机界面üTouchpanel、keypad、LCD(TFT/STN)、TV、CMOS/CCD、AudioØ设备总线üUsbHost(storage、ethernet、Hid…)、UsbSlave、SPI、I2C、SDIO(Storage、Wifi…)、CF(storage、Wifi…)华清远见四通用平台Linux系统Ø文件系统üYAFFS/YAFFS2、JFFS/JFFS2、EXT2/3、FAT12/16/32、…Ø网络接口üEthernet、WiFi(usb/sdio/spi)、PPP、IrDA…Ø电源管理ü动态变频、IDLE管理、DeepSleep、电池监测…华清远见四通用平台Linux系统商业版GUI•目前linux系统下常用图形库•GPL/LGPLGUI华清远见四通用平台Linux系统v通用平台图形库选择Ø对于不需浏览器、不需通讯协议的简单项目,选用Mcriowindows、MiniGUI,RAM资源16MLinux内核AppLibrariesMicrowinMiniGUI华清远见四通用平台Linux系统Ø对于需要复杂功能的项目,选用Qt/E、GtkFB,RAM资源(最少64M)Linux内核AppLibrariesQt/EGtkFBQtopiaOpie…GPEGpephone…华清远见四通用平台Linux系统v通用平台GUI主要FeaturesOpenGL/ESOpenGL/ES3D支持支持2D加速支持2D加速2D硬件加速GstreamerDNA、Gstreamer多媒体框架GSM/GPRS/Bluethooth…GSM/GPRS/Bluethooth…通讯协议封装Konqueror、mozilla…Konqueror、Opera…浏览器支持,较好支持,较好国际化支持unicode,支持中文支持unicode,支持中文字体适中(32MRam以上)较大(64MRam以上)需资源大小GtkFBQt/E通用平台GUI主要features(opensource资源)华清远见五Linux平台版本管理及测试v版本管理Ø建立SVN仓库,将kernel、applibraries、GUI、Application等源码都进行建库管理,方便合作开发v代码测试ØLinux内核及Glibc的测试:通过LTP测试ØLinux驱动测试:由QA编写测试用例测试ØGUI库测试:由QA人员运行综合性强的App进行测试,例如浏览器、播放器Ø应用测试:由QA人员编写测试用例进行测试