页次: 1
step 1:增加mx6ul_14x14_nes_game_emmc_defconfig(由mx6ul_14x14_evk_emmc_defconfig复制修改而来)
step 2:修改mx6ul_14x14_nes_game_emmc_defconfig中的内容,下边为修改内容
step 2.1:CONFIG_DEFAULT_DEVICE_TREE="imx6ul-14x14-nes-game-emmc"
step 2.2:CONFIG_IMX_CONFIG="board/freescale/mx6ul_14x14_nes_game_emmc/imximage.cfg"
step 2.3:CONFIG_TARGET_MX6UL_14X14_NES_GAME_EMMC=y
注意点: mx6ul_14x14_nes_game_emmc_defconfig与TARGET_MX6UL_14X14_NES_GAME_EMMC必须严格对应
即_defconfig之前文件名与TARGET_之后文件名相同
step 3:修改编译脚本imx6ul_nes_game_compile.sh
step 3.1:make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- mx6ul_14x14_nes_game_emmc_defconfig
step 4: 增加mx6ul_14x14_nes_game_emmc.h,并修改头文件的防重复添加的宏(由mx6ul_14x14_evk.h修改)
step 5: 增加board/freescale/mx6ul_14x14_nes_game_emmc文件夹(由mx6ul_14x14_evk复制而来)
step 5.1 修改mx6ul_14x14_evk.c为mx6ul_14x14_nes_game_emmc.c,同时修改内容,修改如下
修改点1: #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG-----board_late_init函数中
env_set("board_name", "imx6ul_nes_game_emmc");
修改点2: if (is_mx6ul_9x9_evk())---------checkboard函数中
puts("Board: MX6UL 9x9 EVK\n");
else
puts("Board: IMX6UL 14x14 NES GAME EMMC BOARD\n");
step 5.2 修改MAINTAINERS文件中相关内容,修改如下
F: board/freescale/mx6ul_14x14_nes_game_emmc/
F: include/configs/mx6ul_14x14_nes_game_emmc.h
F: configs/mx6ul_14x14_nes_game_emmc_defconfig
step 5.3 修改imximage.cfg文件,修改如下
PLUGIN board/freescale/mx6ul_14x14_nes_game_emmc/plugin.bin 0x00907000
step 5.4 修改Kconfig文件,修改如下
if TARGET_MX6UL_14X14_NES_GAME_EMMC
config SYS_BOARD
default "mx6ul_14x14_nes_game_emmc"
config SYS_VENDOR
default "freescale"
config SYS_CONFIG_NAME
default "mx6ul_14x14_nes_game_emmc"
step 5.5 修改Makefile,修改如下
obj-y := mx6ul_14x14_nes_game_emmc.o
step 6:修改arch/arm/mach-imx/mx6/修改Kconfig文件,修改如下
config TARGET_MX6UL_14X14_NES_GAME_EMMC------新增
bool "mx6ul_14x14_nes_game_emmc"
depends on MX6UL
select BOARD_LATE_INIT
select DM
select DM_THERMAL
select SUPPORT_SPL
select IMX_MODULE_FUSE
select OF_SYSTEM_SETUP
imply CMD_DM
select FSL_CAAM
select FSL_BLOB
select ARCH_MISC_INIT
source "board/freescale/mx6ul_14x14_nes_game_emmc/Kconfig"------新增
step 7: 修改arch/arm/dts中设备树
step 7.1: 增加imx6ul-14x14-nes-game-emmc.dts(由imx6ul-14x14-evk-emmc.dts复制修改)
修改:#include "imx6ul-14x14-nes-game.dts"
step 7.2: 增加imx6ul-14x14-nes-game.dtsi(由imx6ul-14x14-evk.dtsi复制修改)
step 7.3: 增加imx6ul-14x14-nes-game.dts(由imx6ul-14x14-evk.dts复制修改)
修改: #include "imx6ul-14x14-nes-game.dtsi"
/ {
model = "Freescale i.MX6 UltraLite 14x14 Nes_Game_Emmc Board";
compatible = "fsl,imx6ul-14x14-nes-game-emmc", "fsl,imx6ul";
};
step 7.4: 增加imx6ul-14x14-nes-game-emmc-u-boot.dtsi(由imx6ul-14x14-evk-emmc-u-boot.dtsi复制修改)
修改:: #include "imx6ul-14x14-nes-game-u-boot.dtsi"
step 7.5: 增加imx6ul-14x14-nes-game-u-boot.dtsi(由imx6ul-14x14-evk-u-boot.dtsi复制修改)
step 7.6: (optional)可在imx6ul-14x14-nes-game-emmc.dts显式增加#include "imx6ul-14x14-nes-game-emmc-u-boot.dtsi"
step 7.7: 修改Makefile,dtb-$(CONFIG_MX6UL) +=中新增imx6ul-14x14-nes-game-emmc.dtb \
step 8: 修改增加mx6ul_14x14_nes_game_emmc.h,修改如下
"findfdt="\
"if test $fdt_file = undefined; then " \
"if test $board_name = imx6ul_nes_game_emmc; then " \
"setenv fdt_file imx6ul-14x14-nes-game-emmc.dtb; fi; " \
step 9: 使用网络,只要设置如下内容即可
setenv ipaddr 192.168.1.55 //开发板 IP地址
setenv ethaddr b8:ae:1d:01:00:00 //开发板网卡 MAC地址
setenv eth1addr b8:ae:1d:01:00:01 //开发板网卡 MAC地址
setenv gatewayip 192.168.1.1 //开发板默认网关
setenv netmask 255.255.255.0 //开发板子网掩码
setenv serverip 192.168.1.250 //服务器地址,也就是 服务器地址,也就是Ubuntu地址
saveenv //保存环境变量
step 10: 将SD进行分区,分区脚本如下:
#!/bin/bash
SD_CARD=/dev/sdb
echo "=========================================="
echo "SD卡一键分区脚本"
echo "目标设备: ${SD_CARD}"
echo "=========================================="
if [ "$EUID" -ne 0 ]; then
echo "请使用 sudo 运行此脚本"
exit 1
fi
echo "卸载所有分区..."
sudo umount ${SD_CARD}* 2>/dev/null
echo "创建分区表..."
sudo parted ${SD_CARD} --script mklabel msdos
echo "创建分区1(100MB FAT32)..."
sudo parted ${SD_CARD} --script mkpart primary fat32 1MiB 100MiB
echo "创建分区2(剩余空间 ext4)..."
sudo parted ${SD_CARD} --script mkpart primary ext4 100MiB 100%
echo "格式化分区1为FAT32..."
sudo mkfs.vfat -F 32 ${SD_CARD}1
echo "格式化分区2为ext4..."
sudo mkfs.ext4 ${SD_CARD}2
echo "=========================================="
echo "分区完成!"
echo "分区1: ${SD_CARD}1 (100MB FAT32)"
echo "分区2: ${SD_CARD}2 (370MB ext4)"
echo "=========================================="
step 11: 将sd卡分区1与分区2添加"777"权限
step 11.1: sudo chmod 777 /media/你的linux登录用户名/分区1对应的文件夹
step 11.2: sudo chmod 777 /media/你的linux登录用户名/分区2对应的文件夹
step 11.3: 将zImage与对应的设备树文件(xxx.dtb)复制到分区1中
step 12: 修改为由SD卡启动
step 12.1: 修改mx6ul_14x14_nes_game_emmc.h中mmcpart=1对应分区1
step 12.2: 修改mx6ul_14x14_nes_game_emmc.h中mmcroot=/dev/mmcblk0p2 rootwait rw 根文件系统指向 SD 卡 2 分区
step 12.3: 修改mx6ul_14x14_nes_game_emmc_defconfig中CONFIG_SYS_MMC_ENV_DEV=0
页次: 1