kernel 及 ramdisk 移植

本文介绍了如何合成Android系统的boot.img文件,涉及到的关键步骤包括指定kernel、ramdisk的位置,设置基地址、页面大小以及启动命令行参数。此外,提供了相关链接,详细讲解了移植过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

合成boot.img:
INTERNAL_BOOTIMAGE_ARGS: --kernel out/target/product/xxx/kernel --ramdisk out/target/product/xxx/ramdisk.img --base 0x80000000 --pagesize 2048 --cmdline console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom msm_rtb.filter=0x237 ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci lpm_levels.sleep_disabled=1 earlyprintk buildvariant=userdebug

 

http://blog.youkuaiyun.com/liuqingsongmsdn2014/article/details/53694794

 

 

 

内核的逻辑地址:0x90100000

modem\common\build\partition_xxx.xml

kernel\Makefile

all: vmlinux
vmlinux: scripts/link-vmlinux.sh $(vmlinux-deps) FORCE
vmlinux-deps := $(KBUILD_LDS) $(KBUILD_VMLINUX_INIT) $(KBUILD_VMLINUX_MAIN)

export KBUILD_VMLINUX_INIT := $(head-y) $(init-y)
export KBUILD_VMLINUX_MAIN := $(core-y) $(libs-y) $(drivers-y) $(net-y)
export KBUILD_LDS          := arch/$(SRCARCH)/kernel/vmlinux.lds

合成boot.img:
INTERNAL_BOOTIMAGE_ARGS: --kernel out/target/product/xxx/kernel --ramdisk out/target/product/xxx/ramdisk.img --base 0x80000000 --pagesize 2048 --cmdline console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom msm_rtb.filter=0x237 ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci lpm_levels.sleep_disabled=1 earlyprintk buildvariant=userdebug

kernel\arch\arm\Makefile
head-y		:= arch/arm/kernel/head$(MMUEXT).o



out\target\product\xxx\obj\KERNEL_OBJ\arch\arm\kernel\vmlinux.lds
.head.text
kernel\arch\arm\kernel\head.S

kernel\include\linux\init.h
#define __HEAD		.section	".head.text","ax"

bootloader传过来的值:(0,0,(PA)tags_phys)
entry(0, machtype, (unsigned*)tags_phys);


head.S
/* r0 = 0,r1 = machine nr, r2 = atags or dtb pointer */
    __HEAD
ENTRY(stext)
#include "head-common.S"

kernel\arch\arm\kernel\head-common.S
b    start_kernel&nb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值