全志 V40 分区

硬件平台:CQR40,处理器 全志T3四核Cortex-A7;1G DDR3;8GB EMMC Flash;
软件平台:ubuntu16

一、分区表配置原则

1、分区的单位

分区单位:扇区(一个扇区占据 512 字节);
分区表示个数最多 2^31 * 512 = 2T,即容量大小最多为 2T。

2、分区的大小

为了安全和效率考虑,分区大小最好保证为 16M 字节的整数倍;
即:32768(扇区) = 16M。

3、分区表属性说明

分区属性作用配置选择性质
name分区名自定义必选
size分区大小(单位:扇区)自定义必选
downloadfile烧写的镜像自定义可选
user_type掉电保护的配置项nandflash必选
keydata量产保护数据选项0x8000:量产保护数据可选
verify量产校验的选项1:量产校验(默认) 0:量产不校验可选

4、各个分区表的作用与配置

以下说明以 V40 公版(magton-p1)为参照标准

4.1.bootloader分区

Boot 数据存放分区,用于保存 boot 启动后需要的数据,如图片、logo、字体库等素材内容。
分区建议:因保存的为素材内容,且数据量不会很大,使用默认 16M 即可。

4.2.env分区

环境变量分区,用于保存环境变量、启动参数等数据。
分区建议:因保存的为系统参数,数据量很小,使用默认 16M 即可

4.3.boot分区

这个分区上有 Android 的引导程序,包括 kernel 和 ramdisk。该分区设备用于引导系统启动。
现有 boot 镜像为 15M 左右,一般不会有大幅度的变化。
分区建议:无重大修改,默认使用 16M 即可。如果 boot 镜像超过 16M,需要将它修改为 32M

4.4.system分区

该分区为系统分区,存放android/ubuntu操作系统的,里面包含了Android/ubuntu用户库文件和预先安装的系统应用等,擦除了这个分区就会删除掉整个 Andorid/ubuntu 系统。
各方案需要关注OTA升级对其产生的影响,在ota升级时,会对该分区进行读写操作,如果升级过程
中分区被写满会导致升级失败,因此,在需要预留一定空间以便日后可进行 ota 升级。
分区建议:system 分区用于存放 system.img(路径为 android\out\target\product\方案\system.img),其大小必定要大于system.img文件的大小。另外,system分区的大小严重依赖于需要预装的apk/app,预装的apk/app越多,对 system分区容量的需求就越大。分区大小需要根据方案的具体情况来确定,建议最小 512M。

4.5.misc分区

存放系统启动参数等,一般用户 boot 启动后读取并作出相应的动作。
分区建议:因保存的为系统参数,数据量很小,使用默认 16M 即可。

4.6.recovery分区

recovery 分区可理解为另一个启动分区(与 boot 分区类似),用户可以启动设备进入 recovery 控制
台去执行高级的系统恢复或升级管理等操作。可理解为 window 的 winpe 系统。
分区建议:现有镜像文件recovery.img的大小为10M左右,日后升级可能会加入更多功能,但不会有
大幅度修改,因此建议分区大小为 32M。

4.7.private分区

私有分区,非标准分区。用户存放系统序列码等信息,并且使用恢复出厂设置或者量产等操作无法
清除该内容,产品出厂后会在该分区写入内容。出厂后一般不允许用户修改该分区内容。
分区建议:因保存的是方案特定的私有数据,其大小取决于带保存的私有数据的大小,一般数据量
很小,使用默认 16M 即可。

4.8.reserve0分区

保留分区,16M

4.9.cache分区

缓存分区。最主要的用处为当进行 ota 升级时,会将相应的命令和升级包存放在该分区使用。但也有
部分系统可不使用该分区,直接在如/mnt/sdcard 分区里经常 ota 升级(需要 recovery 支持,非标准)。
分区建议:如可直接使用/mnt/sdcard/分区进行 ota 升级,可仅仅划分 16M 即可,否则,需要根据规
划中 ota 的升级包大小划分分区。如一般的 ota 包在 250M 左右,可划分到 350M,或根据具体的 ota 升
级包预留 50%空间。

4.10.UDISK分区

