文章目录
- [基于原厂 SDK 从零创建板级支持包](#基于原厂 SDK 从零创建板级支持包)
-
- [1. 下载 SDK](#1. 下载 SDK)
- [2. 创建新的板级支持包](#2. 创建新的板级支持包)
- [3. 编译和烧录](#3. 编译和烧录)
基于原厂 SDK 从零创建板级支持包
1. 下载 SDK
以全志公司的 T113-Tina5.0-V1.2 的 SDK 为例,拿到原厂的 SDK 后解压:

解压成功会有这几个隐藏目录:

当前 T113 Tina 源码目录只有.repo 仓库目录,需要使用命令拉取代码:
shell
.repo/repo/repo sync -l
完成后可以看到完整的目录:

2. 创建新的板级支持包
拉取代码成功后,创建一个新的板级支持包用来编译,目前板卡使用的是nand flash ,所以复制一份 nand 方案,并重新命名为 t113-zgl_board:

修改 sys_config.fex:
shell
vi custom_board/sys_config.fex
修改内容:
shell
;---------------------------------------------------------------------------------
; version:版本1.00
; machine:板级文件名
;---------------------------------------------------------------------------------
[product]
version = "100"
machine = "zgl_board"

板级方案添加完成,后续外设调试涉及的文件修改将在 zgl_board 目录下完成。
添加openwrt文件系统对自定义板卡的支持方案(注意这里方案名最好与上一步骤的machine名对应):
进入openwrt文件系统构建目录下:
shell
cd <sdk_dir>/openwrt/target/t113
cp t113-evb1_auto_nand t113-zgl_board -r
cd t113-zgl_board
mv t113_evb1_auto_nand.mk t113_zgl_board.mk
vi t113_zgl_board.mk

修改 t113_zgl_board.mk 文件:
mk
$(call inherit-product-if-exists, target/allwinner/t113-common/t113-common.mk)
PRODUCT_PACKAGES +=
PRODUCT_COPY_FILES +=
PRODUCT_AAPT_CONFIG := large xlarge hdpi xhdpi
PRODUCT_AAPT_PERF_CONFIG := xhdpi
PRODUCT_CHARACTERISTICS := musicbox
PRODUCT_BRAND := allwinner
PRODUCT_NAME := t113_zgl_board
PRODUCT_DEVICE := t113-zgl_board
PRODUCT_MODEL := Allwinner t113 zgl_board board

修改 defconfig 和 defconfig_ota 文件(打包openwrt文件系统使用的默认配置):
shell
vi defconfig
vi defconfig_ota
conf
#
# Automatically generated file; DO NOT EDIT.
# OpenWrt Configuration
#
CONFIG_MODULES=y
CONFIG_HAVE_DOT_CONFIG=y
# CONFIG_TARGET_t113_awol_evb1 is not set
# CONFIG_TARGET_t113_dev is not set
# CONFIG_TARGET_t113_evb1 is not set
# CONFIG_TARGET_t113_evb1_auto is not set
CONFIG_TARGET_t113_zgl_board=y
# CONFIG_TARGET_t113_evb1_auto_nor is not set
# CONFIG_TARGET_t113_pro is not set
CONFIG_TARGET_t113_zgl_board_Default=y
CONFIG_TARGET_BOARD="t113-zgl_board"


修改 TinaProducts.mk 文件:
mk
#
# Copyright (C) 2013 The Android Open-Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/t113_zgl_board.mk

修改 vendorsetup.sh 文件:
shell
vi vendorsetup.sh
shell
add_lunch_combo t113-zgl_board

修改 Makefile文件:
shell
vi Makefile
makefile
#
# Copyright (C) 2013-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
ARCH:=arm
BOARD:=t113-zgl_board
BOARDNAME:=t113-zgl_board
FEATURES:=fpu dt
CPU_TYPE:=cortex-a7
CPU_SUBTYPE:=neon
MAINTAINER:=Allwinner
KERNEL_PATCHVER:=5.4
UBOOT_PATCHVER:=2018
KERNELNAME:=zImage dtbs
include $(INCLUDE_DIR)/target.mk

到这里就创建和配置完成,后面可以再执行编译和烧录。
3. 编译和烧录
创建和配置完成后进行编译:
shell
source build/envsetup.sh

执行命令选择 t113-zgl_board:(即自定义添加的选项,排在17)
shell
lunch

然后执行 make -j$(nproc) 编译,编译成功后执行 pack 打包,最后用全志的烧录工具 AllwinnertechPhoeniSuit 进行烧录。
77a839c828ace1a9145.png)