1page.title=Kernel Configuration 2@jd:body 3 4<!-- 5 Copyright 2015 The Android Open Source Project 6 7 Licensed under the Apache License, Version 2.0 (the "License"); 8 you may not use this file except in compliance with the License. 9 You may obtain a copy of the License at 10 11 http://www.apache.org/licenses/LICENSE-2.0 12 13 Unless required by applicable law or agreed to in writing, software 14 distributed under the License is distributed on an "AS IS" BASIS, 15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 See the License for the specific language governing permissions and 17 limitations under the License. 18--> 19<div id="qv-wrapper"> 20 <div id="qv"> 21 <h2>In this document</h2> 22 <ol id="auto-toc"> 23 </ol> 24 </div> 25</div> 26 27<p>The kernel configuration settings in this document are meant to be used as a 28base for an Android kernel configuration. All devices should have the options 29in android-base configuration enabled. While not mandatory, the options in 30android-recommended configuration enable advanced Android 31features.</p> 32 33<p> 34Generating kernel config: Assuming you already have a minimalist defconfig for your device, a possible 35way to enable these options would be:</p> 36 37<pre>ARCH=<arch> scripts/kconfig/merge_config.sh <path_to>/<device>_defconfig android/configs/android-base.cfg 38android/configs/android-recommended.cfg</pre> 39<p> 40This will generate a .config that can then be used to save a new defconfig or 41compile a new kernel with Android features enabled. 42</p> 43<h3 id="base"> 44Base Configuration 45</h3> 46<pre> 47CONFIG_EXPERIMENTAL=y 48CONFIG_SYSVIPC=y 49CONFIG_CGROUPS=y 50CONFIG_CGROUP_DEBUG=y 51CONFIG_CGROUP_FREEZER=y 52CONFIG_CGROUP_CPUACCT=y 53CONFIG_RESOURCE_COUNTERS=y 54CONFIG_CGROUP_SCHED=y 55CONFIG_RT_GROUP_SCHED=y 56CONFIG_BLK_DEV_INITRD=y 57CONFIG_EMBEDDED=y 58CONFIG_NO_HZ=y 59CONFIG_HIGH_RES_TIMERS=y 60CONFIG_PREEMPT=y 61CONFIG_PM_AUTOSLEEP=y 62CONFIG_PM_WAKELOCKS=y 63CONFIG_BLK_DEV_DM=y 64CONFIG_DM_CRYPT=y 65CONFIG_NET=y 66CONFIG_PACKET=y 67CONFIG_UNIX=y 68CONFIG_XFRM_USER=y 69CONFIG_NET_KEY=y 70CONFIG_INET=y 71CONFIG_IP_ADVANCED_ROUTER=y 72CONFIG_IP_MULTIPLE_TABLES=y 73CONFIG_INET_ESP=y 74# CONFIG_INET_LRO is not set 75CONFIG_IPV6_PRIVACY=y 76CONFIG_IPV6_ROUTER_PREF=y 77CONFIG_IPV6_OPTIMISTIC_DAD=y 78CONFIG_INET6_AH=y 79CONFIG_INET6_ESP=y 80CONFIG_INET6_IPCOMP=y 81CONFIG_IPV6_MIP6=y 82CONFIG_IPV6_MULTIPLE_TABLES=y 83CONFIG_NETFILTER=y 84CONFIG_NF_CONNTRACK=y 85CONFIG_NF_CONNTRACK_EVENTS=y 86CONFIG_NF_CT_PROTO_DCCP=y 87CONFIG_NF_CT_PROTO_SCTP=y 88CONFIG_NF_CT_PROTO_UDPLITE=y 89CONFIG_NF_CONNTRACK_AMANDA=y 90CONFIG_NF_CONNTRACK_FTP=y 91CONFIG_NF_CONNTRACK_H323=y 92CONFIG_NF_CONNTRACK_IRC=y 93CONFIG_NF_CONNTRACK_NETBIOS_NS=y 94CONFIG_NF_CONNTRACK_PPTP=y 95CONFIG_NF_CONNTRACK_SANE=y 96CONFIG_NF_CONNTRACK_TFTP=y 97CONFIG_NF_CT_NETLINK=y 98CONFIG_NETFILTER_TPROXY=y 99CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y 100CONFIG_NETFILTER_XT_TARGET_CONNMARK=y 101CONFIG_NETFILTER_XT_TARGET_MARK=y 102CONFIG_NETFILTER_XT_TARGET_NFLOG=y 103CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y 104CONFIG_NETFILTER_XT_TARGET_TPROXY=y 105CONFIG_NETFILTER_XT_TARGET_TRACE=y 106CONFIG_NETFILTER_XT_MATCH_COMMENT=y 107CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y 108CONFIG_NETFILTER_XT_MATCH_CONNMARK=y 109CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y 110CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y 111CONFIG_NETFILTER_XT_MATCH_HELPER=y 112CONFIG_NETFILTER_XT_MATCH_IPRANGE=y 113CONFIG_NETFILTER_XT_MATCH_LENGTH=y 114CONFIG_NETFILTER_XT_MATCH_LIMIT=y 115CONFIG_NETFILTER_XT_MATCH_MAC=y 116CONFIG_NETFILTER_XT_MATCH_MARK=y 117CONFIG_NETFILTER_XT_MATCH_POLICY=y 118CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y 119CONFIG_NETFILTER_XT_MATCH_QTAGUID=y 120CONFIG_NETFILTER_XT_MATCH_QUOTA=y 121CONFIG_NETFILTER_XT_MATCH_QUOTA2=y 122CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG=y 123CONFIG_NETFILTER_XT_MATCH_SOCKET=y 124CONFIG_NETFILTER_XT_MATCH_STATE=y 125CONFIG_NETFILTER_XT_MATCH_STATISTIC=y 126CONFIG_NETFILTER_XT_MATCH_STRING=y 127CONFIG_NETFILTER_XT_MATCH_TIME=y 128CONFIG_NETFILTER_XT_MATCH_U32=y 129CONFIG_NF_CONNTRACK_IPV4=y 130CONFIG_IP_NF_IPTABLES=y 131CONFIG_IP_NF_MATCH_AH=y 132CONFIG_IP_NF_MATCH_ECN=y 133CONFIG_IP_NF_MATCH_TTL=y 134CONFIG_IP_NF_FILTER=y 135CONFIG_IP_NF_TARGET_REJECT=y 136CONFIG_IP_NF_TARGET_REJECT_SKERR=y 137CONFIG_NF_NAT=y 138CONFIG_IP_NF_TARGET_MASQUERADE=y 139CONFIG_IP_NF_TARGET_NETMAP=y 140CONFIG_IP_NF_TARGET_REDIRECT=y 141CONFIG_IP_NF_MANGLE=y 142CONFIG_IP_NF_RAW=y 143CONFIG_IP_NF_ARPTABLES=y 144CONFIG_IP_NF_ARPFILTER=y 145CONFIG_IP_NF_ARP_MANGLE=y 146CONFIG_NF_CONNTRACK_IPV6=y 147CONFIG_IP6_NF_IPTABLES=y 148CONFIG_IP6_NF_FILTER=y 149CONFIG_IP6_NF_TARGET_REJECT=y 150CONFIG_IP6_NF_TARGET_REJECT_SKERR=y 151CONFIG_IP6_NF_MANGLE=y 152CONFIG_IP6_NF_RAW=y 153CONFIG_NET_SCHED=y 154CONFIG_NET_SCH_HTB=y 155CONFIG_NET_CLS_U32=y 156CONFIG_NET_EMATCH=y 157CONFIG_NET_EMATCH_U32=y 158CONFIG_NET_CLS_ACT=y 159CONFIG_NETDEVICES=y 160CONFIG_TUN=y 161CONFIG_PPP=y 162CONFIG_PPP_BSDCOMP=y 163CONFIG_PPP_DEFLATE=y 164CONFIG_PPP_MPPE=y 165CONFIG_PPPOLAC=y 166CONFIG_PPPOPNS=y 167CONFIG_FB=y 168CONFIG_SYNC=y 169CONFIG_USB_GADGET=y 170CONFIG_USB_G_ANDROID=y 171CONFIG_USB_OTG_WAKELOCK=y 172CONFIG_SWITCH=y 173CONFIG_RTC_CLASS=y 174CONFIG_STAGING=y 175CONFIG_ANDROID=y 176CONFIG_ANDROID_BINDER_IPC=y 177CONFIG_ASHMEM=y 178CONFIG_ANDROID_LOGGER=y 179CONFIG_ANDROID_LOW_MEMORY_KILLER=y 180CONFIG_ANDROID_INTF_ALARM_DEV=y 181</pre> 182 183<h3 id="recommended">Recommended Configuration</h3> 184 185<pre> 186CONFIG_PANIC_TIMEOUT=5 187CONFIG_KALLSYMS_ALL=y 188CONFIG_PERF_EVENTS=y 189CONFIG_COMPACTION=y 190# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 191CONFIG_PM_WAKELOCKS_LIMIT=0 192# CONFIG_PM_WAKELOCKS_GC is not set 193CONFIG_PM_RUNTIME=y 194CONFIG_PM_DEBUG=y 195CONFIG_SUSPEND_TIME=y 196CONFIG_BLK_DEV_LOOP=y 197CONFIG_BLK_DEV_RAM=y 198CONFIG_BLK_DEV_RAM_SIZE=8192 199CONFIG_UID_STAT=y 200CONFIG_MD=y 201CONFIG_DM_UEVENT=y 202CONFIG_INPUT_EVDEV=y 203CONFIG_INPUT_KEYRESET=y 204# CONFIG_INPUT_MOUSE is not set 205CONFIG_INPUT_JOYSTICK=y 206CONFIG_JOYSTICK_XPAD=y 207CONFIG_JOYSTICK_XPAD_FF=y 208CONFIG_JOYSTICK_XPAD_LEDS=y 209CONFIG_INPUT_TABLET=y 210CONFIG_TABLET_USB_ACECAD=y 211CONFIG_TABLET_USB_AIPTEK=y 212CONFIG_TABLET_USB_GTCO=y 213CONFIG_TABLET_USB_HANWANG=y 214CONFIG_TABLET_USB_KBTAB=y 215CONFIG_TABLET_USB_WACOM=y 216CONFIG_INPUT_MISC=y 217CONFIG_INPUT_KEYCHORD=y 218CONFIG_INPUT_UINPUT=y 219CONFIG_INPUT_GPIO=y 220# CONFIG_VT is not set 221# CONFIG_LEGACY_PTYS is not set 222CONFIG_POWER_SUPPLY=y 223CONFIG_BATTERY_ANDROID=y 224CONFIG_MEDIA_SUPPORT=y 225CONFIG_BACKLIGHT_LCD_SUPPORT=y 226CONFIG_SOUND=y 227CONFIG_SND=y 228CONFIG_UHID=y 229CONFIG_USB_HIDDEV=y 230CONFIG_HID_A4TECH=y 231CONFIG_HID_ACRUX=y 232CONFIG_HID_ACRUX_FF=y 233CONFIG_HID_APPLE=y 234CONFIG_HID_BELKIN=y 235CONFIG_HID_CHERRY=y 236CONFIG_HID_CHICONY=y 237CONFIG_HID_PRODIKEYS=y 238CONFIG_HID_CYPRESS=y 239CONFIG_HID_DRAGONRISE=y 240CONFIG_DRAGONRISE_FF=y 241CONFIG_HID_EMS_FF=y 242CONFIG_HID_ELECOM=y 243CONFIG_HID_EZKEY=y 244CONFIG_HID_HOLTEK=y 245CONFIG_HID_KEYTOUCH=y 246CONFIG_HID_KYE=y 247CONFIG_HID_UCLOGIC=y 248CONFIG_HID_WALTOP=y 249CONFIG_HID_GYRATION=y 250CONFIG_HID_TWINHAN=y 251CONFIG_HID_KENSINGTON=y 252CONFIG_HID_LCPOWER=y 253CONFIG_HID_LOGITECH=y 254CONFIG_LOGITECH_FF=y 255CONFIG_LOGIRUMBLEPAD2_FF=y 256CONFIG_LOGIG940_FF=y 257CONFIG_HID_MAGICMOUSE=y 258CONFIG_HID_MICROSOFT=y 259CONFIG_HID_MONTEREY=y 260CONFIG_HID_MULTITOUCH=y 261CONFIG_HID_NTRIG=y 262CONFIG_HID_ORTEK=y 263CONFIG_HID_PANTHERLORD=y 264CONFIG_PANTHERLORD_FF=y 265CONFIG_HID_PETALYNX=y 266CONFIG_HID_PICOLCD=y 267CONFIG_HID_PRIMAX=y 268CONFIG_HID_ROCCAT=y 269CONFIG_HID_SAITEK=y 270CONFIG_HID_SAMSUNG=y 271CONFIG_HID_SONY=y 272CONFIG_HID_SPEEDLINK=y 273CONFIG_HID_SUNPLUS=y 274CONFIG_HID_GREENASIA=y 275CONFIG_GREENASIA_FF=y 276CONFIG_HID_SMARTJOYPLUS=y 277CONFIG_SMARTJOYPLUS_FF=y 278CONFIG_HID_TIVO=y 279CONFIG_HID_TOPSEED=y 280CONFIG_HID_THRUSTMASTER=y 281CONFIG_HID_WACOM=y 282CONFIG_HID_WIIMOTE=y 283CONFIG_HID_ZEROPLUS=y 284CONFIG_HID_ZYDACRON=y 285CONFIG_USB_USBNET=y 286CONFIG_USB_ANNOUNCE_NEW_DEVICES=y 287CONFIG_USB_EHCI_HCD=y 288CONFIG_ION=y 289CONFIG_ANDROID_RAM_CONSOLE=y 290CONFIG_ANDROID_TIMED_GPIO=y 291CONFIG_EXT4_FS=y 292CONFIG_EXT4_FS_SECURITY=y 293CONFIG_FUSE_FS=y 294CONFIG_MSDOS_FS=y 295CONFIG_VFAT_FS=y 296CONFIG_TMPFS=y 297CONFIG_TMPFS_POSIX_ACL=y 298CONFIG_SCHEDSTATS=y 299CONFIG_TIMER_STATS=y 300CONFIG_SCHED_TRACER=y 301CONFIG_CPUSETS=y 302CONFIG_PROC_PID_CPUSET=y 303</pre> 304 305<h3 id="audio">For USB host mode audio</h3> 306 307<pre> 308CONFIG_SND_USB=y 309CONFIG_SND_USB_AUDIO=y 310# CONFIG_USB_AUDIO is for a peripheral mode (gadget) driver 311</pre> 312 313<h3 id="midi">For USB host mode MIDI</h3> 314 315<pre> 316CONFIG_SND_USB_MIDI=y 317</pre> 318