用户内置存储分区。系统总分区大小减去已分配的大小(即所有未分配的剩余的空间,不需要显式分
配大小)都为该分区所用。UDISK 分区可理解为 android 系统的/sdcard 分区即用户 internal storage,用于存放用户数据,也可将应用程序安装在该位置,可以节省data分区的空间。必须保证sys_partition.fex的最
后一个分区为 UDISK 分区。

分区建议:根据 flash 容量大小分配剩余的即可。

二、分区操作

1.修改sys_partiton_dragonboard.fex

;---------------------------------------------------------------------------------------------------
; 说明: 脚本中的字符串区分大小写,用户可以修改"="后面的数值,但是不要修改前面的字符串
;---------------------------------------------------------------------------------------------------


;---------------------------------------------------------------------------------------------------
;                                   固件下载参数配置
;---------------------------------------------------------------------------------------------------
;***************************************************************************************************
;    mbr的大小, 以Kbyte为单位
;***************************************************************************************************
[mbr]
size = 16384

;***************************************************************************************************
;                                              分区配置
;
;
;  partition 定义范例:
;    [partition]                ;  //表示是一个分区
;    name        = USERFS2      ; //分区名称
;    size        = 16384        ; //分区大小 单位: 扇区.分区表示个数最多2^31 * 512 = 2T
;    downloadfile = "123.fex"   ; //下载文件的路径和名称,可以使用相对路径,相对是指相对于image.cfg文件所在分区。也可以使用绝对路径
;    keydata     = 1            ; //私有数据分区,重新量产数据将不丢失
;    encrypt     = 1            ; //采用加密方式烧录,将提供数据加密,但损失烧录速度
;    	   = ?            ; //私有用法
;    verify      = 1            ; //要求量产完成后校验是否正确
;
; 注:1、name唯一, 不允许同名
;     2、name最大12个字符
;     3、size = 0, 将创建一个无大小的空分区
;     4、为了安全和效率考虑,分区大小最好保证为16M字节的整数倍
;    size         = 25165824
;	8G eMMC 7.3 GiB, 7818182656 bytes, 15269888 sectors
;		Units: sectors of 1 * 512 = 512 bytes
;		DataPart = 15269888 - (32768*5 + 4194304) = 10911744
;
;***************************************************************************************************
[partition_start]

[partition]
    name         = boot-res
    size         = 32768
    downloadfile = "bootloader.fex"
    user_type    = 0x8000

[partition]
    name         = env
    size         = 32768
    downloadfile = "env.fex"
	user_type    = 0x8000

[partition]
    name         = boot
    size         = 65536
    downloadfile = "boot.fex"
	user_type    = 0x8000

[partition]
    name         = rootfs
    size         = 4718592
    ;2560m -256m  5242880 
    downloadfile = "rootfs.fex"
	user_type    = 0x8000

[partition]
    name         = klog
    size         = 32768
    user_type    = 0x8000

[partition]
    name         = data
    size         = 2097152 
	downloadfile = "datafs.fex"
    user_type    = 0x8000

[partition]
    name         = secret
    size         = 32768
;   downloadfile = "secret.fex"
    keydata      = 0x8000
    user_type    = 0x8000

[partition]
    name         = reserve
    size         = 32768
    downloadfile = "reserve.fex"
    user_type    = 0x8000

[partition]
    name         = reserve2
    size         = 32768  
    user_type    = 0x8000


[partition]
    name         = UDISK
	user_type    = 0x8100

2.修改zb_cqr40_ubuntu16\buildroot\scripts\mkcmd.sh

