android_kernel_cross_compile
2012-01-19 14:45
323 查看
1.download android_kernel from http://source.android.com/source/downloading.html
git clone https://android.googlesource.com/kernel/samsung.git
check out to get android kernel
1)git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/android-samsung-2.6.35-gingerbread
remotes/origin/android-samsung-3.0-ics-mr1
remotes/origin/master
2)git checkout -b android-samsung-2.6.35-gingerbread origin/android-samsung-2.6.35-gingerbread
2.cross compile
samsung$ ./cc
------------------
#!/bin/bash
export ARCH=arm
export CROSS_COMPILE=android2.3.4_32bit/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
echo "begin set env ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE"
make smdk6410_android_defconfig
make zImage -j4
----------------------
Play patch
arch_arm_plat-samsung_pm.c.patch
drivers_serial_samsung.c.patch
3.config for ANDROID
1)device Drivers --->
[*] Staging drivers --->
Android --->
[*] Android Drivers
[*] Android Binder IPC Driver
<*> Android log driver
[*] Android RAM buffer console
[ ] Enable verbose console messages on Android RAM console
[*] Android RAM Console Enable error correction --->
[ ] Start Android RAM console early
[*] Timed output class driver (NEW)
<*> Android timed gpio driver
[*] Android Low Memory Killer
2) Power management options --->
[*] Wake lock
[*] Wake lock stats (NEW)
[*] Userspace wake locks (NEW)
[*] Early suspend (NEW)
3) General setup --->
[*] Enable the Anonymous Shared Memory Subsystem
4.add DM9000 and NFS support
change:mach-smdk6410.c
[*] Networking support --->
Networking options --->
<*> Packet socket
<*> Unix domain sockets
[*] TCP/IP networking
[*] IP: kernel level autoconfiguration
/********DM9000*************/
Device Drivers --->
[*] Network device support --->
[*] Ethernet (10 or 100Mbit) --->
<*> DM9000 support
/********NFS*************/
File systems --->
[*] Network File Systems --->
<*> NFS client support
[*] Root file system on NFS
----------------------------------------
5.add S3C_FB
change:mach-smdk6410.c
static struct s3c_fb_pd_win smdk6410_fb_win0 = {
/* this is to ensure we use win0 */
.win_mode = {
.pixclock = 41094,
.left_margin = 2,
.right_margin = 2,
.upper_margin = 2,
.lower_margin = 2,
.hsync_len = 41,
.vsync_len = 10,
.xres = 480,
.yres = 272,
},
.max_bpp = 32,
.default_bpp = 16,
};
patching file drivers/video/Makefile
patching file drivers/video/Kconfig
Device Drivers --->
Graphics support --->
<*> Support for frame buffer devices --->
<*> Samsung S3C framebuffer support
Console display driver support --->
<*> Framebuffer Console support
6.add POWER_SUPPLY
Device Drivers --->
<*> Power supply class support --->
solve init: untracked pid n exited problem
6.add input device ts&key
patching file drivers/input/touchscreen/s3c2410_ts.c
patching file mach-smdk6410.c_gpio_keys.patch
Device Drivers
Input device support --->
<*> Event interface
[*] Keyboards --->
<*> GPIO Buttons
[*] Touchscreens --->
<*> Samsung S3C2410/generic touchscreen input driver
7.add led to indicate
patching file mach-smdk6410.c_leds.patch
Device Drivers --->
[*] LED Support --->
<*> LED Class Support
<*> LED Support for GPIO connected LEDs
[*] LED Trigger support
<*> LED Heartbeat Trigger
8.add audio device
patching file mach-smdk6410.c_audio.patch
patching file sound_soc_s3c24xx_Kconfig.patch
patching file sound/soc/s3c24xx/Makefile
patching file sound_soc_s3c24xx_s3c-dma.c.patch
patching file sound_soc_s3c24xx_s3c-i2s-v2.c.patch
Device Drivers --->
<*> Sound card support --->
<*> Advanced Linux Sound Architecture --->
<*> ALSA for SoC audio support --->
<*> SoC Audio for the Samsung S3CXXXX chips
<*> SoC AC97 Audio support for SMDK with WM9713
9.add nand device
patching file mach-smdk6410.c_nand.patch
patching file drivers_mtd_nand_nand_base.c.patch
patching file arch_arm_plat-samsung_dev-nand.c.patch
Device Drivers --->
<*> Memory Technology Device (MTD) support --->
[*] MTD partitioning support
<*> Caching block device access to MTD devices
<*> NAND Device Support --->
<*> NAND Flash support for Samsung S3C SoCs
[*] Samsung S3C NAND Hardware ECC
10. add yaffs2 filesystem support
File systems --->
[*] Miscellaneous filesystems --->
<*> YAFFS2 file system support
11. add rtc device
patch file drivers_rtc_rtc-s3c.c.patch
change drivers/rtc/Makefile
obj-$(CONFIG_RTC_DRV_S3C) += rtc-s3c.o
Device Drivers --->
<*> Real Time Clock --->
<*> Samsung S3C series SoC RTC
setenv ipaddr 10.50.25.20
setenv bootargs root=nfs nfsroot=10.50.25.10:/home/nfsdir ip=10.50.25.20 init=/init console=ttySAC0,115200
setenv bootcmd tftp 0xc0008000 zImage\;bootm 0xc0008000
setenv bootcmd nand read 50008000 100000 500000\;bootm 50008000
git clone https://android.googlesource.com/kernel/samsung.git
check out to get android kernel
1)git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/android-samsung-2.6.35-gingerbread
remotes/origin/android-samsung-3.0-ics-mr1
remotes/origin/master
2)git checkout -b android-samsung-2.6.35-gingerbread origin/android-samsung-2.6.35-gingerbread
2.cross compile
samsung$ ./cc
------------------
#!/bin/bash
export ARCH=arm
export CROSS_COMPILE=android2.3.4_32bit/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
echo "begin set env ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE"
make smdk6410_android_defconfig
make zImage -j4
----------------------
Play patch
arch_arm_plat-samsung_pm.c.patch
drivers_serial_samsung.c.patch
3.config for ANDROID
1)device Drivers --->
[*] Staging drivers --->
Android --->
[*] Android Drivers
[*] Android Binder IPC Driver
<*> Android log driver
[*] Android RAM buffer console
[ ] Enable verbose console messages on Android RAM console
[*] Android RAM Console Enable error correction --->
[ ] Start Android RAM console early
[*] Timed output class driver (NEW)
<*> Android timed gpio driver
[*] Android Low Memory Killer
2) Power management options --->
[*] Wake lock
[*] Wake lock stats (NEW)
[*] Userspace wake locks (NEW)
[*] Early suspend (NEW)
3) General setup --->
[*] Enable the Anonymous Shared Memory Subsystem
4.add DM9000 and NFS support
change:mach-smdk6410.c
[*] Networking support --->
Networking options --->
<*> Packet socket
<*> Unix domain sockets
[*] TCP/IP networking
[*] IP: kernel level autoconfiguration
/********DM9000*************/
Device Drivers --->
[*] Network device support --->
[*] Ethernet (10 or 100Mbit) --->
<*> DM9000 support
/********NFS*************/
File systems --->
[*] Network File Systems --->
<*> NFS client support
[*] Root file system on NFS
----------------------------------------
5.add S3C_FB
change:mach-smdk6410.c
static struct s3c_fb_pd_win smdk6410_fb_win0 = {
/* this is to ensure we use win0 */
.win_mode = {
.pixclock = 41094,
.left_margin = 2,
.right_margin = 2,
.upper_margin = 2,
.lower_margin = 2,
.hsync_len = 41,
.vsync_len = 10,
.xres = 480,
.yres = 272,
},
.max_bpp = 32,
.default_bpp = 16,
};
patching file drivers/video/Makefile
patching file drivers/video/Kconfig
Device Drivers --->
Graphics support --->
<*> Support for frame buffer devices --->
<*> Samsung S3C framebuffer support
Console display driver support --->
<*> Framebuffer Console support
6.add POWER_SUPPLY
Device Drivers --->
<*> Power supply class support --->
solve init: untracked pid n exited problem
6.add input device ts&key
patching file drivers/input/touchscreen/s3c2410_ts.c
patching file mach-smdk6410.c_gpio_keys.patch
Device Drivers
Input device support --->
<*> Event interface
[*] Keyboards --->
<*> GPIO Buttons
[*] Touchscreens --->
<*> Samsung S3C2410/generic touchscreen input driver
7.add led to indicate
patching file mach-smdk6410.c_leds.patch
Device Drivers --->
[*] LED Support --->
<*> LED Class Support
<*> LED Support for GPIO connected LEDs
[*] LED Trigger support
<*> LED Heartbeat Trigger
8.add audio device
patching file mach-smdk6410.c_audio.patch
patching file sound_soc_s3c24xx_Kconfig.patch
patching file sound/soc/s3c24xx/Makefile
patching file sound_soc_s3c24xx_s3c-dma.c.patch
patching file sound_soc_s3c24xx_s3c-i2s-v2.c.patch
Device Drivers --->
<*> Sound card support --->
<*> Advanced Linux Sound Architecture --->
<*> ALSA for SoC audio support --->
<*> SoC Audio for the Samsung S3CXXXX chips
<*> SoC AC97 Audio support for SMDK with WM9713
9.add nand device
patching file mach-smdk6410.c_nand.patch
patching file drivers_mtd_nand_nand_base.c.patch
patching file arch_arm_plat-samsung_dev-nand.c.patch
Device Drivers --->
<*> Memory Technology Device (MTD) support --->
[*] MTD partitioning support
<*> Caching block device access to MTD devices
<*> NAND Device Support --->
<*> NAND Flash support for Samsung S3C SoCs
[*] Samsung S3C NAND Hardware ECC
10. add yaffs2 filesystem support
File systems --->
[*] Miscellaneous filesystems --->
<*> YAFFS2 file system support
11. add rtc device
patch file drivers_rtc_rtc-s3c.c.patch
change drivers/rtc/Makefile
obj-$(CONFIG_RTC_DRV_S3C) += rtc-s3c.o
Device Drivers --->
<*> Real Time Clock --->
<*> Samsung S3C series SoC RTC
setenv ipaddr 10.50.25.20
setenv bootargs root=nfs nfsroot=10.50.25.10:/home/nfsdir ip=10.50.25.20 init=/init console=ttySAC0,115200
setenv bootcmd tftp 0xc0008000 zImage\;bootm 0xc0008000
setenv bootcmd nand read 50008000 100000 500000\;bootm 50008000
相关文章推荐
- cross compile busybox for android
- android手机高精度定时机制--higher timer tick 笔记版 转载请注明出处--- crosskernel@gmail.com
- Android Kernel Compile And Run
- Android Kernel Compile And Run (转载http://code.google.com/p/androidteam/wiki/AndroidKernelCompileAndRun)
- Android—Step by step - Compile kernel module for Samsung Galaxy S3 (Linux)
- ubuntu cross_compile android error
- 線上 Android/Linux Kernel Source Code瀏覽 - Android/Linux Source Code Cross Reference
- How to download and compile Android kernel goldfish ?
- cross compile linux kernel command
- Milestone/A853/XT702/umts_sholes Compile your own Android ROM and Customize your own linux kernel
- How to Cross Compile the Bash shell for Android 1.5
- create android or linux cross compile toolChains
- Cross compile linux kernel
- Compile android source and kernel for emulator in Debian
- how to cross compile valgrind on android platform
- linux kernel API and google android compile guide
- How to Cross Compile the Bash shell for Android 1.5 (为Android平台编译Bash shell)
- cross compile ZThread for ios && android
- Cross compile the kernel module
- Android 4.0 x86 Linux3.0.8内核编译简介/Compile kernel for Android-x86