rootfs编译步骤1解析

1 编译步骤

declare -x ARCH="arm"
declare -x CROSS_COMPILE="arm-linux-gnueabihf-"
declare -x PROJECT="2D07"
declare -x RELEASEDIR="/opt/"
./setup_config.sh ./configs/nvr/i2m/8.2.1/spinand.glibc.011a.128
cd kbuild/4.9.84
./release.sh -k ${RELEASEDIR}/kernel -b 011A -p nvr -f spinand -c i2m -l glibc -v 8.2.1

获取image/output/images文件夹为期望文件

2 过程解析

2.1 建立配置文件

./setup_config.sh ./configs/nvr/i2m/8.2.1/spinand.glibc.011a.128

test@ubuntu:/opt/project$ ./setup_config.sh ./configs/nvr/i2m/8.2.1/spinand.glibc.011a.128
PROJ_ROOT = /opt/project
CONFIG_NAME = config_module_list.mk
SOURCE_MK = ../sdk/sdk.mk
KERNEL_MEMADR = $(shell /opt/project/image/makefiletools/bin/mmapparser /opt/project/board/$(CHIP)/mmap/$(MMAP) $(CHIP) E_LX_MEM phyaddr)
KERNEL_MEMLEN = $(shell /opt/project/image/makefiletools/bin/mmapparser /opt/project/board/$(CHIP)/mmap/$(MMAP) $(CHIP) E_LX_MEM size)
KERNEL_MEMADR2 = $(shell /opt/project/image/makefiletools/bin/mmapparser /opt/project/board/$(CHIP)/mmap/$(MMAP) $(CHIP) E_LX_MEM2 phyaddr)
KERNEL_MEMLEN2 = $(shell /opt/project/image/makefiletools/bin/mmapparser /opt/project/board/$(CHIP)/mmap/$(MMAP) $(CHIP) E_LX_MEM2 size)
KERNEL_MEMADR3 = $(shell /opt/project/image/makefiletools/bin/mmapparser /opt/project/board/$(CHIP)/mmap/$(MMAP) $(CHIP) E_LX_MEM3 phyaddr)
KERNEL_MEMLEN3 = $(shell /opt/project/image/makefiletools/bin/mmapparser /opt/project/board/$(CHIP)/mmap/$(MMAP) $(CHIP) E_LX_MEM3 size)
LOGO_ADDR = $(shell /opt/project/image/makefiletools/bin/mmapparser /opt/project/board/$(CHIP)/mmap/$(MMAP) $(CHIP) $(BOOTLOGO_ADDR) miuaddr)
BOOTLOGO_BUFSIZE = $(shell /opt/project/image/makefiletools/bin/mmapparser /opt/project/board/$(CHIP)/mmap/$(MMAP) $(CHIP) $(BOOTLOGO_ADDR) size)
CHIP = i2m
BOARD = 011A
BOARD_NAME = SSC011A-S01A
PRODUCT = nvr
TOOLCHAIN = glibc
TOOLCHAIN_VERSION = 8.2.1
KERNEL_VERSION = 4.9.84
LIBC       = libc-2.28
BUSYBOX    = busybox-1.20.2-arm-linux-gnueabihf-glibc-8.2.1-dynamic
KERNEL_CONFIG = glibc
IMAGE_CONFIG = spinand.ubifs.p2.partition.config
CUSTOMER_OPTIONS = 011a.201_options.mk
CUSTOMER_TAILOR = nvr_i2m_display_glibc_tailor.mk
MMAP = MMAP_I2M_128M.h
MHAL = i2m
MERGE_BOOT = TRUE
BOOTLOGO_FILE = sigmastar1024_600.jpg
BOOTLOGO_ADDR = E_LX_LOGO_RESERVED_FB
DISP_OUT_NAME = CC0702I50R
EXBOOTARGS =
KERNEL_BOOT_ENV = LX_MEM=$(KERNEL_MEMLEN) mma_heap=mma_heap_name0,miu=0,sz=0x3800000 mma_memblock_remove=1 highres=off $(KERNEL_RESERVED_ENV)
TOOLCHAIN_REL = arm-linux-gnueabihf-
KERNEL_RESERVED_ENV = mmap_reserved=fb,miu=0,sz=0x300000,max_start_off=0x7C00000,max_end_off=0x7F00000 
test@ubuntu:/opt/project$ 

./configs/nvr/i2m/8.2.1/spinand.glibc.011a.128 为依据硬件条件进行配置的信息。

上面从“CHIP = i2m” 到 “TOOLCHAIN_REL = arm-linux-gnueabihf-”的内容

其主要目的是生成 configs/current.configs 文件供后续步骤使用。

2.2 准备文件系统

./release.sh -k /opt/kernel -b 011A -p nvr -f spinand -c i2m -l glibc -v 8.2.1
chip = i2m
arch= arm
product=nvr
board=011A
toolchain_ver=8.2.1
flash_type=spinand
clib=glibc
RELEASEDIR=/opt/

2.2.1 获取工程基本信息
  BOARD = 011A
  KL_DIR = /opt/kernel
  KL_ARCH = arm
  KL_API = 1.0.0
  KERNEL_ID = ##LX409
  PLATFORM_ID = I2
  COMMIT = #g#####
2.2.2 清理旧文件
echo "  Clean old object..."
rm -Rvf ${chip}/arch/${arch}/boot/
rm -Rvf ${chip}/drivers/sstar
rm -Rvf ${RELEASEDIR}/*Image*
rm -Rvf ./${chip}/configs/${product}/${board}/${clib}/${toolchain_ver}/${flash_type}/include
rm -Rvf ./${chip}/configs/${product}/${board}/${clib}/${toolchain_ver}/${flash_type}/modules/*.ko
echo
2.2.2 准备新的API文件
  • 复制kernel目录下的l/drivers/sstar/include 到工程目录/kbuild/4.9.84/i2m/drivers/sstar/include
2.2.3 准备新的内核配置文件
  • 复制 kernel/.config’ 到工程目录/kbuild/4.9.84/i2m/configs/nvr/011A/glibc/8.2.1/spinand/
  • 复制 kernel/Module.symvers 到工程目录/kbuild/4.9.84/i2m/configs/nvr/011A/glibc/8.2.1/spinand/
  • 复制 include/config/auto.conf 到工程目录/kbuild/4.9.84/i2m/configs/nvr/011A/glibc/8.2.1/spinand/include/config
  • 复制 kernel/include/generated/* 到工程目录/kbuild/4.9.84/i2m/configs/nvr/011A/glibc/8.2.1/spinand/include/
2.2.4 准备新的内核镜像文件
  • 复制 kernel/arch/arm/boot/下所有镜像文件(如uImage.xz)到 工程目录/release/nvr/i2m/011A/glibc/8.2.1/bin/kernel/spinand/
2.2.5 准备新的内核模块文件
  • 复制 kernel/modules下所有ko文件到 到工程目录/kbuild/4.9.84/i2m/configs/nvr/011A/glibc/8.2.1/spinand/modules/

3 心得

当工程有对应几个独立文件有更新,可以进行手动更新,跳过本文所有步骤。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值