您的位置:首页 > 移动开发 > Android开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: