| page.title=Kernel Configuration | |
| @jd:body | |
| <!-- | |
| Copyright 2013 The Android Open Source Project | |
| Licensed under the Apache License, Version 2.0 (the "License"); | |
| you may not use this file except in compliance with the License. | |
| You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software | |
| distributed under the License is distributed on an "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| See the License for the specific language governing permissions and | |
| limitations under the License. | |
| --> | |
| <p>The kernel configuration settings in this document are meant to be used as a base for an Android kernel configuration. All devices should have the options in android-base configuration enabled. While not mandatory, the options in android-recommended configuration enable advanced Android | |
| features.</p> | |
| <p> | |
| Generating kernel config: Assuming you already have a minimalist defconfig for your device, a possible | |
| way to enable these options would be:</p> | |
| <pre>ARCH=<arch> scripts/kconfig/merge_config.sh <path_to>/<device>_defconfig android/configs/android-base.cfg | |
| android/configs/android-recommended.cfg</pre> | |
| <p> | |
| This will generate a .config that can then be used to save a new defconfig or | |
| compile a new kernel with Android features enabled. | |
| </p> | |
| <h3> | |
| Base Configuration | |
| </h3> | |
| <pre> | |
| CONFIG_EXPERIMENTAL=y | |
| CONFIG_SYSVIPC=y | |
| CONFIG_CGROUPS=y | |
| CONFIG_CGROUP_DEBUG=y | |
| CONFIG_CGROUP_FREEZER=y | |
| CONFIG_CGROUP_CPUACCT=y | |
| CONFIG_RESOURCE_COUNTERS=y | |
| CONFIG_CGROUP_SCHED=y | |
| CONFIG_RT_GROUP_SCHED=y | |
| CONFIG_BLK_DEV_INITRD=y | |
| CONFIG_EMBEDDED=y | |
| CONFIG_NO_HZ=y | |
| CONFIG_HIGH_RES_TIMERS=y | |
| CONFIG_PREEMPT=y | |
| CONFIG_PM_AUTOSLEEP=y | |
| CONFIG_PM_WAKELOCKS=y | |
| CONFIG_BLK_DEV_DM=y | |
| CONFIG_DM_CRYPT=y | |
| CONFIG_NET=y | |
| CONFIG_PACKET=y | |
| CONFIG_UNIX=y | |
| CONFIG_XFRM_USER=y | |
| CONFIG_NET_KEY=y | |
| CONFIG_INET=y | |
| CONFIG_IP_ADVANCED_ROUTER=y | |
| CONFIG_IP_MULTIPLE_TABLES=y | |
| CONFIG_INET_ESP=y | |
| # CONFIG_INET_LRO is not set | |
| CONFIG_IPV6_PRIVACY=y | |
| CONFIG_IPV6_ROUTER_PREF=y | |
| CONFIG_IPV6_OPTIMISTIC_DAD=y | |
| CONFIG_INET6_AH=y | |
| CONFIG_INET6_ESP=y | |
| CONFIG_INET6_IPCOMP=y | |
| CONFIG_IPV6_MIP6=y | |
| CONFIG_IPV6_MULTIPLE_TABLES=y | |
| CONFIG_NETFILTER=y | |
| CONFIG_NF_CONNTRACK=y | |
| CONFIG_NF_CONNTRACK_EVENTS=y | |
| CONFIG_NF_CT_PROTO_DCCP=y | |
| CONFIG_NF_CT_PROTO_SCTP=y | |
| CONFIG_NF_CT_PROTO_UDPLITE=y | |
| CONFIG_NF_CONNTRACK_AMANDA=y | |
| CONFIG_NF_CONNTRACK_FTP=y | |
| CONFIG_NF_CONNTRACK_H323=y | |
| CONFIG_NF_CONNTRACK_IRC=y | |
| CONFIG_NF_CONNTRACK_NETBIOS_NS=y | |
| CONFIG_NF_CONNTRACK_PPTP=y | |
| CONFIG_NF_CONNTRACK_SANE=y | |
| CONFIG_NF_CONNTRACK_TFTP=y | |
| CONFIG_NF_CT_NETLINK=y | |
| CONFIG_NETFILTER_TPROXY=y | |
| CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y | |
| CONFIG_NETFILTER_XT_TARGET_CONNMARK=y | |
| CONFIG_NETFILTER_XT_TARGET_MARK=y | |
| CONFIG_NETFILTER_XT_TARGET_NFLOG=y | |
| CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y | |
| CONFIG_NETFILTER_XT_TARGET_TPROXY=y | |
| CONFIG_NETFILTER_XT_TARGET_TRACE=y | |
| CONFIG_NETFILTER_XT_MATCH_COMMENT=y | |
| CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y | |
| CONFIG_NETFILTER_XT_MATCH_CONNMARK=y | |
| CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y | |
| CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y | |
| CONFIG_NETFILTER_XT_MATCH_HELPER=y | |
| CONFIG_NETFILTER_XT_MATCH_IPRANGE=y | |
| CONFIG_NETFILTER_XT_MATCH_LENGTH=y | |
| CONFIG_NETFILTER_XT_MATCH_LIMIT=y | |
| CONFIG_NETFILTER_XT_MATCH_MAC=y | |
| CONFIG_NETFILTER_XT_MATCH_MARK=y | |
| CONFIG_NETFILTER_XT_MATCH_POLICY=y | |
| CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y | |
| CONFIG_NETFILTER_XT_MATCH_QTAGUID=y | |
| CONFIG_NETFILTER_XT_MATCH_QUOTA=y | |
| CONFIG_NETFILTER_XT_MATCH_QUOTA2=y | |
| CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG=y | |
| CONFIG_NETFILTER_XT_MATCH_SOCKET=y | |
| CONFIG_NETFILTER_XT_MATCH_STATE=y | |
| CONFIG_NETFILTER_XT_MATCH_STATISTIC=y | |
| CONFIG_NETFILTER_XT_MATCH_STRING=y | |
| CONFIG_NETFILTER_XT_MATCH_TIME=y | |
| CONFIG_NETFILTER_XT_MATCH_U32=y | |
| CONFIG_NF_CONNTRACK_IPV4=y | |
| CONFIG_IP_NF_IPTABLES=y | |
| CONFIG_IP_NF_MATCH_AH=y | |
| CONFIG_IP_NF_MATCH_ECN=y | |
| CONFIG_IP_NF_MATCH_TTL=y | |
| CONFIG_IP_NF_FILTER=y | |
| CONFIG_IP_NF_TARGET_REJECT=y | |
| CONFIG_IP_NF_TARGET_REJECT_SKERR=y | |
| CONFIG_NF_NAT=y | |
| CONFIG_IP_NF_TARGET_MASQUERADE=y | |
| CONFIG_IP_NF_TARGET_NETMAP=y | |
| CONFIG_IP_NF_TARGET_REDIRECT=y | |
| CONFIG_IP_NF_MANGLE=y | |
| CONFIG_IP_NF_RAW=y | |
| CONFIG_IP_NF_ARPTABLES=y | |
| CONFIG_IP_NF_ARPFILTER=y | |
| CONFIG_IP_NF_ARP_MANGLE=y | |
| CONFIG_NF_CONNTRACK_IPV6=y | |
| CONFIG_IP6_NF_IPTABLES=y | |
| CONFIG_IP6_NF_FILTER=y | |
| CONFIG_IP6_NF_TARGET_REJECT=y | |
| CONFIG_IP6_NF_TARGET_REJECT_SKERR=y | |
| CONFIG_IP6_NF_MANGLE=y | |
| CONFIG_IP6_NF_RAW=y | |
| CONFIG_NET_SCHED=y | |
| CONFIG_NET_SCH_HTB=y | |
| CONFIG_NET_CLS_U32=y | |
| CONFIG_NET_EMATCH=y | |
| CONFIG_NET_EMATCH_U32=y | |
| CONFIG_NET_CLS_ACT=y | |
| CONFIG_NETDEVICES=y | |
| CONFIG_TUN=y | |
| CONFIG_PPP=y | |
| CONFIG_PPP_BSDCOMP=y | |
| CONFIG_PPP_DEFLATE=y | |
| CONFIG_PPP_MPPE=y | |
| CONFIG_PPPOLAC=y | |
| CONFIG_PPPOPNS=y | |
| CONFIG_FB=y | |
| CONFIG_SYNC=y | |
| CONFIG_USB_GADGET=y | |
| CONFIG_USB_G_ANDROID=y | |
| CONFIG_USB_OTG_WAKELOCK=y | |
| CONFIG_SWITCH=y | |
| CONFIG_RTC_CLASS=y | |
| CONFIG_STAGING=y | |
| CONFIG_ANDROID=y | |
| CONFIG_ANDROID_BINDER_IPC=y | |
| CONFIG_ASHMEM=y | |
| CONFIG_ANDROID_LOGGER=y | |
| CONFIG_ANDROID_LOW_MEMORY_KILLER=y | |
| CONFIG_ANDROID_INTF_ALARM_DEV=y | |
| </pre> | |
| <h3>Recommended Configuration</h3> | |
| <pre> | |
| CONFIG_PANIC_TIMEOUT=5 | |
| CONFIG_KALLSYMS_ALL=y | |
| CONFIG_PERF_EVENTS=y | |
| CONFIG_COMPACTION=y | |
| # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | |
| CONFIG_PM_WAKELOCKS_LIMIT=0 | |
| # CONFIG_PM_WAKELOCKS_GC is not set | |
| CONFIG_PM_RUNTIME=y | |
| CONFIG_PM_DEBUG=y | |
| CONFIG_SUSPEND_TIME=y | |
| CONFIG_BLK_DEV_LOOP=y | |
| CONFIG_BLK_DEV_RAM=y | |
| CONFIG_BLK_DEV_RAM_SIZE=8192 | |
| CONFIG_UID_STAT=y | |
| CONFIG_MD=y | |
| CONFIG_DM_UEVENT=y | |
| CONFIG_INPUT_EVDEV=y | |
| CONFIG_INPUT_KEYRESET=y | |
| # CONFIG_INPUT_MOUSE is not set | |
| CONFIG_INPUT_JOYSTICK=y | |
| CONFIG_JOYSTICK_XPAD=y | |
| CONFIG_JOYSTICK_XPAD_FF=y | |
| CONFIG_JOYSTICK_XPAD_LEDS=y | |
| CONFIG_INPUT_TABLET=y | |
| CONFIG_TABLET_USB_ACECAD=y | |
| CONFIG_TABLET_USB_AIPTEK=y | |
| CONFIG_TABLET_USB_GTCO=y | |
| CONFIG_TABLET_USB_HANWANG=y | |
| CONFIG_TABLET_USB_KBTAB=y | |
| CONFIG_TABLET_USB_WACOM=y | |
| CONFIG_INPUT_MISC=y | |
| CONFIG_INPUT_KEYCHORD=y | |
| CONFIG_INPUT_UINPUT=y | |
| CONFIG_INPUT_GPIO=y | |
| # CONFIG_VT is not set | |
| # CONFIG_LEGACY_PTYS is not set | |
| CONFIG_POWER_SUPPLY=y | |
| CONFIG_BATTERY_ANDROID=y | |
| CONFIG_MEDIA_SUPPORT=y | |
| CONFIG_BACKLIGHT_LCD_SUPPORT=y | |
| CONFIG_SOUND=y | |
| CONFIG_SND=y | |
| CONFIG_UHID=y | |
| CONFIG_USB_HIDDEV=y | |
| CONFIG_HID_A4TECH=y | |
| CONFIG_HID_ACRUX=y | |
| CONFIG_HID_ACRUX_FF=y | |
| CONFIG_HID_APPLE=y | |
| CONFIG_HID_BELKIN=y | |
| CONFIG_HID_CHERRY=y | |
| CONFIG_HID_CHICONY=y | |
| CONFIG_HID_PRODIKEYS=y | |
| CONFIG_HID_CYPRESS=y | |
| CONFIG_HID_DRAGONRISE=y | |
| CONFIG_DRAGONRISE_FF=y | |
| CONFIG_HID_EMS_FF=y | |
| CONFIG_HID_ELECOM=y | |
| CONFIG_HID_EZKEY=y | |
| CONFIG_HID_HOLTEK=y | |
| CONFIG_HID_KEYTOUCH=y | |
| CONFIG_HID_KYE=y | |
| CONFIG_HID_UCLOGIC=y | |
| CONFIG_HID_WALTOP=y | |
| CONFIG_HID_GYRATION=y | |
| CONFIG_HID_TWINHAN=y | |
| CONFIG_HID_KENSINGTON=y | |
| CONFIG_HID_LCPOWER=y | |
| CONFIG_HID_LOGITECH=y | |
| CONFIG_LOGITECH_FF=y | |
| CONFIG_LOGIRUMBLEPAD2_FF=y | |
| CONFIG_LOGIG940_FF=y | |
| CONFIG_HID_MAGICMOUSE=y | |
| CONFIG_HID_MICROSOFT=y | |
| CONFIG_HID_MONTEREY=y | |
| CONFIG_HID_MULTITOUCH=y | |
| CONFIG_HID_NTRIG=y | |
| CONFIG_HID_ORTEK=y | |
| CONFIG_HID_PANTHERLORD=y | |
| CONFIG_PANTHERLORD_FF=y | |
| CONFIG_HID_PETALYNX=y | |
| CONFIG_HID_PICOLCD=y | |
| CONFIG_HID_PRIMAX=y | |
| CONFIG_HID_ROCCAT=y | |
| CONFIG_HID_SAITEK=y | |
| CONFIG_HID_SAMSUNG=y | |
| CONFIG_HID_SONY=y | |
| CONFIG_HID_SPEEDLINK=y | |
| CONFIG_HID_SUNPLUS=y | |
| CONFIG_HID_GREENASIA=y | |
| CONFIG_GREENASIA_FF=y | |
| CONFIG_HID_SMARTJOYPLUS=y | |
| CONFIG_SMARTJOYPLUS_FF=y | |
| CONFIG_HID_TIVO=y | |
| CONFIG_HID_TOPSEED=y | |
| CONFIG_HID_THRUSTMASTER=y | |
| CONFIG_HID_WACOM=y | |
| CONFIG_HID_WIIMOTE=y | |
| CONFIG_HID_ZEROPLUS=y | |
| CONFIG_HID_ZYDACRON=y | |
| CONFIG_USB_USBNET=y | |
| CONFIG_USB_ANNOUNCE_NEW_DEVICES=y | |
| CONFIG_USB_EHCI_HCD=y | |
| CONFIG_ION=y | |
| CONFIG_ANDROID_RAM_CONSOLE=y | |
| CONFIG_ANDROID_TIMED_GPIO=y | |
| CONFIG_EXT4_FS=y | |
| CONFIG_EXT4_FS_SECURITY=y | |
| CONFIG_FUSE_FS=y | |
| CONFIG_MSDOS_FS=y | |
| CONFIG_VFAT_FS=y | |
| CONFIG_TMPFS=y | |
| CONFIG_TMPFS_POSIX_ACL=y | |
| CONFIG_SCHEDSTATS=y | |
| CONFIG_TIMER_STATS=y | |
| CONFIG_SCHED_TRACER=y | |
| </pre> | |
| <h3>For USB host mode audio</h3> | |
| <pre> | |
| CONFIG_SND_USB=y | |
| CONFIG_SND_USB_AUDIO=y | |
| # CONFIG_USB_AUDIO is for a peripheral mode (gadget) driver | |
| </pre> |