一直有疑问的一件事,系统高人和驱动大大来解。  完整的Android系统定制一旦完成,编译生成最终ROM IMAGE,方方面面包括各个驱动就固定下来。此后,如要升级某个设备驱动,哪怕某个驱动模块只有一个字节需要改良,流程上必须要完整过一遍,输出新的ROM IMAGE,替换原来的整个???
  考虑一种情况,经由OTG支持的USB存储设备,如U盘,就算厂商(主芯片原厂)已把市场上现有一百种U盘都测试过了,保不准明天就有个新型U盘问世,接上去,机器不认识,厂家是否要放出个新的ROM来升级,还是干脆不管了???
  Windows和Linux都支持动态安装设备驱动程序,Android支持“驱动升级”么???
  另一种例子,用于平板的芯片,几乎都有视频硬件解码,平板强调媒体能力,视频媒体播放器一类的程序,必借助于解码硬件,codec的具体实现会转向硬件完成,由于只有芯片原厂才知道自己的硬解码核,这个媒体播放器就只有原厂去做(纯软解的需要极高的CPU Hz数,ARM系统目前不到,不提),问题是,原厂精于codec和filter硬件驱动,未必想去做绚丽精致的界面,第三方乐于做出优秀的界面,却无法去调动芯片的硬件解码能力。  聪明的google,把驱动从内核中拉出,驱动不需开源,保护了芯片商的利益,但google就没有一个机制来建立驱动与应用间的标准接口么?驱动其实就无需开源,只要接口符合google制定的规范,原厂只提供库以及向第三方提供类似API的东西,上层的应用不就不需要芯片原厂来操心了么。  是我理解错了?那么,这两个问题google是如何处理的呢。

解决方案 »

  1.   

    我也正在查这个问题,编译内核老是通不过。所以我想能不能动态在android下加载这个ko了求帮忙
      

  2.   

    我也在查这个问题,貌似有人知道解决方案,http://topic.csdn.net/u/20110110/10/45c613ab-9ab7-49df-af58-9bd8f7e90bf1.html?1917389377
      

  3.   

    一直苦恼这个问题,最直接的一个需求就是
    硬件的兼容问题,比如要兼容多个camera,我想通过读ID的方法,独到相应的id,
    就加载相应的驱动,可以做到吗
    我觉得这应该不只是linux的问题,因为要支持一个外设,部分文件编译到boot.img,
    部分文件编译到用户空间的so。
    大家有没有好的解决方案,share下
      

  4.   

    我理解到,作为开发者可以不用重新编译内核或整个工程而加进自己的驱动,以内核模块的方式挂一个新驱动上去,节约时间,也避开整个编译的麻烦。谢2、3楼。另一方面,作为终端用户呢。  支持多camera想法,正类似于支持多U盘的想法。谢3楼的回复,让这个话题得以继续。即插即用是用户的需求(哦,在windows的多年教导下),android下的即插即用设备,应当就是USB了。如何在用户接上新设备的时候,通过Vendor ID,Device ID和Class Code(storage类,camera类...),来加载新驱动?设想,随销售的产品设备厂家提供for android驱动,插入手机/平板后,机器提示需安装用户驱动,要考入文件云云,或许该有一个驱动安装器来管理所有外加的驱动。系统芯片原厂的系统开发者(至少有十余厂家),以及USB设备芯片供应商(也至少有十余家),能否来答疑解惑,android在系统概念上拒绝了这种可能性么?