Phytec中国的wiki
support@phytec.cn
热线:0755-61802110-803
phyCORE-i.MX6 Android BSP包:BSP-Android-i.MX6-ALPHA1
核心板:i.mx6dl emmc
i.mx6q emmc
1、barebox
Android BSP包关于i.MX6DL emmc板的barebox镜像仍有些问题,用linux上的barebox替换。
i.mx6dl emmc barebox镜像:ftp://ftp.phytec.cn/i.MX6/BSP-Yocto-i.MX6-PD16.1.0/images/phyboard-mira-imx6-7/barebox.bin
i.mx6q emmc barebox镜像:ftp://ftp.phytec.cn/i.MX6/BSP-Yocto-i.MX6-PD16.1.0/images/phyboard-mira-imx6-5/barebox.bin
2、oftree
i.mx6dl emmc :
设备树文件:imx6dl-phytec-mira-rdk-emmc.dts
设备树文件需要进行以下修改:
diff --git a/arch/arm/boot/dts/imx6dl-phytec-mira-rdk-emmc.dts b/arch/arm/boot/dts/imx6dl-phytec-mira-rdk-emmc.dts index a819e74..5c77fa8 100644 --- a/arch/arm/boot/dts/imx6dl-phytec-mira-rdk-emmc.dts +++ b/arch/arm/boot/dts/imx6dl-phytec-mira-rdk-emmc.dts @@ -18,6 +18,7 @@ / { model = "Phytec phyBOARD-MIRA DualLite/SOLO Carrier-Board with emmc"; + model-short = "miraq"; ##添加这一行 compatible = "phytec,imx6dl-pbac06", "phytec,imx6qdl-pcm058", "fsl,imx6dl"; chosen {
在BSP包的kernel/arch/arm/boot/dts添加该设备树文件,并修改arch/arm/boot/dts/Makefile
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 7ab93c0..3936768 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -114,6 +114,7 @@ dtb-$(CONFIG_ARCH_MXC) += \ imx53-qsb.dtb \ imx53-smd.dtb \ imx6dl-phytec-mira-rdk-nand.dtb \ + imx6dl-phytec-mira-rdk-emmc.dtb \ ##增加这一行 imx6dl-sabreauto.dtb \ imx6dl-sabreauto-ecspi.dtb \ imx6dl-sabreauto-flexcan1.dtb \
修改后需要重新编译内核即可。
i.mx6q emmc :
设备树文件:imx6q-phytec-mira-rdk-emmc.dts 修改如下:
diff --git a/arch/arm/boot/dts/imx6q-phytec-mira-rdk-emmc.dts b/arch/arm/boot/dts/imx6q-phytec-mira-rdk-emmc.dts index 8abfbed..d6c21fe 100644 --- a/arch/arm/boot/dts/imx6q-phytec-mira-rdk-emmc.dts +++ b/arch/arm/boot/dts/imx6q-phytec-mira-rdk-emmc.dts @@ -19,6 +19,7 @@ / { model = "Phytec phyBOARD-MIRA Quad Carrier-Board"; + model-short = "miraq"; compatible = "phytec,imx6q-pbac06", "phytec,imx6qdl-pcm058", "fsl,imx6q"; chosen {
修改后重新编译内核即可。
3、kernel
kernel image位置:kernel/arch/arm/boot/zImage
对于imx6q emmc核心板,内核需要打这个补丁:0001-mmc-core-Update-the-ext-csd.rev-check-for-eMMC5.1.patch
4、android system
修改BSP包的vendor/SIGMA/miraq/BoardConfig.mk文件,将系统镜像匹配为ext4格式,系统镜像默认为nand的ubifs格式
# sabresd_6dq default target for EXT4 BUILD_TARGET_FS ?= ext4 #取消注释 include device/fsl/imx6/imx6_target_fs.mk #取消注释 # uncomment below lins if use NAND #TARGET_USERIMAGES_USE_UBIFS := true #注释 _boardfiles := \ $(_thisdir)/files/fstab.sd:root/fstab.${_hw} \ #将fstab.default:root修改为fstab.sd:root $(_thisdir)/files/init.rc:root/init.${_hw}.rc \ $(_thisdir)/files/init.usb.rc:root/init.${_hw}.usb.rc \ $(_thisdir)/files/ueventd.rc:root/ueventd.${_hw}.rc \ \ $(_thisdir)/files/audio_policy.conf:system/etc/audio_policy.conf \ $(_thisdir)/files/audio_effects.conf:system/etc/audio_effects.conf \ $(_thisdir)/files/dhcpcd.conf:system/etc/dhcpcd/dhcpcd.conf \ $(_thisdir)/files/required_hardware.xml:system/etc/permissions/required_hardware.xml \ $(_thisdir)/files/EP0700M09.idc:system/usr/idc/EP0700M09.idc \
修改vendor/SIGMA/miraq/files/fstab.sd文件,
/dev/block/mmcblk3p5 /system ext4 ro defaults # mmcblk0p5 --> mmcblk3p5 /dev/block/mmcblk3p8 /data ext4 nosuid,nodev,nodiratime,noatime defaults # mmcblk0p8 --> mmcblk3p8 /dev/block/mmcblk3p6 /cache ext4 nosuid,nodev defaults # mmcblk0p6 --> mmcblk3p6 /dev/block/mmcblk3p7 /device ext4 nosuid,nodev defaults # mmcblk0p7 --> mmcblk3p7
mmcblk0是sd卡的挂载目录,emmc的挂载目录是mmcblk3
修改后重新编译系统镜像
make clean #如果该BSP包之前编译过nand的镜像,需要先执行这步操作,否则跳过此步骤 make -j4
系统镜像编译完成后,ramdisk.img也更新了,所以需要重新编译内核镜像。
android 系统镜像的位置:bdir/android_imx/target/product/miraq/system.img
5、制作emmc镜像
android BSP包有一个可以生成SD卡镜像的工具:vendor/SIGMA/miraq/tools/gen_sd_img.sh,使用该工具来生成emmc的镜像。
先将gen_sd_img.sh, barebox.bin, oftree, zImage, system.img放在同一个目录下。
mkdir images cp vendor/SIGMA/miraq/tools/gen_sd_img.sh images/ cp barebox.bin images/ cp kernel/arch/arm/boot/dts/imx6dl-phytec-mira-rdk-emmc.dtb images/ cp kernel/arch/arm/boot/zImage images/ cp bdir/android_imx/target/product/miraq/system.img images/
修改gen_sd_img.sh
#!/bin/bash # # 2016 (c) Matthias Rabe <matthias.rabe@sigma-chemnitz.de> # # base config # images export BASE_DIR=[images] #[images]对应改为images目录的路径 rm -f x.{1,6,7,8}.img ${DEST} if [ `expr 0 + 0${1}` -le 0 ]; then echo "usage $0: <sd_size in gb>" exit 1; fi DEST="sd.img" DEST_SIZE=`expr ${1} \* 900 \* 1024` ZIMAGE=${BASE_DIR}/zImage #修改zImage的路径 SYS_IMG=${BASE_DIR}/system.img #修改SYS_IMG的路径 BARE_IMG=${BASE_DIR}/barebox.bin #修改barebox的路径 #BARE_ENV=${BASE_DIR}/barebox.env #注释 OFTREE=${BASE_DIR}/imx6dl-phytec-mira-rdk-emmc.dtb #修改oftree路径
修改后,执行
./gen_sd_img.sh 1
在当前目录下生成sd.img, 该镜像就是emmc的镜像,将该镜像复制到sd卡上。
6、烧写android镜像。
开发板开机进入到barebox, 插入有emmc镜像的SD卡,
detect mmc3 cp -v /mnt/mmc/sd.img /dev/mmc3 reboot
烧写完成后重启进入到barebox, 修改/env/boot/emmc
#!/bin/sh [ -e /env/config-expansions ] && /env/config-expansions global.bootm.image="/mnt/emmc/linuximage" # zImage --> linuximage global.bootm.oftree="/mnt/emmc/oftree" global.linux.bootargs.dyn.root="root=/dev/mmcblk3p2 rootflags='data=journal'"
修改后保存环境,就可以从emmc启动android系统了。
saveenv boot