基于原厂 SDK 从零创建板级支持包

文章目录

  • [基于原厂 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)