三星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” 的定义
/***********************************************