首页 > 程序 > XT701内核编译如何编译内核

作者:ghostry 发布时间:2012-01-10 浏览: 5132

转载注明出处: https://blog.ghostry.cn/program/xt701%E5%86%85%E6%A0%B8%E7%BC%96%E8%AF%91%E5%A6%82%E4%BD%95%E7%BC%96%E8%AF%91%E5%86%85%E6%A0%B8.html

此文适合所有有Linux系统的,有一定领悟能力的人.

此文所有操作都是在Linux下完成.操作不要死搬硬套,要根据自己的情况灵活变通,按需取舍.
(有些工具连接已经失效,请查看XT701rom集合.zip在初始源码目录下有提供,迅雷离线可秒下.)
首先是需要一些工具,
http://android-dls.com/files/linux/split_bootimg.zip
这个是解包boot.img用的
http://git.source.android.com/?p=platform/system/core.git;a=tree;f=mkbootimg
这是打包boot.img用的
mkbootfs去谷歌吧.
制作ramdisk用的
git clone git://android.git.kernel.org/platform/prebuilt.git
编译器
https://github.com/stlifey/Kernel-XT701
内核源码.
git clone git://git.omapzoom.org/platform/hardware/ti/wlan.git
无线模块源码
http://code.google.com/p/compcache/wiki/CompilingAndUsingNew
内存压缩源码
http://bbs.gfan.com/attachment.php?aid=MTYwOTUzMHw2Y2IwNTNhZnwxMzEzNTc2MjczfGQ3M2NWcGppMmtMQTdFc0dTZHVmT0N2WjFLcDBsemw1SFZjeHJHK2ZJR0RMaEJ3
下载附件中的prebuilt.tar 文件.
里边有需要的rzscontrol文件,放到手机/system/bin目录,加上可执行权限
如果这附件以后没了,就去上面的源码地址里找编译这程序的方法.
http://code.google.com/p/milestone-overclock/
超频模块源码
都下载好就可以开始制作了.为了方便操作,把以上所有得到的文件,文件夹,都放到~/xt701下边
现在设置环境,
打开~/.bashrc
反到底部写这样一句
export PATH=$PATH:/home/momo/xt701/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:/home/momo/xt701
(路径根据自己实际情况修改)保存,关闭
刚刚下载的工具,解压出来得到mkbootfs,mkbootimg,split_bootimg.pl三个文件,加上可执行权限放到xt701目录下
现在开始编译内核,
首先,进入Kernel-XT701目录,打开makefile找到
CROSS_COMPILE ?= 这句
把这句改成
CROSS_COMPILE ?= arm-eabi-
然后在此目录打开终端.
输入
make choles_defconfig
即可得到701可用的配置文件,
如果想自己定制可用命令
make menuconfig
(参数相当多,我看见就头大,这里就用stlifey写好的配置文件了)
然后输入
make
经过漫长的等待,编译完成,
最后几行会显示
OBJCOPY arch/arm/boot/zImage(这个是我们要的内核文件)
 Kernel: arch/arm/boot/zImage is ready
 Building modules, stage 2.
 MODPOST 1 modules
 CC      drivers/misc/netmux_linkdriver/usb/netmux_linkdriver.mod.o
 LD [M]  drivers/misc/netmux_linkdriver/usb/netmux_linkdriver.ko(这个是需要的ko文件)
根据这些提示,我们可以找到文件,把需要的文件复制出来.

然后从别的地方搞一个boot.img文件放到~/xt701/boot下边,刚刚得到的zImage也放这里

在此目录打开终端
输入

split_bootimg.pl boot.img

