Android系统级深入开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

5.3 MSM的Android专用驱动和组件

在Android专用驱动和组件方面,各种Android平台使用的内容基本相同。这部分代码具体实现的特点是Android相关,但是硬件不相关。因此在基于Android的各个平台中,也没有必要进行改动。唯一可能存在的区别就是配置文件中对Android专用驱动和组件的选择不同。

在MSM平台的defconfig中,选择的内容如下所示:

    #
    # Power management options
    #
    CONFIG_HAS_WAKELOCK=y
    CONFIG_HAS_EARLYSUSPEND=y
    CONFIG_WAKELOCK=y
    CONFIG_WAKELOCK_STAT=y
    CONFIG_USER_WAKELOCK=y
    CONFIG_EARLYSUSPEND=y
    # CONFIG_NO_USER_SPACE_SCREEN_ACCESS_CONTROL is not set
    # CONFIG_CONSOLE_EARLYSUSPEND is not set
    CONFIG_FB_EARLYSUSPEND=y
    #
    # Android
    #
    CONFIG_ANDROID=y
    CONFIG_ANDROID_BINDER_IPC=y
    CONFIG_ANDROID_LOGGER=y
    CONFIG_ANDROID_RAM_CONSOLE=y
    CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
    CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION=y
    CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION_DATA_SIZE=128
    CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION_ECC_SIZE=16
    CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION_SYMBOL_SIZE=8
    CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION_POLYNOMIAL=0x11d
    # CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set
    CONFIG_ANDROID_TIMED_OUTPUT=y
    CONFIG_ANDROID_TIMED_GPIO=y
    CONFIG_ANDROID_LOW_MEMORY_KILLER=y
    #
    # RCU Subsystem
    #
    CONFIG_ASHMEM=y
    #
    # RTC interfaces
    #
    CONFIG_RTC_INTF_ALARM=y
    CONFIG_RTC_INTF_ALARM_DEV=y
    #
    # Generic Driver Options
    #
    CONFIG_ANDROID_PMEM=y
    #
    # Networking options
    #
    CONFIG_ANDROID_PARANOID_NETWORK=y

Android相关的驱动和组件大都已经选择,在CONFIG_ANDROID_RAM_CONSOLE多了一些选项。