三星I8320 Linux Kernel 编译步骤

三星I8320手机硬件配置

处理器:  Texas Instruments OMAP3430  Cortex-A8 & PowerVR core;
Similar to OMAP3530  info datasheet 
RAM :  256MB  
PMIC :  Texas Instruments TWL5030  Similar to TPS65950  info datasheet 
Baseband : 高通 MSM6290   
UMTS radio:           高通 RTR6285   
eMMC:                   三星 KLMAG8DEDD moviNAND 
16GB 8x16Gb MLC NAND, 第5或6代 
DPRAM :               三星 MD512256B   
WLAN/BT radio:   SWB-T30  WL1271 802.11 b/g/n, Bluetooth 2.1+ EDR, FM tx/rx
FM radio:             Silicon Labs Si4709  FM RDS receiver, i2c 接口
加速度感应器:         Kionix KXSD9-2042
后摄像头:          富士通M-4MO (MB91688)  "Milbeaut", 500万像素 CMOS sensor  article
前摄像头:          三星 S5KA3DFX
光感应传感器:        夏普GP2AP002A00F ,
用于检测环境光,可实现自动调整屏幕亮度和检测是否有人靠近。
例如,你正在打电话时,会关闭屏幕省电。
音频功放:         美信 MAX9877
Fuel gauge:        美信 MAX17040   
屏驱动:                 Rohm BD2802GU-E
GPS:?

在网下下载Limo源码后,一直在分析代码,希望对系统移值能打个基础吧。
昨天在mephisto大的帮助下,和参考一些资料。终于编绎linux内核成功。
全部过程如下:

第一步: Toolchain for cross compile 交叉编绎环境建立
下载地址:- http://www.codesourcery.com/sgpp/lite/arm/portal/subscription3057  这 是2007q3 version

# wget http://www.codesourcery.com/sgpp/lite/arm/portal/package1787/public/arm-none-linux-gnueabi/arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
# tar xvjf arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /opt/

我把它解压到/opt/下。 这样toolchain的路径为:/opt/arm-2007q3/bin

/********************************************
2010q1版本试过编绎出错
/********************************************

第二步:        内核打补丁和修改:

1. 从这里下载源码.解压到Kernel目录里可看到linux-2.6.24.7.tar.bz2 和 linux-2.6.24.7-protector.patch

先解压和打上补丁:
# tar xvjf linux-2.6.24.7.tar.bz2
# patch -p1 < linux-2.6.24.7-protector.patch

2. 为了顺利编绎,需要修改代码内容如下:

修改Configuration

# cd linux-2.6.24.7
# cp arch/arm/configs/protector_defconfig .config
# vi .config 打开.config,然后修改 “CONFIG_KPL=y” 为 “CONFIG_KPL=n”.

修改下面两个文件,第个文件都要注销到这行,与 “write_force_reset_reboot_log” 相关的.

- arch/arm/kernel/traps.c, 403 行
- kernel/panic.c, 81 行

修改 linux-2.6.24.7 目录下的 Makefile 文件
- 在文件头上加上一行

export PRJROOT = ..

PRJROOT为上一级目录,也就是表示modules路径和linux-2.6.24.7是同一级。这样才能编绎到诸多的驱动程序。

- 修改 CROSS_COMPILE 路径 为/opt/arm-2007q3/bin

CROSS_COMPILE   := /opt/arm-2007q3/bin/arm-none-linux-gnueabi-


/***********************************************
以下步骤我认为可能不用改。
3.进入 modules目录
修改 modules 目录下的 Makefile 文件
在文件头上加上两行
export PRJROOT = ..
export CROSS_COMPILE := /opt/arm-2007q3/bin/arm-none-linux-gnueabi-
修改wlan1271/platforms/os/linux/Makefile
注销掉 “CROSS_COMPILE” 的定义
/***********************************************

相关推荐