得到两个文件
然后输入
mkdir ramdisk
cd ramdisk
gzip -dc ../boot.img-ramdisk.gz | cpio -i
cd ..
这样就得到了ramdisk的文件,打开./ramdisk/lib/modules文件夹,把现在有的ko文件删除,换上刚刚自己编译出的ko文件.
打开./ramdisk/init.choles.rc找到
on early-boot
这句,下边会看到好多
insmod /lib/modules/netmux_linkdriver.ko
这样的句子.
只保留需要的insmod.删掉不需要的,或者在前边加#号注释掉.
保存,关闭
在终端输入
mkbootfs ./ramdisk | gzip > ramdisk-new.gz
得到新的ramdisk文件
然后输入
mkbootimg --kernel zImage --ramdisk ramdisk-new.gz -o boot-new.img
这样就得到了新的boot文件
这个boot-new.img文件,就可以刷到手机上,开测试了,
一般情况是可以开机,wifi不能用,这时候就要编译wifi模块
进入~/xt701/wlan/wl1271/platforms/os/linux目录.
打开终端输入
make -C ~/xt701/Kernel-XT701 SUBDIRS=$PWD modules
就可以在这目录下得到
tiwlan_drv.ko文件
把它放到手机/system/lib/modules目录下替换原来的,
设置好权限.(一般是644,如果不放心,可以777)
这样重启手机后就能用wifi了
然后可以作为进阶,编译内存压缩模块
进入~/xt701/compcache-0.6.2
打开终端输入
make -C ~/xt701/Kernel-XT701 SUBDIRS=$PWD modules
就可以在这目录下得到
ramzswap.ko文件
把它放到手机/system/lib/modules目录下设置好权限.
然后写个脚本11zram内容为
insmod /system/lib/modules/ramzswap.ko num_devices=1 disksize_kb=20480;
rzscontrol /dev/block/ramzswap0 --init;
swapon /dev/block/ramzswap0;
放进手机/system/etc/init.d设置好权限.
早先我们还下载了超频模块,这个现在的内核源码貌似不支持,不过方法还是写出来吧,说不定以后就支持了.
进入~/xt701/overclock/milestone_21
打开终端输入
make -C ~/xt701/Kernel-XT701 SUBDIRS=$PWD modules
就可以在这目录下得到
overclock.ko文件
把它放到手机/system/lib/modules目录下设置好权限.
然后写个脚本08overclock内容为
		
		
		
#!/system/bin/sh # Insert overclock module
busybox insmod /system/lib/modules/overclock.ko omap2_clk_init_cpufreq_table_addr=0x$(busybox grep -m 1 " T omap2_clk_init_cpufreq_table" /proc/kallsyms) echo 0x$(busybox grep -m 1 " t cpufreq_stats_update" /proc/kallsyms) > /proc/overclock/cpufreq_stats_update_addr
# Set max vsel and rate
echo 56 > /proc/overclock/max_vsel echo 800000 > /proc/overclock/max_rate
# Set CPU frequency table
echo "0 800000" > /proc/overclock/freq_table
echo "5 800000000 56" > /proc/overclock/mpu_opps
echo "0 800000" > /proc/overclock/freq_table
echo "4 800000000 56" > /proc/overclock/mpu_opps
echo "1 550000" > /proc/overclock/freq_table
echo "3 550000000 50" > /proc/overclock/mpu_opps
echo "2 380000" > /proc/overclock/freq_table
echo "2 380000000 36" > /proc/overclock/mpu_opps
echo "3 300000" > /proc/overclock/freq_table
echo "1 300000000 22" > /proc/overclock/mpu_opps
放进手机/system/etc/init.d设置好权限.
(boot.img解包打包教程来源http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images)
(编译教程来源http://www.droidforums.net/forum/rescue-squad-guides/31452-how-compile-your-own-kernel.html)

标签: boot freq ramdisk netmux img

上一篇: 创建一个刷机包,update-script脚本语法说明
下一篇: 修改源码的cpu频率设置

添加新评论 »

*
*

欢迎评论!歡迎評論!Comments welcome!komentoj bonvenaj!댓글 오신 것을 환영합니다!
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: :cold: :cryy: :cute: :shy: :sleep: :struggle: :tea: :yahou: