当前位置: 首页 > news >正文

【全志V821_FoxPi】2-1 首次编译Tina5.0 SDK

【全志V821_FoxPi】2-1 首次编译Tina5.0 SDK

  • 一、获取SDK
  • 二、解压SDK
  • 三、安装基本环境
    • 3.1 安装软件
    • 3.2 从仓库恢复SDK
      • 3.2.1 ubuntu24.04 不支持python2
      • 3.2.2 不支持的原因
      • 3.2.3 下载安装python2
        • 3.2.3.1 安装编译依赖
        • 3.2.3.2 下载Python 2源码
        • 3.2.3.3 编译安装
        • 3.2.3.4 验证安装
        • 3.2.3.5 创建软链接
        • 3.2.3.6 从本地仓库恢复SDK
  • 四、首次编译
  • 4.1 创建自己的板级方案
    • 4.1.1 初始化环境变量
    • 4.1.2 选择一个基本方案
    • 4.1.3 create_new_board
  • 4.2 编译打包

一、获取SDK

请向代理或FAE获取全志V821的SDK,本博客使用的SDK是 V821_SDK_V1.1.tar

二、解压SDK

先确认压缩包里面是否包含了opt目录

tar tf V821_SDK_V1.1.tar | head -1

在这里插入图片描述

这个就是包含了opt目录,直接解压到根目录就可以

tar xvf V821_SDK_V1.1.tar -C /

在这里插入图片描述

三、安装基本环境

3.1 安装软件

本文环境:Ubuntu 24.04

sudo apt-get updatesudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip lib32z1 lib32z1-dev lib32stdc++6 libstdc++6 -y

对于Ubuntu 16.04以上版本,部分软件包已不再提供或者采用了其他的包,执行上述命令时, 安装失败的包可先忽略,进一步执行以下命令:

sudo apt-get install libc6:i386 libstdc++6:i386 lib32ncurses5 lib32z1

3.2 从仓库恢复SDK

cd /opt/V821_SDK_V1.1
.repo/repo/repo sync -l

3.2.1 ubuntu24.04 不支持python2

root@foxpi:/opt/V821_SDK_V1.1# .repo/repo/repo sync -l
warning: Python 3 support is currently experimental. YMMV.
Please use Python 2.6 - 2.7 instead.
Traceback (most recent call last):File "/opt/V821_SDK_V1.1/.repo/repo/main.py", line 19, in <module>import imp
ModuleNotFoundError: No module named 'imp'

在这里插入图片描述

3.2.2 不支持的原因

Python 2自2020年1月1日起停止维护,Ubuntu 22及以后版本官方仓库已移除Python 2相关包

Tips: 用ubuntu 16、18、20的就不用担心啦

3.2.3 下载安装python2

3.2.3.1 安装编译依赖
sudo apt update
sudo apt install -y build-essential wget libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libncurses5-dev libncursesw5-dev libffi-dev zlib1g-dev
3.2.3.2 下载Python 2源码
cd /usr/src
sudo wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz
sudo tar xzf Python-2.7.18.tgz
cd Python-2.7.18
3.2.3.3 编译安装
sudo ./configure
sudo make -j$(nproc)
sudo make altinstall
# 注意:使用make altinstall避免覆盖系统默认的python3命令。
3.2.3.4 验证安装
root@foxpi:/usr/src/Python-2.7.18# python2.7 --version
Python 2.7.18
3.2.3.5 创建软链接

查找当前路径

root@foxpi:/opt/V821_SDK_V1.1# whereis python
python: /usr/src/Python-2.7.18/python

创建链接

sudo ln -s /usr/local/bin/python2.7 /usr/bin/python

查看结果

root@foxpi:/opt/V821_SDK_V1.1# whereis python
python: /usr/bin/python /usr/src/Python-2.7.18/python
3.2.3.6 从本地仓库恢复SDK
root@foxpi:/opt/V821_SDK_V1.1# .repo/repo/repo sync -l
Updating files: 100% (14861/14861), done.iles: 96% (14413/14861)
Updating files: 100% (16190/16190), done.iles: 41% (6730/16190)
Updating files: 100% (124/124), done.ing files: 69% (86/124)
Updating files: 100% (65911/65911), done.files: 26% (17678/65911)
Updating files: 100% (320/320), done.ing files: 57% (184/320)
Updating files: 100% (4286/4286), done.g files: 94% (4044/4286)
Updating files: 100% (2934/2934), done.ng files: 9% (284/2934)
Updating files: 100% (1901/1901), done.ng files: 62% (1193/1901)
Updating files: 100% (9418/9418), done.ng files: 42% (4035/9418)
Syncing work tree: 100% (109/109), done.

四、首次编译

  • source build/envsetup.sh :初始化Tina环境变量
  • lunch 会提供方案选项以供选择
  • make -j$(nproc) :编译,其中-j后面的数字参数为编译用的线程数,可根据开发者编译用的PC实际情况选择。
  • pack : 打包,将编译好的固件打包成一个.img格式的固件,固件路径 out/v821_linux_foxpi_uart0.img

4.1 创建自己的板级方案

4.1.1 初始化环境变量

foxpi@foxpi:/opt/V821_SDK_V1.1$ source build/envsetup.sh
NOTE: The SDK(/opt/V821_SDK_V1.1) was successfully loaded
load openwrt... ok
Please run lunch next for openwrt.
load bsp...ok

4.1.2 选择一个基本方案

创建自己的板级方案会在这个基础上进行修改

foxpi@foxpi:/opt/V821_SDK_V1.1$ lunchYou're building on LinuxLunch menu... pick a combo:1  v821-aiglass-tina2  v821-ipc-tina3  v821-perf2-tina4  v821-perf2_fastboot-tina5  v821-perf2b-tina6  v821-perf2b_fastboot-tina7  v821-ver1-tina
Which would you like?: 3

4.1.3 create_new_board

SDK提供便捷的方式创建板级档案 create_new_board

foxpi@foxpi:/opt/V821_SDK_V1.1$ create_new_board_______             _____             __        ___                   __
/_  __(_)__  ___ _  / ___/______ ___ _/ /____   / _ )___  ___ ________/ // / / / _ \/ _  / / /__/ __/ -/) _  / __/ -/) / _  / _ \/ _ `/ __/ _  /
/_/ /_/_//_/\_,_/  \___/_/  \__/\_,_/\__/\__/ /____/\___/\_,_/_/  \_,_/-------------------------------------------------------------------------
Base on board name: v821-perf2-tina
Please input new board name (eg. custom_board): foxpi
Start generate new board: v821-foxpi-tina
-------------------------------------------------------------------------
Board foxpi now created. Please reload environment and lunch your new board:
source build/envsetup.sh && lunch

4.2 编译打包

然后按照下面顺序进行编译和打包

source build/envsetup.sh
lunch {刚才创建的序号}
make
pack

第一次编译建议单线程编译
make -j1 V=sc

在这里插入图片描述

以下为部分编译日志