function mkrootfs()
{
    mk_info "build rootfs ..."

    if [ ${LICHEE_PLATFORM} = "linux" -o  ${LICHEE_PLATFORM} = "eyeseelinux" ] ; then
        make O=${LICHEE_BR_OUT} -C ${LICHEE_BR_DIR} target-generic-getty-busybox
        [ $? -ne 0 ] && mk_error "build rootfs Failed" && return 1
        make O=${LICHEE_BR_OUT} -C ${LICHEE_BR_DIR} target-finalize
        [ $? -ne 0 ] && mk_error "build rootfs Failed" && return 1
        make O=${LICHEE_BR_OUT} -C ${LICHEE_BR_DIR} LICHEE_GEN_ROOTFS=y rootfs-ext4
        [ $? -ne 0 ] && mk_error "build rootfs Failed" && return 1
        cp ${LICHEE_BR_OUT}/images/rootfs.ext4 ${LICHEE_PLAT_OUT}

		if [ -f "${LICHEE_BR_OUT}/images/rootfs.squashfs" ]; then
			cp ${LICHEE_BR_OUT}/images/rootfs.squashfs ${LICHEE_PLAT_OUT}
		fi

        if [ "x$PACK_TINY_ANDROID" = "xtrue" ];then
            packtinyandroid
        fi
    elif [ ${LICHEE_PLATFORM} = "dragonboard" ] ; then
		tooldir=${LICHEE_UBOOT_DIR}/toolchain/gcc-linaro-4.9-2016.02-x86_64_arm-linux-gnueabihf
        export PATH=${tooldir}/bin:$PATH
        export LICHEE_TOOLCHAIN_PATH=${tooldir}
        rm -rf ${LICHEE_BR_DIR}/target/dragonboard/rootfs/lib/modules/*
	if [ ${UBUNTU_VERSION} = "ubuntu15" ]; then
        	cp -rf ${LICHEE_KERN_DIR}/output/lib/modules/*  ${LICHEE_TOP_DIR}/ubuntu15/lib/modules/
        	(cd ${LICHEE_BR_DIR}/target/ubuntu15; ./build.sh)
			if [ $? -ne 0 ]; then
				mk_info "build rootfs ERROR."
				exit 1
			fi
        	mv ${LICHEE_BR_DIR}/target/ubuntu15/rootfs.ext4 ${LICHEE_PLAT_OUT}
	elif [ ${UBUNTU_VERSION} = "ubuntu16" ]; then
                prepare_ubuntu16
                cp -rf ${LICHEE_KERN_DIR}/output/lib/modules/*  ${LICHEE_TOP_DIR}/ubuntu16/lib/modules/
                (cd ${LICHEE_BR_DIR}/target/ubuntu16; ./build.sh)
                (cd ${LICHEE_BR_DIR}/target/datafs;   ./build.sh)
                (cd ${LICHEE_BR_DIR}/target/secret;	  ./build.sh)
                (cd ${LICHEE_BR_DIR}/target/reserve;  ./build.sh)
                        if [ $? -ne 0 ]; then
                                mk_info "build rootfs ERROR."
                                exit 1
                        fi
                mv ${LICHEE_BR_DIR}/target/ubuntu16/rootfs.ext4 ${LICHEE_PLAT_OUT}
                mv ${LICHEE_BR_DIR}/target/datafs/datafs.ext4 ${LICHEE_PLAT_OUT}
                mv ${LICHEE_BR_DIR}/target/secret/secret.ext4 ${LICHEE_PLAT_OUT}
                mv ${LICHEE_BR_DIR}/target/reserve/reserve.ext4 ${LICHEE_PLAT_OUT}
	fi
    else
        mk_info "skip make rootfs for ${LICHEE_PLATFORM}"
    fi

    mk_info "build rootfs OK."
}

3.在${LICHEE_BR_DIR}/target/ 下添加脚本

3.1.在${LICHEE_BR_DIR}/target/新建datafs、secret、reserve文件夹

3.2.在${LICHEE_BR_DIR}/target/datafs/添加脚本,内容如下:

3.2.1.新建build.sh
#!/bin/bash

OUT_PATH=""
BR_ROOT=`(cd ../..; pwd)`
export PATH=$BR_ROOT/target/tools/host/usr/bin

#export cpu env
export CPU=${LICHEE_CHIP%p*}
echo $CPU

cd ${LICHEE_TOP_DIR}/lib/
if [ -e "build.sh" ]; then 
        ./build.sh
fi      
cd -

echo "generating ubuntu16 datafs..."

NR_SIZE=`du -sm ${LICHEE_TOP_DIR}/datafs | awk '{print $1}'`
NEW_NR_SIZE=$((((1024)/16)*16))
#NEW_NR_SIZE=$((((6862)/16)*16))
#NEW_NR_SIZE=360
TARGET_IMAGE=datafs.ext4

echo "blocks: $NR_SIZE"M" -> $NEW_NR_SIZE"M""
make_ext4fs -s -l $NEW_NR_SIZE"M" $TARGET_IMAGE ${LICHEE_TOP_DIR}/datafs/
fsck.ext4 -y $TARGET_IMAGE > /dev/null
echo "success in generating datafs"

if [ -n "$OUT_PATH" ]; then
    cp -v datafs.ext4 $OUT_PATH/
	if [ $? -ne 0 ] ; then
		exit 1
	fi
fi

echo "Build at: `date`"

3.2.2.新建clean.sh
#!/bin/sh


rm -rf rootfs.ext4


3.3.在${LICHEE_BR_DIR}/target/reserve/添加脚本,内容如下:

3.3.1.新建build.sh
#!/bin/bash

OUT_PATH=""
BR_ROOT=`(cd ../..; pwd)`
export PATH=$BR_ROOT/target/tools/host/usr/bin

#export cpu env
export CPU=${LICHEE_CHIP%p*}
echo $CPU

cd ${LICHEE_TOP_DIR}/lib/
if [ -e "build.sh" ]; then 
        ./build.sh
fi      
cd -

echo "generating reserve..."

NR_SIZE=`du -sm ${LICHEE_TOP_DIR}/reserve | awk '{print $1}'`
NEW_NR_SIZE=$((((16)/16)*16))
#NEW_NR_SIZE=$((((6862)/16)*16))
#NEW_NR_SIZE=360
TARGET_IMAGE=reserve.ext4

echo "blocks: $NR_SIZE"M" -> $NEW_NR_SIZE"M""
make_ext4fs -s -l $NEW_NR_SIZE"M" $TARGET_IMAGE ${LICHEE_TOP_DIR}/reserve/
fsck.ext4 -y $TARGET_IMAGE > /dev/null
echo "success in generating reserve"

if [ -n "$OUT_PATH" ]; then
    cp -v reserve.ext4 $OUT_PATH/
	if [ $? -ne 0 ] ; then
		exit 1
	fi
fi

echo "Build at: `date`"

3.3.2.新建clean.sh
#!/bin/sh


rm -rf reserve.ext4

3.4.在${LICHEE_BR_DIR}/target/secret/添加脚本,内容如下:

3.4.1.新建build.sh
#!/bin/bash

OUT_PATH=""
BR_ROOT=`(cd ../..; pwd)`
export PATH=$BR_ROOT/target/tools/host/usr/bin

#export cpu env
export CPU=${LICHEE_CHIP%p*}
echo $CPU

cd ${LICHEE_TOP_DIR}/lib/
if [ -e "build.sh" ]; then 
        ./build.sh
fi      
cd -

echo "generating secret..."

NR_SIZE=`du -sm ${LICHEE_TOP_DIR}/secret | awk '{print $1}'`
NEW_NR_SIZE=$((((16)/16)*16))
#NEW_NR_SIZE=$((((6862)/16)*16))
#NEW_NR_SIZE=360
TARGET_IMAGE=secret.ext4

echo "blocks: $NR_SIZE"M" -> $NEW_NR_SIZE"M""
make_ext4fs -s -l $NEW_NR_SIZE"M" $TARGET_IMAGE ${LICHEE_TOP_DIR}/secret/
fsck.ext4 -y $TARGET_IMAGE > /dev/null
echo "success in generating secret"

if [ -n "$OUT_PATH" ]; then
    cp -v secret.ext4 $OUT_PATH/
	if [ $? -ne 0 ] ; then
		exit 1
	fi
fi

echo "Build at: `date`"
3.4.2.新建clean.sh
#!/bin/sh


rm -rf secret.ext4


4.修改${LICHEE_BR_DIR}/target/ ubuntu16/build.sh脚本为:

#!/bin/bash

OUT_PATH=""
BR_ROOT=`(cd ../..; pwd)`
export PATH=$BR_ROOT/target/tools/host/usr/bin

#export cpu env
export CPU=${LICHEE_CHIP%p*}
echo $CPU

cd ${LICHEE_TOP_DIR}/lib/
if [ -e "build.sh" ]; then 
        ./build.sh
fi      
cd -

echo "generating ubuntu16 rootfs..."

NR_SIZE=`du -sm ${LICHEE_TOP_DIR}/ubuntu16 | awk '{print $1}'`
NEW_NR_SIZE=$((((2560-256)/16)*16))
#NEW_NR_SIZE=$((((6862)/16)*16))
#NEW_NR_SIZE=360
TARGET_IMAGE=rootfs.ext4

echo "blocks: $NR_SIZE"M" -> $NEW_NR_SIZE"M""
make_ext4fs -s -l $NEW_NR_SIZE"M" $TARGET_IMAGE ${LICHEE_TOP_DIR}/ubuntu16/
fsck.ext4 -y $TARGET_IMAGE > /dev/null
echo "success in generating rootfs"

if [ -n "$OUT_PATH" ]; then
    cp -v rootfs.ext4 $OUT_PATH/
	if [ $? -ne 0 ] ; then
		exit 1
	fi
fi

echo "Build at: `date`"

5.修改${LICHEE_TOP_DIR}/tools/pack/pack 打包脚本:

function do_pack_dragonboard()
{
	printf "packing for dragonboard\n"

	ln -s ${LICHEE_OUT}/boot.img boot.fex
	ln -s ${LICHEE_OUT}/rootfs.ext4  rootfs.fex
	ln -s ${LICHEE_OUT}/datafs.ext4  datafs.fex
	ln -s ${LICHEE_OUT}/secret.ext4  secret.fex
	ln -s ${LICHEE_OUT}/reserve.ext4 reserve.fex
	
	if [ "x${PACK_SIG}" = "xsig" ] ; then
		echo "signature sunxi mbr"
		signature sunxi_mbr.fex dlinfo.fex
		echo "signature over"
	elif [ "x${PACK_SIG}" = "xsecure" ] ; then
		echo "secure"
		do_signature
	elif [ "x${PACK_SIG}" = "xprev_refurbish" ] ; then
		echo "prev_refurbish"
		do_signature
	else
		echo "normal"
	fi
}

三、结果展示

3.3.1

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
bpi_a64_android初步编译为LCD显示20170309_1442.7z banana pi a64 android6.0.1初步编译为LCD显示。初步设置。 bpi_a64_android的编译配置文件排版.txt 2017/3/9 14:33 0、压缩包的处理: rootroot@cm-System-Product-Name:/home/wwt/a64$ tar zxvf BPI-A64-Android_SourceCode.tar.gz 增加3个编译链 Notice: Please download this file to the correct path https://drive.google.com/open?id=0B_YnvHgh2rwjaVRrc2VoR0xLTlE (1)gcc-linaro-aarch64.tar.xz ==> /lichee/buildroot/dl (2)gcc-linaro-aarch64.tar.xz ==> /lichee/brandy/toolchain (3)gcc-linaro-arm.tar.xz ==> /lichee/brandy/toolchain 重新分块压缩: rootroot@cm-System-Product-Name:/home/wwt/a64$ tar zcvf - bpi_a64_android/ | split -b 3900000000 - bpi_a64_android_wyb_patch1.tar.gz 1、编译lichee内核 rootroot@cm-System-Product-Name:/home/wwt/a64$ rootroot@cm-System-Product-Name:/home/wwt/a64$ cd bpi_a64_android/ rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android$ rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android$ cd lichee/ rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/lichee$ ./build.sh config Welcome to mkscript setup progress All available chips: 0. sun50iw1p1 Choice: 0 All available platforms: 0. android 1. dragonboard 2. linux 3. camdroid 4. secureandroid Choice: 0 All available kernel: 0. linux-3.10 1. linux-3.4 Choice: 0 All available boards: 0. bpi-m64-hdmi 1. bpi-m64-lcd Choice: 1 rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/lichee$ ./build.sh Copy boot.img to output directory ... Copy modules to target ... sun50iw1p1 compile Kernel successful INFO: build kernel OK. INFO: build rootfs ... INFO: skip make rootfs for android INFO: build rootfs OK. INFO: ---------------------------------------- INFO: build lichee OK. INFO: ---------------------------------------- rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/lichee$ rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/lichee$ 2、编译Android rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/lichee$ cd ../android/ rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/android$ source build/envsetup.sh including device/asus/deb/vendorsetup.sh including device/asus/flo/vendorsetup.sh including device/asus/fugu/vendorsetup.sh including device/generic/mini-emulator-arm64/vendorsetup.sh including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh including device/generic/mini-emulator-mips/vendorsetup.sh including device/generic/mini-emulator-x86_64/vendorsetup.sh including device/generic/mini-emulator-x86/vendorsetup.sh including device/htc/flounder/vendorsetup.sh including device/lge/hammerhead/vendorsetup.sh including device/moto/shamu/vendorsetup.sh including device/softwinner/bpi-m64-hdmi/vendorsetup.sh including device/softwinner/bpi-m64-lcd/vendorsetup.sh including device/softwinner/common/vendorsetup.sh including sdk/bash_completion/adb.bash rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/android$ lunch You're building on Linux Lunch menu... pick a combo: 1. aosp_arm-eng 2. aosp_arm64-eng 3. aosp_mips-eng 4. aosp_mips64-eng 5. aosp_x86-eng 6. aosp_x86_64-eng 7. aosp_deb-userdebug 8. aosp_flo-userdebug 9. full_fugu-userdebug 10. aosp_fugu-userdebug 11. mini_emulator_arm64-userdebug 12. m_e_arm-userdebug 13. mini_emulator_mips-userdebug 14. mini_emulator_x86_64-userdebug 15. mini_emulator_x86-userdebug 16. aosp_flounder-userdebug 17. aosp_hammerhead-userdebug 18. aosp_hammerhead_fp-userdebug 19. aosp_shamu-userdebug 20. bpi_m64_hdmi-eng 21. bpi_m64_hdmi-user 22. bpi_m64_hdmi-userdebug 23. bpi_m64_lcd-eng 24. bpi_m64_lcd-user 25. bpi_m64_lcd-userdebug Which would you like? [aosp_arm-eng] 23 ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=6.0.1 TARGET_PRODUCT=bpi_m64_lcd TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm64 TARGET_ARCH_VARIANT=armv8-a TARGET_CPU_VARIANT=generic TARGET_2ND_ARCH=arm TARGET_2ND_ARCH_VARIANT=armv7-a-neon TARGET_2ND_CPU_VARIANT=cortex-a15 HOST_ARCH=x86_64 HOST_OS=linux HOST_OS_EXTRA=Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty HOST_BUILD_TYPE=release BUILD_ID=MMB29M OUT_DIR=out ============================================ rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/android$ extract-bsp /home/wwt/a64/bpi_a64_android/android/device/softwinner/bpi-m64-lcd/bImage copied! /home/wwt/a64/bpi_a64_android/android/device/softwinner/bpi-m64-lcd/modules copied! rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/android$ make -j12 Creating filesystem with parameters: Size: 2147483648 Block size: 4096 Blocks per group: 32768 Inodes per group: 8192 Inode size: 256 Journal blocks: 8192 Label: system Blocks: 524288 Block groups: 16 Reserved block group size: 127 Created filesystem with 2422/131072 inodes and 260574/524288 blocks Install system fs image: out/target/product/bpi-m64-lcd/system.img out/target/product/bpi-m64-lcd/system.img+out/target/product/bpi-m64-lcd/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p maxsize=2192446080 blocksize=4224 total=1034077436 reserve=22146432 #### make completed successfully (57:57 (mm:ss)) #### rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/android$ rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/android$ 3、打包img镜像 rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/android$ rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/android$ pack -d /home/wwt/a64/bpi_a64_android/lichee/tools/pack/sun50iw1p1_android_bpi-m64-lcd_card0.img pack finish rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/android$ rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/android$ rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/android$ pack /home/wwt/a64/bpi_a64_android/lichee/tools/pack/sun50iw1p1_android_bpi-m64-lcd_uart0.img pack finish rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/android$ 4、编译uboot(可选) rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/lichee/brandy$ ./build.sh -p sun50iw1p1 CC external/openssl_ext.c ... make -C /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/sunxi_spl/sbrom/spl/ CC /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun50iw1p1/spl/ss_spl.c ... CC /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun50iw1p1/spl/spc_spl.c ... CC /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun50iw1p1/spl/smc_spl.c ... CC /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun50iw1p1/spl/gic_spl.c ... CC /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun50iw1p1/spl/debug.c ... CC /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun50iw1p1/spl/ctype.c ... CC /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun50iw1p1/spl/eabi_compat.c ... CC /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun50iw1p1/spl/efuse_spl.c ... make -C /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/sunxi_spl/spl/lib/ make[3]: 没有什么可以做的为 `all'。 /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/../gcc-linaro/bin/arm-linux-gnueabi-gcc -E -include /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/include/u-boot/u-boot.lds.h -DSBROMSWADDR="(0x10480)" -ansi -D__ASSEMBLY__ -P - </home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/sunxi_spl/sbrom/main/sboot.lds >/home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/sunxi_spl/sbrom/sboot.lds /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/../gcc-linaro/bin/arm-linux-gnueabi-ld /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun50iw1p1/dram/libchipid.o /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun50iw1p1/dram/libdram.o /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun50iw1p1/mmc/libmmc.o /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun50iw1p1/nand/libnand.o /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/sunxi_spl/sbrom/flash/libflash.o /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/sunxi_spl/sbrom/libs/libgeneric.o /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/sunxi_spl/sbrom/load/libload.o /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/sunxi_spl/sbrom/main/libmain.o /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/sunxi_spl/sbrom/openssl/libopenssl.o /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/sunxi_spl/sbrom/spl/libsource_spl.o /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/sunxi_spl/spl/lib/libgeneric.o -L /home/wwt/a64/bpi_a64_android/lichee/brandy/gcc-linaro/bin/../lib/gcc/arm-linux-gnueabi/4.6.3 -lgcc -T/home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/sunxi_spl/sbrom/sboot.lds -o sboot.axf -Map sboot.map /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/../gcc-linaro/bin/arm-linux-gnueabi-objcopy -O binary /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/sunxi_spl/sbrom/sboot.axf /home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/sunxi_spl/sbrom/sboot.bin "sboot_sun50iw1p1.bin" -> "/home/wwt/a64/bpi_a64_android/lichee/brandy/u-boot-2014.07/../../tools/pack/chips/sun50iw1p1/bin/sboot_sun50iw1p1.bin" rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/lichee/brandy$ rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/lichee/brandy$ 5、配置menuconfig(裁剪内核) rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/lichee$ ./build.sh config Welcome to mkscript setup progress All available chips: 0. sun50iw1p1 Choice: 0 All available platforms: 0. android 1. dragonboard 2. linux 3. camdroid 4. secureandroid Choice: 0 All available kernel: 0. linux-3.10 1. linux-3.4 Choice: 0 All available boards: 0. bpi-m64-hdmi 1. bpi-m64-lcd Choice: 1 rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/lichee$ cd linux-3.10/ rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/lichee/linux-3.10$ cp .config bak1_orig.config rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/lichee/linux-3.10$ rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/lichee/linux-3.10$ rootroot@cm-System-Product-Name:/home/wwt/a64/bpi_a64_android/lichee/linux-3.10$ make ARCH=arm64 menuconfig (1)改大打印缓存 General setup ---> (17) Kernel log buffer size (16 => 64KB, 17 => 128KB) 修改为: (18) Kernel log buffer size (16 => 64KB, 17 => 128KB) (2)只保留博通/正基的WIFI/BT:AP6212等 Device Drivers ---> [*] Network device support ---> [*] Wireless LAN ---> <M> Broadcom FullMAC wireless cards support (/system/vendor/modules/fw_bcmdhd.bin) Firmware path (/system/vendor/modules/nvram.txt) NVRAM path Enable Chip Interface (SDIO bus interface support) ---> Interrupt type (Out-of-Band Interrupt) ---> <M> Realtek 8723B SDIO or SPI WiFi <M> Realtek 8723BS_VQ0 WiFi <M> Realtek 8189F SDIO WiFi 修改为: < > Realtek 8723B SDIO or SPI WiFi < > Realtek 8723BS_VQ0 WiFi < > Realtek 8189F SDIO WiFi (3)关闭SELinux安全内核方便调试 Security options ---> [*] NSA SELinux Support [*] NSA SELinux boot parameter (1) NSA SELinux boot parameter default value [ ] NSA SELinux runtime disable [*] NSA SELinux Development Support [*] NSA SELinux AVC Statistics (1) NSA SELinux checkreqprot default value [ ] NSA SELinux maximum supported policy format version 修改为: [ ] NSA SELinux Support (4)在内核中增加USB摄像头/打开UVC的驱动 Device Drivers ---> <*> Multimedia support ---> [ ] Media USB Adapters ---> 修改为: [*] Media USB Adapters ---> --- Media USB Adapters *** Webcam devices *** < > USB Video Class (UVC) 修改为: <M> USB Video Class (UVC) [*] UVC input events device support (NEW)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值