精华 | |
金钱 | BA |
威望 | 点 |
贡献值 | 点 |
爱心 | 点 |
经验 | 点 |
注册时间 | 2015-2-26 |
最后登录 | 1970-1-1 |
在线时间 | 小时 |
| |
| |
| |
|
立即注册,加入爱黑武论坛的大家庭!爱黑武,爱上搞机生活!
您需要 登录 才可以下载或查看,没有账号?注册
x
前言:
Motorola开源了基于Linux的手机源代码,包括A780、E680、A1200、E2、E6等等,官方网址:
https://sourceforge.net/motorola/wiki/Projects/
我修改的内核,支持SDHC 32G内存卡。
https://download.csdn.net/download/MYMOTOE6/14017283
一、编译BLOB
BLOB是摩托罗拉Linux系列使用的引导加载器,它是开机时首先运行的一段代码,作用是进行自检和加载引导内核,摩托公布了BLOB,所以我们可以直接编译运行,编译的时候一定要配置好交叉编译器的路径,交叉编译器摩托也公布了源代码,可以自己直接编译一个或者下载一个已经编译好的。注意在编译之前先要配置好内核的配置文件和路径,我是使用了一个脚本编译。
#!/bin/bash
export CC=arm-linux-gcc
export CXX=arm-linux-g++
export CFLAGS=-O2
export CXXFLAGS=-O2
export AR=arm-linux-ar
export AS=arm-linux-as
export LD=arm-linux-ld
export STRIP=arm-linux-strip
export RANLIB=arm-linux-ranlib
export OBJCOPY=arm-linux-objcopy
./configure --build=i68-linux-gnu --host=arm-linux --prefix=/mmc/mmca1/.system --with-board=lubbock --with-cpu=pxa262 --with-linux-prefix=/root/Moto-dev/linux-2.4.17 --enable-usb --enable-lcd
#make
#make install
编译完成的文件保存在src/blob/blob,把blob复制到刷机包替换cg32-blob.bin, cg32-blob.bin是由sbf刷机包拆解工具解开的一个文件。Sbf工具后面提供源代码,注意只能使用在E6上,如果要解开其他的刷机包,请自行修改,全部使用C语言编写。
二、编译内核
我主要使用的手机是E6,所以下载了所有E6的源代码,遗憾的是E6目录中并不包括内核代码,作为和A1200E同期发布的产品,估计其内部配置应该一致,所以参考了E6和A1200的电路图,确定它们使用的是同一款CPU英特尔的PXA270和同一款内存型号PF38F4476VVUBPD。所以下载了A1200E的内核源代码,通过查看原代码,发现编译要注意参数的配置,通过编译成功运行在了E6上,在内核源码根目录有一个setup.sh文件,安装好交叉编译器之后,进入linux-2.4.17目录,执行如下命令:
//在这里一定要使用澳门版配置,有两种配置:
//MACAU支持G网
//MACAUEDGE支持EDGE网
//配置内核为澳门版,支持18BPP
#.setup.sh PRODUCT=MACAUEDGE LCD=18BPP
# make bzImage //编译内核
# make modules //编译模块
编译完成的内核保存在arch/arm/boot/zImage ,把zImage复制到刷机包中,替换cg33-zImage
注意:cg33-zImage文件是我编写的linux系统下E6专用的一个刷机包编辑工具sbf解开的文件,使用这个工具可以简化很多步骤,不用再补齐FF,不用计算校验和等等。编译出的文件只要重命名并覆盖源文件即可。
使用方法是
# sbf –r e6.sbf //解开一个刷机包
# sbf –c e6.sbf //打包一个刷机包
第二个参数e6.sbf是需要修改的刷机包,这里为了简化重命名为e6.sbf,在打包时也要带上这个参数。新的刷机包文件名为New-e6.sbf。
三、刷机
把New-e6.sbf复制到windows系统,使用RSD-3.8刷机,刷完将拥有自己修改的全新内核。
|
|