foxpi@foxpi:/opt/V821_SDK_V1.1$ make
===There is tina environment.===Note: make is the shell functon in envsetup.sh.== action: openwrt_build, action_args:  ==
========ACTION List: build_linuxdev ;========
options :
INFO: ----------------------------------------
INFO: build linuxdev ...
INFO: chip: sun300iw1p1
INFO: platform: linux
INFO: kernel: linux-5.4-ansc
INFO: board: foxpi
INFO: output: /opt/V821_SDK_V1.1/out/v821/foxpi/openwrt
INFO: ----------------------------------------
INFO: build rtos ...
Setup env done!
Run lunch_rtos to select project
last=
select=v821_e907_foxpi...
v821_e907/foxpi
'/opt/V821_SDK_V1.1/rtos/lichee/rtos/projects/v821_e907/foxpi/defconfig' -> '/opt/V821_SDK_V1.1/rtos/lichee/rtos/.config'
Xuantie-900-gcc-elf-newlib-x86_64-V2.10.1/
Xuantie-900-gcc-elf-newlib-x86_64-V2.10.1/share/
Xuantie-900-gcc-elf-newlib-x86_64-V2.10.1/share/locale/
Xuantie-900-gcc-elf-newlib-x86_64-V2.10.1/share/locale/bg/
Xuantie-900-gcc-elf-newlib-x86_64-V2.10.1/share/locale/bg/LC_MESSAGES/
Xuantie-900-gcc-elf-newlib-x86_64-V2.10.1/share/locale/bg/LC_MESSAGES/gprof.mo
Xuantie-900-gcc-elf-newlib-x86_64-V2.10.1/share/locale/bg/LC_MESSAGES/ld.moGenerating index for package
...
...
...
...
..../wifimanager-v2.0-demo_0.1-1_riscv32_a27l2_rv32imac_zicsr_zifencei.ipk
Generating index for package ./wifimanager-v2.0-lib_0.1-1_riscv32_a27l2_rv32imac_zicsr_zifencei.ipk
Generating index for package ./wifimanager-v2.0_0.1-1_riscv32_a27l2_rv32imac_zicsr_zifencei.ipk
Generating index for package ./wireless-regdb_2021.08.28-1_all.ipk
Generating index for package ./wirelesscommon_1.0.0-1_riscv32_a27l2_rv32imac_zicsr_zifencei.ipk
Generating index for package ./zlib_1.2.11-4_riscv32_a27l2_rv32imac_zicsr_zifencei.ipk
make[2]: Leaving directory '/opt/V821_SDK_V1.1/openwrt/openwrt'
export MAKEFLAGS= ;/opt/V821_SDK_V1.1/prebuilt/hostbuilt/make4.1/bin/make -w -r json_overview_image_info
make[2]: Entering directory '/opt/V821_SDK_V1.1/openwrt/openwrt'
make[2]: Nothing to be done for 'json_overview_image_info'.
make[2]: Leaving directory '/opt/V821_SDK_V1.1/openwrt/openwrt'
export MAKEFLAGS= ;/opt/V821_SDK_V1.1/prebuilt/hostbuilt/make4.1/bin/make -w -r checksum
make[2]: Entering directory '/opt/V821_SDK_V1.1/openwrt/openwrt'
make[2]: Leaving directory '/opt/V821_SDK_V1.1/openwrt/openwrt'
make[1]: Leaving directory '/opt/V821_SDK_V1.1/openwrt/openwrt'
make: Leaving directory '/opt/V821_SDK_V1.1/openwrt/openwrt'
INFO: ----------------------------------------
INFO: build OK.
INFO: ----------------------------------------

然后pack生成
在这里插入图片描述

相关文章:

  • 获取RadioButton的text,更换textview的text
  • 如何防止任务在多个项目中重复执行
  • Android SDK Manager 2025镜像,亲测好用
  • 蓝凌EKP产品:低门槛、可扩展、可视化公式引擎应用示例
  • 【系统介绍】IBMS智能建筑集成管理平台-智能化子系统的大脑
  • Gartner<Reference Architecture Brief: Data Integration>学习心得
  • RTX4060安装cuda12.3 cudnn8.9
  • Chrome 优质插件计划
  • 【深度学习】深度学习中的张量:从多维数组到智能计算单元
  • jpeg与 Mjpeg数据格式有什么区别
  • 【电力物联网】SDN架构与工作原理介绍
  • PHP基础-语法变量
  • MVVM 分层思想详解
  • Python自动化测试数据驱动解决数据错误
  • 超级神冈探测器2025.6.11
  • 2025年- H81-Lc189--279.完全平方数(动态规划)--Java版
  • 学习日记-day27-6.11
  • leetcode_283.移动零
  • 选择与方法(4) 职场内篇 沿着赤道走,到不了北极,找准职场方向,建立可迁移技能
  • 各项目变更频繁时,如何保持整体稳定
  • 校园网共青团网站建设方案/苏州手机关键词优化
  • 网站建设百灵鸟优化/百度网盘搜索神器
  • asp网站开发好怎么预览/app推广代理平台
  • 移动端网站优秀案例/直销的八大课程
  • 网站设计制作价格怎么算/球队排名世界
  • 群晖wordpress默认地址/seo推广专员工作好做吗