[출처 : Korea Android]
Config옵션(for Android Cupcake 1.5 이상 버젼)
=======================================
* 본 글은
- 목 차 -
1. 안드로이드란?
1.1 Enable이 요구되는 옵션들
1.2 Disable이 요구되는 옵션들
1.3 Enable되어야 하는 권장 옵션들
2. 커널소스 다운로드
1. 안드로이드란?
==========
안드로이드(www.android.com)란 모바일 디바이스를 위한 오픈소스 운영체제 시스템이다.
이 문서는 "make menuconfig"명령을 이용하여 리눅스크널을 컴파일하고자 할때 필요한
환경설정에 대한 내용을 기술하고 있다.
msm_defconfig 또는 goldfish_defconfig 의 환경파일들이 defconfig 작업을 수행하는 것을
보기위해서 우리는 무엇을 해야 하는가?
http://android.git.kernel.org 웹사이트의 kernel/common.git와 kernel/msm.git 라는
웹디렉토리에서 msm_defconfig 또는 goldfish_defconfig 파일들을 열람할수 있다.
1.1 Enable이 요구되는 옵션들
표준포맷인 defconfig 파일을 빌드한후에 여러분의 커널 디렉토리에서 .config 또는
defconfig파일이 존재하는지 먼저 체크 해야 된다.
이란적으로 mss_defconfig 파일은 off 상태로 되어 이따.
안드로이드용 커널로 빌드하기 위해 다음과 같은 매크로들이 enable되어 있어야 한다.
ANDROID_PARANOID_NETWORK ASHMEM CONFIG_FB_MODE_HELPERS CONFIG_FONT_8x16 CONFIG_FONT_8x8 CONFIG_YAFFS_SHORT_NAMES_IN_RAM DAB EARLYSUSPEND FB FB_CFB_COPYAREA FB_CFB_FILLRECT FB_CFB_IMAGEBLIT FB_DEFERRED_IO FB_TILEBLITTING HIGH_RES_TIMERS INOTIFY INOTIFY_USER INPUT_EVDEV INPUT_GPIO INPUT_MISC LEDS_CLASS LEDS_GPIO LOCK_KERNEL LkOGGER LOW_MEMORY_KILLER MISC_DEVICES NEW_LEDS NO_HZ POWER_SUPPLY PREEMPT RAMFS RTC_CLASS RTC_LIB SWITCH SWITCH_GPIO TMPFS UID_STAT UID16 USB_FUNCTION USB_FUNCTION_ADB USER_WAKELOCK VIDEO_OUTPUT_CONTROL WAKELOCK YAFFS_AUTO_YAFFS2 YAFFS_FS YAFFS_YAFFS1 YAFFS_YAFFS2
|
1.2 Disable이 요구되는 옵션들
아래의 피쳐들은 가급적 ./andorid-kerenl.2.6.27/.config파일에서 Disable되어 있어야 한다.
CONFIG_YAFFS_DISABLE_LAZY_LOAD DNOTIFY |
1.3 Enable되어야 하는 권장 옵션들
ANDROID_PMEM ANDROID_RAM_CONSOLE ANDROID_RAM_CONSOLE_ERROR_CORRECTION SCHEDSTATS DEBUG_PREEMPT DEBUG_MUTEXES DEBUG_SPINLOCK_SLEEP DEBUG_INFO FRAME_POINTER CPU_FREQ CPU_FREQ_TABLE CPU_FREQ_DEFAULT_GOV_ONDEMAND CPU_FREQ_GOV_ONDEMAND CRC_CCITT EMBEDDED INPUT_TOUCHSCREEN I2C I2C_BOARDINFO LOG_BUF_SHIFT=17 SERIAL_CORE SERIAL_CORE_CONSOLE |
2. 커널소스 다운로드
website: http://android.git.kernel.org |
make menuconfig 에서 각 항목의 위치가 어디로 갔는 지 잘 기억 나질 않아 비교 정리 해봅니다.
* android-2.6.25 config
General setup
-> Enable Android's Shared Memory Subsystem (CONFIG_ASHMEM = y)
If not set, init will emit SIGSEGV.
Device Drivers
-> Misc devices
-> Low Memory Killer (CONFIG_LOW_MEMORY_KILER = n)
When you do a porting job, it's better to disable it.
-> Android
-> Binder IPC Driver (CONFIG_ANDROID_BINDER = y)
-> Android power drvier (CONFIG_ANDROID_POWER = y)
-> Android power driver lock stats (CONFIG_ANDROID_POWER_STAT =y)
-> Android alarm driver (CONFIG_ANDROID_POWER_ALARM =y)
-> Android log driver (CONFIG_ANDROID_LOGGER = y)
-> RAM buffer console (CONFIG_ANDROID_RAM_CONSOLE = n)
-> Only allow certain groups to create sockets (CONFIG_ANDROID_PARANOID_NETWORK = y)
* android-2.6.27 config
General setup
-> Enable the Anonymous Shared Memory Subsystem (CONFIG_ASHMEM = y)
Power management options
-> Wake lock (CONFIG_WAKELOCK = y)
-> Wake lock stats (CONFIG_WAKELOCK_STAT = y)
-> Userspace wake locks (CONFIG_USER_WAKELOCK = y)
-> Early suspend (CONFIG_EARLYSUSPEND = y)
Networking support
-> Networking options
-> Only allow certain groups to create sockets (CONFIG_ANDROID_PARANOID_NETWORK = y)
Device Drivers
-> Misc devices
-> Android pmem allocator (CONFIG_ANDROID_PMEM = y)
-> Timed output class driver (CONFIG_TIMED_OUTPUT =y)
-> Android timed gpio driver (CONFIG_TIMED_GPIO = y)
-> Binder IPC Driver (CONFIG_BINDER_IPC = y)
-> Low Memory Killer (CONFIG_LOW_MEMORY_KILER = n)
-> High-speed in-kernel logging driver (CONFIG_LOGGER = y)
-> RAM buffer console (CONFIG_ANDROID_RAM_CONSOLE = n)
-> Real Time Clock
-> Android alarm driver (CONFIG_RTC_INTF_ALARM = y)
'Android > Android&Kernel' 카테고리의 다른 글
| Android Porting 관련 문서 정리 (0) | 2009/04/15 |
|---|---|
| Android Porting Guide to Beagle보드(cortex-a8) (0) | 2009/04/15 |
| Config 가이드 (for Android Cupcake 1.5 +) (0) | 2009/04/15 |
| 안드로이드 포팅 가이드 - kernel config (0) | 2009/04/15 |
| Android Porting Guide (0) | 2009/04/15 |
| Android Platform 분석 (0) | 2009/04/15 |
kernel-config_comparison.xls